On 1/13/25 15:08, Rik van Riel wrote: > On Mon, 2025-01-13 at 16:50 +0100, Jann Horn wrote: >> On Sun, Jan 12, 2025 at 4:55 PM Rik van Riel <riel@xxxxxxxxxxx> >> wrote: >>> + /* Max number of pages INVLPGB can invalidate in one shot >>> */ >>> + if (boot_cpu_has(X86_FEATURE_INVLPGB)) { >>> + cpuid(0x80000008, &eax, &ebx, &ecx, &edx); >>> + invlpgb_count_max = (edx & 0xffff) + 1; >> >> I assume the +1 is just a weird undocumented (or weirdly documented) >> encoding? >> https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24594.pdf >> says that field InvlpgbCountMax contains the "Maximum page count for >> INVLPGB instruction" and doesn't mention having to add 1 from what I >> can tell. >> > The way I read the documentation, the number > passed in to invlpgb (and retrieved from cpuid) > corresponds to the number of extra pages > invalidated beyond the first page at the specified > address. > > Things have not exploded on me invalidating > multiple pages at once in larger ranges, so I > suspect my reading is right, but it would be > nice for one of the AMD people to confirm :) That is correct. Thanks, Tom >