Re: [RFC 00/10] Python binding for rdma-core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 08, 2018 at 11:03:21AM +0100, Nicolas Morey-Chaisemartin wrote:
> It might be worth adding a build with pyverbs enable in buildlib/travis-build so it goes through CI
> and enhance check-build to make sure the relevant files are installed.
>

We first needs to find a way to fix a debina package which causes to
current failures in travis.

> Also, if you're interested, I have a patch ready to submit which allows to pass --with options to cbuild so we could trigger RHEL and SUSE with static and pyverbs enable to make sure the whole thing works out.
>

Yes, please do it.
We would like to keep cbuilds as close as possible to real distributions
builds to generate proper RPMs and DEBs, so external --with knob makes
sense to me.

> Nicolas
>
> On 11/7/18 6:31 PM, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> >
> > 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.
> >
> > 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
> >     [...]
> >
> > Known limitations:
> >  This PR contains an updated rdma-core.spec files, but it is not final.
> >  More work on packaging and travis is needed.
> >
> > 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: Documetn 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                   |  45 +++-
> >  Documentation/pyverbs.md         |  98 +++++++++
> >  buildlib/Findcython.cmake        |  29 +++
> >  buildlib/cbuild                  |  13 +-
> >  buildlib/pyverbs_functions.cmake |  45 ++++
> >  debian/control                   |  11 +-
> >  debian/python3-pyverbs.install   |   1 +
> >  debian/rules                     |   2 +
> >  pyverbs/CMakeLists.txt           |  20 ++
> >  pyverbs/__init__.pxd             |   0
> >  pyverbs/__init__.py              |   0
> >  pyverbs/addr.pxd                 |   9 +
> >  pyverbs/addr.pyx                 |  53 +++++
> >  pyverbs/base.pxd                 |   5 +
> >  pyverbs/base.pyx                 |  24 +++
> >  pyverbs/device.pxd               |  20 ++
> >  pyverbs/device.pyx               | 358 +++++++++++++++++++++++++++++++
> >  pyverbs/enums.pyx                |   1 +
> >  pyverbs/examples/ib_devices.py   |  20 ++
> >  pyverbs/libibverbs.pxd           |  74 +++++++
> >  pyverbs/libibverbs_enums.pxd     | 344 +++++++++++++++++++++++++++++
> >  pyverbs/pyverbs_error.py         |  40 ++++
> >  pyverbs/run_tests.py             |  22 ++
> >  pyverbs/tests/__init__.py        |   0
> >  pyverbs/tests/device.py          |  41 ++++
> >  redhat/rdma-core.spec            |  23 ++
> >  suse/rdma-core.spec              |  26 ++-
> >  28 files changed, 1318 insertions(+), 10 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
> >
> > --
> > 2.19.1
> >
>
>



Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux