[driver-discuss] Proposal: EOL dnet in favor of emancipated dfe
Steven Stallion
sstallion at gmail.com
Sun Jul 12 11:48:04 PDT 2009
Masa Murayama wrote:
> I struggled with gld3 version of dnet for two days.
> During that, I found several issues in dnet and fixed.
> Now dnet passed test08 of nicdrv in PITIN mode. But after test08
> was completed successfully, the windows system hanged, why?
Was this with my patch applied? If you were testing on the same host you
were running X, it sounds like you may have encountered a panic during
testing.
> At the first time, dnet didn't work with my two cards.
> I fixed following bugs, then dnet worked with my 21142 w/ MII PHY.
Interesting. I haven't had any issues with a single-port 21143 and
multi-port 21140.
> In dnet_mii_link_cb():
> need to call mii_getspeed() to get correct speed and duplexmode
> before calling setup_block().
>
> In dnet_alloc_bufs()
> Added following line after dnetp->rx_buf_vaddr[i] = rp->rbuf_vaddr;
> dnetp->rx_buf_paddr[i] = rp->rbuf_paddr;
>
>
> Test08:
> I think following three issues are important to pass test8 of nicdrv.
>
> Need to fix alloc_descriptor() and its callers. I modified
> alloc_descriptor() to return the index of the allocated tx
> descriptor, which is determined while dnetp->txlock is held.
> Currently the index is determined by the callers without holding
> the txlock.
>
> mac_tx_update() should be called after enough time from the
> no resource event happen. It will avoid race conditions against
> dnet_m_tx() returning with non-zero.
> To do this, I modified dnet_m_tx(), dnet_send(), dnet_intr(),
> dnet_reclaim_Tx_desc().
> This issue is very difficult and I considered it for long time
> last year.
>
>
> The number of descriptors used for a tx packet should be limited
> by a constant number enough smaller than tx descriptor ring size.
> I modified dnet_m_tx() and dnet_send().
>
>
> Test9 is not passed yet. I found following operation caused to
> hang the nic. I partially fixed it, but not completed.
>
> # ifconfig dnet0 plumb $hostname up
> # ifconfig dnet0 unplumb
> # ifconfig dnet0 plumb $hostname up (here, the nic hangs)
>
>
> the modified source code is here:
> http://homepage2.nifty.com/mrym3/taiyodo/dnet-0.0.3.tar.gz
Should I fold these changes into my patch or should this be left as an
additional Bug ID ?
Steve
More information about the driver-discuss
mailing list