Re: [ndctl PATCH] test/cxl-poison.sh: test scanning past fully mapped partitions
Alison Schofield <[email protected]> Tue, 21 Jul 2026 17:21:19 -0700
| Newsgroups | dev.linux.lists.nvdimm,org.kernel.vger.linux-cxl |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jul 09, 2026 at 06:12:17PM +0800, Richard Cheng wrote: > On Tue, Jun 30, 2026 at 09:42:02PM +0800, Alison Schofield wrote: > > Listing poison by memdev scans the unmapped tail of every partition. > > When an earlier partition is fully mapped, its tail is zero length, but > > the scan must continue to later partitions. A regression caused the > > scan to stop at the first fully-mapped partition, leaving later > > partitions unscanned. > > > > Backstop that behavior with a test case that fully maps a memdev's RAM > > partition so its unmapped tail is zero length, then injects poison into > > the unmapped PMEM partition that follows. The PMEM poison is only > > reported if the scan continues past the fully-mapped RAM partition. > > > > Hi Alison, > > Thanks for this ! I ran it against cxl_test in the following ways. > > On a kernel with the fix [1], the test passes in both run_poison_test passes: > 1 poison record found after inject at the first pmem DPA, 0 after clear. > > On a kernel without the fix, it fails exactly at the "1 poison records expected, 0 found" > assertion, so it catches the regression as intended. > > Just one small thing below. > > > > Signed-off-by: Alison Schofield <[email protected]> > > --- > > test/cxl-poison.sh | 40 ++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 40 insertions(+) > > > > diff --git a/test/cxl-poison.sh b/test/cxl-poison.sh > > index 49aa1b68c5c1..a03e08084eb4 100644 > > --- a/test/cxl-poison.sh > > +++ b/test/cxl-poison.sh > > @@ -219,6 +219,45 @@ test_poison_by_region_offset_negative() > > clear_poison "$region" "$large_offset" true > > } > > > > +# Backstop a driver fix where a fully mapped partition prematurely > > +# terminated the unmapped poison scan. > > +test_poison_unmapped_later_partition() > > +{ > > + local decoder ram_size pmem_dpa > > + > > "region" is assigned below but not declared local like the others. > Does it have any reason for it to not be local var? > It might be harmless today but tests added after this one will inherit > a stale global region, if it ever uses one. > > Tested-by: Richard Cheng <[email protected]> > Reviewed-by: Richard Cheng <[email protected]> Thanks! I made region a local per your suggestion. Applied to pending for NDCTL v86 https://github.com/pmem/ndctl/commits/pending/