Subject: Re: CVS commit: src/sys/dev/ieee1394
To: None <kiyohara@kk.iij4u.or.jp>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: source-changes
Date: 05/01/2006 23:08:19
In article <20060501.223750.70214822.kiyohara@kk.iij4u.or.jp>
kiyohara@kk.iij4u.or.jp wrote:

> known me too.  i.e. fxp(4), tlp(4)...
> Neither fxp(4) nor tlp(4) seem to do sync to the DMA descriptor. 

At least tlp(4) calls POSTREAD and POSTWRITE sync before
checking descriptors in tlp_rxintr() and tlp_txintr()
with TULIP_CDRXSYNC() and TULIP_CDTXSYNC(), though
as you said no PREREAD/PREWRITE sync op after it.

In fxp(4) case, RX descriptors are allocated in mbufs
(i.e. non coherent memory) so fxp_rxintr() calls PREREAD
sync op explicitly after checking RX descriptors,
otherwise it doesn't work properly on architecture
which has no DMA bus-snoop like arm. POSTREAD/POSTWRITE
sync ops are called where appropriate, I think.
(though POST* ops are no-op on most architecbures)

> > i.e. is there any benefits by removing sync ops?
> 
> I am expecting that be able to work early by this change.

Do you have any benchmark of the change? I doubt it's worth
on modern CPUs. It's much better to fix tlp(4), fxp(4) and other
drivers rather than such ineffective (and incorrect/misleading)
hack, IMHO.
---
Izumi Tsutsui