Re: [PATCH] mm: yield during swap prefetching

Helge Hafting
2006-03-09T08:57:37Z

Con Kolivas wrote:

>On Wed, 8 Mar 2006 12:11 pm, Andrew Morton wrote:
>
>
>>but, but. If prefetching is prefetching stuff which that game will soon
>>use then it'll be an aggregate improvement. If prefetch is prefetching
>>stuff which that game _won't_ use then prefetch is busted. Using yield()
>>to artificially cripple kprefetchd is a rather sad workaround isn't it?
>>
>>
>
>It's not the stuff that it prefetches that's the problem; it's the disk
>access.
>
>
Well, seems you have some sorry kind of disk driver then?
An ide disk not using dma?

A low-cpu task that only abuses the disk shouldn't make an impact
on a 3D game that hogs the cpu only. Unless the driver for your
harddisk is faulty, using way more cpu than it need.

Use hdparm, check the basics:
unmaksirq=1, using_dma=1, multcount is some positive number,
such as 8 or 16, readahead is some positive number.
Also use hdparm -i and verify that the disk is using some
nice udma mode. (too old for that, and it probably isn't worth
optimizing this for...)

Also make sure the disk driver isn't sharing an irq with the
3D card.

Come to think of it, if your 3D game happens to saturate the
pci bus for long times, then disk accesses might indeed
be noticeable as they too need the bus. Check if going to
a slower dma mode helps - this might free up the bus a bit.

Helge Hafting