Where userland read/write requests, whcih is larger than MAXPHYS,
are splitted?
Andriy Gapon
avg at freebsd.org
Fri Dec 10 15:03:31 UTC 2010
on 10/12/2010 16:48 Andriy Gapon said the following:
> But maybe I misunderstood your question and you talked about a different I/O layer
> or different I/O path.
>
Oh, probably you talk about physread/physwrite == physio.
Indeed, it issues bio-s with max size of si_iosize_max and runs them sequentially.
Besides, if uio is really "vectored", then each uio sub-buffer is processed
sequentially too.
This is probably less fast than running the requests in parallel; plus side could
be that less KVA is required for mapping user space buffer (UIO_USERSPACE case)
into kernel. Not sure if the latter is much of concern though. The sequential
code is simpler too :-)
--
Andriy Gapon
More information about the freebsd-hackers
mailing list