mbox series

[ndctl,0/8] daxctl: add a new reconfigure-device command

Message ID 20190503213231.12280-1-vishal.l.verma@intel.com (mailing list archive)
Headers show
Series daxctl: add a new reconfigure-device command | expand

Message

Verma, Vishal L May 3, 2019, 9:32 p.m. UTC
Add a new daxctl-reconfigure-device command that lets us reconfigure DAX
devices back and forth between 'system-ram' and 'device-dax' modes. It
also includes facilities to online any newly hot-plugged memory
(default), and attempt to offline memory before converting away from the
system-ram mode (not default, requires a --attempt-offline option).

Currently missing from this series is a way to persistently store which
devices have been 'marked' for use as system-ram. This depends on a
config system overhaul in ndctl, and patches for those will follow
separately and are independent of this work.

Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>


Vishal Verma (8):
  libdaxctl: add interfaces in support of device modes
  libdaxctl: cache 'subsystem' in daxctl_ctx
  daxctl: add libdaxctl interfaces to enable/disable devices
  ndctl: add helpers to get/set the online state for a node
  daxctl: add a new reconfigure-device command
  Documentation/daxctl: add a man page for daxctl-reconfigure-device
  contrib/ndctl: fix region-id completions for daxctl
  contrib/ndctl: add bash-completion for daxctl-reconfigure-device

 Documentation/daxctl/Makefile.am              |   3 +-
 .../daxctl/daxctl-reconfigure-device.txt      |  74 +++
 contrib/ndctl                                 |  34 +-
 daxctl/Makefile.am                            |   2 +
 daxctl/builtin.h                              |   1 +
 daxctl/daxctl.c                               |   1 +
 daxctl/device.c                               | 217 ++++++++
 daxctl/lib/Makefile.am                        |   3 +-
 daxctl/lib/libdaxctl-private.h                |  21 +
 daxctl/lib/libdaxctl.c                        | 511 +++++++++++++++++-
 daxctl/lib/libdaxctl.sym                      |  13 +
 daxctl/libdaxctl.h                            |  15 +
 12 files changed, 884 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/daxctl/daxctl-reconfigure-device.txt
 create mode 100644 daxctl/device.c

Comments

Dave Hansen May 6, 2019, 9:50 p.m. UTC | #1
This all looks quite nice to me.  Thanks, Vishal!

One minor nit: for those of us new to daxctl and friends, they can be a
bit hard to get started with.  Could you maybe add a few example
invocations to the Documentation, or even this cover letter to help us
newbies get started?
Verma, Vishal L May 6, 2019, 10:14 p.m. UTC | #2
On Mon, 2019-05-06 at 14:50 -0700, Dave Hansen wrote:
> This all looks quite nice to me.  Thanks, Vishal!
> 
> One minor nit: for those of us new to daxctl and friends, they can be
> a
> bit hard to get started with.  Could you maybe add a few example
> invocations to the Documentation, or even this cover letter to help us
> newbies get started?

Yes, good idea, I'll add an examples section to the Documentation page
(other commands do this, and this should too), and add those to the
cover letter as well for v2.

Thanks!
-Vishal
Verma, Vishal L May 6, 2019, 10:17 p.m. UTC | #3
On Mon, 2019-05-06 at 22:14 +0000, Verma, Vishal L wrote:
> On Mon, 2019-05-06 at 14:50 -0700, Dave Hansen wrote:
> > This all looks quite nice to me.  Thanks, Vishal!
> > 
> > One minor nit: for those of us new to daxctl and friends, they can
> > be
> > a
> > bit hard to get started with.  Could you maybe add a few example
> > invocations to the Documentation, or even this cover letter to help
> > us
> > newbies get started?
> 
> Yes, good idea, I'll add an examples section to the Documentation page
> (other commands do this, and this should too), and add those to the
> cover letter as well for v2.

I meant to add, for now, a few of the most useful invocations probably
look like:

1. # daxctl reconfigure-device --mode=system-ram dax0.0
(this will also online the memory sections)

2. # daxctl reconfigure-device --mode=system-ram --no-online dax0.0
(this will *not* online the memory sections)

3. # daxctl reconfigure-device --mode=devdax --attempt-offline dax0.0
(this requires Pavel's patches for kmem-unbind, and won't work with
vanilla v5.1)