I have run GNU/Linux since 0.99, and it is only in the most recent years that I have seen kswapd use any serious CPU-time.
In ye olde days the swapsystem would be waiting for the disk and hardly use any CPU time while waiting for the disk to respond.
What changed, so that kswapd now happily eats almost a full core?
What is kswapd doing that is so CPU heavy?