On Sun, Dec 09, 2018 at 03:32:55PM +0200, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > Changelog: > v1->v2: > * Upstreamed most of travis/cbuild changes/fixes and rebased on top of them > * Rewrote debian and cbuild scripts to better reuse code > * Added checks of pyverbs into travis > v0->v1: > * Added --with pyverbs switch > * RPM and DEB packages are built properly now > * Travis was refactored to work with pyverbs, actually the latest > changes in rdma-core infrastructure were outcome of this work. > * Fixed various warnings spotted by gcc-8 > * Rebased to latest rdma-core > * Heavily rewrote all packaging logic > * fixed number of issues in rdma-core > * Travis passes now > RFC->v0: > * SuSE fixes from Nicolas > * Debian fixes from Benjamin > * Fixed different spelling errors > * Uncommented section of device class > > PR was updated: > https://github.com/linux-rdma/rdma-core/pull/415 > > -------------------------------------------------------------------- > > In this patch set we introduce python bindings (pyverbs) for > rdma-core in its initial form. It will cover libibverbs and will be > expanded to support librdmacm in the future. > > Prior to developing of pyverbs, the existing python-rdma package [1] > was evaluated, but a new package was built using newer cython and > python versions, in order to provide a more comfortable user experience. > > The main goal of pyverbs is to provide to the user a simple API > that makes working with verbs easier. Among other things, it allows > setting up RDMA resources quickly. > > In the future, it will also suggest default configuration (e.g. > default values for QP attributes, which the user can override) and > further bring up shortcuts will be provided (e.g. QPs can change > state internally, without user intervention). > > The above means a significant cut in tests development time, > which will allow developers to send a feature with a test included, > increasing rdma-core's robustness. > > The above means a significant cut in tests development time, > which will allow developers to send a feature with a test included, > increasing rdma-core's robustness. > > A short example based on the preliminary abilities of this PR: > > >>>import pyverbs.device as d > >>>ctx = d.Context(name='mlx5_0') > >>>attr = ctx.query_device() > print(attr) > FW version : 16.24.0185 > Node guid : 9803:9b03:0000:e4c6 > Sys image GUID : 9803:9b03:0000:e4c6 > Max MR size : 0xffffffffffffffff > [...] > > Future plan: > * Extend pyverbs' coverage over rdma-core (further RDMA objects such as > PD, MR etc.). > * Enrich examles section. > * Provide tests for existing and new features. > > [1] https://github.com/jgunthorpe/python-rdma > > Thanks, > Noa and Leon > > Maxim Chicherin (2): > pyverbs: Introduce device class > pyverbs/examples: Introduce ib_devices > > Noa Osherovich (8): > pyverbs: Introducing pyverbs and its context class > pyverbs: GID class > pyverbs: Document pyverbs usage and examples > pyverbs: Update cmake to include pyverbs package > redhat: Add pyverbs to RedHat specification > suse: Add pyverbs to SUSE specification > debian: Add pyverbs to Debian package > pyverbs: Unittest framework > > .travis.yml | 4 + > CMakeLists.txt | 58 ++++- > Documentation/pyverbs.md | 98 +++++++++ > README.md | 6 +- > buildlib/Findcython.cmake | 29 +++ > buildlib/cbuild | 36 +++- > buildlib/pyverbs_functions.cmake | 60 ++++++ > buildlib/travis-build | 6 +- > debian/control | 10 +- > debian/python3-pyverbs.install | 1 + > debian/rules | 46 ++-- > pyverbs/CMakeLists.txt | 24 +++ > pyverbs/__init__.pxd | 0 > pyverbs/__init__.py | 0 > pyverbs/addr.pxd | 9 + > pyverbs/addr.pyx | 50 +++++ > pyverbs/base.pxd | 5 + > pyverbs/base.pyx | 24 +++ > pyverbs/device.pxd | 14 ++ > pyverbs/device.pyx | 358 +++++++++++++++++++++++++++++++ > pyverbs/enums.pyx | 1 + > pyverbs/examples/ib_devices.py | 20 ++ > pyverbs/libibverbs.pxd | 74 +++++++ > pyverbs/libibverbs_enums.pxd | 339 +++++++++++++++++++++++++++++ > pyverbs/pyverbs_error.py | 40 ++++ > pyverbs/run_tests.py | 22 ++ > pyverbs/tests/__init__.py | 0 > pyverbs/tests/device.py | 41 ++++ > redhat/rdma-core.spec | 30 ++- > suse/rdma-core.spec | 31 ++- > 30 files changed, 1401 insertions(+), 35 deletions(-) > create mode 100644 Documentation/pyverbs.md > create mode 100644 buildlib/Findcython.cmake > create mode 100644 buildlib/pyverbs_functions.cmake > create mode 100644 debian/python3-pyverbs.install > create mode 100644 pyverbs/CMakeLists.txt > create mode 100644 pyverbs/__init__.pxd > create mode 100644 pyverbs/__init__.py > create mode 100644 pyverbs/addr.pxd > create mode 100644 pyverbs/addr.pyx > create mode 100644 pyverbs/base.pxd > create mode 100644 pyverbs/base.pyx > create mode 100644 pyverbs/device.pxd > create mode 100644 pyverbs/device.pyx > create mode 120000 pyverbs/enums.pyx > create mode 100755 pyverbs/examples/ib_devices.py > create mode 100644 pyverbs/libibverbs.pxd > create mode 100644 pyverbs/libibverbs_enums.pxd > create mode 100644 pyverbs/pyverbs_error.py > create mode 100644 pyverbs/run_tests.py > create mode 100644 pyverbs/tests/__init__.py > create mode 100644 pyverbs/tests/device.py > > -- Thanks, merged.
Attachment:
signature.asc
Description: PGP signature