> Subject: Re: [ndctl PATCH v2 00/12] Policy based reconfiguration for daxctl
>
> On Mon, 2021-12-06 at 15:28 -0700, Vishal Verma wrote:
> > Changes since v1[1]:
> > - Collect review tags
> > - Fix 'make clean' removing the reconfigure script from the source tree
> > (Fenghua, Qi)
> > - Documentation wordsmithing (Dan)
> > - Fix line break after declarations in parse-configs.c (Dan)
> > - Move daxctl config files to its own directory, /etc/daxctl/ (Dan)
> > - Improve failure mode in the absence of a configs directory
> > - Rename {nd,dax}ctl_{get|set}_configs to
> > {nd,dax}ctl_{get|set}_configs_dir
> > - Exit with success if -C is specified, but no matching config section
> > is found.
> > - Refuse to proceed if CLI options are passed in along with -C (Dan)
> > - In the config file, rename: s/[auto-online foo]/[reconfigure-device foo/
> > and s/uuid/nvdimm.uuid/ (Dan)
> > - Teach device.c to accept /dev/daxX.Y instead of only daxX.Y and thus
> > remove the need for a wrapper script that systemd invokes (Dan)
> >
> > These patches add policy (config file) support to daxctl. The
> > introductory user is daxctl-reconfigure-device. Sysadmins may wish to
> > use daxctl devices as system-ram, but it may be cumbersome to automate
> > the reconfiguration step for every device upon boot.
> >
> > Introduce a new option for daxctl-reconfigure-device, --check-config.
> > This is at the heart of policy based reconfiguration, as it allows
> > daxctl to look up reconfiguration parameters for a given device from
> > the config system instead of the command line.
> >
> > Some systemd and udev glue then automates this for every new dax
> > device that shows up, providing a way for the administrator to simply
> > list all the 'system-ram' UUIDs in a config file, and not have to
> > worry about anything else.
> >
> > An example config file can be:
> >
> > # cat /etc/ndctl/daxctl.conf
>
> Missed updating this, it should be /etc/daxctl/daxctl.conf
>
> >
> > [reconfigure-device unique_identifier_foo]
> > nvdimm.uuid = 48d8e42c-a2f0-4312-9e70-a837faafe862
> > mode = system-ram
> > online = true
> > movable = false
> >
> > Any file under '/etc/ndctl/' can be used - all files with a '.conf'
> > suffix
>
> And this should be '/etc/daxctl/'
>
> > will be considered when looking for matches.
> >
> > These patches depend on the initial config file support from Qi Fuli[2].
> >
> > I've re-rolled Qi's original patches as the first five patches in this
> > series because of a change I made for graceful handling in the case of
> > a missing configs directory, and also to incorporate review feedback
> > that applied to the dependant patches. Patch 6 onwards is the actual
> > v2 of the daxctl policy work.
> >
> > A branch containing these patches is available at [3].
> >
> > [1]:
> > https://lore.kernel.org/nvdimm/20210831090459.2306727-1-vishal.l.verma
> > @intel.com/
> > [2]:
> > https://lore.kernel.org/nvdimm/20210824095106.104808-1-qi.fuli@fujitsu
> > .com/
> > [3]: https://github.com/pmem/ndctl/tree/vv/daxctl_config_v2
> >
> > QI Fuli (5):
> > ndctl, util: add iniparser helper
> > ndctl, util: add parse-configs helper
> > ndctl: make ndctl support configuration files
> > ndctl, config: add the default ndctl configuration file
> > ndctl, monitor: refator monitor for supporting multiple config files
Hi Vishal,
Thank you very for the work.
I made a patch[1] to fix test/monitor.sh for the new style config file.
Could you please also pick it?
[1] https://lore.kernel.org/all/[email protected]/
Best,
QI Fuli
> >
> > Vishal Verma (7):
> > ndctl: Update ndctl.spec.in for 'ndctl.conf'
> > daxctl: Documentation updates for persistent reconfiguration
> > util/parse-config: refactor filter_conf_files into util/
> > daxctl: add basic config parsing support
> > util/parse-configs: add a key/value search helper
> > daxctl/device.c: add an option for getting params from a config file
> > daxctl: add systemd service and udev rule for automatic
> > reconfiguration
> >
> > .../daxctl/daxctl-reconfigure-device.txt | 75 ++
> > Documentation/ndctl/ndctl-monitor.txt | 8 +-
> > configure.ac | 18 +-
> > Makefile.am | 8 +-
> > ndctl/lib/private.h | 1 +
> > daxctl/lib/libdaxctl.c | 39 +
> > ndctl/lib/libndctl.c | 39 +
> > daxctl/libdaxctl.h | 2 +
> > ndctl/libndctl.h | 2 +
> > util/dictionary.h | 175 ++++
> > util/iniparser.h | 360 ++++++++
> > util/parse-configs.h | 53 ++
> > daxctl/daxctl.c | 1 +
> > daxctl/device.c | 174 +++-
> > ndctl/monitor.c | 73 +-
> > ndctl/ndctl.c | 1 +
> > util/dictionary.c | 383 ++++++++
> > util/iniparser.c | 838
> ++++++++++++++++++
> > util/parse-configs.c | 150 ++++
> > Documentation/daxctl/Makefile.am | 11 +-
> > Documentation/ndctl/Makefile.am | 2 +-
> > daxctl/90-daxctl-device.rules | 1 +
> > daxctl/Makefile.am | 9 +
> > daxctl/[email protected] | 8 +
> > daxctl/lib/Makefile.am | 6 +
> > daxctl/lib/libdaxctl.sym | 2 +
> > ndctl.spec.in | 4 +
> > ndctl/Makefile.am | 9 +-
> > ndctl/lib/Makefile.am | 6 +
> > ndctl/lib/libndctl.sym | 2 +
> > ndctl/ndctl.conf | 56 ++
> > 31 files changed, 2467 insertions(+), 49 deletions(-) create mode
> > 100644 util/dictionary.h create mode 100644 util/iniparser.h create
> > mode 100644 util/parse-configs.h create mode 100644 util/dictionary.c
> > create mode 100644 util/iniparser.c create mode 100644
> > util/parse-configs.c create mode 100644 daxctl/90-daxctl-device.rules
> > create mode 100644 daxctl/[email protected]
> > create mode 100644 ndctl/ndctl.conf
> >
> >
> > base-commit: 4e646fa490ba4b782afa188dd8818b94c419924e