From: Travis Stratman <tstratman@emacinc.com>
To: James Chapman <jchapman@katalix.com>
Cc: netdev@vger.kernel.org
Subject: Re: data received but not detected
Date: Mon, 07 Jul 2008 16:56:38 -0500 [thread overview]
Message-ID: <1215467798.14023.130.camel@localhost.localdomain> (raw)
In-Reply-To: <485E185E.1090807@katalix.com>
On Sun, 2008-06-22 at 10:16 +0100, James Chapman wrote:
>
> I looked at macb.c and can see that it uses napi only for rx work,
> leaving tx interrupts enabled at all times. The interrupt handler reads
> the device interrupt status when a tx interrupt happens and may find rx
> bits also set. As a result, your netif_rx_schedule_prep() will sometimes
> return false because napi might be already scheduled. The code you have
> above (i.e. the "driver bug" case) is wrong.
Thanks for the reply James.
That is somewhat confusing to me because once an rx interrupt is
detected and the rx interrupts are disabled the rx bits should not be
set in the interrupt status register until they are re-enabled again
after polling has finished. Can you explain your point a little more?
>From what I can tell, an interrupt would need to come in between when
the ISR is read and when the rx bits are tested and rx ints are disabled
for it to be there the next time around in the while(status) loop.
Looking at it that way, it is completely possible.
> The napi code in the in-tree version looks suspect because it seems to
> enable rx interrupts unconditionally regardless of whether napi rx
> processing is complete.
Correct, this is one of the reasons that I rewrote the driver poll
function. There are a couple of other issues that I noticed as well.
> It might help to post a patch here showing all of your changes.
Did this earlier today, I should get a patch against 2.6.25 up tomorrow
which will be a little more useful.
Thanks!
Travis
next prev parent reply other threads:[~2008-07-07 21:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-17 22:08 data received but not detected Travis Stratman
2008-06-17 22:27 ` Stephen Hemminger
2008-06-17 22:40 ` Travis Stratman
2008-06-17 22:31 ` Ben Greear
2008-06-17 22:58 ` Travis Stratman
2008-06-17 23:45 ` Ben Greear
2008-06-19 22:53 ` Travis Stratman
2008-06-19 23:08 ` Ben Greear
2008-06-22 9:16 ` James Chapman
2008-07-07 21:56 ` Travis Stratman [this message]
2008-07-08 9:37 ` James Chapman
2008-07-15 20:46 ` Travis Stratman
2008-06-18 6:28 ` Evgeniy Polyakov
2008-06-19 23:10 ` Travis Stratman
[not found] ` <20080620060219.GA22784@2ka.mipt.ru>
2008-06-20 17:10 ` Travis Stratman
2008-06-20 17:25 ` Evgeniy Polyakov
2008-06-20 17:41 ` Travis Stratman
2008-06-20 17:54 ` Evgeniy Polyakov
2008-06-20 18:17 ` Travis Stratman
2008-06-20 18:23 ` Evgeniy Polyakov
2008-06-20 21:06 ` Travis Stratman
2008-06-21 7:12 ` Evgeniy Polyakov
2008-07-07 21:10 ` Travis Stratman
2008-07-07 21:25 ` Evgeniy Polyakov
2008-07-15 20:43 ` Travis Stratman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1215467798.14023.130.camel@localhost.localdomain \
--to=tstratman@emacinc.com \
--cc=jchapman@katalix.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox