mbox series

[daxctl,v3,0/3] daxctl: Opt-in to /sys/bus/dax ABI

Message ID 154777878104.2060068.1465998507656988115.stgit@dwillia2-desk3.amr.corp.intel.com (mailing list archive)
Headers show
Series daxctl: Opt-in to /sys/bus/dax ABI | expand

Message

Dan Williams Jan. 18, 2019, 2:33 a.m. UTC
Changes since v2:
* Fix up the daxtctl/config.h build dependency (Dave)
* Fix up the patch2 changelog (Vishal)
* Fix up output capitalization (Vishal)
* Fix up copyright for the new migrate.c, and while we're at it do the
  same for all autogenerated documentation. (Vishal)

---

Quote patch2:

The kernel is implementing a '/sys/bus/dax' ABI to allow for alternate
device-DAX drivers to be bound to device instances. While the kernel's
conversion to '/sys/bus/dax' does not affect the primary ndctl use case
of putting namespaces into 'devdax' mode since that uses libnvdimm
namespace device relative paths, it does break current implementations
of 'ndctl list -X' and 'daxctl list'.  It is also known to break fio and
some pmdk versions that explicitly reference "/sys/class/dax".

In order to avoid userspace regressions the kernel can be configured to
maintain '/sys/class/dax' as the default ABI. However, once all
'/sys/class/dax' users have been converted, or removed from the
installation, an administrator can opt-in to the new '/sys/bus/dax' ABI.
The 'dax migrate-device-model' command installs a modprobe rule to
blacklist the dax_pmem_compat module and arrange for the dax_pmem module
to auto-load in response to the detection of device-DAX instances
emitted from the libnvdimm subsystem.

---

Dan Williams (3):
      daxctl: Support the /sys/bus/dax ABI
      daxctl: Opt-in to /sys/bus/dax ABI
      Documentation: Update copyright


 .gitignore                                         |    1 
 Documentation/copyright.txt                        |    2 -
 Documentation/daxctl/Makefile.am                   |    3 +
 .../daxctl/daxctl-migrate-device-model.txt         |   47 +++++++++++++
 configure.ac                                       |    5 +
 daxctl/Makefile.am                                 |   10 +++
 daxctl/builtin.h                                   |    1 
 daxctl/daxctl.c                                    |    1 
 daxctl/lib/Makefile.am                             |    2 +
 daxctl/lib/daxctl.conf                             |    2 +
 daxctl/lib/libdaxctl-private.h                     |   11 +++
 daxctl/lib/libdaxctl.c                             |   70 ++++++++++++++------
 daxctl/migrate.c                                   |   41 ++++++++++++
 ndctl.spec.in                                      |    1 
 util/sysfs.c                                       |    2 -
 15 files changed, 176 insertions(+), 23 deletions(-)
 create mode 100644 Documentation/daxctl/daxctl-migrate-device-model.txt
 create mode 100644 daxctl/lib/daxctl.conf
 create mode 100644 daxctl/migrate.c

Comments

Verma, Vishal L Jan. 18, 2019, 3:12 a.m. UTC | #1
On Thu, 2019-01-17 at 18:33 -0800, Dan Williams wrote:
> Changes since v2:
> * Fix up the daxtctl/config.h build dependency (Dave)
> * Fix up the patch2 changelog (Vishal)
> * Fix up output capitalization (Vishal)
> * Fix up copyright for the new migrate.c, and while we're at it do the
>   same for all autogenerated documentation. (Vishal)
> 
> ---
> 
> Quote patch2:
> 
> The kernel is implementing a '/sys/bus/dax' ABI to allow for alternate
> device-DAX drivers to be bound to device instances. While the kernel's
> conversion to '/sys/bus/dax' does not affect the primary ndctl use case
> of putting namespaces into 'devdax' mode since that uses libnvdimm
> namespace device relative paths, it does break current implementations
> of 'ndctl list -X' and 'daxctl list'.  It is also known to break fio and
> some pmdk versions that explicitly reference "/sys/class/dax".
> 
> In order to avoid userspace regressions the kernel can be configured to
> maintain '/sys/class/dax' as the default ABI. However, once all
> '/sys/class/dax' users have been converted, or removed from the
> installation, an administrator can opt-in to the new '/sys/bus/dax' ABI.
> The 'dax migrate-device-model' command installs a modprobe rule to
> blacklist the dax_pmem_compat module and arrange for the dax_pmem module
> to auto-load in response to the detection of device-DAX instances
> emitted from the libnvdimm subsystem.
> 
> ---
> 
> Dan Williams (3):
>       daxctl: Support the /sys/bus/dax ABI
>       daxctl: Opt-in to /sys/bus/dax ABI
>       Documentation: Update copyright
> 
> 
>  .gitignore                                         |    1 
>  Documentation/copyright.txt                        |    2 -
>  Documentation/daxctl/Makefile.am                   |    3 +
>  .../daxctl/daxctl-migrate-device-model.txt         |   47 +++++++++++++
>  configure.ac                                       |    5 +
>  daxctl/Makefile.am                                 |   10 +++
>  daxctl/builtin.h                                   |    1 
>  daxctl/daxctl.c                                    |    1 
>  daxctl/lib/Makefile.am                             |    2 +
>  daxctl/lib/daxctl.conf                             |    2 +
>  daxctl/lib/libdaxctl-private.h                     |   11 +++
>  daxctl/lib/libdaxctl.c                             |   70 ++++++++++++++------
>  daxctl/migrate.c                                   |   41 ++++++++++++
>  ndctl.spec.in                                      |    1 
>  util/sysfs.c                                       |    2 -
>  15 files changed, 176 insertions(+), 23 deletions(-)
>  create mode 100644 Documentation/daxctl/daxctl-migrate-device-model.txt
>  create mode 100644 daxctl/lib/daxctl.conf
>  create mode 100644 daxctl/migrate.c


Looks good, applied.