> This small correction is the crux of the problem: if it blocks, it
> takes away from the ability of the process to continue doing useful
> work. If it returns -EAGAIN, then that's okay, the io will be
> resubmitted later when other disk io has completed. But, it should be
> possible to continue servicing network requests or user io while disk
> io is underway.
typical blocking point is waiting for page completion, not
__wait_request(). But, this is really not an issue, NR_REQUESTS can be
increased anytime. If NR_REQUESTS is large enough then think of it as the
'absolute upper limit of doing IO', and think of the blocking as 'the
kernel pulling the brakes'.
[overhead of 512-byte bhs in the raw IO code is an artificial problem of
the raw IO code.]
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/