Re: [PATCH v3 4/4] mm: don't account memmap per-node

Alison Schofield
2024-08-08T21:12:29Z

On Thu, Aug 08, 2024 at 03:05:32PM -0400, Pasha Tatashin wrote:
> On Thu, Aug 8, 2024 at 2:55 PM Alison Schofield
> <alison.schofield@intel.com> wrote:
> >
> > On Thu, Aug 08, 2024 at 03:42:37PM +0000, Pasha Tatashin wrote:
> > > Currently, when memory is hot-plugged or hot-removed the accounting is
> > > done based on the assumption that memmap is allocated from the same node
> > > as the hot-plugged/hot-removed memory, which is not always the case.
> > >
> > > In addition, there are challenges with keeping the node id of the memory
> > > that is being remove to the time when memmap accounting is actually
> > > performed: since this is done after remove_pfn_range_from_zone(), and
> > > also after remove_memory_block_devices(). Meaning that we cannot use
> > > pgdat nor walking though memblocks to get the nid.
> > >
> >
> > How about directly include the failing cases and user visible impacts as
> > reported in the Tags appended below.
>
> Do you mean adding panic backtraces or repro steps to the commit log?

Yes. Perhaps abbreviated but something that makes the connection,
like this:

ndctl users reported a GPF when trying to destroy a namespace:
# ndctl destroy-namespace all -r all -f
Segmentation fault
dmesg:
[] Oops: general protection fault, probably for
non-canonical address 0xdffffc0000005650: 0000 [#1] PREEMPT SMP KASAN
PTI
[] KASAN: probably user-memory-access in range
[0x000000000002b280-0x000000000002b287]
[] CPU: 26 UID: 0 PID: 1868 Comm: ndctl Not tainted 6.11.0-rc1 #1
[] Hardware name: Dell Inc. PowerEdge R640/08HT8T, BIOS
2.20.1 09/13/2023
[] RIP: 0010:mod_node_page_state+0x2a/0x110

cxl-test users report a GPF when trying to unload the test module:
# modrpobe -r cxl-test
dmesg
[] BUG: unable to handle page fault for address: 0000000000004200
[] #PF: supervisor read access in kernel mode
[] #PF: error_code(0x0000) - not-present page
[] PGD 0 P4D 0
[] Oops: Oops: 0000 [#1] PREEMPT SMP PTI
[] CPU: 0 UID: 0 PID: 1076 Comm: modprobe Tainted: G O N 6.11.0-rc1 #197
[] Tainted: [O]=OOT_MODULE, [N]=TEST
[] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
[] RIP: 0010:mod_node_page_state+0x6/0x90