* [ndctl PATCH 1/2] ndctl: complete removal of daxctl io @ 2018-03-22 18:40 Ross Zwisler 2018-03-22 18:40 ` [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable Ross Zwisler 2018-03-22 22:23 ` [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Dan Williams 0 siblings, 2 replies; 6+ messages in thread From: Ross Zwisler @ 2018-03-22 18:40 UTC (permalink / raw) To: Dan Williams, linux-nvdimm, Jiang, Dave commit 0a8dd795b4cf ("ndctl: removing daxctl io") didn't fully remove all daxctl io, leaving behind a few of the lines which were added by the original commit: commit 67b54c1c76e5 ("ndctl: daxctl: Adding io option for daxctl") Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Fixes: commit 0a8dd795b4cf ("ndctl: removing daxctl io") --- daxctl/Makefile.am | 1 - daxctl/daxctl.c | 6 ------ ndctl.spec.in | 7 ------- 3 files changed, 14 deletions(-) diff --git a/daxctl/Makefile.am b/daxctl/Makefile.am index e256afd..fe467d0 100644 --- a/daxctl/Makefile.am +++ b/daxctl/Makefile.am @@ -9,7 +9,6 @@ daxctl_SOURCES =\ daxctl_LDADD =\ lib/libdaxctl.la \ - ../ndctl/lib/libndctl.la \ ../libutil.a \ $(UUID_LIBS) \ $(JSON_LIBS) diff --git a/daxctl/daxctl.c b/daxctl/daxctl.c index cedc847..91a4600 100644 --- a/daxctl/daxctl.c +++ b/daxctl/daxctl.c @@ -67,17 +67,11 @@ static int cmd_help(int argc, const char **argv, void *ctx) } int cmd_list(int argc, const char **argv, void *ctx); -#ifdef ENABLE_DAXIO -int cmd_io(int argc, const char **argv, void *ctx); -#endif static struct cmd_struct commands[] = { { "version", cmd_version }, { "list", cmd_list }, { "help", cmd_help }, -#ifdef ENABLE_DAXIO - { "io", cmd_io }, -#endif }; int main(int argc, const char **argv) diff --git a/ndctl.spec.in b/ndctl.spec.in index 3a5edc3..e2c879c 100644 --- a/ndctl.spec.in +++ b/ndctl.spec.in @@ -20,9 +20,6 @@ BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(uuid) BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(bash-completion) -%ifarch x86_64 -BuildRequires: pkgconfig(libpmem) -%endif %description Utility library for managing the "libnvdimm" subsystem. The "libnvdimm" @@ -93,11 +90,7 @@ control API for these devices. %build echo %{version} > version ./autogen.sh -%ifarch x86_64 -%configure --disable-static --disable-silent-rules --with-libpmem -%else %configure --disable-static --disable-silent-rules -%endif make %{?_smp_mflags} %install -- 2.14.3 _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable 2018-03-22 18:40 [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Ross Zwisler @ 2018-03-22 18:40 ` Ross Zwisler 2018-03-22 22:47 ` Dan Williams 2018-03-22 22:23 ` [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Dan Williams 1 sibling, 1 reply; 6+ messages in thread From: Ross Zwisler @ 2018-03-22 18:40 UTC (permalink / raw) To: Dan Williams, linux-nvdimm, Jiang, Dave Instead of just failing to find namespaces when trying to filter by NUMA node when CONFIG_NUMA wasn't enabled in the kernel, instead fail loudly as numactl does: # numactl --cpunodebind=0 ls numactl: This system does not support NUMA policy Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> --- This enabling requires numactl to create a pkg-config file, which it currently does not. This support is added by the following patch which I just sent out: https://patchwork.kernel.org/patch/10302135/ --- Makefile.am.in | 3 ++- autogen.sh | 3 ++- configure.ac | 12 ++++++++++++ ndctl.spec.in | 3 ++- ndctl/Makefile.am | 3 ++- util/filter.c | 11 +++++++++++ 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Makefile.am.in b/Makefile.am.in index 6c5229d..b927e17 100644 --- a/Makefile.am.in +++ b/Makefile.am.in @@ -15,7 +15,8 @@ AM_CPPFLAGS = \ $(KMOD_CFLAGS) \ $(UDEV_CFLAGS) \ $(UUID_CFLAGS) \ - $(JSON_CFLAGS) + $(JSON_CFLAGS) \ + $(NUMA_CFLAGS) AM_CFLAGS = ${my_CFLAGS} \ -fvisibility=hidden \ diff --git a/autogen.sh b/autogen.sh index a23cf53..46515b2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -17,7 +17,8 @@ libdir() { args="--prefix=/usr \ --sysconfdir=/etc \ ---libdir=$(libdir /usr/lib)" +--libdir=$(libdir /usr/lib) \ +--with-numa" echo echo "----------------------------------------------------------------" diff --git a/configure.ac b/configure.ac index 3eaac32..af21cb6 100644 --- a/configure.ac +++ b/configure.ac @@ -94,6 +94,18 @@ PKG_CHECK_MODULES([UDEV], [libudev]) PKG_CHECK_MODULES([UUID], [uuid]) PKG_CHECK_MODULES([JSON], [json-c]) +AC_ARG_WITH([numa], + AS_HELP_STRING([--with-numa], + [Install with NUMA support. @<:@default=no@:>@]), + [], + [with_numa=no]) + +if test "x$with_numa" = "xyes"; then + PKG_CHECK_MODULES([NUMA], [numa]) + AC_DEFINE([WITH_NUMA], [1], [with NUMA support]) +fi +AM_CONDITIONAL([WITH_NUMA], [test "x$with_numa" = "xyes"]) + AC_ARG_WITH([bash-completion-dir], AS_HELP_STRING([--with-bash-completion-dir[=PATH]], [Install the bash auto-completion script in this directory. @<:@default=yes@:>@]), diff --git a/ndctl.spec.in b/ndctl.spec.in index e2c879c..3fcb4d8 100644 --- a/ndctl.spec.in +++ b/ndctl.spec.in @@ -20,6 +20,7 @@ BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(uuid) BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(bash-completion) +BuildRequires: pkgconfig(numa) %description Utility library for managing the "libnvdimm" subsystem. The "libnvdimm" @@ -90,7 +91,7 @@ control API for these devices. %build echo %{version} > version ./autogen.sh -%configure --disable-static --disable-silent-rules +%configure --disable-static --disable-silent-rules --with-numa make %{?_smp_mflags} %install diff --git a/ndctl/Makefile.am b/ndctl/Makefile.am index 213cabd..6b891f8 100644 --- a/ndctl/Makefile.am +++ b/ndctl/Makefile.am @@ -29,7 +29,8 @@ ndctl_LDADD =\ ../libutil.a \ $(UUID_LIBS) \ $(KMOD_LIBS) \ - $(JSON_LIBS) + $(JSON_LIBS) \ + $(NUMA_LIBS) if ENABLE_TEST ndctl_SOURCES += ../test/libndctl.c \ diff --git a/util/filter.c b/util/filter.c index 291d7ed..512f927 100644 --- a/util/filter.c +++ b/util/filter.c @@ -10,6 +10,7 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ +#include <numa.h> #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -328,6 +329,16 @@ int util_filter_walk(struct ndctl_ctx *ctx, struct util_filter_ctx *fctx, } if (param->numa_node && strcmp(param->numa_node, "all") != 0) { +#ifdef WITH_NUMA + if (numa_available() < 0) { + error("This system does not support NUMA"); +#else + { + error("ndctl was not configured with NUMA support"); +#endif + return -EINVAL; + } + numa_node = strtol(param->numa_node, &end, 0); if (end == param->numa_node || end[0]) { error("invalid numa_node: '%s'\n", param->numa_node); -- 2.14.3 _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable 2018-03-22 18:40 ` [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable Ross Zwisler @ 2018-03-22 22:47 ` Dan Williams 2018-03-22 23:27 ` Ross Zwisler 0 siblings, 1 reply; 6+ messages in thread From: Dan Williams @ 2018-03-22 22:47 UTC (permalink / raw) To: Ross Zwisler; +Cc: linux-nvdimm On Thu, Mar 22, 2018 at 11:40 AM, Ross Zwisler <ross.zwisler@linux.intel.com> wrote: > Instead of just failing to find namespaces when trying to filter by NUMA > node when CONFIG_NUMA wasn't enabled in the kernel, instead fail loudly as > numactl does: > > # numactl --cpunodebind=0 ls > numactl: This system does not support NUMA policy > > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> > --- > > This enabling requires numactl to create a pkg-config file, which it > currently does not. This support is added by the following patch which > I just sent out: > > https://patchwork.kernel.org/patch/10302135/ Hmm, it's going to be a while for that to be picked up and filter out into all the distributions so we can either wait for the next numactl release to become commonly available, or rework this ndctl change to be independent of pkgconfig dependency. The other concern is that this affects the numa-node filtering, but it doesn't effect the numa-node json field reported by 'ndctl list'. I think it would be confusing to see numa-nodes in the listing, but filtering fails just because of the way ndctl was configured at build time. [..] > diff --git a/util/filter.c b/util/filter.c > index 291d7ed..512f927 100644 > --- a/util/filter.c > +++ b/util/filter.c > @@ -10,6 +10,7 @@ > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > * General Public License for more details. > */ > +#include <numa.h> > #include <stdio.h> > #include <string.h> > #include <stdlib.h> > @@ -328,6 +329,16 @@ int util_filter_walk(struct ndctl_ctx *ctx, struct util_filter_ctx *fctx, > } > > if (param->numa_node && strcmp(param->numa_node, "all") != 0) { > +#ifdef WITH_NUMA > + if (numa_available() < 0) { > + error("This system does not support NUMA"); > +#else > + { > + error("ndctl was not configured with NUMA support"); > +#endif > + return -EINVAL; > + } > + Please push this #ifdef'ery into a header file. _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable 2018-03-22 22:47 ` Dan Williams @ 2018-03-22 23:27 ` Ross Zwisler 2018-03-22 23:44 ` Dan Williams 0 siblings, 1 reply; 6+ messages in thread From: Ross Zwisler @ 2018-03-22 23:27 UTC (permalink / raw) To: Dan Williams; +Cc: linux-nvdimm On Thu, Mar 22, 2018 at 03:47:01PM -0700, Dan Williams wrote: > On Thu, Mar 22, 2018 at 11:40 AM, Ross Zwisler > <ross.zwisler@linux.intel.com> wrote: > > Instead of just failing to find namespaces when trying to filter by NUMA > > node when CONFIG_NUMA wasn't enabled in the kernel, instead fail loudly as > > numactl does: > > > > # numactl --cpunodebind=0 ls > > numactl: This system does not support NUMA policy > > > > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> > > --- > > > > This enabling requires numactl to create a pkg-config file, which it > > currently does not. This support is added by the following patch which > > I just sent out: > > > > https://patchwork.kernel.org/patch/10302135/ > > Hmm, it's going to be a while for that to be picked up and filter out > into all the distributions so we can either wait for the next numactl > release to become commonly available, or rework this ndctl change to > be independent of pkgconfig dependency. Sure - I'm not yet sure how to do that. :) Any tips on how to check for library dependencies without pgk-config support? _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable 2018-03-22 23:27 ` Ross Zwisler @ 2018-03-22 23:44 ` Dan Williams 0 siblings, 0 replies; 6+ messages in thread From: Dan Williams @ 2018-03-22 23:44 UTC (permalink / raw) To: Ross Zwisler; +Cc: linux-nvdimm On Thu, Mar 22, 2018 at 4:27 PM, Ross Zwisler <ross.zwisler@linux.intel.com> wrote: > On Thu, Mar 22, 2018 at 03:47:01PM -0700, Dan Williams wrote: >> On Thu, Mar 22, 2018 at 11:40 AM, Ross Zwisler >> <ross.zwisler@linux.intel.com> wrote: >> > Instead of just failing to find namespaces when trying to filter by NUMA >> > node when CONFIG_NUMA wasn't enabled in the kernel, instead fail loudly as >> > numactl does: >> > >> > # numactl --cpunodebind=0 ls >> > numactl: This system does not support NUMA policy >> > >> > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> >> > --- >> > >> > This enabling requires numactl to create a pkg-config file, which it >> > currently does not. This support is added by the following patch which >> > I just sent out: >> > >> > https://patchwork.kernel.org/patch/10302135/ >> >> Hmm, it's going to be a while for that to be picked up and filter out >> into all the distributions so we can either wait for the next numactl >> release to become commonly available, or rework this ndctl change to >> be independent of pkgconfig dependency. > > Sure - I'm not yet sure how to do that. :) Any tips on how to check for > library dependencies without pgk-config support? The AC_CHECK_LIB() autoconf macro is the place to start. _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [ndctl PATCH 1/2] ndctl: complete removal of daxctl io 2018-03-22 18:40 [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Ross Zwisler 2018-03-22 18:40 ` [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable Ross Zwisler @ 2018-03-22 22:23 ` Dan Williams 1 sibling, 0 replies; 6+ messages in thread From: Dan Williams @ 2018-03-22 22:23 UTC (permalink / raw) To: Ross Zwisler; +Cc: linux-nvdimm On Thu, Mar 22, 2018 at 11:40 AM, Ross Zwisler <ross.zwisler@linux.intel.com> wrote: > commit 0a8dd795b4cf ("ndctl: removing daxctl io") > > didn't fully remove all daxctl io, leaving behind a few of the lines which > were added by the original commit: > > commit 67b54c1c76e5 ("ndctl: daxctl: Adding io option for daxctl") > > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> > Cc: Dave Jiang <dave.jiang@intel.com> > Fixes: commit 0a8dd795b4cf ("ndctl: removing daxctl io") Yup, looks good, applied. _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-03-22 23:38 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-03-22 18:40 [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Ross Zwisler 2018-03-22 18:40 ` [ndctl PATCH 2/2] ndctl: fail NUMA filtering when unavailable Ross Zwisler 2018-03-22 22:47 ` Dan Williams 2018-03-22 23:27 ` Ross Zwisler 2018-03-22 23:44 ` Dan Williams 2018-03-22 22:23 ` [ndctl PATCH 1/2] ndctl: complete removal of daxctl io Dan Williams
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).