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/