In a test scenario I’m running on an amd64 box I observe a leak of
around 220MB/day of non-paged pool for the tag Vepp (so it would show up
in code as ‘ppeV’.) If there is some kind reader out there who might
have knowledge of this tag, please let me know (privately or in the
forum). If I don’t hear from anyone, rest assured that when I do find
it, I’ll publish my findings.
Indeed, this might make a good article for The NT Insider - “how to find
a pool leak”. Fortunately (for me) my own tags are now all down in the
noise. I need to find this leak because it limits the amount of time I
can run my tests (I hit around 24 hours and then get some nice “low
memory usage” simulations. Last time I crashed it was after 600+
non-paged pool allocations had failed… )
Here is the machine’s loaded module list:
start end module name
fffff80000800000 fffff800
0085e000 hal (deferred)
fffff80001000000 fffff800
0146e000 nt (pdb symbols)
fffff97fff000000 fffff97f
ff45d000 win32k (deferred)
fffff97fff45d000 fffff97f
ff484000 dxg (deferred)
fffff97fff484000 fffff97f
ffa0a400 nv4_disp (deferred)
fffffadfc46b6000 fffffadf
c4780000 srv (deferred)
fffffadfc4852000 fffffadf
c48e2000 HTTP (deferred)
fffffadfc4928000 fffffadf
c4950000 vmx86 (deferred)
fffffadfc4950000 fffffadf
c4999000 mrxdav (deferred)
fffffadfc4c73000 fffffadf
c4cab000 kmixer (deferred)
fffffadfc4cab000 fffffadf
c4cc5000 swmidi (deferred)
fffffadfc4cc5000 fffffadf
c4cfa000 aec (deferred)
fffffadfc4cfa000 fffffadf
c4d25000 sysaudio (deferred)
fffffadfc4d25000 fffffadf
c4d59000 wdmaud (deferred)
fffffadfc61a1000 fffffadf
c61ad000 hcmon (deferred)
fffffadfc6cd8000 fffffadf
c6d02000 dump_nvata64 (deferred)
fffffadfc6d02000 fffffadf
c6d23000 Cdfs (deferred)
fffffadfc6d69000 fffffadf
c6e35000 mrxsmb (deferred)
fffffadfc6e35000 fffffadf
c6e86000 rdbss (deferred)
fffffadfc6e86000 fffffadf
c6ed4000 afd (deferred)
fffffadfc6ed4000 fffffadf
c6f37000 netbt (deferred)
fffffadfc6f37000 fffffadf
c6f6f000 ipnat (deferred)
fffffadfc6f6f000 fffffadf
c7030000 tcpip (deferred)
fffffadfc7030000 fffffadf
c705b000 ipsec (deferred)
fffffadfc705b000 fffffadf
c706f000 Npfs (deferred)
fffffadfc708f000 fffffadf
c7098000 dump_WMILIB (deferred)
fffffadfc728d000 fffffadf
c72a3a00 nvarm64 (deferred)
fffffadfc72a4000 fffffadf
c73b8500 nvmcp64 (deferred)
fffffadfc73b9000 fffffadf
c73f9000 portcls (deferred)
fffffadfc73f9000 fffffadf
c748c400 nvapu64 (deferred)
fffffadfc748d000 fffffadf
c74ad000 usbhub (deferred)
fffffadfc74f3000 fffffadf
c7507000 NDProxy (deferred)
fffffadfc7507000 fffffadf
c751d000 termdd (deferred)
fffffadfc751d000 fffffadf
c7573000 rdpdr (deferred)
fffffadfc7573000 fffffadf
c7589000 msgpc (deferred)
fffffadfc7589000 fffffadf
c75a9000 psched (deferred)
fffffadfc7619000 fffffadf
c7624000 ndisuio (deferred)
fffffadfc7629000 fffffadf
c7637000 vmnetbridge (deferred)
fffffadfc7649000 fffffadf
c766c000 raspptp (deferred)
fffffadfc766c000 fffffadf
c7680000 raspppoe (deferred)
fffffadfc7680000 fffffadf
c76ac000 ndiswan (deferred)
fffffadfc76ac000 fffffadf
c76d2000 rasl2tp (deferred)
fffffadfc76d2000 fffffadf
c76ef000 i8042prt (deferred)
fffffadfc76ef000 fffffadf
c7712000 serial (deferred)
fffffadfc7712000 fffffadf
c7735000 VIDEOPRT (deferred)
fffffadfc7735000 fffffadf
c7ba1f00 nv4_mini (deferred)
fffffadfc7ba2000 fffffadf
c7bec000 NVSNPU (deferred)
fffffadfc7bec000 fffffadf
c7c48b80 NVNRM (deferred)
fffffadfc7c49000 fffffadf
c7c8f000 yk51x64 (deferred)
fffffadfc7cd5000 fffffadf
c7ceb000 redbook (deferred)
fffffadfc7ceb000 fffffadf
c7d06000 cdrom (deferred)
fffffadfc7d06000 fffffadf
c7d1d000 imapi (deferred)
fffffadfc7d1d000 fffffadf
c7d66000 ks (deferred)
fffffadfc7d66000 fffffadf
c7d7c180 nvax64 (deferred)
fffffadfc7d7d000 fffffadf
c7db7000 USBPORT (deferred)
fffffadfc7e97000 fffffadf
c7e9d000 AsIO (deferred)
fffffadfc8108000 fffffadf
c813e000 Mup (deferred)
fffffadfc813e000 fffffadf
c8199000 NDIS (deferred)
fffffadfc8199000 fffffadf
c82b1000 Ntfs (deferred)
fffffadfc82b1000 fffffadf
c82e4000 KSecDD (deferred)
fffffadfc82e4000 fffffadf
c8307000 sr (deferred)
fffffadfc8307000 fffffadf
c8344000 fltMgr (deferred)
fffffadfc8344000 fffffadf
c8363000 CLASSPNP (deferred)
fffffadfc8363000 fffffadf
c8378000 disk (deferred)
fffffadfc8378000 fffffadf
c8393000 SI3114 (deferred)
fffffadfc8393000 fffffadf
c83c4000 SCSIPORT (deferred)
fffffadfc83c4000 fffffadf
c8414000 SI3114R5 (deferred)
fffffadfc8414000 fffffadf
c843e000 nvata64 (deferred)
fffffadfc843e000 fffffadf
c846b000 atapi (deferred)
fffffadfc846b000 fffffadf
c84b6000 volsnap (deferred)
fffffadfc84b6000 fffffadf
c84fc000 dmio (deferred)
fffffadfc84fc000 fffffadf
c853c000 ftdisk (deferred)
fffffadfc853c000 fffffadf
c8552000 MountMgr (deferred)
fffffadfc8552000 fffffadf
c8565a00 1394BUS (deferred)
fffffadfc8566000 fffffadf
c857cc80 ohci1394 (deferred)
fffffadfc857d000 fffffadf
c859e000 pci (deferred)
fffffadfc859e000 fffffadf
c85f2000 ACPI (deferred)
fffffadfc86f3000 fffffadf
c8704000 processr (deferred)
fffffadfc8706000 fffffadf
c8718000 wanarp (deferred)
fffffadfc8719000 fffffadf
c872b000 netbios (deferred)
fffffadfc872c000 fffffadf
c873e000 Fips (deferred)
fffffadfc89fb000 fffffadf
c8a04000 kdcom (deferred)
fffffadfc8a0b000 fffffadf
c8a14000 BOOTVID (deferred)
fffffadfc8a1b000 fffffadf
c8a24000 WMILIB (deferred)
fffffadfc8a2b000 fffffadf
c8a34000 isapnp (deferred)
fffffadfc8a3b000 fffffadf
c8a4b000 PCIIDEX (deferred)
fffffadfc8a4b000 fffffadf
c8a5b000 PartMgr (deferred)
fffffadfc8a5b000 fffffadf
c8a65000 SiWinAcc (deferred)
fffffadfc8a6b000 fffffadf
c8a76000 crcdisk (deferred)
fffffadfc8a8b000 fffffadf
c8a98000 mouclass (deferred)
fffffadfc8abb000 fffffadf
c8ac9000 kbdclass (deferred)
fffffadfc8acb000 fffffadf
c8ad5000 ndistapi (deferred)
fffffadfc8adb000 fffffadf
c8aea000 TDI (deferred)
fffffadfc8afb000 fffffadf
c8b08000 ptilink (deferred)
fffffadfc8b0b000 fffffadf
c8b16000 raspti (deferred)
fffffadfc8b1b000 fffffadf
c8b2b000 update (deferred)
fffffadfc8b2b000 fffffadf
c8b35000 rasacd (deferred)
fffffadfc8b3b000 fffffadf
c8b45000 VMNET (deferred)
fffffadfc8b4b000 fffffadf
c8b57000 Dxapi (deferred)
fffffadfc8b5b000 fffffadf
c8b68000 mssmbios (deferred)
fffffadfc8b6b000 fffffadf
c8b75980 usbehci (deferred)
fffffadfc8b8b000 fffffadf
c8b97a00 NVENETFD (deferred)
fffffadfc8b9b000 fffffadf
c8ba7000 flpydisk (deferred)
fffffadfc8bab000 fffffadf
c8bb9000 vga (deferred)
fffffadfc8bbb000 fffffadf
c8bc5000 mnmdd (deferred)
fffffadfc8bcb000 fffffadf
c8bd5000 RDPCDD (deferred)
fffffadfc8bfb000 fffffadf
c8c06000 nvnetbus (deferred)
fffffadfc8c0b000 fffffadf
c8c15000 Fs_Rec (deferred)
fffffadfc8c2b000 fffffadf
c8c34000 watchdog (deferred)
fffffadfc8c3b000 fffffadf
c8c48000 Msfs (deferred)
fffffadfc8c4b000 fffffadf
c8c59000 fdc (deferred)
fffffadfc8c5b000 fffffadf
c8c67000 serenum (deferred)
fffffadfc8cab000 fffffadf
c8cb3000 ASACPI (deferred)
fffffadfc8cc3000 fffffadf
c8ccb000 audstub (deferred)
fffffadfc8cdb000 fffffadf
c8ce3000 CdaC15BA (deferred)
fffffadfc8cfb000 fffffadf
c8d03000 CdaD10BA (deferred)
fffffadfc8d7b000 fffffadf
c8d83000 vmnetadapter (deferred)
fffffadfc8deb000 fffffadf
c8df3000 secdrv (deferred)
fffffadfc8df3000 fffffadf
c8dfb000 Null (deferred)
fffffadfc8dfb000 fffffadf
c8e02000 pciide (deferred)
fffffadfc8e02000 fffffadf
c8e09000 dmload (deferred)
fffffadfc8f13000 fffffadf
c8f19700 usbohci (deferred)
fffffadfc8f28000 fffffadf
c8f2de80 ksthunk (deferred)
fffffadfc9063000 fffffadf
c906a000 Beep (deferred)
fffffadfc9193000 fffffadf
c9195800 splitter (deferred)
fffffadfc91f9000 fffffadf
c91fa400 swenum (deferred)
fffffadfc9205000 fffffadf
c9206d80 USBD (deferred)
This is a base 64-bit Windows system (asus motherboard, based on an
NVIDIA chipset.) I’ve installed VMWare on this machine as well. 2MB
installed (maybe if I install another 2MB I’ll get an additional 24
hours out of the box.)
Verifier is enabled for ALL drivers on this system - but the tag value
does not show up in verifier (“!verifier 3”) but does show up in the
pool tag list (already 1MB in use) - suggesting that whoever owns this
driver is bypassing verifier’s version of the memory allocation routine.
A quick string search of the binaries (\windows\system32\drivers) does
not show the tag in any of them, either.
My own driver is a totally virtual in-memory file system - except for my
ERESOURCES my structures come from paged pool. The test scenario is a
continuous rename/delete multi-threaded test (where we’re trying to
delete the files and rename them simultaneously, looking for complex
race conditions down these paths.)
So, if anyone has information to save me time, please let me know.
Otherwise, you know what I’ll be doing for the next day or two.
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.