Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Fri, Feb 21, 2020 at 2:21 AM qi.f...@fujitsu.com wrote: > > > > On 2/20/20 5:28 AM, Verma, Vishal L wrote: > > On Wed, 2020-02-19 at 12:09 -0800, Dan Williams wrote: > > Let's do a compromise, because users also hate nonsensical legacy that > they can't avoid. How about an environment variable, > "NDCTL_LIST_LINT", that users can set to opt into the latest / > cleanest output format with the understanding that the clean up may > regress scripts that were dependent on the old bugs. > > >>> Hm, this sounds good in concept, but how about waiting for this cleanup > >>> to go in after the (yes, long pending) config rework. Then this can just > >>> be a global config setting, and we won't have config things coming from > >>> the environment as well (which this would be a first of). > >> > >> That does make some sense, but I notice that git deals with "cosmetic" > >> environment variables (GIT_EDITOR, GIT_PAGER, etc) in addition to its > >> config file. So if we're borrowing from git, I'd also borrow that > >> config vs environment logic. > > > > True, that's reasonable. I guess I was hoping to avoid, if we can, > > suddenly having a multitude of config sources, but env variables are > > pretty standard and it should be fine to add them. > > Hi, > > I am sorry for suspending the ndctl global config patch for such a long > time. If it is not urgent, I would like to implement it. It's getting more and more urgent, especially as more people are trying to use the DIMM security features and finding it difficult to contend with the command-line interface. The goal is to import the git config system. Specifically one of the features of the git config syntax that are useful for DIMM security (and in the future Namespace security) is the ability to have named sub-sections. From the git config man page: Sections can be further divided into subsections. To begin a subsection put its name in double quotes, separated by space from the section name, in the section header, like in the example below: [section "subsection"] With that capability policy can be established by a named object instance. dimm.., or namespace... ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On 2/20/20 5:28 AM, Verma, Vishal L wrote: > On Wed, 2020-02-19 at 12:09 -0800, Dan Williams wrote: Let's do a compromise, because users also hate nonsensical legacy that they can't avoid. How about an environment variable, "NDCTL_LIST_LINT", that users can set to opt into the latest / cleanest output format with the understanding that the clean up may regress scripts that were dependent on the old bugs. >>> Hm, this sounds good in concept, but how about waiting for this cleanup >>> to go in after the (yes, long pending) config rework. Then this can just >>> be a global config setting, and we won't have config things coming from >>> the environment as well (which this would be a first of). >> >> That does make some sense, but I notice that git deals with "cosmetic" >> environment variables (GIT_EDITOR, GIT_PAGER, etc) in addition to its >> config file. So if we're borrowing from git, I'd also borrow that >> config vs environment logic. > > True, that's reasonable. I guess I was hoping to avoid, if we can, > suddenly having a multitude of config sources, but env variables are > pretty standard and it should be fine to add them. Hi, I am sorry for suspending the ndctl global config patch for such a long time. If it is not urgent, I would like to implement it. Thank you. QI fuli > ___ > Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org > To unsubscribe send an email to linux-nvdimm-le...@lists.01.org > ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Wed, 2020-02-19 at 12:09 -0800, Dan Williams wrote: > > > > > > Let's do a compromise, because users also hate nonsensical legacy that > > > they can't avoid. How about an environment variable, > > > "NDCTL_LIST_LINT", that users can set to opt into the latest / > > > cleanest output format with the understanding that the clean up may > > > regress scripts that were dependent on the old bugs. > > > > > Hm, this sounds good in concept, but how about waiting for this cleanup > > to go in after the (yes, long pending) config rework. Then this can just > > be a global config setting, and we won't have config things coming from > > the environment as well (which this would be a first of). > > That does make some sense, but I notice that git deals with "cosmetic" > environment variables (GIT_EDITOR, GIT_PAGER, etc) in addition to its > config file. So if we're borrowing from git, I'd also borrow that > config vs environment logic. True, that's reasonable. I guess I was hoping to avoid, if we can, suddenly having a multitude of config sources, but env variables are pretty standard and it should be fine to add them. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Wed, Feb 19, 2020 at 12:01 PM Verma, Vishal L wrote: > > On Wed, 2020-02-19 at 10:53 -0800, Dan Williams wrote: > > > > > > > Will this break existing code that parses the javascript output? > > > > > > > > Always a potential for that. That said, I'd rather attempt to make it > > > > symmetric and replace it if someone screams, rather than let this > > > > quirk persist because it makes it impossible to ingest region data > > > > with the same script across -R and -Rv. > > > > > > Yeah, I see where you're coming from. However, script authors will > > > still have to deal with older versions of ndctl in the wild (for many > > > years). If the decision was up to me, I'd live with the wart in favor > > > of not breaking scripts when ndctl gets updated. Users hate that. > > > > Let's do a compromise, because users also hate nonsensical legacy that > > they can't avoid. How about an environment variable, > > "NDCTL_LIST_LINT", that users can set to opt into the latest / > > cleanest output format with the understanding that the clean up may > > regress scripts that were dependent on the old bugs. > > > Hm, this sounds good in concept, but how about waiting for this cleanup > to go in after the (yes, long pending) config rework. Then this can just > be a global config setting, and we won't have config things coming from > the environment as well (which this would be a first of). That does make some sense, but I notice that git deals with "cosmetic" environment variables (GIT_EDITOR, GIT_PAGER, etc) in addition to its config file. So if we're borrowing from git, I'd also borrow that config vs environment logic. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Wed, 2020-02-19 at 10:53 -0800, Dan Williams wrote: > > > > > Will this break existing code that parses the javascript output? > > > > > > Always a potential for that. That said, I'd rather attempt to make it > > > symmetric and replace it if someone screams, rather than let this > > > quirk persist because it makes it impossible to ingest region data > > > with the same script across -R and -Rv. > > > > Yeah, I see where you're coming from. However, script authors will > > still have to deal with older versions of ndctl in the wild (for many > > years). If the decision was up to me, I'd live with the wart in favor > > of not breaking scripts when ndctl gets updated. Users hate that. > > Let's do a compromise, because users also hate nonsensical legacy that > they can't avoid. How about an environment variable, > "NDCTL_LIST_LINT", that users can set to opt into the latest / > cleanest output format with the understanding that the clean up may > regress scripts that were dependent on the old bugs. > Hm, this sounds good in concept, but how about waiting for this cleanup to go in after the (yes, long pending) config rework. Then this can just be a global config setting, and we won't have config things coming from the environment as well (which this would be a first of). ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Wed, Feb 19, 2020 at 10:12 AM Jeff Moyer wrote: > > Dan Williams writes: > > > On Wed, Feb 19, 2020 at 9:56 AM Jeff Moyer wrote: > >> > >> Dan Williams writes: > >> > >> > The only expected difference between "ndctl list -R" and "ndctl list > >> > -Rv" is some additional output fields. Instead it currently results in > >> > the region array being contained in a named "regions" list object. > >> > > >> > # ndctl list -R -r 0 > >> > [ > >> > { > >> > "dev":"region0", > >> > "size":4294967296, > >> > "available_size":0, > >> > "max_available_extent":0, > >> > "type":"pmem", > >> > "persistence_domain":"unknown" > >> > } > >> > ] > >> > > >> > # ndctl list -Rv -r 0 > >> > { > >> > "regions":[ > >> > { > >> > "dev":"region0", > >> > "size":4294967296, > >> > "available_size":0, > >> > "max_available_extent":0, > >> > "type":"pmem", > >> > "numa_node":0, > >> > "target_node":2, > >> > "persistence_domain":"unknown", > >> > "namespaces":[ > >> > { > >> > "dev":"namespace0.0", > >> > "mode":"fsdax", > >> > "map":"mem", > >> > "size":4294967296, > >> > "sector_size":512, > >> > "blockdev":"pmem0", > >> > "numa_node":0, > >> > "target_node":2 > >> > } > >> > ] > >> > } > >> > ] > >> > } > >> > > >> > Drop the named list, by not including namespaces in the listing. Extra > >> > objects only appear at the -vv level. "ndctl list -v" and "ndctl list > >> > -Nv" are synonyms and behave as expected. > >> > > >> > # ndctl list -Rv -r 0 > >> > [ > >> > { > >> > "dev":"region0", > >> > "size":4294967296, > >> > "available_size":0, > >> > "max_available_extent":0, > >> > "type":"pmem", > >> > "numa_node":0, > >> > "target_node":2, > >> > "persistence_domain":"unknown" > >> > } > >> > ] > >> > > >> > >> Will this break existing code that parses the javascript output? > > > > Always a potential for that. That said, I'd rather attempt to make it > > symmetric and replace it if someone screams, rather than let this > > quirk persist because it makes it impossible to ingest region data > > with the same script across -R and -Rv. > > Yeah, I see where you're coming from. However, script authors will > still have to deal with older versions of ndctl in the wild (for many > years). If the decision was up to me, I'd live with the wart in favor > of not breaking scripts when ndctl gets updated. Users hate that. Let's do a compromise, because users also hate nonsensical legacy that they can't avoid. How about an environment variable, "NDCTL_LIST_LINT", that users can set to opt into the latest / cleanest output format with the understanding that the clean up may regress scripts that were dependent on the old bugs. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
Dan Williams writes: > On Wed, Feb 19, 2020 at 9:56 AM Jeff Moyer wrote: >> >> Dan Williams writes: >> >> > The only expected difference between "ndctl list -R" and "ndctl list >> > -Rv" is some additional output fields. Instead it currently results in >> > the region array being contained in a named "regions" list object. >> > >> > # ndctl list -R -r 0 >> > [ >> > { >> > "dev":"region0", >> > "size":4294967296, >> > "available_size":0, >> > "max_available_extent":0, >> > "type":"pmem", >> > "persistence_domain":"unknown" >> > } >> > ] >> > >> > # ndctl list -Rv -r 0 >> > { >> > "regions":[ >> > { >> > "dev":"region0", >> > "size":4294967296, >> > "available_size":0, >> > "max_available_extent":0, >> > "type":"pmem", >> > "numa_node":0, >> > "target_node":2, >> > "persistence_domain":"unknown", >> > "namespaces":[ >> > { >> > "dev":"namespace0.0", >> > "mode":"fsdax", >> > "map":"mem", >> > "size":4294967296, >> > "sector_size":512, >> > "blockdev":"pmem0", >> > "numa_node":0, >> > "target_node":2 >> > } >> > ] >> > } >> > ] >> > } >> > >> > Drop the named list, by not including namespaces in the listing. Extra >> > objects only appear at the -vv level. "ndctl list -v" and "ndctl list >> > -Nv" are synonyms and behave as expected. >> > >> > # ndctl list -Rv -r 0 >> > [ >> > { >> > "dev":"region0", >> > "size":4294967296, >> > "available_size":0, >> > "max_available_extent":0, >> > "type":"pmem", >> > "numa_node":0, >> > "target_node":2, >> > "persistence_domain":"unknown" >> > } >> > ] >> > >> >> Will this break existing code that parses the javascript output? > > Always a potential for that. That said, I'd rather attempt to make it > symmetric and replace it if someone screams, rather than let this > quirk persist because it makes it impossible to ingest region data > with the same script across -R and -Rv. Yeah, I see where you're coming from. However, script authors will still have to deal with older versions of ndctl in the wild (for many years). If the decision was up to me, I'd live with the wart in favor of not breaking scripts when ndctl gets updated. Users hate that. -Jeff ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
On Wed, Feb 19, 2020 at 9:56 AM Jeff Moyer wrote: > > Dan Williams writes: > > > The only expected difference between "ndctl list -R" and "ndctl list > > -Rv" is some additional output fields. Instead it currently results in > > the region array being contained in a named "regions" list object. > > > > # ndctl list -R -r 0 > > [ > > { > > "dev":"region0", > > "size":4294967296, > > "available_size":0, > > "max_available_extent":0, > > "type":"pmem", > > "persistence_domain":"unknown" > > } > > ] > > > > # ndctl list -Rv -r 0 > > { > > "regions":[ > > { > > "dev":"region0", > > "size":4294967296, > > "available_size":0, > > "max_available_extent":0, > > "type":"pmem", > > "numa_node":0, > > "target_node":2, > > "persistence_domain":"unknown", > > "namespaces":[ > > { > > "dev":"namespace0.0", > > "mode":"fsdax", > > "map":"mem", > > "size":4294967296, > > "sector_size":512, > > "blockdev":"pmem0", > > "numa_node":0, > > "target_node":2 > > } > > ] > > } > > ] > > } > > > > Drop the named list, by not including namespaces in the listing. Extra > > objects only appear at the -vv level. "ndctl list -v" and "ndctl list > > -Nv" are synonyms and behave as expected. > > > > # ndctl list -Rv -r 0 > > [ > > { > > "dev":"region0", > > "size":4294967296, > > "available_size":0, > > "max_available_extent":0, > > "type":"pmem", > > "numa_node":0, > > "target_node":2, > > "persistence_domain":"unknown" > > } > > ] > > > > Will this break existing code that parses the javascript output? Always a potential for that. That said, I'd rather attempt to make it symmetric and replace it if someone screams, rather than let this quirk persist because it makes it impossible to ingest region data with the same script across -R and -Rv. ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
Re: [ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
Dan Williams writes: > The only expected difference between "ndctl list -R" and "ndctl list > -Rv" is some additional output fields. Instead it currently results in > the region array being contained in a named "regions" list object. > > # ndctl list -R -r 0 > [ > { > "dev":"region0", > "size":4294967296, > "available_size":0, > "max_available_extent":0, > "type":"pmem", > "persistence_domain":"unknown" > } > ] > > # ndctl list -Rv -r 0 > { > "regions":[ > { > "dev":"region0", > "size":4294967296, > "available_size":0, > "max_available_extent":0, > "type":"pmem", > "numa_node":0, > "target_node":2, > "persistence_domain":"unknown", > "namespaces":[ > { > "dev":"namespace0.0", > "mode":"fsdax", > "map":"mem", > "size":4294967296, > "sector_size":512, > "blockdev":"pmem0", > "numa_node":0, > "target_node":2 > } > ] > } > ] > } > > Drop the named list, by not including namespaces in the listing. Extra > objects only appear at the -vv level. "ndctl list -v" and "ndctl list > -Nv" are synonyms and behave as expected. > > # ndctl list -Rv -r 0 > [ > { > "dev":"region0", > "size":4294967296, > "available_size":0, > "max_available_extent":0, > "type":"pmem", > "numa_node":0, > "target_node":2, > "persistence_domain":"unknown" > } > ] > Will this break existing code that parses the javascript output? -Jeff ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org
[ndctl PATCH] ndctl/list: Drop named list objects from verbose listing
The only expected difference between "ndctl list -R" and "ndctl list -Rv" is some additional output fields. Instead it currently results in the region array being contained in a named "regions" list object. # ndctl list -R -r 0 [ { "dev":"region0", "size":4294967296, "available_size":0, "max_available_extent":0, "type":"pmem", "persistence_domain":"unknown" } ] # ndctl list -Rv -r 0 { "regions":[ { "dev":"region0", "size":4294967296, "available_size":0, "max_available_extent":0, "type":"pmem", "numa_node":0, "target_node":2, "persistence_domain":"unknown", "namespaces":[ { "dev":"namespace0.0", "mode":"fsdax", "map":"mem", "size":4294967296, "sector_size":512, "blockdev":"pmem0", "numa_node":0, "target_node":2 } ] } ] } Drop the named list, by not including namespaces in the listing. Extra objects only appear at the -vv level. "ndctl list -v" and "ndctl list -Nv" are synonyms and behave as expected. # ndctl list -Rv -r 0 [ { "dev":"region0", "size":4294967296, "available_size":0, "max_available_extent":0, "type":"pmem", "numa_node":0, "target_node":2, "persistence_domain":"unknown" } ] Another side effect of this change is that it allows for: ndctl list -Rvvv ...to only show the verbose region details vs assuming that namespaces and dimms etc also need to be added. Signed-off-by: Dan Williams --- Documentation/ndctl/ndctl-list.txt | 46 ndctl/list.c | 10 +--- 2 files changed, 52 insertions(+), 4 deletions(-) diff --git a/Documentation/ndctl/ndctl-list.txt b/Documentation/ndctl/ndctl-list.txt index f9c7434d3b0b..75fd11876395 100644 --- a/Documentation/ndctl/ndctl-list.txt +++ b/Documentation/ndctl/ndctl-list.txt @@ -234,6 +234,52 @@ include::xable-bus-options.txt[] - *-vvv* Everything '-vv' provides, plus --health, --capabilities, --idle, and --firmware. +:: + The verbosity can also be scoped by the object type. For example + to just list regions with capabilities and media error info. + +# ndctl list -Ru -vvv -r 0 +{ + "dev":"region0", + "size":"4.00 GiB (4.29 GB)", + "available_size":0, + "max_available_extent":0, + "type":"pmem", + "numa_node":0, + "target_node":2, + "capabilities":[ +{ + "mode":"sector", + "sector_sizes":[ +512, +520, +528, +4096, +4104, +4160, +4224 + ] +}, +{ + "mode":"fsdax", + "alignments":[ +4096, +2097152, +1073741824 + ] +}, +{ + "mode":"devdax", + "alignments":[ +4096, +2097152, +1073741824 + ] +} + ], + "persistence_domain":"unknown" +} + include::human-option.txt[] diff --git a/ndctl/list.c b/ndctl/list.c index 607996a85784..125a9fe34cb8 100644 --- a/ndctl/list.c +++ b/ndctl/list.c @@ -507,12 +507,14 @@ int cmd_list(int argc, const char **argv, struct ndctl_ctx *ctx) list.health = true; list.capabilities = true; case 2: - list.dimms = true; - list.buses = true; - list.regions = true; + if (num_list_flags() == 0) { + list.dimms = true; + list.buses = true; + list.regions = true; + list.namespaces = true; + } case 1: list.media_errors = true; - list.namespaces = true; list.dax = true; case 0: break; ___ Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-le...@lists.01.org