2000-12-01 19:25:56

by Stephen C. Tweedie

[permalink] [raw]
Subject: Re: Updated: raw I/O patches (v2.2)

Hi,

On Tue, Nov 21, 2000 at 11:18:15AM -0500, Eric Lowe wrote:
>
> I have updated raw I/O patches with Andrea's and my fixes against 2.2.
> They check for CONFIG_BIGMEM so they can be applied and compiled
> without the bigmem patch.

I've just posted an assembly of all of the outstanding raw IO bugfixes
I know of, to

ftp.uk.linux.org:/pub/linux/sct/fs/raw-io
and ftp.*.kernel.org:/pub/linux/kernel/people/sct/raw-io

in kiobuf-2.2.18pre24.tar.gz. README is appended below.

Eric, this contains at least one bug fix that was missing from your
patch set --- we need a flush_dcache_page() after obtaining the
mapping on some CPUs (spotted by davem).

I've kept the bigmem and non-bigmem versions separate. Your
CONFIG_BIGMEM code did some rather weird (though not strictly buggy)
things in the case of a non-bigmem-enabled kernel.

Linus and co are doing a set of cleanups for 2.4 dirty page handling,
and I'll redo all of the fixes here for 2.4 once that is in place.
The really important bugfix is the fault-handling one, and we can't do
that reliably without the VM changes in place.

Cheers,
Stephen

00README:
This directory contains the following files:

raw-2.2.18pre24.00.new-rawio : Old (2.2.17, buggy) raw IO patches

raw-2.2.18pre24.01.fix-ENXIO : Fix return value at end of device
raw-2.2.18pre24.02.fix-exports : Export kiobuf symbols to modules
raw-2.2.18pre24.03.fix-freebuf : Fix freeing of bh'es on error
raw-2.2.18pre24.04.fix-mapcopy : Fix expanding of kiobuf lists
raw-2.2.18pre24.05.fix-faultin : Fix faulting/pinning of user pages
raw-2.2.18pre24.06.fix-freebuf : Wakup tasks when we free bh'es
raw-2.2.18pre24.07.fix-dcache : Flush cpu dcache
raw-2.2.18pre24.08.fix-retry : Fix error recovery on fault failure

raw-2.2.18pre24.99.new-bigmem : Support for bigmem configurations

You can either apply all of these patches in order (the bigmem one is
optional), or --- preferably --- just apply the ONE of the combined
patches:

raw-2.2.18pre24.FULL.diff : raw IO for non-bigmem kernels
raw-2.2.18pre24.FULL:BIGMEM.diff : raw IO for bigmem kernels

--Stephen Tweedie <[email protected]>, 1 Dec 2000