This patch makes loop work like a block remapper. It was started
yesterday due to me trying to solve the (chronic) loop deadlocks
that have plauged 2.3/2.4 for ages. It has several advantages over
the old request handling:
* loop doesn't eat request slots. This alone saves run time memory
requirements (standard is 256 request slots per queue)
* don't have to fight block layer wrt merging, plugging, etc
* much faster, loop doesn't serialize I/O requests anymore. This also
allows the target device elevator to work a lot better.
People having loop problems, please give this a go. It may still have
a few 'issues', but I bet they are solvable now. If you are asking
'why' when seeing this patch, I urge you to
and have a barf bag ready.
The builtin transfer functions (none and xor) work with the changes,
but external crypto additions may not. The reason is that the raw
buf and loop buf passed to them can now be identical (the previous
version always used getblk() to get a new buffer to work on).
-- * Jens Axboe <firstname.lastname@example.org> * SuSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to email@example.com Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:10 EST