Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Dec 2010 16:48:23 +0200
From:      Andriy Gapon <avg@freebsd.org>
To:        Lev Serebryakov <lev@serebryakov.spb.ru>
Cc:        freebsd-hackers@freebsd.org, freebsd-geom@freebsd.org
Subject:   Re: Where userland read/write requests, whcih is larger than MAXPHYS, are splitted?
Message-ID:  <4D023DB7.9080509@freebsd.org>
In-Reply-To: <1365605559.20101210162253@serebryakov.spb.ru>
References:  <1365605559.20101210162253@serebryakov.spb.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D023DB7.9080509>