> Quoting Roland Dreier <[EMAIL PROTECTED]>: > Subject: Re: socket buffer accounting with UDP/ipoib > > > > + ib_dma_sync_single_for_cpu(priv->ca, addr, > IPOIB_BUF_SIZE, > > > + DMA_FROM_DEVICE); > > > + skb_copy_from_linear_data_offset(skb, IB_GRH_BYTES, > new_skb->data, > > > + wc->byte_len - > IB_GRH_BYTES); > > > + ib_dma_sync_single_for_device(priv->ca, addr, > IPOIB_BUF_SIZE, > > > + DMA_FROM_DEVICE); > > > > BTW, why is ib_dma_sync_single_for_device necessary here? > > Not sure what you're asking exactly. The sync for device is needed to > match the previous sync for the cpu obviously.
That's what I'm missing: must each sync_for_cpu be paired with sync_for_device? Is there documentation for this somewhere? > We need both syncs for > the same reason we need the unmap when we don't copy -- we're copying > data out of the skb we gave to the device earlier, so we need to make > sure the cpu sees the right data. Right, but device never reads the buffer, and CPU never modifies it. -- MST _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
