* 2.4.18 orinoco.c __orinoco_ev_rx question
@ 2002-05-28 14:01 Wolfgang Wegner
2002-05-29 3:28 ` David Gibson
0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Wegner @ 2002-05-28 14:01 UTC (permalink / raw)
To: linux-kernel
Hi all,
after sorting out my sk_buff problem [turned out to be problems with
pcmcia-cs-3.1.33's own include files, which throw away some of the kernel's
config options, thus affecting struct sk_buff declaration] i am now
investigating some things in orinoco.c of 2.4.18, which seems almost
identical to the one from pcmcia-cs
My concern is, if it is really necessary to do the whole rx work in the
interrupt handler, or a bottom half could be used here?
I ask because like this, the interrupt is set for about 800us in a
whole-frame (MTU) receive, which IMHO is not really desirable. I have to
admit i still did not really understand the use of FIDs, so i am not sure,
but couldn't this be taken out of the interrupt handler itself?
(Of course, i can simply implement and try it, but as i am absolutely
not aware about the use of FIDs, i do not want to risk introducing any
nice subtle bugs...)
Regards,
Wolfgang
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.4.18 orinoco.c __orinoco_ev_rx question
2002-05-28 14:01 2.4.18 orinoco.c __orinoco_ev_rx question Wolfgang Wegner
@ 2002-05-29 3:28 ` David Gibson
2002-05-29 7:06 ` Wolfgang Wegner
0 siblings, 1 reply; 4+ messages in thread
From: David Gibson @ 2002-05-29 3:28 UTC (permalink / raw)
To: linux-kernel
On Tue, May 28, 2002 at 04:01:35PM +0200, Wolfgang Wegner wrote:
> Hi all,
>
> after sorting out my sk_buff problem [turned out to be problems with
> pcmcia-cs-3.1.33's own include files, which throw away some of the kernel's
> config options, thus affecting struct sk_buff declaration] i am now
> investigating some things in orinoco.c of 2.4.18, which seems almost
> identical to the one from pcmcia-cs
>
> My concern is, if it is really necessary to do the whole rx work in the
> interrupt handler, or a bottom half could be used here?
> I ask because like this, the interrupt is set for about 800us in a
> whole-frame (MTU) receive, which IMHO is not really desirable. I have to
> admit i still did not really understand the use of FIDs, so i am not sure,
> but couldn't this be taken out of the interrupt handler itself?
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.
> (Of course, i can simply implement and try it, but as i am absolutely
> not aware about the use of FIDs, i do not want to risk introducing any
> nice subtle bugs...)
--
David Gibson | For every complex problem there is a
david@gibson.dropbear.id.au | solution which is simple, neat and
| wrong. -- H.L. Mencken
http://www.ozlabs.org/people/dgibson
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.4.18 orinoco.c __orinoco_ev_rx question
2002-05-29 3:28 ` David Gibson
@ 2002-05-29 7:06 ` Wolfgang Wegner
2002-06-03 6:24 ` David Gibson
0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Wegner @ 2002-05-29 7:06 UTC (permalink / raw)
To: David Gibson, linux-kernel
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...)
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?
Regards,
Wolfgang
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.4.18 orinoco.c __orinoco_ev_rx question
2002-05-29 7:06 ` Wolfgang Wegner
@ 2002-06-03 6:24 ` David Gibson
0 siblings, 0 replies; 4+ messages in thread
From: David Gibson @ 2002-06-03 6:24 UTC (permalink / raw)
To: Wolfgang Wegner; +Cc: linux-kernel
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
david@gibson.dropbear.id.au | solution which is simple, neat and
| wrong. -- H.L. Mencken
http://www.ozlabs.org/people/dgibson
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-06-03 6:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-28 14:01 2.4.18 orinoco.c __orinoco_ev_rx question Wolfgang Wegner
2002-05-29 3:28 ` David Gibson
2002-05-29 7:06 ` Wolfgang Wegner
2002-06-03 6:24 ` David Gibson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox