Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Handling of short frames in gem(4) (was: CVS commit: src/sys/dev/ic)



On Tue, Jan 01, 2008 at 05:38:38PM +0100, Joerg Sonnenberger wrote:
> > > 
> > > Log Message:
> > > gem_start() pads a Tx packet to the minimum ethernet frame length
> > > by adding a segment to the Tx chain.  That entails using one more
> > > descriptor.  It did not synchronize the last descriptor.
> > > 
> > > In gem_start(), clarify and repair DMA synchronization of the Tx
> > > descriptors.  Sync them all.
> > 
> > Wouldn't it be cheaper (and simpler) to allocate a new mbuf and copy
> > the data? IIRC DMA operations are quite expensive on UltraSPARC systems.
> 
> Or even just have a mbuf for each TX ring entry and check for that
> before freeing.

Actually it shold be possible to tx the padding from a permanently mapped
buffer of zeros.

(OTOH it isn't actually clear to me that using a permanently mapped
buffer for tx and rx isn't faster on systems where making memory
DMA accessible isn't completely trivial.)

        David

-- 
David Laight: david%l8s.co.uk@localhost



Home | Main Index | Thread Index | Old Index