L4D2 OS Paged Pool Memory Low on XP

From Steam, I installed and played Left for Dead 2 (L4D2) for a few hours without any problems.  After rebooting after an update, the warning “OS Paged Pool Memory Low” in red appeared in the game, followed shortly by bizarre visuals, halting sound, jerky game play, and ultimately, a lockup or crash.  A few days later (and after rebooting) I tried it again, and it was fine.  Until I rebooted …

It seemed that pawing at it like a confused monkey was not solving my problem, so I consulted the Internet, which recommended a curious mixture of unrelated voodoo and homeopathic remedies, and Steam themselves has a page that mumbles incoherently about drivers and suggests removing parameters that nobody has.  Those few people who have had, and solved this problem, appear to have tried hundreds of things all at once and were clueless as to what fixed the issue.

While making sure drivers are up-to-date is rarely bad advice, it’s unlikely to actually fix anything unless your current drivers happen to be buggy.

So, what’s happening, and how does one fix it?

XP has two memory pools, paged and non-paged, and without going into too much technical detail, paged memory can use disk space to expand its total pool (“virtual memory.”)  XP uses heuristics at boot time to determine how much memory to dedicate to the non-paged and paged pools.

Specifically, XP calculates a limit for the paged pool based on how much address space that other resources, like page table entries, want.  With a lot of RAM and a reasonable amount of swap, XP can still apparently get it wrong.  On the plus side, it can be tweaked manually to solve the issue.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

in the registry has all kinds of nifty knobs, and the most important one is “PagedPoolSize.”

Note:  before doing this, make sure you have a reasonable amount of physical ram and that virtual memory (My Computer->Properties->Advanced->Performance->Virtual Memory) is set either to automatic, or at least a gig or two or twice physical ram size.

PagedPoolSize is almost undoubtedly set to “0,” which means XP will automatically determine the limits.  Setting this to “0xFFFFFFFF” means “set this as high as possible,” which is a dynamic value, but based on your amount of physical RAM rather than every other knob in the system.  As a troubleshooting step, it’s reasonable to start here — reboot, then try out L4D2.

If it works, you can back this number down a bit:  some testing has shown that 256M is sufficient to play without problems (“0x10000000” hex, or “268435456” decimal) but your mileage may vary.


Medieval Life versus Modern Medicine

I’m a pretty big fan of science — and by that, I mean the scientific method and its reliance upon testable theories and repeatable outcomes.  As a corollary, I generally respect modern medicine, and it’s not unusual to think, hey, without modern medicine, where would I be?  To put it another way, if I lived in the Middle Ages, wouldn’t life suck?

My last foray into modern medicine involved a rotator cuff tear, followed by surgery, frozen shoulder syndrome, and six months of excruciating physical therapy.  If I were a medieval peasant, I probably wouldn’t be able to use my arm at all, right?

Well, no, it turns out my shoulder problems were caused by the modern antibiotics Levaquin and Cipro, both of which I was taking for medically dubious reasons (as many people do) and other antibiotics weren’t available because of my allergy to Augmentin.

Augmentin was prescribed to me when I had contracted a horrible kidney infection, and I actually developed the allergy while taking it.  But hey, modern medicine saved me from a kidney infection, right?

Yes, but since I acquired it in a hospital, I’m going to put this in the medieval column.  I was in the hospital due to kidney stones, which were so big, they wouldn’t pass on their own.  After lithotripsy failed, the more invasive laser surgery was required.

Kidney stones are pretty horrible, and it’s easy to imagine myself in a medieval hamlet, blaming demons or whatever for my bone crunching pain.  However, it turns out my kidney stones were caused by high fructose corn syrup, so it’s more likely I’d be dancing around my medieval hamlet in no pain whatsoever, probably wearing tights, which I understand was acceptable back then.

I’d also been in the hospital to have my gall bladder removed, due to gallstones, which anybody who’s had them can tell you are almost as bad as kidney stones.  Oh no!  My medieval self would be unequipped to deal with gallstones … but (by now, you can see this coming) wouldn’t actually have gallstone problems in the first place.  In an ironic twist, cutting high fructose corn syrup and fat out of my diet to avoid kidney stones led directly to gallstones.

So far, the Middle Ages are beating modern medicine by at least three points, and I’m not even counting the clothes.

Not that I’m anti-modern-medicine, by any means, and I’m not about to revive the medieval practice of buying Head-On headache sticks to ward off brain goblins.  Instead, I’m going to give full credit to modern medicine for Imitrex, which is truly wonderful.