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(a)winehq.org ReportedBy: trisk-winehq(a)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.