The following note describes what is occurring intermittently on our boxes when one of our vendor-supplied applications starts up. It appears there is a fix, but noone seems to be able to tell what kernel the fix is in.
We are running Red Hat Advanced Server 2.1 Kernel 2.4.9-e40 and need to know what to upgrade to.
Also, I know about low memory in old Windows/MS-DOS machines, and on OS/390, but what is low memory in Linux?
See note from IBM:
You're showing all the signs of the "kswapd" bug present in v2.4 kernels.
Well, kswapd gets blamed for the problem. It is actually caused by using up
nearly all of low memory with the buffer header and/or inode slab caches.
(Cat /proc/slabinfo when kswapd is running >= 99% and see if those two caches
have grown extra large.) Anyway, kswapd gets triggered because a zone has
hit its low memory threshold. But kswapd can't swap buffer headers or
inodes. The situation is hopeless, yet kswapd presses on anyway, scouring
every memory zone for pages to free, all the while holding important memory
locks.
Meanwhile, every program that wants more memory will spin on those locks.
That's what the .text.lock.* entries are: the out-of-line spin code for each
lock; it is used when the lock is already owned by some other CPU.
Net result: a computer that runs like molasses in January.
Of the several proposed patches for this bug, Andrea Archangeli's and Andrew
Morton's worked best in our tests. I believe that Andrea was going to add in
some of Andrew's code for the final fix. The kernel that is on the SLES 8 /
UL 1.0 gold CDs works fine so I assume the Vulcan Mind Meld on the patches
went well.
Just wanted to see if anyone on this forum might know.
Glen Austin