nvdimm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [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 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

* 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

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).