Natty: vmscan: fix a livelock in kswapd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu |
Fix Released
|
Undecided
|
Tim Gardner | ||
Natty |
Fix Released
|
Undecided
|
Tim Gardner | ||
Oneiric |
Fix Released
|
Undecided
|
Tim Gardner |
Bug Description
Upstream 4746efded84d7c5
I'm running a workload which triggers a lot of swap in a machine with 4 nodes. After I kill the workload, I found a kswapd livelock. Sometimes kswapd3 or kswapd2 are keeping running and I can't access filesystem, but most memory is free.
This looks like a regression since commit 08951e545918c159 ("mm: vmscan: correct check for kswapd sleeping in sleeping_
Node 2 and 3 have only ZONE_NORMAL, but balance_pgdat() will return 0 for classzone_idx. The reason is end_zone in balance_pgdat() is 0 by default, if all zones have watermark ok, end_zone will keep 0.
Later sleeping_
Will be released in 3.0 final.