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

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

 



Also my patchfor --with support to cbuild was accepted.
Might be worth enabling pyverbs in cbuild for RHEL/SUSE.
See: 123ad71a6376 (buildlib: build static packages in RPM based distro test)

Nicolas

On 11/13/18 2:31 PM, Leon Romanovsky wrote:
> On Tue, Nov 13, 2018 at 05:31:29AM +0200, Leon Romanovsky wrote:
>> From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>>
>> Changelog:
>>  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
> PR was updated with the following changes:
>  * Fix spelling error pointed by Gal
>  * Removed "Uncommented section of device class" from device.pxd as not needed
>
> Thanks
>
>> --------------------------------------------------------------------
>>
>> 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
>>     [...]
>>
>> Known limitations:
>>  Travis fails on the cython vs. python compatibility check. We tried
>>  hard to ensure that those two packages are aligned and we compile
>>  and install right version of pyverbs. Unfortunately, in Travis,
>>  python and cython have different versions.
>>
>> 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                   |  10 +-
>>  debian/python3-pyverbs.install   |   1 +
>>  debian/rules                     |   4 +-
>>  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(+), 11 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: OpenPGP digital 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