On Wed, May 29, 2002 at 09:06:13AM +0200, Wolfgang Wegner wrote:
> Hi David,
> On Wed, May 29, 2002 at 01:28:22PM +1000, David Gibson wrote:
> > No it doesn't have to be done in the interrupt handler, it could be
> > done in a bottom half. However essentially every other network driver
> > does all the Rx work (up to netif_rx()) in the hard irq, so I'm
> > disinclined to do it otherwise.
> well, you have a point here.
> However, my observation shows that this blocks interrupts for quite a
> long time (800us, compared to the 700us which i remember being shouted
> at in another discussion some days ago), which is quite a lot. (IMHO)
> Furthermore, airo.c either has a faster way of doing so or the Cisco
> PCM-352 are faster by themselves. (Did not look into airo.c as close
> as orinoco.c...)
Yes, that is quite a long time. How long does it take in the airo
driver? If it's possible to speed up the orinoco.c interrupt handler,
rather than moving stuff into a BH I'd prefer to do that.
It's possible the Cisco cards are just faster, although I would have
thought it a bit unlikely, since I beleive the recent Cisco's are
based on the same MAC controller as the Lucent and Intersil cards (but
different firmware).
> It was just a question if it could be done.
>
> I would like to try it, so another question (the rxfid stuff...):
>
> Could I leave just getting the rxfid (rxfid = hermes_read_regn(hw, RXFID);)
> in the interrupt handler and let the bottom half process something like
> a list of FIDs filled by the interrupt handler, or is there any caveat
> in doing so? Would it be better (if at all possible) to leave reading
> in the head in the interrupt handler, such that the status could be
> evaluated and do just the copying of data (which i suspect to be the most
> time-consuming) from the bottom half?
Yes, it's possible. It adds significant complexity though, so I'd
really prefer not to.
--
David Gibson | For every complex problem there is a
[email protected] | solution which is simple, neat and
| wrong. -- H.L. Mencken
http://www.ozlabs.org/people/dgibson