Where userland read/write requests, whcih is larger than MAXPHYS,
are splitted?
Andriy Gapon
avg at freebsd.org
Fri Dec 10 14:48:27 UTC 2010
on 10/12/2010 15:22 Lev Serebryakov said the following:
> Hello, Freebsd-geom.
>
> I'm digging thought GEOM/IO code and can not find place, where
> requests from userland to read more than MAXPHYS bytes, is splitted
> into several "struct bio"?
Check out g_disk_start().
The split is done based on disk-specific d_maxsize, not hardcoded MAXPHYS, of course.
> It seems, that these children request are issued one-by-one, not in
> parallel, am I right? Why? It breaks down parallelism, when
> underlying GEOM can process several requests simoltaneously?
How do you *issue* the child requests in parallel?
Of course, they can *run* in parallel if system configuration permits that and
request run time is sufficient for an overlap to happen.
Besides, there are no geoms under disk geom, it works on peripheral drivers.
But maybe I misunderstood your question and you talked about a different I/O layer
or different I/O path.
--
Andriy Gapon
More information about the freebsd-geom
mailing list