From: Andrew Morton <akpm@linux-foundation.org>
To: Cong Wang <amwang@redhat.com>
Cc: netdev@vger.kernel.org, David Miller <davem@davemloft.net>
Subject: Re: [PATCH 14/15] netpoll: re-enable irq in poll_napi()
Date: Fri, 24 Aug 2012 12:43:34 -0700 [thread overview]
Message-ID: <20120824124334.10313575.akpm@linux-foundation.org> (raw)
In-Reply-To: <1344597891-32242-15-git-send-email-amwang@redhat.com>
On Fri, 10 Aug 2012 19:24:50 +0800
Cong Wang <amwang@redhat.com> wrote:
> napi->poll() needs IRQ enabled, so we have to re-enable IRQ before
> calling it.
>
> Cc: David Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>
> ---
> net/core/netpoll.c | 10 +++++++++-
> 1 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/net/core/netpoll.c b/net/core/netpoll.c
> index e4ba3e7..346b1eb 100644
> --- a/net/core/netpoll.c
> +++ b/net/core/netpoll.c
> @@ -168,16 +168,24 @@ static void poll_napi(struct net_device *dev)
> struct napi_struct *napi;
> int budget = 16;
>
> + WARN_ON_ONCE(!irqs_disabled());
> +
> list_for_each_entry(napi, &dev->napi_list, dev_list) {
> + local_irq_enable();
> if (napi->poll_owner != smp_processor_id() &&
> spin_trylock(&napi->poll_lock)) {
> + rcu_read_lock_bh();
> budget = poll_one_napi(rcu_dereference_bh(dev->npinfo),
> napi, budget);
> + rcu_read_unlock_bh();
> spin_unlock(&napi->poll_lock);
>
> - if (!budget)
> + if (!budget) {
> + local_irq_disable();
> break;
> + }
> }
> + local_irq_disable();
> }
> }
This commit (6bdb7fe3104 in mainline) makes my netconsole-using x86_64
box lock up during boot. Dunno why, but I do have a cellphone:
http://ozlabs.org/~akpm/stuff/IMG_20120824_122054.jpg
next prev parent reply other threads:[~2012-08-24 19:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-10 11:24 [PATCH v5 00/15] some netpoll and netconsole fixes Cong Wang
2012-08-10 11:24 ` [PATCH 01/15] netpoll: use GFP_ATOMIC in slave_enable_netpoll() and __netpoll_setup() Cong Wang
2012-08-10 11:24 ` [PATCH 02/15] netpoll: make __netpoll_cleanup non-block Cong Wang
2012-08-10 11:24 ` [PATCH 03/15] netconsole: do not release spin_lock when calling __netpoll_cleanup Cong Wang
2012-08-10 11:24 ` [PATCH 04/15] netpoll: take rcu_read_lock_bh() in netpoll_rx() Cong Wang
2012-08-10 11:24 ` [PATCH 05/15] netpoll: use netpoll_rx_on() " Cong Wang
2012-08-10 11:24 ` [PATCH 06/15] netpoll: take rcu_read_lock_bh() in netpoll_send_skb_on_dev() Cong Wang
2012-08-10 11:24 ` [PATCH 07/15] bridge: add some comments for NETDEV_RELEASE Cong Wang
2012-08-10 11:24 ` [PATCH 08/15] bridge: use list_for_each_entry() in netpoll functions Cong Wang
2012-08-10 11:24 ` [PATCH 09/15] netpoll: check netpoll tx status on the right device Cong Wang
2012-08-10 11:24 ` [PATCH 10/15] netpoll: convert several functions to bool Cong Wang
2012-08-10 11:24 ` [PATCH 11/15] vlan: clean up some variable names Cong Wang
2012-08-10 11:24 ` [PATCH 12/15] vlan: clean up vlan_dev_hard_start_xmit() Cong Wang
2012-08-10 11:24 ` [PATCH 13/15] netpoll: handle vlan tags in netpoll tx and rx path Cong Wang
2012-08-10 11:24 ` [PATCH 14/15] netpoll: re-enable irq in poll_napi() Cong Wang
2012-08-24 19:43 ` Andrew Morton [this message]
2012-08-25 6:28 ` Cong Wang
2012-08-10 11:24 ` [PATCH 15/15] netconsole.txt: revision of examples for the receiver of kernel messages Cong Wang
2012-08-13 9:45 ` [PATCH v5 00/15] some netpoll and netconsole fixes Cong Wang
2012-08-14 4:01 ` David Miller
2012-08-14 21:41 ` David Miller
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=20120824124334.10313575.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=amwang@redhat.com \
--cc=davem@davemloft.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.