From: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, okano(dot)naoki(at)jp(dot)fujitsu(dot)com, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: BUG #17448: In Windows 10, version 1703 and later, huge_pages doesn't work. |
Date: | 2022-03-31 10:46:59 |
Message-ID: | 20220331104659.ol6pqe7s3tpkymuk@jrouhaud |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On Thu, Mar 31, 2022 at 04:00:55PM +0800, Julien Rouhaud wrote:
> > Okano-san has mentioned VMMap upthread:
> > https://docs.microsoft.com/en-us/sysinternals/downloads/vmmap
>
> Yes, I totally missed that. Thomas Munro also mentioned it off-list, and
> also found some reference [1] indicating that large pages should show up as
> "Locked WS". I tested with and without the patch and in both case I don't see
> any "Locked WS" usage. I also get the same Page Table size, which seems
> consistent with large pages not being used. Now, this is a vm running with
> virtualbox and we're not entirely sure that huge pages can be allocated with
> it. I wish I could test on my windows 10 machine as it's not virtualized, but
> I can't give the required privileges.
>
> [1] https://aloiskraus.wordpress.com/2016/10/03/windows-10-memory-compression-and-more/
So, after more digging it turns out that the patch is supposed to work. If I
force using the PG_FILE_MAP_LARGE_PAGES, postgres starts and I do see "Locked
WS" usage with VMMap, with a size in the order of magnitude of my
shared_buffers.
What is apparently not working on my VM is IsWindowsVersionOrGreater(10, 0,
1703). I added some debug around to check what GetVersionEx() [2] is saying,
and I get:
dwMajorVersion == 6
dwMinorVersion == 2
dwBuildNumber == 9200
While winver.exe on the same vm says windows 11, version 21H2, build 22000.493.
I'm therefore extremely confused. The documentation of
IsWindowsVersionOrGreater() at [3] is also highly confusing:
> TRUE if the specified version matches, or is greater than, the version of the
> current Windows OS; otherwise, FALSE.
Isn't that supposed to be the opposite?
[2] https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexa
https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-osversioninfoexa
From | Date | Subject | |
---|---|---|---|
Next Message | Julien Rouhaud | 2022-03-31 11:03:09 | Re: BUG #17448: In Windows 10, version 1703 and later, huge_pages doesn't work. |
Previous Message | Kyotaro Horiguchi | 2022-03-31 08:26:17 | Re: BUG #17393: Delete database after recovery with point-in-time is still missing datafiles |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-03-31 10:54:36 | Re: CLUSTER on partitioned index |
Previous Message | Daniel Gustafsson | 2022-03-31 10:17:42 | Re: document the need to analyze partitioned tables |