All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Verma, Vishal L" <vishal.l.verma@intel.com>
To: "sbhat@linux.ibm.com" <sbhat@linux.ibm.com>,
	"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
	"harish@linux.ibm.com" <harish@linux.ibm.com>,
	"Williams, Dan J" <dan.j.williams@intel.com>,
	"santosh@fossix.org" <santosh@fossix.org>,
	"vaibhav@linux.ibm.com" <vaibhav@linux.ibm.com>
Subject: Re: [PATCH 2/4] test: Don't skip tests if nfit modules are missing
Date: Wed, 12 May 2021 21:00:23 +0000	[thread overview]
Message-ID: <b5b8d378a757640c9e6345a1239e5c611a08dde1.camel@intel.com> (raw)
In-Reply-To: <87fsz72cll.fsf@fossix.org>

On Sat, 2021-05-01 at 11:57 +0530, Santosh Sivaraj wrote:
> "Verma, Vishal L" <vishal.l.verma@intel.com> writes:
> 
> Hi Vishal,
> 
> > On Sun, 2021-03-28 at 07:39 +0530, Santosh Sivaraj wrote:
> > > For NFIT to be available ACPI is a must, so don't fail when nfit modules
> > > are missing on a platform that doesn't support ACPI.
> > > 
> > > Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
> > > ---
> > >  test.h                        |  2 +-
> > >  test/ack-shutdown-count-set.c |  2 +-
> > >  test/blk_namespaces.c         |  2 +-
> > >  test/core.c                   | 30 ++++++++++++++++++++++++++++--
> > >  test/dpa-alloc.c              |  2 +-
> > >  test/dsm-fail.c               |  2 +-
> > >  test/libndctl.c               |  2 +-
> > >  test/multi-pmem.c             |  2 +-
> > >  test/parent-uuid.c            |  2 +-
> > >  test/pmem_namespaces.c        |  2 +-
> > >  10 files changed, 37 insertions(+), 11 deletions(-)
> > > 
> > 
> > I haven't looked deeper, but this seems to fail the blk-ns test with:
> > 
> >   ACPI.NFIT unavailable falling back to nfit_test
> >   test/init: ndctl_test_init: Cannot determine NVDIMM family
> >   __ndctl_test_skip: explicit skip test_blk_namespaces:235
> >   nfit_test unavailable skipping tests
> 
> The first message will be emitted even without the changes if the bus is not
> found. The second error will be emitted when check "/sys/bus/acpi" is not
> found. We fail for all other buses by default except for NFIT as before and PAPR
> tests are enabled only when NVDIMM_TEST_FAMILY is set to "PAPR".

See below on this.

> 
> All tests pass in my setup (x86_64 qemu guest) with the recent upstream kernel,
> except for the the below warning from drivers/acpi/nfit/core.c:

Hm I've not seen this with 5.11 or 5.12. What's the qemu command line
and is it just triggered from a unit test tun?

