Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/dev/ic
On Sun, Dec 09, 2007 at 07:24:13AM +0900, Izumi Tsutsui wrote:
> dyoung%pobox.com@localhost wrote:
>
> > > The problem is that fxp(4) driver has to update cb_command
> > > bits during the cb_status possibly being updated by fxp chip.
> >
> > Why?
>
> Because the driver and chip are designed so?
>
> >> * Cause the chip to interrupt and suspend command
> >> * processing once the last packet we've enqueued
> >> * has been transmitted.
>
> > There is not any notion of NIC / host "ownership" of transmit descriptors?
> > I find that hard to believe.
>
> There is a FXP_CB_STATUS_C (complete?) bit but I don't
> know if it's used to handle ownership.
>
> We have to set "suspend" bit in the command desriptors
> of the last TX descriptor (because STATUS_C isn't used
> to see ownership?), but they have to be updated when
> we re-add free descriptors during TX might still be processed.
>
> > How is the host able to modify any
> > descriptor at all without racing against the NIC?
>
> By 16bit atomic ops on DMA-cache coherent CPUs?
> (only status bits are updated by chip and only command bits
> are written by a host, and thay are in the different 16bit word)
> That's the reason why I said "it's designed for (and by) intel."
I understand, now. Thanks for the explanation!
Dave
--
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933 ext 24
Home |
Main Index |
Thread Index |
Old Index