Most page in events for code that's been forced out look like "dependent reads," meaning you can't get to page fault N + 1 until the data for page fault N is in and the task has a chance to use the data.
Swap prefetch doesn't have that sort of dependency. It can merely put all the requests out there because it knows what needs to be brought back in. Also, because all the requests are presented in rapid succession, the elevator algorithm and reordering algorithms on the drive can process the requests more efficiently as well.
One way swap prefetch wins
Most page in events for code that's been forced out look like "dependent reads," meaning you can't get to page fault N + 1 until the data for page fault N is in and the task has a chance to use the data.
Swap prefetch doesn't have that sort of dependency. It can merely put all the requests out there because it knows what needs to be brought back in. Also, because all the requests are presented in rapid succession, the elevator algorithm and reordering algorithms on the drive can process the requests more efficiently as well.
Here's hoping it goes in. :-)