Messages in this thread | | | Date | Mon, 15 Aug 2022 17:02:25 -0500 | Subject | Re: [PATCHv7 02/14] mm: Add support for unaccepted memory | From | Tom Lendacky <> |
| |
On 8/15/22 16:08, Dionna Amalie Glaze wrote: >> >> >> The unpredictable performance of the application early in boot may be >> unacceptable and unavoidable. It might take a long time but it could >> eventually generate bug reports about "unpredictable performance early >> in boot" that will be hard to track down unless accept_memory is observed >> using perf at the right time. Even when that does happen, there will need >> to be an option to turn it off if the unpredictable performance cannot >> be tolerated. Second, any benchmarking done early in boot is likely to >> be disrupted making the series a potential bisection magnet that masks a >> performance bug elsewhere in the merge window. > > I'm doing some boot performance tests now before I run some workload > memory acceptance latency tests. > Note that this testing is on AMD SEV-SNP, so this patch series on top > of the AMD guest patches v12, plus a > patch Brijesh Singh wrote to define __accept_memory for SEV-SNP > https://github.com/AMDESE/linux/commit/ecae2582666d50ce1e633975d703d2f904183ece
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.
https://lore.kernel.org/lkml/cover.1660579062.git.thomas.lendacky@amd.com/
Thanks, Tom
> > I was getting pretty consistent boot times, only going up slightly as > the memory size increased, but at 256GB, the VM crashes because it > touches some unaccepted memory without first accepting it. 255GB boots > fine. > > 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> > >> >> -- >> Mel Gorman >> SUSE Labs > > >
| |