> 
> [ 2426.727584] ------------[ cut here ]------------
> [ 2426.728405] WARNING: CPU: 2 PID: 47504 at tools/testing/nvdimm/../../../drivers/acpi/nfit/core.c:3879 nfit_exit+0x]
> [ 2426.730264] Modules linked in: dax_pmem(O) nd_pmem(O) nfit(O-) kmem dax_pmem_compat(O) nd_blk(O) dax_pmem_core(O) ]
> [ 2426.733209] CPU: 2 PID: 47504 Comm: modprobe Tainted: G        W  O      5.12.0+ #3
> [ 2426.734472] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.o4
> [ 2426.736305] RIP: 0010:nfit_exit+0x2c/0x703 [nfit]
> [ 2426.737099] Code: fd ff ff 48 c7 c7 00 f0 39 c0 e8 52 a1 38 da 48 8b 3d 6b 46 00 00 e8 e6 88 ee d9 48 8b 05 5f 3c 0
> [ 2426.740046] RSP: 0018:ffffa8e800b77ed8 EFLAGS: 00010287
> [ 2426.740990] RAX: ffff95b7e51935b0 RBX: 0000000000000800 RCX: ffffffff9b4a36a8
> [ 2426.742236] RDX: 0000000000000000 RSI: 0000000000000083 RDI: ffff95b7c03e1554
> [ 2426.743404] RBP: ffffffffc039f740 R08: 0000000000000400 R09: ffff95b7c03e0e50
> [ 2426.744617] R10: ffff95b7fbd296f0 R11: 0000000000895440 R12: ffffa8e800b77f58
> [ 2426.745792] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> [ 2426.746946] FS:  00007f48297e3740(0000) GS:ffff95b7fbd00000(0000) knlGS:0000000000000000
> [ 2426.748250] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 2426.749198] CR2: 000056072aadc9f8 CR3: 0000000118b08000 CR4: 00000000000006e0
> [ 2426.750349] Call Trace:
> [ 2426.750754]  __do_sys_delete_module+0x19d/0x240
> [ 2426.751472]  ? task_work_run+0x5c/0x90
> [ 2426.751964]  ? exit_to_user_mode_prepare+0x2a/0x130
> [ 2426.752637]  do_syscall_64+0x40/0x80
> [ 2426.753121]  entry_SYSCALL_64_after_hwframe+0x44/0xae
> [ 2426.753810] RIP: 0033:0x7f482991361b
> [ 2426.754274] Code: 73 01 c3 48 8b 0d 5d 18 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 8
> [ 2426.756668] RSP: 002b:00007ffd46c89b98 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
> [ 2426.757676] RAX: ffffffffffffffda RBX: 000056072aad8f90 RCX: 00007f482991361b
> [ 2426.758618] RDX: 0000000000000000 RSI: 0000000000000800 RDI: 000056072aad8ff8
> [ 2426.759563] RBP: 000056072aad8f90 R08: 0000000000000000 R09: 0000000000000000
> [ 2426.760513] R10: 00007f4829987ac0 R11: 0000000000000206 R12: 000056072aad8ff8
> [ 2426.761463] R13: 0000000000000000 R14: 000056072aadb4e8 R15: 00007ffd46c89d18
> [ 2426.762405] ---[ end trace 14a8748cda8b4777 ]---
> 
> This was not seen with the 5.11 kernel.
> 
> Thanks,
> Santosh
> > 
> > > diff --git a/test.h b/test.h
> > > index cba8d41..7de13fe 100644
> > > --- a/test.h
> > > +++ b/test.h
> > > @@ -20,7 +20,7 @@ void builtin_xaction_namespace_reset(void);
> > >  
> > > 
> > >  struct kmod_ctx;
> > >  struct kmod_module;
> > > -int nfit_test_init(struct kmod_ctx **ctx, struct kmod_module **mod,
> > > +int ndctl_test_init(struct kmod_ctx **ctx, struct kmod_module **mod,
> > >  		struct ndctl_ctx *nd_ctx, int log_level,
> > >  		struct ndctl_test *test);
> > >  
> > > 
> > > diff --git a/test/ack-shutdown-count-set.c b/test/ack-shutdown-count-set.c
> > > index fb1d82b..c561ff3 100644
> > > --- a/test/ack-shutdown-count-set.c
> > > +++ b/test/ack-shutdown-count-set.c
> > > @@ -99,7 +99,7 @@ static int test_ack_shutdown_count_set(int loglevel, struct ndctl_test *test,
> > >  	int result = EXIT_FAILURE, err;
> > >  
> > > 
> > >  	ndctl_set_log_priority(ctx, loglevel);
> > > -	err = nfit_test_init(&kmod_ctx, &mod, NULL, loglevel, test);
> > > +	err = ndctl_test_init(&kmod_ctx, &mod, NULL, loglevel, test);
> > >  	if (err < 0) {
> > >  		result = 77;
> > >  		ndctl_test_skip(test);
> > > diff --git a/test/blk_namespaces.c b/test/blk_namespaces.c
> > > index d7f00cb..f076e85 100644
> > > --- a/test/blk_namespaces.c
> > > +++ b/test/blk_namespaces.c
> > > @@ -228,7 +228,7 @@ int test_blk_namespaces(int log_level, struct ndctl_test *test,
> > >  
> > > 
> > >  	if (!bus) {
> > >  		fprintf(stderr, "ACPI.NFIT unavailable falling back to nfit_test\n");
> > > -		rc = nfit_test_init(&kmod_ctx, &mod, NULL, log_level, test);
> > > +		rc = ndctl_test_init(&kmod_ctx, &mod, NULL, log_level, test);
> > >  		ndctl_invalidate(ctx);
> > >  		bus = ndctl_bus_get_by_provider(ctx, "nfit_test.0");
> > >  		if (rc < 0 || !bus) {
> > > diff --git a/test/core.c b/test/core.c
> > > index cc7d8d9..44cb277 100644
> > > --- a/test/core.c
> > > +++ b/test/core.c
> > > @@ -11,6 +11,7 @@
> > >  #include <util/log.h>
> > >  #include <util/sysfs.h>
> > >  #include <ndctl/libndctl.h>
> > > +#include <ndctl/ndctl.h>
> > >  #include <ccan/array_size/array_size.h>
> > >  
> > > 
> > >  #define KVER_STRLEN 20
> > > @@ -106,11 +107,11 @@ int ndctl_test_get_skipped(struct ndctl_test *test)
> > >  	return test->skip;
> > >  }
> > >  
> > > 
> > > -int nfit_test_init(struct kmod_ctx **ctx, struct kmod_module **mod,
> > > +int ndctl_test_init(struct kmod_ctx **ctx, struct kmod_module **mod,
> > >  		struct ndctl_ctx *nd_ctx, int log_level,
> > >  		struct ndctl_test *test)
> > >  {
> > > -	int rc;
> > > +	int rc, family = -1;
> > >  	unsigned int i;
> > >  	const char *name;
> > >  	struct ndctl_bus *bus;
> > > @@ -127,10 +128,30 @@ int nfit_test_init(struct kmod_ctx **ctx, struct kmod_module **mod,
> > >  		"nd_e820",
> > >  		"nd_pmem",
> > >  	};
> > > +	char *test_env;
> > >  
> > > 
> > >  	log_init(&log_ctx, "test/init", "NDCTL_TEST");
> > >  	log_ctx.log_priority = log_level;
> > >  
> > > 
> > > +	/*
> > > +	 * The following two checks determine the platform family. For
> > > +	 * Intel/platforms which support ACPI, check sysfs; for other platforms
> > > +	 * determine from the environment variable NVDIMM_TEST_FAMILY
> > > +	 */
> > > +	if (access("/sys/bus/acpi", F_OK) == 0) {
> > > +		if (errno == ENOENT)
> > > +			family = NVDIMM_FAMILY_INTEL;
> > > +	}

Did you mean for the errno check to be if (errno != ENOENT) ?
This is what was causing the unit test failure for me. This patch on
top fixes it for me:

diff --git a/test/core.c b/test/core.c
index 44cb277..698bb66 100644
--- a/test/core.c
+++ b/test/core.c
@@ -139,7 +139,7 @@ int ndctl_test_init(struct kmod_ctx **ctx, struct
kmod_module **mod,
         * determine from the environment variable NVDIMM_TEST_FAMILY
         */
        if (access("/sys/bus/acpi", F_OK) == 0) {
-               if (errno == ENOENT)
+               if (errno != ENOENT)
                        family = NVDIMM_FAMILY_INTEL;
        }
 
If this looks okay do you want to send out a respin with this and I'll
pick it up.

Thanks,
-Vishal
> > 
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

  reply	other threads:[~2021-05-12 21:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-28  2:09 [PATCH 1/4] libndctl: Unify adding dimms for papr and nfit families Santosh Sivaraj
2021-03-28  2:09 ` [PATCH 2/4] test: Don't skip tests if nfit modules are missing Santosh Sivaraj
2021-04-05 12:25   ` Aneesh Kumar K.V
2021-04-07  5:09     ` Santosh Sivaraj
2021-04-30 16:35   ` Verma, Vishal L
2021-05-01  6:27     ` Santosh Sivaraj
2021-05-12 21:00       ` Verma, Vishal L [this message]
2021-05-12 21:06         ` Verma, Vishal L
2021-05-13  4:40         ` Santosh Sivaraj
2021-05-13  5:15           ` Santosh Sivaraj
2021-03-28  2:10 ` [PATCH 3/4] papr: Add support to parse save_fail flag for dimm Santosh Sivaraj
2021-03-28  2:10 ` [PATCH 4/4] Use page size as alignment value Santosh Sivaraj
2021-03-28  2:15 ` [PATCH 1/4] libndctl: Unify adding dimms for papr and nfit families Santosh Sivaraj
     [not found] <draft-87h7jn2co4.fsf@fossix.org>
2021-05-01 10:51 ` [PATCH 2/4] test: Don't skip tests if nfit modules are missing Santosh Sivaraj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b5b8d378a757640c9e6345a1239e5c611a08dde1.camel@intel.com \
    --to=vishal.l.verma@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=harish@linux.ibm.com \
    --cc=linux-nvdimm@lists.01.org \
    --cc=santosh@fossix.org \
    --cc=sbhat@linux.ibm.com \
    --cc=vaibhav@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.