Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.
Click here to load reader
-
Upload
mitchell-poole -
Category
Documents
-
view
281 -
download
7
Transcript of Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.
![Page 1: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/1.jpg)
Windows Memory Management AdvancesLandy WangDistinguished EngineerWindows Kernel DevelopmentMicrosoft Corporation
![Page 2: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/2.jpg)
Key TakeawaysBe a leader in advancing 64-bit computing
Adopt best practices and new tools
Let’s partner on new hardware directions
Apply best practices for applications, drivers, and hardwareJoin discussion in 409A during lunch hour
![Page 3: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/3.jpg)
Challenges For Windows Vista
Use VA space more efficientlyMitigate effects of buffer overruns to improve securityFully utilize I/O bandwidthSimplify and speed up hibernate/standby and resumeFully support modern GPUs and VM for video
![Page 4: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/4.jpg)
Challenges For Windows Vista
Take advantage of NUMA architectureContinue to improve scalabilityEnsure greater system integrity
![Page 5: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/5.jpg)
System Virtual Address SpaceChallenge
Use VA space more efficientlyEliminate pre-partitioning at boot timeNo differences based on registry size, configuration, SKUImprove balance of resourcesSimplify administrationImprove scalability
![Page 6: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/6.jpg)
Dynamic System VA Space
Dynamic and efficient allocation of system VA space as needed
Similar to user-space allocationApplies to paged and nonpaged pools, page-table entry (PTE) mapping, system cache, session, registry, etc
Region sizes and layout bounded only by VA limitations
Not fixed at boot timeNot driven by registry, configuration, or SKU
![Page 7: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/7.jpg)
Dynamic System VA Space
Process page tables
User address space
Computed at bootFixed, artificial limits
Kernel address space
User address space
Windows Vista and later
Paged pool
Process page tablesKernel and executive
HAL
Windows XP and earlier
Fully dynamicNo regkeys needed
System cache
System PTEs
Paged pool
Nonpaged pool
Kernel and executiveHAL
System cache
Nonpaged pool
System PTEs
![Page 8: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/8.jpg)
Dynamic System VA SpaceBenefits
All resources are pooled and available to any requestorIncreased VA space
2 GB shared on 32-bit platforms128 GB per resource (1 TB system cache) on 64-bit platforms
Maximum resources always available
![Page 9: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/9.jpg)
Dynamic System VA SpaceBenefits
More scalable on all platformsAutomatic tuning – no registry settings or rebootsGreater flexibility on 3GB 32-bit systems
Maximum RAM when booted /3GB increases from 16GB to 64GB
Dynamic allocation of page tablesSaves 1.5MB to 2.5GB of preallocated spaceFeatures “free” if not used
![Page 10: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/10.jpg)
Stack Jumping
Additional 16K stack
Kernel-mode stack
Additional 16K stack
Kernel-mode stack
Kernel-mode stack
Windows XP and earlier
Windows Vista and later
![Page 11: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/11.jpg)
Stack Jumping
Doubles capacity of 32-bit Terminal Server Dynamically allocated
Automaticallydeleted as each nested system call completes(“unwinds”)
KeExpandKernelStackAndCalloutEx
Additional 16K stack
Kernel-mode stack
Additional 16K stack
![Page 12: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/12.jpg)
XP and earlier:Unused memory
Windows Vista and later: Allocated to other requestors
Use Excess Pool
Uses excess pool in allocations where n>PAGE_SIZE and (n % PAGE_SIZE) != 0Driver writers note
Do not use memory beyond what you allocateDriver Verifier has always caught this error
Driver allocates n
bytes
0xn
Page Aligned
Page Boundary
Page Boundary
![Page 13: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/13.jpg)
SecurityChallenge
Mitigate consequences of buffer overrun exploits
Fixed locations of loaded images are a security riskHackers know that an address maps to a particular functionBlack Hat database
![Page 14: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/14.jpg)
SecurityAddress Space Load Randomization (ASLR)
Relocate EXEs and DLLs dynamically during section creationCompressed VA range for DLLs saves page table spaceLarger contiguous VA ranges for applicationsDrivers already move around
Kernel and HAL also move in client and server in Windows Server code name “Longhorn” timeframe [“LHS”]
![Page 15: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/15.jpg)
Effect Of ASLR On Load Addresses
Executable
DLLs
Kernel Mode
Image headerExecutableLoad Address+/- 16MB
16MB
Randomly ChosenExecutableLoad Address
Randomly ChosenImage-Load Bias
DLL Loading
![Page 16: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/16.jpg)
SecurityASLR
ASLR = WeakNo execute = WeakASLR + No execute = Very strong
ISVs must relink with the /DYNAMICBASE and /NXCOMPAT flags !
![Page 17: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/17.jpg)
Performance Achilles' HeelChallenge
Fully utilize I/O bandwidthSpeed and size of CPU and RAM have increased by orders of magnitude I/O and disk speed improvements only 2x
![Page 18: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/18.jpg)
I/O Bandwidth Improvements
Page-file writesLarger clusters—no more 64K limitInclude adjacent valid VAsAlign with neighborsEliminate zero-page writesAverage page file write size increases from 16K to >1MBDelayed until higher threshold reached [“LHS”]
![Page 19: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/19.jpg)
I/O Bandwidth Improvements
Coordinate mapped page writer thread with cache manager’s lazy-writer threads
Issue writes to file system in ordered fashion to reduce cost of valid data length extension
Modified writer and mapped writer threads now independentMultiple asynchronous flushes
![Page 20: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/20.jpg)
I/O Bandwidth Improvements
Prefetch-style clustering everywhere, including page faults, system cache read-ahead, etcI/O is performed directly into the page cache instead of consuming virtual address space
![Page 21: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/21.jpg)
Prefetch-Style ClusteringBenefits
I/O pages put in transition (not valid)Cluster size no longer limited by VA availabilityNo need to reclaim (lose) VA spaceIf preread data is never used, there is no trim, IPI or translation buffer flush cost
![Page 22: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/22.jpg)
Prefetch-Style Clustering
Dummy pages on prefetchOne dummy page for the entire systemDrivers writers note
Drivers that directly access MDLs must handle this!
![Page 23: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/23.jpg)
Prefetch-Style Clustering
Y
Z
A
Y
Z
B
Header
MDL 1 … n
Y and Z are already in memory, so MDL points to dummy page
Physical Memory
A
Y
Z
B
VA Space
System-Wide
Dummy Page
![Page 24: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/24.jpg)
I/O Bandwidth Improvements
Use AVL tree instead of linked list to describe file ranges
Improves speed of APIs that use file offsets (map, flush, and purge) for large filesBackups now typically 2x faster
![Page 25: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/25.jpg)
Hibernate And StandbyChallenge
Increase hibernate and standby speed
Take advantage of efficient memory management mirroring technology used in fault-tolerant systems for banks, telephone companies, etc
![Page 26: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/26.jpg)
Hibernate And Standby
Hibernate and standby now 2 stepsStep 1
Copy contents of VM to diskAll device stacks are active
Step 2Shut down all but hibernate pathCopy only changed data to hibernate file
![Page 27: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/27.jpg)
Hibernate And StandbyBenefits
Write only half as much dataPerform half as many write operations
Average write is 2x larger
Greater than 2x speed improvement in shutdown; recovery is even fasterUnify hibernate and standby
No need for users to distinguish them
![Page 28: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/28.jpg)
SuperFetchAdaptive page prefetch
Memory manager logs activitiesUser-mode service analyzes log
Prioritizes commonly used pages on system-wide basisCalls memory manager to preload pages based on actual usageExample: “Payroll at noon on Friday”
More efficient use of VM means fewer free/zero pages appear on clients
![Page 29: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/29.jpg)
Advanced Video ModelChallenge
Fully support modern GPUs and virtual memory capabilitiesProvide more realistic shading, texturing, fading, etc for gaming and simulations
![Page 30: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/30.jpg)
Advanced Video Model
Rotate virtual address descriptors (VADs)Video drivers can quickly switch user views from application memory to or from video RAM or AGP on a per-page basis
Full support for all cache attributes
Use GPU for direct transfers100x performance increaseRotate unneeded pages in and out on demand
![Page 31: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/31.jpg)
Advanced Video Model
User’s VA
VA Space
Page Table
User’s data
Page File-backed Page
User’s data
Video RAM or AGP
![Page 32: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/32.jpg)
NUMA SupportChallenge
Fully utilize capabilities of NUMA architectures
Basic philosophy: abstract physical page/node knowledge – memory management does the heavy lifting
![Page 33: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/33.jpg)
NUMA Support
Node graph cost determined automaticallyInitial nonpaged pool is NUMA-aware
Separate VA ranges per node Per-node lookaside lists for full pages
System page tables allocated evenly across nodes
![Page 34: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/34.jpg)
NUMA Support
Default node is now ideal processorOn Windows XP and earlier systems, default was current processor
Applications can specify NUMA affinity based on
Virtual address descriptor (VAD)SectionThread/process
![Page 35: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/35.jpg)
NUMA Support
New Windows APIs for applications:VirtualAllocExNumaCreateFileMappingExNumaMapViewOfFileExNuma
New scalable Windows APIQueryWorkingSetEx
![Page 36: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/36.jpg)
NUMA Support
New DDIs for driversMmAllocateContiguousMemorySpecifyCacheNode
MmAllocatePagesForMdlEx
New DDIs include node-aware zeroing of pages
![Page 37: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/37.jpg)
NUMA Support Additional features [“LHS”]
Prefetch pages to ideal node for application, instead of ideal node for prefetch threadMigrate pages to ideal node on soft page fault
![Page 38: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/38.jpg)
ScalabilityOngoing challenge
Continue to invest in scale-up capabilities to support more and faster processors/RAM
![Page 39: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/39.jpg)
Scalability
Use bitmaps instead of linked lists to describe free lists for
Nonpaged pool (Windows Vista) System PTEs [“LHS”]
Greater efficiencyLock-free searchesAutomatic coalesceHigher parallelism
![Page 40: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/40.jpg)
Scalability
Direct-mapped working sets instead of hashedPFNs > 32 bits support NUMA layouts and huge amounts of memoryNonpaged pool on 64-bit systems increased to 75% of RAM from 40% [“LHS”]
![Page 41: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/41.jpg)
Scalability
Use large pages forVirtualAlloc (MEM_LARGE_PAGES)Initial nonpaged poolPFN data-baseUser application and driver imagesPage file-backed shared memoryDriver I/O space mappings
![Page 42: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/42.jpg)
Scalability
Faster allocation of large pagesContiguity of entire range no longer requiredParallel zeroingNUMA-aware zeroing
![Page 43: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/43.jpg)
Scalability
Greatly improved support [“LHS”]Still relatively expensive, but I/Os and system wide slowdowns have been removedMuch higher success rate (due to dynamic page replacement)Greatly reduced cost
![Page 44: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/44.jpg)
ScalabilityChallenge
Be a better guest operating system in hypervisor scenarios
![Page 45: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/45.jpg)
Scalability
Translation buffer flush reduction Flush entire TB rate near 0
Reduced memory footprintReclaim initial nonpaged pool [“LHS”]
![Page 46: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/46.jpg)
Scalability
VirtualAlloc and AWE allocations Batch VirtualProtect translation buffer flushes [“LHS”]
60x performance
Demand-zero (not pool) for WOW page-table bitmaps on 64-bit systems
![Page 47: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/47.jpg)
Scalability
More information for load balancingNew events for user or system consumption
CommitPoolPages
![Page 48: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/48.jpg)
System IntegrityChallenge
Detect and handle system corruption
![Page 49: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/49.jpg)
System Integrity
Ensure that pages on zero-page list actually are zeroedLog zero-page errors New registry keys to control zero-page checking
FrequencyAction upon error (event log or bugcheck)
![Page 50: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/50.jpg)
System Integrity
Simple, high-speed validation path for Code IntegrityHot patch for global and session drivers
No reboot required
![Page 51: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/51.jpg)
System Integrity
Preserve more system data on non-destructive bugchecks
If bugcheck occurs during page-in, flush data
Registry’s views of system cache are marked read-only except during modification
![Page 52: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/52.jpg)
Key Advances
Dynamic system virtual address spaceAddress space load randomization (ASLR)Improved I/O bandwidth
Prefetch clusteringFaster hibernate/standbySuperFetch
Advanced video model for modern GPUsNUMA and scalability enhancementsHardware and data integrity checks
![Page 53: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/53.jpg)
Call To Action
For application developersRelink for Windows Vista to enable ASLRNUMA: Ideal (not current node) now used
For driver developersDo not use memory beyond allocationsHandle dummy page correctly in drivers that directly access MDLs
For hardware manufacturersUse ECC
![Page 54: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/54.jpg)
Additional Resources
Q&A: Room 409A following this session
Web ResourcesWHDC: www.microsoft.com/whdc/system/kernel/wmm.mspx
Windows Sysinternals: www.microsoft.com/technet/sysinternals/
Related SessionsSVR-T332 NUMA I/O Operations
SVR-C509 NUMA I/O and Storport Discussion
SVR-P465 Panel: Memory Technologies and Trends
![Page 55: Landy Wang Distinguished Engineer Windows Kernel Development Microsoft Corporation.](https://reader038.fdocuments.in/reader038/viewer/2022102422/56649e045503460f94af0d95/html5/thumbnails/55.jpg)
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date
of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.