Increasing MAXPHYS

Scott Long scottl at
Tue Mar 23 00:05:26 UTC 2010

On Mar 22, 2010, at 5:36 PM, Pawel Jakub Dawidek wrote:

> On Mon, Mar 22, 2010 at 08:23:43AM +0000, Poul-Henning Kamp wrote:
>> In message <4BA633A0.2090108 at>, Andriy Gapon writes:
>>> on 21/03/2010 16:05 Alexander Motin said the following:
>>>> Ivan Voras wrote:
>>>>> Hmm, it looks like it could be easy to spawn more g_* threads (and,
>>>>> barring specific class behaviour, it has a fair chance of working out of
>>>>> the box) but the incoming queue will need to also be broken up for
>>>>> greater effect.
>>>> According to "notes", looks there is a good chance to obtain races, as
>>>> some places expect only one up and one down thread.
>>> I haven't given any deep thought to this issue, but I remember us discussing
>>> them over beer :-)
>> The easiest way to obtain more parallelism, is to divide the mesh into
>> multiple independent meshes.
>> This will do you no good if you have five disks in a RAID-5 config, but
>> if you have two disks each mounted on its own filesystem, you can run
>> a g_up & g_down for each of them.
> A class is suppose to interact with other classes only via GEOM, so I
> think it should be safe to choose g_up/g_down threads for each class
> individually, for example:
> 	/dev/ad0s1a (DEV)
> 	       |
> 	g_up_0 + g_down_0
> 	       |
> 	     ad0s1a (BSD)
> 	       |
> 	g_up_1 + g_down_1
> 	       |
> 	     ad0s1 (MBR)
> 	       |
> 	g_up_2 + g_down_2
> 	       |
> 	     ad0 (DISK)
> We could easly calculate g_down thread based on bio_to->geom->class and
> g_up thread based on bio_from->geom->class, so we know I/O requests for
> our class are always coming from the same threads.
> If we could make the same assumption for geoms it would allow for even
> better distribution.

The whole point of the discussion, sans PHK's interlude, is to reduce the context switches and indirection, not to increase it.  But if you can show decreased latency/higher-iops benefits of increasing it, more power to you.  I would think that the results of DFly's experiment with parallelism-via-more-queues would serve as a good warning, though.


More information about the freebsd-arch mailing list