Message ID | 20210831090459.2306727-1-vishal.l.verma@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Policy based reconfiguration for daxctl | expand |
On Tue, Aug 31, 2021 at 2:05 AM Vishal Verma <vishal.l.verma@intel.com> wrote: > > 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 Take these comments as provisional until I read through the rest, but this is just a reaction to the proposed ini format. > > [auto-online unique_identifier_foo] I am thinking this section name should be "reconfigure-device unique_identifier_foo" if only because resize might also be something someone wants to do, and if other commands get config automation it makes it clearer which config snippets apply to which command. > uuid = 48d8e42c-a2f0-4312-9e70-a837faafe862 I think this should be called: "nvdimm.uuid" ...or something like that to make it clear this depends on dax devices emitted by libnvdimm, and not those that come from "soft-reserved" memory. It also helps distinguish if we ever get UUIDs in the HMAT which is something I have been meaning to propose. > mode = system-ram I can see this being "mode = devdax" if feature was being used to change size or alignment. > online = true > movable = false I wonder if these keys should be prefixed by the mode name: system-ram.online = true system-ram.movable = false ...so it's a bit more self documenting about which parameters are sub-options, and delineates them from generic options like size. > Any file under '/etc/ndctl/' can be used - all files with a '.conf' suffix > will be considered when looking for matches. any concern about name collisions between ndctl, daxctl, and cxl-cli section names?
On Thu, 2021-09-16 at 15:12 -0700, Dan Williams wrote: > On Tue, Aug 31, 2021 at 2:05 AM Vishal Verma <vishal.l.verma@intel.com> wrote: > > > > 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 > > Take these comments as provisional until I read through the rest, but > this is just a reaction to the proposed ini format. I somehow missed this email originally, and just saw it on lore.. > > > > [auto-online unique_identifier_foo] > > I am thinking this section name should be "reconfigure-device > unique_identifier_foo" if only because resize might also be something > someone wants to do, and if other commands get config automation it > makes it clearer which config snippets apply to which command. Yep that makes sense - I'll change this. > > > uuid = 48d8e42c-a2f0-4312-9e70-a837faafe862 > > I think this should be called: > > "nvdimm.uuid" > > ...or something like that to make it clear this depends on dax devices > emitted by libnvdimm, and not those that come from "soft-reserved" > memory. It also helps distinguish if we ever get UUIDs in the HMAT > which is something I have been meaning to propose. Yep makes sense, will change. > > mode = system-ram > > I can see this being "mode = devdax" if feature was being used to > change size or alignment. Agreed, but that should 'just work' right - especially once we rename the section name from auto-online to reconfigure-device. > > > online = true > > movable = false > > I wonder if these keys should be prefixed by the mode name: > > system-ram.online = true > system-ram.movable = false Hm, maybe, but since the config options feed directly into the commands params, I figured we can let the command's option parsing throw any errors for incompatible options. My hope was for config identifiers to - as far as possible - exactly match command-line options. If we do make changes like this, I feel for every command that supports config, the man page is asking for a dedicated config section documenting every config option it supports. Maybe this is a good idea regardless :) > > ...so it's a bit more self documenting about which parameters are > sub-options, and delineates them from generic options like size. > > > Any file under '/etc/ndctl/' can be used - all files with a '.conf' suffix > > will be considered when looking for matches. > > any concern about name collisions between ndctl, daxctl, and cxl-cli > section names? Yep good point, changed this to be in /etc/daxctl/, and cxl-cli can get its own directory too when the time comes.