[Bug 18745] New: Wine should support MEM_LARGE_PAGES and related interfaces for large pages & variable page sizes

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jun 2 00:52:39 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=18745

           Summary: Wine should support MEM_LARGE_PAGES and related
                    interfaces for large pages & variable page sizes
           Product: Wine
           Version: 1.1.22
          Platform: PC
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: kernel32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: trisk-winehq at forkgnu.org


The ability to allocate large pages can improve the performance of applications
with densely populated address spaces. The large page interfaces on Windows
were introduced in Windows Server 2003. However, due to limitations in the NT
VM, large pages are always pinned in memory (not pageable) and become scarce
due to excessive fragmentation. Wine has the advantage of running on platforms
with better support for large pages.

Because the memory is normally pinned, the process must have
SeLockMemoryPrivilege on Windows.

The new interfaces are:
MEM_LARGE_PAGES type for VirtualAlloc (NtAllocateVirtualMemory)
(http://msdn.microsoft.com/en-us/library/aa366720%28VS.85%29.aspx)
SEC_LARGE_PAGES flag for
http://msdn.microsoft.com/en-us/library/aa366543%28VS.85%29.aspx
GetLargePageMinimum
(http://msdn.microsoft.com/en-us/library/aa366568%28VS.85%29.aspx)
/***********************************************************************
 *           GetLargePageMinimum   (KERNEL32.@)
 *
 * Get the minimum size of a large page.
 *
 * RETURNS
 *    Size: Success
 *    0: Failure
 */
SIZE_T WINAPI GetLargePageMinimum(void)

The allocated regions must be aligned to the minimum size and MEM_COMMIT must
also be set, or NtAllocateVirtualMemory should return STATUS_INVALID_PARAMETER.

I'm opening this bug to keep notes for my own implementation, although anyone
should feel free to jump in.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list