From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <48AA9DAA.3040801@domain.hid> Date: Tue, 19 Aug 2008 12:17:14 +0200 From: Philippe Gerum MIME-Version: 1.0 References: <20080812075358.4cg1ix9945msccsc@domain.hid> <48A12EA8.4070601@domain.hid> <48A34D75.9090509@domain.hid> <48A359D4.9090002@domain.hid> <48A3D20B.2080509@domain.hid> <48A3D595.9040607@domain.hid> <20080814125307.1uviqgmj95no4k0k@domain.hid> <48A43555.3070701@domain.hid> <48A45084.3000208@domain.hid> <48A46408.7010602@domain.hid> <48A6B8EC.8020302@domain.hid> In-Reply-To: <48A6B8EC.8020302@domain.hid> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable Subject: Re: [Adeos-main] [RTnet-users] e1000 & MSI Reply-To: rpm@xenomai.org List-Id: General discussion about Adeos List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Bernhard Pfund Cc: adeos-main , RTnet-users@domain.hid 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 w= ork >>>> (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_syste= m_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 c= heck >>>> >>> This results in: >>> >>> arch/x86/pci/common.c:78: error: conflicting types for =91pci_config_lo= ck=92 >>> arch/x86/pci/pci.h:84: error: previous declaration of =91pci_config_loc= k=92 >>> was here >>> >>> Didn't look into it, just tried ;) >>> >> Just change the declaration in pci.h the same way. >> >=20 > 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? >=20 This change could be merged into the 2.6.26 patch provided it does not rais= e 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 suffe= ring 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. --=20 Philippe.