All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bernhard Pfund <bernhard@domain.hid>
To: rpm@xenomai.org
Cc: adeos-main <adeos-main@gna.org>, RTnet-users@domain.hid
Subject: Re: [Adeos-main] [RTnet-users] e1000 & MSI
Date: Tue, 19 Aug 2008 22:53:12 +0200	[thread overview]
Message-ID: <48AB32B8.5040403@domain.hid> (raw)
In-Reply-To: <48AAD622.8030402@domain.hid>

Philippe Gerum wrote:
> bernhard@domain.hid wrote:
>> Zitat von Philippe Gerum <rpm@xenomai.org>:
>>
>>> Bernhard Pfund wrote:
>>>> Philippe Gerum wrote:
>>>>> Bernhard Pfund wrote:
>>>>>>> I see no option aside of ironing the inner code that reads/writes the PCI
>>>>>>> config, so here is an ugly yet possible solution for x86, that might work
>>>>>>> (totally untested):
>>>>>>>
>>>>>>> diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
>>>>>>> index 6e64aaf..7f32101 100644
>>>>>>> --- a/arch/x86/pci/common.c
>>>>>>> +++ b/arch/x86/pci/common.c
>>>>>>> @@ -75,7 +75,7 @@ int pcibios_scanned;
>>>>>>>   * This interrupt-safe spinlock protects all accesses to PCI
>>>>>>>   * configuration space.
>>>>>>>   */
>>>>>>> -DEFINE_SPINLOCK(pci_config_lock);
>>>>>>> +IPIPE_DEFINE_SPINLOCK(pci_config_lock);
>>>>>>>
>>>>>>>  static int __devinit can_skip_ioresource_align(const struct   
>>>>>>> dmi_system_id *d)
>>>>>>>  {
>>>>>>> diff --git a/drivers/pci/access.c b/drivers/pci/access.c
>>>>>>> index 39bb96b..9a74083 100644
>>>>>>> --- a/drivers/pci/access.c
>>>>>>> +++ b/drivers/pci/access.c
>>>>>>> @@ -12,7 +12,7 @@
>>>>>>>   * configuration space.
>>>>>>>   */
>>>>>>>
>>>>>>> -static DEFINE_SPINLOCK(pci_lock);
>>>>>>> +static IPIPE_DEFINE_SPINLOCK(pci_lock);
>>>>>>>
>>>>>>>  /*
>>>>>>>   *  Wrappers for all PCI configuration access functions.  They   
>>>>>>> just check
>>>>>>>
>>>>>> This results in:
>>>>>>
>>>>>> arch/x86/pci/common.c:78: error: conflicting types for ‘pci_config_lock’
>>>>>> arch/x86/pci/pci.h:84: error: previous declaration of ‘pci_config_lock’
>>>>>> was here
>>>>>>
>>>>>> Didn't look into it, just tried ;)
>>>>>>
>>>>> Just change the declaration in pci.h the same way.
>>>>>
>>>> Ok, thanx! Seems to work for now, no extensive testing done (yet)
>>>> though. What's the plan for the future? Will this change find its way
>>>> into the official patch?
>>>>
>>> This change could be merged into the 2.6.26 patch provided it does   
>>> not raise any
>>> pathological latency when enabling MSI. I would rather ask people to refrain
>>> from using MSI until it is fixed (once again) in later releases,   
>>> than suffering
>>> random latency peaks. 2.6.27 and beyond is another issue; this will need a
>>> different approach than simply ironing the PCI lock in any case.
>>>
>>> We need more test data for 2.6.26 + this patch.
>>>
>> Let me know if I can be of any help. I'm in an early stage of the  
>> project, so there's some time available for MSI experiments...
>>
> 
> Thanks. Basically, we need to know the impact of this patch under high load for
> at least four hours runtime, with significant interrupt traffic to/from MSI
> devices in parallel.
> 

Hmm, I think I actually have a setup that could do the trick. One GBit
NIC under control of RTnet and another in the Linux domain, both PCIe
devices. MSIs are enabled in the kernel (2.6.26.2), without MSI they
would share the same IRQ.

I could connect them to the same physical network and ping flood both
cards from a second system, for 24h if necessary.

How would you measure the effect of the patch?

HTH::Bernhard


  reply	other threads:[~2008-08-19 20:53 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080812075358.4cg1ix9945msccsc@domain.hid>
     [not found] ` <48A12EA8.4070601@domain.hid>
     [not found]   ` <48A34D75.9090509@domain.hid>
2008-08-13 22:01     ` [Adeos-main] [RTnet-users] e1000 & MSI Jan Kiszka
2008-08-14  6:34       ` Jan Kiszka
2008-08-14  6:49         ` Jan Kiszka
2008-08-14  7:41           ` Philippe Gerum
2008-08-14 10:53           ` bernhard
2008-08-14 13:38             ` Philippe Gerum
2008-08-14 15:25               ` Gilles Chanteperdrix
2008-08-14 15:34               ` Bernhard Pfund
2008-08-14 15:52                 ` Gilles Chanteperdrix
2008-08-14 16:57                 ` Philippe Gerum
2008-08-16 11:24                   ` Bernhard Pfund
2008-08-19 10:17                     ` Philippe Gerum
2008-08-19 10:31                       ` bernhard
2008-08-19 14:18                         ` Philippe Gerum
2008-08-19 20:53                           ` Bernhard Pfund [this message]
2008-08-20  9:38                             ` Philippe Gerum
2008-08-25 12:16                               ` bernhard
2008-08-25 12:58                                 ` Jan Kiszka
2008-08-25 13:48                                   ` bernhard
2008-08-25 14:15                                 ` Philippe Gerum
2008-08-14 17:35               ` Jan Kiszka
2008-08-14 17:55                 ` Philippe Gerum
2008-08-14 18:21                   ` Philippe Gerum

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=48AB32B8.5040403@domain.hid \
    --to=bernhard@domain.hid \
    --cc=RTnet-users@domain.hid \
    --cc=adeos-main@gna.org \
    --cc=rpm@xenomai.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.