Paul Durrant wrote:
> Kacheong Poon wrote:
>> Andrew Gallatin wrote:
>>
>>> What I actually see on solaris (b86, amd64), even after disabling
>>> tcp_wroff_xtra is something like this: 54 2420 252 3908 4096 188 3908
>>> 4096 188 3844 3380
>>
> 
> The DMA segment sizes (which is what I assume this list is showing) are 

Yes.

> going to pretty arbitrary I would have thought since they will depend on 
> the write sizes issued by the app., the alignment of the data block the 
> copyin() goes to (because of page boundaries) and the ack intervals from 
> the other end of the link.
> 
>   Paul


Allocb ends up with buffers of somewhat random physical size/aligment.

On other OSes, (freebsd, linux) transmits are copied into buffers
which are nicely aligned to page boundaries, and the DMA descriptor
chains may have tiny segments at the front or rear, but
never in the middle, as seems to be the case in Solaris.

I'm not sure what the problem really is.  Perhaps it is because
allocb allocates things with a general purpose allocator which
does not care about physical alignment.

BTW, could somebody explain the rationale for the allocb
dblk_sizes[]?  For example, why 3856 and not 4096?

Drew
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to