Re: [PATCHv7 02/14] mm: Add support for unaccepted memory

Dave Hansen
2022-08-29T16:24:38Z

On 8/29/22 09:02, Dionna Amalie Glaze wrote:
>>> The stack track is in mm/page_alloc.c. I've done a little
>>> investigation, but I can't account for why there's a hard cutoff of
>>> correctness at 256GB
>>>
>>> [ 0.065563] RIP: 0010:memmap_init_range+0x108/0x173
>>> [ 0.066309] Code: 77 16 f6 42 10 02 74 10 48 03 42 08 48 c1 e8 0c
>>> 48 89 c3 e9 3a ff ff ff 48 89 df 48 c1 e7 06 48 03 3d d9 a2 66 ff 48
>>> 8d 47 08 <c7> 47 34 01 00 00 00 48 c7 47 38 00 00 00 00 c7 47 30 ff ff
>>> ff ff
>>> [ 0.069108] RSP: 0000:ffffffffad603dc8 EFLAGS: 00010082 ORIG_RAX:
>>> 0000000000000404
>>> [ 0.070193] RAX: ffffdba740000048 RBX: 0000000000000001 RCX: 0000000000000000
>>> [ 0.071170] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffdba740000040
>>> [ 0.072224] RBP: 0000000000000000 R08: 0000000000001000 R09: 0000000000000000
>>> [ 0.073283] R10: 0000000000000001 R11: ffffffffad645c60 R12: 0000000000000000
>>> [ 0.074304] R13: 00000000000000a0 R14: 0000000000000000 R15: 0000000000000000
>>> [ 0.075285] FS: 0000000000000000(0000) GS:ffffffffadd6c000(0000)
>>> knlGS:0000000000000000
>>> [ 0.076365] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>> [ 0.077194] CR2: ffffdba740000074 CR3: 0008001ee3a0c000 CR4: 00000000000606b0
>>> [ 0.078209] Call Trace:
>>> [ 0.078524] <TASK>
>>> [ 0.078887] ? free_area_init+0x5c1/0x66c
>>> [ 0.079417] ? zone_sizes_init+0x52/0x6c
>>> [ 0.079934] ? setup_arch+0xa55/0xb6d
>>> [ 0.080417] ? start_kernel+0x64/0x65a
>>> [ 0.080897] ? secondary_startup_64_no_verify+0xd6/0xdb
>>> [ 0.081620] </TASK>
>> Note that there is a bug in Brijesh's version of the patch and it will
>> almost exclusively use the MSR protocol. Please try the version of the
>> patch that I recently sent up based on the current unaccepted memory tree
>> from Kirill.
>>
> I've now tested this patch set with Tom's new patch set, and it
> appears to be that the problem with 256GB is more likely to be due to
> this unaccepted memory patch set rather than something AMD-specific.
>
> Kirill, do you see any problems with 256GB on TDX? It seems there is
> some unaccepted memory getting touched in memmap_init_range when the
> VM's memory size is at least 256GB

It really helps this kind of stuff if you can post the *actual* error.
I assume this was a page fault, so there should have been some other
stuff before the RIP:...

Another thing that's really nice is to do the disassembly of the "Code:"
or share disassembly of memmap_init_range. Even nicer would be to give
an faddr2line of the RIP value and track down which C code was actually
at fault.

It's *possible* to look into these things from what you posted, but it's
just slow. I'm sure Kirill will appreciate the help.