netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tilman Schmidt <tilman@imap.cc>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Jarek Poplawski <jarkao2@gmail.com>,
	David Miller <davem@davemloft.net>,
	hidave.darkstar@gmail.com, linux-kernel@vger.kernel.org,
	tglx@linutronix.de, linux-wireless@vger.kernel.org,
	linux-ppp@vger.kernel.org, netdev@vger.kernel.org,
	paulus@samba.org, Michael Buesch <mb@bu3sch.de>,
	Oliver Hartkopp <oliver@hartkopp.net>
Subject: Re: [PATCH] net: Adjust softirq raising in __napi_schedule
Date: Tue, 27 Oct 2009 01:52:17 +0100	[thread overview]
Message-ID: <4AE64441.7060008@imap.cc> (raw)
In-Reply-To: <1256547380.28230.17.camel@johannes.local>

[-- Attachment #1: Type: text/plain, Size: 2335 bytes --]

Am 26.10.2009 09:56 schrieb Johannes Berg:
> On Mon, 2009-10-26 at 10:47 +0200, Tilman Schmidt wrote:
> 
>>> Basically it boils down to using netif_rx() when in (soft)irq, and
>>> netif_rx_ni() when in process context. That could just be an
>>> optimisation, but it's a very valid one.
>> Hmmm. That seems to contradict your earlier statement to me that
>> simply replacing a call to netif_rx() by one to netif_rx_ni()
>> when not in interrupt context isn't a valid solution either.
>> What am I missing?
> 
> Well, I think you misunderstood me. It would be correct to do this, if
> and only if the code that calls it doesn't need the extra guarantee.

I see. Thanks for the clarification.

> Any code (say ISDN code) that calls netif_rx() is clearly assuming to
> always be running in (soft)irq context, otherwise it couldn't call
> netif_rx() unconditionally. Agree so far?

Well, in fact I'm not sure. :-) All I know is that in the ISDN case, no
such assumption is explicitly stated anywhere. (The code in question is
called from the rcvcallb_skb() callback method which the hardware driver
calls when data has been received, and the description of that method in
Documentation/isdn/INTERFACE does not say anything about the context in
which it may be called.) The relevant code in drivers/isdn/i4l/isdn_ppp.c
is rather old, perhaps even older than softirqs and the netif_rx() /
netif_rx_ni() split. (Bear in mind that we are talking about the old
ISDN4Linux subsystem which initially didn't even make it into the 2.6
series because it was considered obsolete.) It seems quite possible to me
that just no one ever thought about that question.

> So now if you change the ISDN code to call netif_rx_ni(), you've changed
> the assumption that the ISDN code makes -- that it is running in
> (soft)irq context. Therefore, you need to verify that this is actually a
> correct change, which is what I tried to say.

Understood. However, the fact that the local_softirq_pending message is
appearing would seem to indicate that this assumption was wrong to
begin with, wouldn't it?

Thanks,
Tilman

-- 
Tilman Schmidt                    E-Mail: tilman@imap.cc
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 254 bytes --]

  reply	other threads:[~2009-10-27  0:52 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20091011095217.GA2200@darkstar>
     [not found] ` <1255255735.4095.53.camel@johannes.local>
     [not found]   ` <4AD1BF06.3050103@phoenixsoftware.de>
     [not found]     ` <1255261251.4095.143.camel@johannes.local>
2009-10-12  8:28       ` NOHZ: local_softirq_pending 08 Tilman Schmidt
2009-10-12 10:32         ` David Miller
2009-10-12 11:25           ` Tilman Schmidt
2009-10-15 11:40             ` Jarek Poplawski
2009-10-15 17:53               ` Jarek Poplawski
2009-10-21 18:46                 ` Tilman Schmidt
2009-10-21 21:19                   ` [PATCH] net: Adjust softirq raising in __napi_schedule Jarek Poplawski
2009-10-21 21:25                     ` Johannes Berg
2009-10-21 21:37                       ` Tilman Schmidt
2009-10-21 21:39                       ` Jarek Poplawski
2009-10-22  8:27                         ` Johannes Berg
2009-10-23 14:39                           ` Tilman Schmidt
2009-10-23 14:46                             ` Johannes Berg
2009-10-26  7:41                               ` Jarek Poplawski
2009-10-26  7:44                                 ` Johannes Berg
2009-10-26  7:54                                   ` Jarek Poplawski
2009-10-26  7:58                                     ` Johannes Berg
2009-10-26  8:47                                       ` Tilman Schmidt
2009-10-26  8:56                                         ` Johannes Berg
2009-10-27  0:52                                           ` Tilman Schmidt [this message]
     [not found]                                             ` <4AE64441.7060008-ZTO5kqT2PaM@public.gmane.org>
2009-10-27  7:01                                               ` Johannes Berg
2009-10-22 11:29                         ` David Miller
2009-10-22 12:54                           ` Jarek Poplawski
2009-10-22 23:37                   ` NOHZ: local_softirq_pending 08 Tilman Schmidt
2009-10-23 13:34                     ` Johannes Berg
2009-10-23 14:27                       ` Tilman Schmidt
2009-10-23 14:31                         ` Johannes Berg
2009-10-23 16:33                           ` Tilman Schmidt

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=4AE64441.7060008@imap.cc \
    --to=tilman@imap.cc \
    --cc=davem@davemloft.net \
    --cc=hidave.darkstar@gmail.com \
    --cc=jarkao2@gmail.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-ppp@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mb@bu3sch.de \
    --cc=netdev@vger.kernel.org \
    --cc=oliver@hartkopp.net \
    --cc=paulus@samba.org \
    --cc=tglx@linutronix.de \
    /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;
as well as URLs for NNTP newsgroup(s).