Re: O_DIRECT performance impact on 2.4.18 (was: Re: [PATCH] 2.5.14IDE 56)

Jens Axboe
2002-05-10T07:21:32Z

On Fri, May 10 2002, Andrew Morton wrote:
> > given there's still lots of idle-time, i'll file up lockmeter on here and
> > see if theres any gremlins there.
>
> lockmeter will go off the dial. All those copies happen at
> interrupt time, inside the global io_request_lock. It's horrid.

Depends. For IDE, that is so. For SCSI, actually no io_request_lock is
not held while doing the bounce copy. The write bounce copy never
happens with io_request_lock held for either, the copy-back on reads
only does if the caller holds io_request_lock while entering
end_that_request_first() (or its own replacement, __scsi_end_request()
for instance).

The read copy-back is nasty for most users regardless of io_request_lock
status, because it happens with interrupts disabled.

> Try it with the block-highmem patch:
> http://www.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.19pre1aa1/00_block-highmem-all-18b-4.gz

That's good advise :-)

--
Jens Axboe