Re: MMC layer regression with single-block controllers

From: Jens Axboe
Date: Wed Mar 25 2009 - 07:43:02 EST


On Wed, Mar 25 2009, Pierre Ossman wrote:
> On Wed, 25 Mar 2009 12:04:01 +0100
> Jens Axboe <jens.axboe@xxxxxxxxxx> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/