Re: [PATCH] PAGE_SIZE IO for RAW (RAW VARY)

Badari Pulavarty
2002-01-09T23:20:37Z

>
> > Here is a 2.4.17 patch for doing PAGE_SIZE IO on raw devices. Instead
> > of doing 512 byte buffer heads, the patch does 4K buffer heads. This
> > patch significantly reduced CPU overhead and increased IO throughput
> > in our database benchmark runs. (CPU went from 45% busy to 6% busy).
>
> Does that work out when the application is still doing 512 byte raw I/O.
> Its fine to fall back to the current performance but at least one very
> large competing database would get quite irate if the fallback made
> 512 byte mode slower or nonfunctional ?
>

It works as usual for 512 byte IO (few checks in the code). I have not
seen any slowness for < 4K IO. Infact, I can change the patch to try
raw vary only for iosize > PAGE_SIZE.

I tested with 2 large competing databases, both of them seem to benifit
significantly from this patch. I tested with 4 different Fiber & SCSI
adaptors, they all seem to work fine. (only on i386).

But unfortunately, if the hardware have special alignment restrictions
(as you mentioned), this patch does not work. I don't know if it makes
sense to make this configurable and expect customer/user to enable this
feature if they know about their hardware/driver alignment restrictions.

Thanks,
Badari