Messages in this thread | | | Date | Wed, 25 Mar 2009 12:42:48 +0100 | From | Jens Axboe <> | Subject | Re: MMC layer regression with single-block controllers |
| |
On Wed, Mar 25 2009, Pierre Ossman wrote: > On Wed, 25 Mar 2009 12:04:01 +0100 > Jens Axboe <jens.axboe@oracle.com> wrote: > > > > > Well, as the warning tells you, it's not supported. But that doesn't > > mean you can't do single sector transfers and complete the IO when you > > have done all of them. > > > > That's an annoying limitation and sort of defeats the purpose of > specifying a maximum sector count. Why can't it go below 8?
Because it would add all sorts of complexity for handling 4kb block size file systems on top of the block device. The bio_add_page() api depends on being able to add a single page at least, it has to or you would need to push that complexity to the callers.
So it's annoying, but you have to do the incremental completions yourself for the (obscure) device that doesn't do more than 512b transfers. It's really not that difficult, and it would be simpler than supporting partial completions generically in the block layer.
Saying that it defeats the purpose of the setting is missing the bigger picture - basically all other devices, that have sane limits (like 128k, or whatnot).
-- Jens Axboe
| |