tech-net archive

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

Re: NetBSD 5.1 TCP performance issue (lots of ACK)



On Fri, Oct 28, 2011 at 08:24:53PM -0500, David Young wrote:
> > I don't think so: if WRX_ST_DD is not set, we won't read anything more frm
> > this descriptor so there's no need to sync it again.
> 
> Currently, if WRX_ST_DD is not set, we sync the descriptor and
> get out of the loop:
> 
>                       WM_CDRXSYNC(sc, i, BUS_DMASYNC_PREREAD);
>                       break;
> 
> If WRX_ST_DD is set, however, we do read more from the descriptor.  That
> is why I ask whether we should sync it again.
> 
> It is strange and possibly unnecessary to have two sync calls
> back-to-back, for it would be:
> 
>               WM_CDRXSYNC(sc, i, BUS_DMASYNC_PREREAD);
>               if ((status & WRX_ST_DD) == 0) {
>                       break;
>               }
> 
>               /*                                                              
>                * sync again, to make sure the values below have been read     
>                * after status.                                                
>                */                                                             
>               WM_CDRXSYNC(sc, i, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);

OK, I see. But, is there a platoform where BUS_DMASYNC_PREREAD is not
a NOP ? I can't what kind of work BUS_DMASYNC_PREREAD could have to do ...

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index