From: Mark Huth <mhuth@mvista.com>
To: "Kok, Auke" <auke-jan.h.kok@intel.com>
Cc: netdev@vger.kernel.org, Jesse Brandeburg <jesse.brandeburg@intel.com>
Subject: Re: [PATCH] e1000 stop raw interrupts disabled nag from RT
Date: Wed, 28 Feb 2007 21:59:59 -0700 [thread overview]
Message-ID: <45E65DCF.8050903@mvista.com> (raw)
In-Reply-To: <45E645F4.2090403@intel.com>
Kok, Auke wrote:
> Mark Huth wrote:
>> Current e1000_xmit_frame spews raw interrupt disabled nag messages when
>> used with RT kernel patches. This patch uses spin_trylock_irqsave,
>> which allows RT patches to properly manage the irq semantics.
>
> Looks OK with me on first sight, I'll keep it on my stack and push it
> upstream after Jesse looks it over.
>
> Which -RT paches make this pop up btw? I'd like to repro it.
>
> Thanks,
>
> Auke
Auke,
Well, I'm not an expert on the realtime patches - but most any patch set
from Ingo seems to set this off - we've run through a bunch all the way
since 2.6.10. It's a standard warning to get drivers to not mess with
the processor interrupt function, since RT threads both the hard and
soft irqs, and except for rare instances, the drivers and critical
region protection no longer require the processor interrupt to be off.
The XX_irqsave functions get turned into pre-empt disable, which is
adequate for most things. But the local_irq_save is recognized and
warned, and then if it is really necessary it can be converted to an RT
varient that won't warn.
>
>
>
>
>> Signed-off-by: Mark Huth <mhuth@mvista.com>
>> ---
>> diff --git a/drivers/net/e1000/e1000_main.c
>> b/drivers/net/e1000/e1000_main.c
>> index 619c892..48f94ee 100644
>> --- a/drivers/net/e1000/e1000_main.c
>> +++ b/drivers/net/e1000/e1000_main.c
>> @@ -3363,12 +3363,9 @@ e1000_xmit_frame(struct sk_buff *skb, struct
>> net_device *netdev)
>> (adapter->hw.mac_type == e1000_82573))
>> e1000_transfer_dhcp_info(adapter, skb);
>>
>> - local_irq_save(flags);
>> - if (!spin_trylock(&tx_ring->tx_lock)) {
>> + if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags))
>> /* Collision - tell upper layer to requeue */
>> - local_irq_restore(flags);
>> return NETDEV_TX_LOCKED;
>> - }
>>
>> /* need: count + 2 desc gap to keep tail from touching
>> * head, otherwise try next time */
>
next prev parent reply other threads:[~2007-03-01 5:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-01 2:54 [PATCH] e1000 stop raw interrupts disabled nag from RT Mark Huth
2007-03-01 3:18 ` Kok, Auke
2007-03-01 4:59 ` Mark Huth [this message]
2007-03-01 16:55 ` Kok, Auke
2007-03-01 17:11 ` Michal Schmidt
2007-03-01 17:29 ` Kok, Auke
2007-03-01 17:34 ` Michal Schmidt
2007-03-01 21:58 ` Mark Huth
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=45E65DCF.8050903@mvista.com \
--to=mhuth@mvista.com \
--cc=auke-jan.h.kok@intel.com \
--cc=jesse.brandeburg@intel.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;
as well as URLs for NNTP newsgroup(s).