Xnvme

Latest version: v0.7.5

Safety actively analyzes 688619 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

0.0.29

-------

Another infrastructure / fixes release.

* Re-worked the continous integration
- Fixed the broken build of the "dockerized" source
- Fixed build on FreeBSD
- Added build and test of FreeBSD
- Combined all workflows in a single workflow, this vastly improves how the
CI is triggered and linked with artifacts and artifacts verified

* 3p:windows
- Added definition for iovec, in preparation for iovec support

0.0.28

-------

This and the previous release contain minimal library/logical changes as major
changes to the build-system and source organization is changed.

* Moved the libraries sources from 'src' to 'lib'

0.0.27

-------

* Build-system migrated from CMake to meson
The Makefile "frontend" to the build-system is still available, and
instruments meson in the same manner it instrumented CMake. However, this is
no longer intended for anything other than development. Meson is the way to
go and the documentation thus describes how to use it rather than the
make-helpers instrumenting meson.

* Reduced cpu-utilization on libaio and io_uring ``poke()`` implementations

0.0.26

-------

Expanded platform support, updated experimental features, and extended
command-set-support for ZNS/ZRWA, along with a couple of fixes and third-party
updates.

* Third-party
- fio, updated to 3.28
- spdk, updated to v21.10

* Windows Support
- xNVMe now builds on Windows, it uses the MinGW toolchain to be compatible
with fio, however, xNVMe does also build with MSVC
- Using IOCP for async I/O
- Supports a limited number non-I/O commands via driver IOCTL mapping

* uring_cmd
- Experimental interface updated for patch-set on top of 5.15 kernel

* Zoned Namespaces
- Added support for Zone Random Write Area (ZRWA)

* Fixes
- Linux Block Backend: fix and update sysfs processing
- fio io-engine: Fix of xnvme_fioe_reset_wp() resetting one too many zones
- Adjustments to CI and partly removed of deprecated 'schemes'

0.0.25

-------

Major improvements to the usability of xNVMe and enchancements of the API
along with a couple of fixes.

* Encoding of runtime instrumentation, that is, selection of backend, async
interface etc. has until now been encoded in the device URI, e.g.
``xnvme_dev_open("/dev/nvme0n1?async=io_uring")`` in order to use
``io_uring``, this has now been replaced by ``struct xnvme_opts``, making it
much easier to instrument the library runtime via the API. The command-line
is also affected, as the command-line parser is extended enabling parsing of
said options along with the tests, examples, and tools are extended with
these options.

* Device enumeration populated a list with device-identifiers, this has been
replaced by invocation of a user-defined call-back function for each
discovered device. Where instead of identifiers, device-handles are passed
to the callback. This makes it much simpler to e.g. filtering namespace with
a specific command-set.

* To support the above then most of information carried in the ``xnvme_ident``
is removed, expect for the ``uri``, and extended with: ``dtype``, ``nsid``,
and ``csi``. Where ``dtype`` denotes e.g. ``file``, ``block device``, ``NVMe
controller``, ``NVMe Namespace``.

* The ``xnvme_znd_mgmt_send()`` has now has an explicit ``select_all`` argument
for setting the matching command-field, this replaces the use of the
non-standardized ``zrasf`` field associated enumeration-values.

* Documentation for building on Gentoo is added along with addition to the
automated build-test.

* nvme:spec: expanded with PCIe-bar registers

* Support for enumeration and device-handles for Linux NVMe Namespaces
represented in devfs as char-devices, e.g. ``/dev/ngXnY`` is added.

* **Experimental** support for sending NVMe commands over ``io_uring``
infrastructure is added. Think of this as sending the **synchronous** NVMe
Driver ``ioctl()`` commands via the **asynchronous** ``io_uring`` interface.
You thus get the control and capabilities of the ioctl() with the efficiency
of ``io_uring``.
This feature is enabled by setting ``opts.async=io_uring_cmd`` via the API or
``--async=io_uring_cmd`` via the command-line. The feature is experimental as
it depends on non-upstream Kernel Support.

0.0.24

-------

A release primarily of fixes, a new thread-pool based async. implementation and
a third-party update of fio.

* Third-party
- fio, updated to 3.27

* Backends
- posix:async:thrpool: add async-implementation with async.emulation via
threadpool processing

* A good handful of fixes, see the commit-messages for details

Page 3 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.