Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PATCH] Enabling (more) MSI usage for AMD SB700
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Fri Dec 16, 2011 4:10 pm    Post subject: [PATCH] Enabling (more) MSI usage for AMD SB700 Reply with quote

I poked around with my chipset, so that more devices can use MSI und thus I don't have shared interrupts anymore:

Code:

cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3       
  0:        121          0          1          0   IO-APIC-edge      timer
  1:          0          0          2          0   IO-APIC-edge      i8042
  8:          0          0          1          0   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          0          0          4          0   IO-APIC-edge      i8042
 18:          0          1       1728          7   IO-APIC-fasteoi   radeon
 43:          4          4      22211         37   PCI-MSI-edge      ahci
 44:          0          0        587          2   PCI-MSI-edge      pata_atiixp
 45:          0          0         31          0   PCI-MSI-edge      eth0
 46:          0          0          0          0   PCI-MSI-edge      eth1
 47:          0          0          0          0   PCI-MSI-edge      ehci_hcd:usb1
 48:          0          0        195          1   PCI-MSI-edge      ehci_hcd:usb2
 49:          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb3
 50:          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb4
 51:          0          0        462          3   PCI-MSI-edge      ohci_hcd:usb5
 52:          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb6
 53:          0          0        487          0   PCI-MSI-edge      snd_hda_intel
NMI:          0          0          0          0   Non-maskable interrupts
LOC:        502      16819      36710      21430   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RES:      18444      18765      15323      18871   Rescheduling interrupts
CAL:        123        156         69        153   Function call interrupts
TLB:        784        638        588        800   TLB shootdowns
ERR:          0
MIS:          0


This is the patch against Linux 3.12.5, but it should work with older kernels also. Don't forget to add snd-hda-intel.enable_msi=1 to your kernel command line to let the intel HD Audio driver use MSI.
Code:

diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index 04ee1e2..49bf4f8 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -497,6 +497,8 @@ void force_hpet_resume(void)
    }
 }
 
+/* XXX: should add EPP/ECP parport as well.. */
+#if defined(CONFIG_BLK_DEV_FD) ||  defined(CONFIG_BLK_DEV_FD_MODULE)
 /*
  * HPET MSI on some boards (ATI SB700/SB800) has side effect on
  * floppy DMA. Disable HPET MSI on such platforms.
@@ -511,6 +513,7 @@ static void force_disable_hpet_msi(struct pci_dev *unused)
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
           force_disable_hpet_msi);
+#endif
 
 #endif
 
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index 24e5105..cc222a7 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -278,7 +278,15 @@ static int atiixp_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
       .port_ops = &atiixp_port_ops
    };
    const struct ata_port_info *ppi[] = { &info, &info };
-
+   u8 tmp8, mask;
+
+   pci_read_config_byte(pdev, PCI_CLASS_PROG, &tmp8);
+   mask = (1 << 2) | (1 << 0);
+   
+   /* Both channels in native mode? */
+   if ((tmp8 & mask) == mask)
+      pci_enable_msi(pdev);
+   
    return ata_pci_bmdma_init_one(pdev, ppi, &atiixp_sht, NULL,
                   ATA_HOST_PARALLEL_SCAN);
 }
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f6c31fa..e98a885 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2581,16 +2581,44 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
          PCI_DEVICE_ID_TIGON3_5715S,
          quirk_msi_intx_disable_bug);
 
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
-         quirk_msi_intx_disable_ati_bug);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
-         quirk_msi_intx_disable_ati_bug);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
-         quirk_msi_intx_disable_ati_bug);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
-         quirk_msi_intx_disable_ati_bug);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
-         quirk_msi_intx_disable_ati_bug);
+/* Enable MSI capability on SB7x0 SATA */
+static void quirk_amd_sb700_sata_enable_msi_capability(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x34, &tmp);
+   
+   /* Is D3 enabled or MSI disabled? */
+   if (tmp != 0x50) {
+      pci_read_config_byte(dev, 0x40, &tmp);
+      pci_write_config_byte(dev, 0x40, tmp|1);
+
+      /* Set next pointer to MSI cap ignoring power management cap, see RPR 7.11 */
+      pci_write_config_byte(dev, 0x34, 0x50);
+
+      pci_write_config_byte(dev, 0x40, tmp);
+      dev_info(&dev->dev, "Enabled SATA MSI capability and disabled D3 power management capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4390, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4390, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4391, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4391, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4392, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4392, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4393, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4393, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4394, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4394, quirk_amd_sb700_sata_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394, quirk_msi_intx_disable_ati_bug);
 
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
          quirk_msi_intx_disable_bug);
@@ -2599,6 +2627,99 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374,
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
          quirk_msi_intx_disable_bug);
 
+/* Enable MSI capability on SB7x0 PCIB */
+static void quirk_amd_sb700_pcib_enable_msi_capability(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x40, &tmp);
+   
+   /* Is MSI disabled ? */
+   if ((tmp & (1 << 3)) == 0) {
+      pci_write_config_byte(dev, 0x40, tmp | (1 << 3));
+      dev_info(&dev->dev, "Enabled PCIB MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4384, quirk_amd_sb700_pcib_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4384, quirk_amd_sb700_pcib_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4384, quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 Azalia */
+static void quirk_amd_sb700_azalia_enable_msi_capability(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x45, &tmp);
+   
+   /* Is MSI disabled ? */
+   if ((tmp & 1) == 0) {
+      pci_write_config_byte(dev, 0x45, tmp | 1);
+      dev_info(&dev->dev, "Enabled Azalia MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4383, quirk_amd_sb700_azalia_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4383, quirk_amd_sb700_azalia_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4383, quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 OHCI */
+static void quirk_amd_sb700_ohci_enable_msi_capability(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x41, &tmp);
+   
+   /* Is MSI disabled ? */
+   if ((tmp & 3) != 0) {
+      pci_write_config_byte(dev, 0x41, tmp & ~3);
+      dev_info(&dev->dev, "Enabled OHCI0/1 MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4397, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4397, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4397, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4398, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4398, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4398, quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4399, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4399, quirk_amd_sb700_ohci_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4399, quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 EHCI */
+static void quirk_amd_sb700_ehci_enable_msi_capability(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x50, &tmp);
+   
+   /* Is MSI disabled ? */
+   if ((tmp & (1 << 6)) != 0) {
+      pci_write_config_byte(dev, 0x50, tmp & ~(1 << 6));
+      dev_info(&dev->dev, "Enabled EHCI MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4396, quirk_amd_sb700_ehci_enable_msi_capability);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4396, quirk_amd_sb700_ehci_enable_msi_capability);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4396, quirk_msi_intx_disable_ati_bug);
+
+static void quirk_amd_ide_native_mode(struct pci_dev *pdev)
+{
+   /* set SBX00/Hudson-2 IDE to native mode */
+   const u8 mask = 1 | (1 << 2);
+   u8 tmp;
+
+   pci_read_config_byte(pdev, 0x9, &tmp);
+   if ((tmp & mask) != mask) {
+      pci_write_config_byte(pdev, 0x9, tmp | mask);
+      dev_info(&pdev->dev, "set both IDE channels to native mode\n");
+   }
+}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x439c, quirk_amd_ide_native_mode);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x439c, quirk_amd_ide_native_mode);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x439c, quirk_msi_intx_disable_ati_bug);
+
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1062,
          quirk_msi_intx_disable_bug);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1063,
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 6bd299e..e12e800 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -352,12 +352,19 @@ static const struct pci_device_id pci_ids [] = { {
 };
 MODULE_DEVICE_TABLE(pci, pci_ids);
 
+static int ehci_hcd_pci_probe(struct pci_dev *dev,
+                  const struct pci_device_id *id)
+{
+   pci_enable_msi(dev);
+   return usb_hcd_pci_probe(dev, id);
+}
+
 /* pci driver glue; this is a "new style" PCI driver module */
 static struct pci_driver ehci_pci_driver = {
    .name =      (char *) hcd_name,
    .id_table =   pci_ids,
 
-   .probe =   usb_hcd_pci_probe,
+   .probe =   ehci_hcd_pci_probe,
    .remove =   usb_hcd_pci_remove,
    .shutdown =    usb_hcd_pci_shutdown,
 
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
index ec337c2..82117cb 100644
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -28,6 +28,12 @@
 
 static const char hcd_name[] = "ohci-pci";
 
+static int ohci_hcd_pci_probe(struct pci_dev *dev,
+                  const struct pci_device_id *id)
+{
+   pci_enable_msi(dev);
+   return usb_hcd_pci_probe(dev, id);
+}
 
 /*-------------------------------------------------------------------------*/
 
@@ -285,7 +291,7 @@ static struct pci_driver ohci_pci_driver = {
    .name =      (char *) hcd_name,
    .id_table =   pci_ids,
 
-   .probe =   usb_hcd_pci_probe,
+   .probe =   ohci_hcd_pci_probe,
    .remove =   usb_hcd_pci_remove,
    .shutdown =   usb_hcd_pci_shutdown,
 



The part in the usb subsystem is inspired a patch posted by Clemens Ladisch in the lkml. I simplified it by enabling MSI unconditionally and added the AMD SB700 specific bits which I extracted from the data sheets. My BIOS disables most of the MSI capabilities, so I have to go this route. I haven't tests supsend, though. So if anybody wants to try, let me know how it goes. The patch enabled MSI capabilities, for USB OHCI, USB EHCI, Azalia (Intel HD Audio) and the PCI Bridge. I didn't test the latter, but everything else just works nicely for me. I have a older revision of SB 700 - I think A12 revision. If you have a different but similar AMD SBxxx chipset, I could try to add some more quirks to enable MSI on it. I need an output of lspci -nnv, though. I would be interested to know how this patch works for others. Cheers!

(Update) Warning, the following patch for not disabling MSI for HPET shouldn't be used if you have DMA enabled devices on the LPC bus (eg. floppy drive, maybe also flashrom fro reading/writing to SPI flash rom?) due to a chipset bug. For me it seems to work nicely, but I didn't test flash rom and I don't have a floppy attached. You'll get another line in /proc/interrups:

Code:

 40:      64775          0          0          0  HPET_MSI-edge      hpet2


If it doesn't show up, you either haven't enabled HPET in the kernel or MSI for HPET is disabled via chipset bits. I can create an additional patch to enable those, if necessary.

The patch: (Update) Removed and incorporated into main patch


(Update 2) Modified the patch to a) switch the IDE controller to native mode and B) let it use MSI, as well. (I should note that simply switching IDE controller from legacy mode to native mode at this stage will only reliably work when using MSI, as my bios doesn't properly assign an IRQ for it. So it won't work in PIC mode unless the IRQ line register is properly set up - as far as I understood. It worked in APIC mode though, as Linux seems to correctly choose the proper irq, even though at least the mp table didn't contain routing infos for it. I didn't understand the acpi dump though...)

(Update 3) Includes roarinelk's changes (thx!) and SATA bits.

(Update 4) Patch against Linux 3.12.5.


Last edited by PrakashP on Fri Dec 13, 2013 10:12 pm; edited 6 times in total
Back to top
View user's profile Send private message
genstorm
Advocate
Advocate


Joined: 05 Apr 2007
Posts: 2475
Location: Austria

PostPosted: Fri Dec 16, 2011 5:12 pm    Post subject: Reply with quote

That's finally a good reason to start my AMD system again. I think it should have the SB750 on it.
_________________
backend.cpp:92:2: warning: #warning TODO - this error message is about as useful as a cooling unit in the arctic
Back to top
View user's profile Send private message
zbiggy
n00b
n00b


Joined: 26 Dec 2011
Posts: 5
Location: Europe/Poland/Pultusk

PostPosted: Mon Dec 26, 2011 6:29 pm    Post subject: Reply with quote

Great job PrakashP,

if I will have AMD chipset mainboard I will use your patch. Why you do not use MSI for radeon?
Now I have nForce 720/Geforce8200 chipset and apic/acpi is putting everything on interrupts 20-23. ohci is hanging after few minutes of use - I had to turn off apic and it works now. I was able to offload ahci, hd audio and eth0 to msi so my system is more stable and looks to be faster. Unfortunately I was not able to move nvidia binary blob to MSI using nvidia NVreg_EnableMSI=1 parameter. It hangs after few minutes of using. However this happens on my integrated Geforce 8200. People using discrete Geforces are fine.

I was unable to turn on MSI for this devices:
Code:

00:10.0 PCI bridge [0604]: nVidia Corporation MCP78S [GeForce 8200] PCI Express Bridge [10de:0778] (rev a1) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
        Prefetchable memory behind bridge: 00000000fbd00000-00000000fbdfffff
        Capabilities: [40] Subsystem: ASRock Incorporation K10N78FullHD-hSLI R3.0 PCI Express Bridge [1849:0778]
        Capabilities: [48] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
        Capabilities: [80] Express Root Port (Slot+), MSI 00
        Kernel driver in use: pcieport

00:12.0 PCI bridge [0604]: nVidia Corporation MCP78S [GeForce 8200] PCI Express Bridge [10de:075b] (rev a1) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
        Prefetchable memory behind bridge: 00000000fbe00000-00000000fbefffff
        Capabilities: [40] Subsystem: ASRock Incorporation K10N78FullHD-hSLI R3.0 PCI Express Bridge [1849:075b]
        Capabilities: [48] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
        Capabilities: [80] Express Root Port (Slot+), MSI 00
        Kernel driver in use: pcieport

0:13.0 PCI bridge [0604]: nVidia Corporation MCP78S [GeForce 8200] PCI Bridge [10de:077a] (rev a1) (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
        Prefetchable memory behind bridge: 00000000fbf00000-00000000fbffffff
        Capabilities: [40] Subsystem: ASRock Incorporation K10N78FullHD-hSLI R3.0 PCI Bridge [1849:077a]
        Capabilities: [48] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
        Capabilities: [80] Express Root Port (Slot+), MSI 00
        Kernel driver in use: pcieport


I use linux 3.2-rc7 from kernel.org and pcieport driver code is in /usr/src/linux-3.2-rc7/drivers/pci/pcie directory.
It has implemented MSI code but do not know why it is disabled for these controllers. I could not find any code which disables msi for my chipset so it may be doing this indirectly somehow in generic way. I'm wondering if it will be possible to turn on msi for these pci(e) bridges maybe my nvidia binary blob will work stable with msi on if bridges will have msi on.

I also enabled MSI on my Intel Atom netbook - NM10 chipset. It works great and rock solid for: i915 GPU, ahci, eth0 (Marvell Yukon), HD audio. Only Broadcom BCM4313 wifi is not - it reports MSI but driver has no MSI. It is binary blob but will try to implement MSI. What a pity uhci/ehci can not be moved to msi - intel chipset specs do not say about msi on usb so hardware is not ready. USB occupies many interrupts - too many - I have interrupt sharing because of this :( .
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Tue Dec 27, 2011 9:10 am    Post subject: Reply with quote

zbiggy wrote:
Why you do not use MSI for radeon?


I tried, but it won't work. It seems BIOS forgets to initialize some things. There actually is a linux quirk which specifically disables MSI on the associated brigde because of this issue.

Quote:

Now I have nForce 720/Geforce8200 chipset and apic/acpi is putting everything on interrupts 20-23. ohci is hanging after few minutes of use - I had to turn off apic and it works now.


Have you checked whether the timer override quirk is activated for your board? I had some troubles on my old C51/MCP51 board, as well and disabling the quirk made it stable under APIC. If you have a HPET enabled the quirk also shouldn't be activated. If you search on lkml you might find my posts about this problem - if it is the same you are experiencing... But maybe your USB needs some other quirk. Have you checked ehci-pci.c and ohci-pci.c and checked for quirks to enabled/disable? I remember seeing some Nvidia specific stuff, also.

BTW, I tried enabling MSI on sata_nv on the old MCP51 motherboard and it still won't work properly. Halfway through init the controller starts making troubles.

Quote:

I was unable to turn on MSI for this devices:


These are brigde devices. So I don't know whether it actually makes sense there, except HT MSI. That's why I am not sure whether my patch of enabling MSI on the PCIB makes sense, also...

I am happy to have an AMD chipset with some public datasheets available - unlike the Nvidia stuff. I am actually also working on getting coreboot running on my mobo. So far I am a bit scared, though I have some backup bios chips...
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 444

PostPosted: Tue Jan 24, 2012 7:41 am    Post subject: Reply with quote

Hello,

Here's an updated patch against 3.3-rc1. I reimplemented the OHCI/EHCI MSI enable code
since the old one was interfering with the XHCI controllers' MSI-X.

It boots and runs on my SB850.
Code:

diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index 03920a1..fd171ed 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -493,6 +493,8 @@ void force_hpet_resume(void)
    }
 }
 
+/* XXX: should add EPP/ECP parport as well.. */
+#if defined(CONFIG_BLK_DEV_FD) ||  defined(CONFIG_BLK_DEV_FD_MODULE)
 /*
  * HPET MSI on some boards (ATI SB700/SB800) has side effect on
  * floppy DMA. Disable HPET MSI on such platforms.
@@ -507,6 +509,7 @@ static void force_disable_hpet_msi(struct pci_dev *unused)
 
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
           force_disable_hpet_msi);
+#endif
 
 #endif
 
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index be1aa14..5b6c6a7 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -262,6 +262,12 @@ static int atiixp_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
       .port_ops = &atiixp_port_ops
    };
    const struct ata_port_info *ppi[] = { &info, &info };
+   u8 tmp;
+
+   /* enable MSI if both channels are in native mode */
+   pci_config_read_byte(pdev, PCI_CLASS_PROG, &tmp);
+   if ((tmp & 0x5) == 0x5)
+      pci_enable_msi(pdev);
 
    return ata_pci_bmdma_init_one(pdev, ppi, &atiixp_sht, NULL,
                   ATA_HOST_PARALLEL_SCAN);
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 6476547..351b252 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2665,6 +2665,119 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374,
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
          quirk_msi_intx_disable_bug);
 
+/* Enable MSI capability on SB7x0 PCIB */
+static void __devinit quirk_amd_sb700_pcib_enable_msi_cap(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x40, &tmp);
+
+   /* Is MSI disabled ? */
+   if ((tmp & (1 << 3)) == 0) {
+      pci_write_config_byte(dev, 0x40, tmp | (1 << 3));
+      dev_info(&dev->dev, "Enabled PCIB MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4384,
+          quirk_amd_sb700_pcib_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4384,
+                quirk_amd_sb700_pcib_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4384,
+         quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 Azalia */
+static void __devinit quirk_amd_sb700_azalia_enable_msi_cap(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x45, &tmp);
+
+   /* Is MSI disabled ? */
+   if ((tmp & 1) == 0) {
+      pci_write_config_byte(dev, 0x45, tmp | 1);
+      dev_info(&dev->dev, "Enabled Azalia MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4383,
+          quirk_amd_sb700_azalia_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4383,
+                quirk_amd_sb700_azalia_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4383,
+         quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 OHCI */
+static void __devinit quirk_amd_sb700_ohci_enable_msi_cap(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x41, &tmp);
+
+   /* Is MSI disabled ? */
+   if ((tmp & 3) != 0) {
+      pci_write_config_byte(dev, 0x41, tmp & ~3);
+      dev_info(&dev->dev, "Enabled OHCI0/1 MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4397,
+          quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4397,
+                quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4397,
+         quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4398,
+          quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4398,
+                quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4398,
+         quirk_msi_intx_disable_ati_bug);
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4399,
+          quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4399,
+                quirk_amd_sb700_ohci_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4399,
+         quirk_msi_intx_disable_ati_bug);
+
+/* Enable MSI capability on SB7x0 EHCI */
+static void __devinit quirk_amd_sb700_ehci_enable_msi_cap(struct pci_dev *dev)
+{
+   u8 tmp;
+
+   pci_read_config_byte(dev, 0x50, &tmp);
+
+   /* Is MSI disabled ? */
+   if ((tmp & (1 << 6)) != 0) {
+      pci_write_config_byte(dev, 0x50, tmp & ~(1 << 6));
+      dev_info(&dev->dev, "Enabled EHCI MSI capability\n");
+   }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x4396,
+          quirk_amd_sb700_ehci_enable_msi_cap);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x4396,
+                quirk_amd_sb700_ehci_enable_msi_cap);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4396,
+         quirk_msi_intx_disable_ati_bug);
+
+static void __devinit quirk_amd_ide_native_mode(struct pci_dev *pdev)
+{
+   /* set SBX00/Hudson-2 IDE to native mode */
+   const u8 mask = 1 | (1 << 2);
+   u8 tmp;
+
+   pci_read_config_byte(pdev, 0x9, &tmp);
+   if ((tmp & mask) != mask) {
+      pci_write_config_byte(pdev, 0x9, tmp | mask);
+      dev_info(&pdev->dev, "set both IDE channels to native mode\n");
+   }
+}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x439c, quirk_amd_ide_native_mode);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_ATI, 0x439c,
+                quirk_amd_ide_native_mode);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x439c,
+         quirk_msi_intx_disable_ati_bug);
+
 #endif /* CONFIG_PCI_MSI */
 
 /* Allow manual resource allocation for PCI hotplug bridges
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index f4b627d..5d8cfd8 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -465,6 +465,13 @@ static int ehci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
    return rc;
 }
 
+static int ehci_hcd_pci_probe(struct pci_dev *dev,
+               const struct pci_device_id *id)
+{
+   pci_enable_msi(dev);
+   return usb_hcd_pci_probe(dev, id);
+}
+
 static const struct hc_driver ehci_pci_hc_driver = {
    .description =      hcd_name,
    .product_desc =      "EHCI Host Controller",
@@ -536,7 +543,7 @@ static struct pci_driver ehci_pci_driver = {
    .name =      (char *) hcd_name,
    .id_table =   pci_ids,
 
-   .probe =   usb_hcd_pci_probe,
+   .probe =   ehci_hcd_pci_probe,
    .remove =   usb_hcd_pci_remove,
    .shutdown =    usb_hcd_pci_shutdown,
 
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
index 6109810..985348b 100644
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -339,6 +339,12 @@ static int ohci_pci_resume(struct usb_hcd *hcd, bool hibernated)
 
 #endif   /* CONFIG_PM */
 
+static int ohci_hcd_pci_probe(struct pci_dev *dev,
+               const struct pci_device_id *id)
+{
+   pci_enable_msi(dev);
+   return usb_hcd_pci_probe(dev, id);
+}
 
 /*-------------------------------------------------------------------------*/
 
@@ -406,7 +412,7 @@ static struct pci_driver ohci_pci_driver = {
    .name =      (char *) hcd_name,
    .id_table =   pci_ids,
 
-   .probe =   usb_hcd_pci_probe,
+   .probe =   ohci_hcd_pci_probe,
    .remove =   usb_hcd_pci_remove,
    .shutdown =   usb_hcd_pci_shutdown,
 

Back to top
View user's profile Send private message
DaggyStyle
Advocate
Advocate


Joined: 22 Mar 2006
Posts: 4956

PostPosted: Tue Jan 24, 2012 9:21 am    Post subject: Reply with quote

if this indeed introduces gains, why not submitting it to the kernel mailing list?
_________________
Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein
ProjectFootball
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 444

PostPosted: Tue Jan 24, 2012 12:42 pm    Post subject: Reply with quote

There are no real gains as far as I can see. Yes it's easier to direct an MSI interrupt
to a certain CPU when the line isn't shared, but who does that anyway?

MSI support is usually disabled because it is more or less untested and buggy
(I've already had ALSA complain about non-responding audio hardware).

Consider the patch a proof-of-concept that MSI on SB700/800 southbridges
works but that it is disabled usually for a reason.
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Tue Jan 24, 2012 3:57 pm    Post subject: Reply with quote

@roarinelk

Nice, I will try your changes to the usb stack. Out of curiosity, could you post your /proc/interrupts and lspci -nnv?

What is the problem with xhci? Doesn't is work using MSI? Might it need quirk_msi_intx_disable_ati_bug quirk?

@DaggyStyle

Some parts of the patch are obviously hackish, so won't get accepted. The kernel maintainers also don't want the hassle with introducing MSI support in the ohci and ehci drivers. The reason bios disables most of the MSI stuff is due to AMD advising so - if you look into the datasheets. Usually they don't give a reason why, though. I guess it is because of the needed quirks that the legacy interrupt pin must not be disabled when using MSI, as then the AMD chipsets (at least older ones like mine) won't give any interrupts anymore. So for every device on the affected AMD chipsets you need to set the quirk_msi_intx_disable_ati_bug quirk. I doubt kernel maintainers would like it done this way. So I guess the only part of the patch which might have to chances to get included is the Azalia/Intel HDA part, as it is least hackish. (To be honest it is not documented in the public SB700 datasheet, but in the Sb800 one, so I tried my luck. :)) If I can make sure, it works for different SBx00 versions, I might try to submit that part.
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 444

PostPosted: Tue Jan 24, 2012 5:23 pm    Post subject: Reply with quote

xhci calls usb_add_hcd() for its ehci companion, _after_ it has enabled MSI-X for itself.
Placing pci_enable_msi() in usb_hcd_pci_probe() screws up xhci int handling; the ehci is part
of the xhcis register space which means it has the same struct pci_dev.
in the list below, xhci is bus2, its ehci companion is bus1. the ati controllers are 3-9.

Code:
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       
  0:        319        295   21591812       9137     912525       1615   IO-APIC-edge      timer
  1:          0          0          2          0          0          0   IO-APIC-edge      i8042
  8:          0          0         80          0          0          0   IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 17:          0          0     189642        141       5394          4   IO-APIC-fasteoi   ahci, pata_jmicron
 20:          0          0         19          0          0          0   IO-APIC-fasteoi   saa7146 (0)
 22:          0          0        554          1          3          0   IO-APIC-fasteoi   firewire_ohci
 43:          0          2     378012         59       2905          2   PCI-MSI-edge      ahci
 44:          1          1    1795738        187       8012         14   PCI-MSI-edge      eth0
 45:          0          0     247686         54       2930          2   PCI-MSI-edge      snd_hda_intel
 46:          0          0          1          0          0          0   PCI-MSI-edge      xhci_hcd
 47:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 48:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 49:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 50:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 51:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 52:          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 53:          0          0       1753          1         25          0   PCI-MSI-edge      ehci_hcd:usb3
 54:          0          0        209          0          5          0   PCI-MSI-edge      ehci_hcd:usb4
 55:          0          3    1077030        447      24533         18   PCI-MSI-edge      ehci_hcd:usb5
 56:          0          0     214641         42       2934          2   PCI-MSI-edge      ohci_hcd:usb6
 57:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb7
 58:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb8
 59:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb9
 60:          0          0    3247203        477      32089          8   PCI-MSI-edge      nvidia
NMI:          0          0          0          0          0          0   Non-maskable interrupts
LOC:    6508140    5930579    4065232    8386922    4659750    4626132   Local timer interrupts
SPU:          0          0          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0          0          0   IRQ work interrupts
RTR:          0          0          0          0          0          0   APIC ICR read retries
RES:    6195247    3605424    2777191    3381714    2990018    2759982   Rescheduling interrupts
CAL:      27546      26448      18016      23816      22971      22815   Function call interrupts
TLB:      44923      46784     105299      57067      51079      49952   TLB shootdowns
THR:          0          0          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0          0          0   Machine check exceptions
MCP:        119        119        119        119        119        119   Machine check polls
ERR:          0
MIS:          0


http://pastebin.com/7PucSntw
Back to top
View user's profile Send private message
DaggyStyle
Advocate
Advocate


Joined: 22 Mar 2006
Posts: 4956

PostPosted: Tue Jan 24, 2012 7:51 pm    Post subject: Reply with quote

PrakashP wrote:
@roarinelk

Nice, I will try your changes to the usb stack. Out of curiosity, could you post your /proc/interrupts and lspci -nnv?

What is the problem with xhci? Doesn't is work using MSI? Might it need quirk_msi_intx_disable_ati_bug quirk?

@DaggyStyle

Some parts of the patch are obviously hackish, so won't get accepted. The kernel maintainers also don't want the hassle with introducing MSI support in the ohci and ehci drivers. The reason bios disables most of the MSI stuff is due to AMD advising so - if you look into the datasheets. Usually they don't give a reason why, though. I guess it is because of the needed quirks that the legacy interrupt pin must not be disabled when using MSI, as then the AMD chipsets (at least older ones like mine) won't give any interrupts anymore. So for every device on the affected AMD chipsets you need to set the quirk_msi_intx_disable_ati_bug quirk. I doubt kernel maintainers would like it done this way. So I guess the only part of the patch which might have to chances to get included is the Azalia/Intel HDA part, as it is least hackish. (To be honest it is not documented in the public SB700 datasheet, but in the Sb800 one, so I tried my luck. :)) If I can make sure, it works for different SBx00 versions, I might try to submit that part.
ok, so why one should use this patch?
_________________
Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein
ProjectFootball
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Tue Jan 24, 2012 9:04 pm    Post subject: Reply with quote

http://en.wikipedia.org/wiki/Message_Signaled_Interrupts

It's up to you to use it, I cooked it up for my personal interest and just shared my result. Why not use the chipset's full potential, if it is possible?
Back to top
View user's profile Send private message
trubicoid
n00b
n00b


Joined: 04 Aug 2009
Posts: 23

PostPosted: Tue Mar 13, 2012 1:59 pm    Post subject: Reply with quote

Did you tried some "benchmarks", like latency or CPU load?

I have two affected computers, so I'll try it. Now they don't use MSI a lot:

Code:
          CPU0       CPU1                                                                                                                                 
  0:    2587087   24865819   IO-APIC-edge      timer
  1:          1         87   IO-APIC-edge      i8042                                                                                                                 
  8:          1         91   IO-APIC-edge      rtc0                                                                                                                   
  9:         81       1235   IO-APIC-fasteoi   acpi
 12:        196      19092   IO-APIC-edge      i8042                                                                                                                               
 16:      23602     335262   IO-APIC-fasteoi   snd_hda_intel, ohci_hcd:usb3, ohci_hcd:usb4                                                                                         
 17:     915847  132464247   IO-APIC-fasteoi   ehci_hcd:usb1, ath9k
 18:          5         41   IO-APIC-fasteoi   ohci_hcd:usb5, ohci_hcd:usb6                                                                                                                 
 19:          0          7   IO-APIC-fasteoi   ehci_hcd:usb2
 22:      50590     656866   IO-APIC-fasteoi   ahci                                                                                                                                                       
 23:          0          0   IO-APIC-edge      lis3lv02d                                                                                                                                                   
 45:       5891     153165   PCI-MSI-edge      radeon
 46:      34233     735408   PCI-MSI-edge      eth0
 47:          0         46   PCI-MSI-edge      snd_hda_intel
NMI:          0          0   Non-maskable interrupts
LOC:   27030579   23692587   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:          0          0   IRQ work interrupts
RTR:          0          0   APIC ICR read retries
RES:   55526481    7291386   Rescheduling interrupts
CAL:       2351        780   Function call interrupts
TLB:      75888      98135   TLB shootdowns
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:        352        352   Machine check polls
ERR:          0
MIS:          0


Code:

          CPU0       CPU1       CPU2       CPU3       
  0:       6118      23170     191106   10381802   IO-APIC-edge      timer
  1:          0          0          0          4   IO-APIC-edge      i8042
  8:          0          0          0         97   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          0          0          0          7   IO-APIC-edge      i8042
 16:          4         36      21266    3873446   IO-APIC-fasteoi   snd_hda_intel
 17:          0          0          0          4   IO-APIC-fasteoi   ehci_hcd:usb1, ehci_hcd:usb2, ehci_hcd:usb3
 18:          0          0         17       4638   IO-APIC-fasteoi   ohci_hcd:usb4, ohci_hcd:usb5, radeon, ohci_hcd:usb6, ohci_hcd:usb7
 19:          0         15       3125     301508   IO-APIC-fasteoi   ahci
 40:          0          0          0          0   PCI-MSI-edge      PCIe PME
 41:          0          6        736     114602   PCI-MSI-edge      eth0
NMI:          0          0          0          0   Non-maskable interrupts
LOC:    4381704    3815811    3116546     917008   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RTR:          0          0          0          0   APIC ICR read retries
RES:    2113733    1866339    1447414    1409566   Rescheduling interrupts
CAL:        266        340        341        159   Function call interrupts
TLB:      43156      54688      44527      31117   TLB shootdowns
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:        278        278        278        278   Machine check polls
ERR:          0
MIS:          0


lspci -nnv
Code:
00:00.0 Host bridge [0600]: Advanced Micro Devices [AMD] RS880 Host Bridge [1022:9601]
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 0
        Capabilities: [c4] HyperTransport: Slave or Primary Interface
        Capabilities: [54] HyperTransport: UnitID Clumping
        Capabilities: [40] HyperTransport: Retry Mode
        Capabilities: [9c] HyperTransport: #1a
        Capabilities: [f8] HyperTransport: #1c

00:02.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (ext gfx port 0) [1022:9603] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: 00007000-00007fff
        Memory behind bridge: f2300000-f23fffff
        Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: Hewlett-Packard Company Device [103c:363a]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:04.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 0) [1022:9604] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=07, sec-latency=0
        I/O behind bridge: 00003000-00006fff
        Memory behind bridge: f1300000-f22fffff
        Prefetchable memory behind bridge: 00000000f0000000-00000000f0ffffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: Hewlett-Packard Company Device [103c:363a]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:05.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 1) [1022:9605] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=08, subordinate=08, sec-latency=0
        Memory behind bridge: f1200000-f12fffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: Hewlett-Packard Company Device [103c:363a]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:06.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2) [1022:9606] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=09, subordinate=09, sec-latency=0
        I/O behind bridge: 00002000-00002fff
        Memory behind bridge: f2500000-f25fffff
        Prefetchable memory behind bridge: 00000000f1000000-00000000f10fffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: Hewlett-Packard Company Device [103c:363a]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:0a.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) [1022:9609] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=0a, subordinate=0a, sec-latency=0
        Memory behind bridge: f1100000-f11fffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: Hewlett-Packard Company Device [103c:363a]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:11.0 SATA controller [0106]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391] (prog-if 01 [AHCI 1.0])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 22
        I/O ports at 8038 [size=8]
        I/O ports at 804c [size=4]
        I/O ports at 8030 [size=8]
        I/O ports at 8048 [size=4]
        I/O ports at 8010 [size=16]
        Memory at f2408000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [60] Power Management version 2
        Capabilities: [70] SATA HBA v1.0
        Kernel driver in use: ahci

00:12.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 16
        Memory at f2407000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:12.1 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller [1002:4398] (prog-if 10 [OHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 16
        Memory at f2406000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:12.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 17
        Memory at f2408500 (32-bit, non-prefetchable) [size=256]
        Capabilities: [c0] Power Management version 2
        Capabilities: [e4] Debug port: BAR=1 offset=00e0
        Kernel driver in use: ehci_hcd

00:13.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at f2405000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:13.1 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller [1002:4398] (prog-if 10 [OHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at f2404000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:13.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 19
        Memory at f2408400 (32-bit, non-prefetchable) [size=256]
        Capabilities: [c0] Power Management version 2
        Capabilities: [e4] Debug port: BAR=1 offset=00e0
        Kernel driver in use: ehci_hcd

00:14.0 SMBus [0c05]: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller [1002:4385] (rev 3c)
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: 66MHz, medium devsel
        Capabilities: [b0] HyperTransport: MSI Mapping Enable- Fixed+
        Kernel modules: i2c-piix4

00:14.2 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) [1002:4383]
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, slow devsel, latency 64, IRQ 16
        Memory at f2400000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd-hda-intel

00:14.3 ISA bridge [0601]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller [1002:439d]
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, 66MHz, medium devsel, latency 0

00:14.4 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge [1002:4384] (prog-if 01 [Subtractive decode])
        Flags: bus master, 66MHz, medium devsel, latency 64
        Bus: primary=00, secondary=0b, subordinate=0b, sec-latency=64

00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration [1022:1200]
        Flags: fast devsel
        Capabilities: [80] HyperTransport: Host or Secondary Interface

00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Address Map [1022:1201]
        Flags: fast devsel

00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller [1022:1202]
        Flags: fast devsel

00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control [1022:1203]
        Flags: fast devsel
        Capabilities: [f0] Secure device <?>
        Kernel driver in use: k10temp
        Kernel modules: k10temp

00:18.4 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Link Control [1022:1204]
        Flags: fast devsel

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI M96 [Mobility Radeon HD 4650] [1002:9480] (prog-if 00 [VGA controller])
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, fast devsel, latency 0, IRQ 45
        Memory at e0000000 (32-bit, prefetchable) [size=256M]
        I/O ports at 7000 [size=256]
        Memory at f2300000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at f2320000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Legacy Endpoint, MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Kernel driver in use: radeon

01:00.1 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, fast devsel, latency 0, IRQ 47
        Memory at f2310000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Legacy Endpoint, MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd-hda-intel

08:00.0 Network controller [0280]: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
        Subsystem: Hewlett-Packard Company Device [103c:3042]
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at f1200000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [40] Power Management version 2
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [60] Express Legacy Endpoint, MSI 00
        Capabilities: [90] MSI-X: Enable- Count=1 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
        Kernel driver in use: ath9k
        Kernel modules: ath9k

09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 03)
        Subsystem: Hewlett-Packard Company Device [103c:363a]
        Flags: bus master, fast devsel, latency 0, IRQ 46
        I/O ports at 2000 [size=256]
        Memory at f1004000 (64-bit, prefetchable) [size=4K]
        Memory at f1000000 (64-bit, prefetchable) [size=16K]
        Expansion ROM at f1010000 [disabled] [size=64K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 01
        Capabilities: [ac] MSI-X: Enable- Count=4 Masked-
        Capabilities: [cc] Vital Product Data
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
        Kernel driver in use: r8169
        Kernel modules: r8169


Code:
00:00.0 Host bridge [0600]: Advanced Micro Devices [AMD] RS880 Host Bridge [1022:9601]
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:843e]
        Flags: bus master, 66MHz, medium devsel, latency 0
        Capabilities: [c4] HyperTransport: Slave or Primary Interface
        Capabilities: [54] HyperTransport: UnitID Clumping
        Capabilities: [40] HyperTransport: Retry Mode
        Capabilities: [9c] HyperTransport: #1a
        Capabilities: [f8] HyperTransport: #1c

00:01.0 PCI bridge [0604]: ASUSTeK Computer Inc. RS880 PCI to PCI bridge (int gfx) [1043:9602] (prog-if 00 [Normal decode])
        Flags: bus master, 66MHz, medium devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: fea00000-febfffff
        Prefetchable memory behind bridge: 00000000f0000000-00000000f7ffffff
        Capabilities: [44] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [b0] Subsystem: ASUSTeK Computer Inc. Device [1043:843e]

00:0a.0 PCI bridge [0604]: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) [1022:9609] (prog-if 00 [Normal decode])
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        I/O behind bridge: 0000e000-0000efff
        Prefetchable memory behind bridge: 00000000fdf00000-00000000fdffffff
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Root Port (Slot+), MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [b0] Subsystem: ASUSTeK Computer Inc. Device [1043:843e]
        Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
        Capabilities: [110] Virtual Channel
        Kernel driver in use: pcieport

00:11.0 SATA controller [0106]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] [1002:4391] (rev 40) (prog-if 01 [AHCI 1.0])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 19
        I/O ports at c000 [size=8]
        I/O ports at b000 [size=4]
        I/O ports at a000 [size=8]
        I/O ports at 9000 [size=4]
        I/O ports at 8000 [size=16]
        Memory at fe9ffc00 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [70] SATA HBA v1.0
        Capabilities: [a4] PCI Advanced Features
        Kernel driver in use: ahci

00:12.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at fe9fe000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:12.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 17
        Memory at fe9ff800 (32-bit, non-prefetchable) [size=256]
        Capabilities: [c0] Power Management version 2
        Capabilities: [e4] Debug port: BAR=1 offset=00e0
        Kernel driver in use: ehci_hcd

00:13.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at fe9fd000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:13.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 17
        Memory at fe9ff400 (32-bit, non-prefetchable) [size=256]
        Capabilities: [c0] Power Management version 2
        Capabilities: [e4] Debug port: BAR=1 offset=00e0
        Kernel driver in use: ehci_hcd

00:14.0 SMBus [0c05]: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller [1002:4385] (rev 42)
        Flags: 66MHz, medium devsel
        Kernel modules: i2c-piix4

00:14.2 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) [1002:4383] (rev 40)
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:841b]
        Flags: bus master, slow devsel, latency 64, IRQ 16
        Memory at fe9f4000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd-hda-intel

00:14.3 ISA bridge [0601]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller [1002:439d] (rev 40)
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 0

00:14.4 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge [1002:4384] (rev 40) (prog-if 01 [Subtractive decode])
        Flags: bus master, 66MHz, medium devsel, latency 64
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=64

00:14.5 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller [1002:4399] (prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at fe9fc000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:16.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 18
        Memory at fe9f3000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci_hcd
        Kernel modules: ohci-hcd

00:16.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:8443]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 17
        Memory at fe9ff000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [c0] Power Management version 2
        Capabilities: [e4] Debug port: BAR=1 offset=00e0
        Kernel driver in use: ehci_hcd

00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration [1022:1200]
        Flags: fast devsel
        Capabilities: [80] HyperTransport: Host or Secondary Interface

00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Address Map [1022:1201]
        Flags: fast devsel

00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller [1022:1202]
        Flags: fast devsel
        Kernel driver in use: amd64_edac
        Kernel modules: amd64_edac_mod

00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control [1022:1203]
        Flags: fast devsel
        Capabilities: [f0] Secure device <?>
        Kernel driver in use: k10temp
        Kernel modules: k10temp

00:18.4 Host bridge [0600]: Advanced Micro Devices [AMD] Family 10h Processor Link Control [1022:1204]
        Flags: fast devsel

01:05.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RS880 [Radeon HD 4250] [1002:9715] (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. M5A88-V EVO [1043:843e]
        Flags: bus master, fast devsel, latency 0, IRQ 18
        Memory at f0000000 (32-bit, prefetchable) [size=128M]
        I/O ports at d000 [size=256]
        Memory at febe0000 (32-bit, non-prefetchable) [size=64K]
        Memory at fea00000 (32-bit, non-prefetchable) [size=1M]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [50] Power Management version 3
        Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Kernel driver in use: radeon
        Kernel modules: radeon

02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06)
        Subsystem: ASUSTeK Computer Inc. P8P67 and other motherboards [1043:8432]
        Flags: bus master, fast devsel, latency 0, IRQ 41
        I/O ports at e800 [size=256]
        Memory at fdfff000 (64-bit, prefetchable) [size=4K]
        Memory at fdff8000 (64-bit, prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 01
        Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
        Capabilities: [d0] Vital Product Data
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
        Kernel driver in use: r8169
        Kernel modules: r8169
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Wed Mar 14, 2012 6:38 pm    Post subject: Reply with quote

Nope, I didn't try to write any benchmarks. BTW, I suggest you try roarinelk's patch. It's more robust than mine. (Update) My version now includes roarinelk's changes.

I find it it interesting that both your AHCI controllers have MSI disabled. I remember there was some erratum with S3 or alike. Anyway, I can look up how to enable MSI on AHCI, as well.


Last edited by PrakashP on Sat Mar 17, 2012 7:29 am; edited 1 time in total
Back to top
View user's profile Send private message
potenzial
n00b
n00b


Joined: 11 Oct 2004
Posts: 9
Location: Earth, Germany, Essen

PostPosted: Thu Mar 15, 2012 8:48 pm    Post subject: Reply with quote

PrakashP wrote:
Nope, I didn't try to write any benchmarks. BTW, I suggest you try roarinelk's patch. It's more robust than mine.

I find it it interesting that both your AHCI controllers have MSI disabled. I remember there was some erratum with S3 or alike. Anyway, I can look up how to enable MSI on AHCI, as well.


That would be nice. I have exactly the same problem one of my AHCI controllers get no msi interrupt.

/proc/interrupts
Code:

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
   0:         24          0          0          0          0          0          2          1   IO-APIC-edge      timer
   1:        526        539        538        529        533        524        522        574   IO-APIC-edge      i8042
   8:         15         11         10          9         10         15         10         18   IO-APIC-edge      rtc0
   9:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
  18:          0          1          0          0          0          0          0          0   IO-APIC-fasteoi   ohci_hcd:usb4
  19:       7219       7218       7247       7272       7268       7221       7325       8378   IO-APIC-fasteoi   ahci
  20:          0          0          1          0          0          0          0          0   IO-APIC-fasteoi   ohci_hcd:usb5
  22:          0          0          0          0          1          0          0          0   IO-APIC-fasteoi   ohci_hcd:usb7
  32:         12         13         12         11         11         12         13         15   IO-APIC-fasteoi   snd_oxygen_lib
  72:          0          0          0          0          0          0          0          0   PCI-MSI-edge      AMD-Vi
  75:         24         21         34         29         28         28         24         37   PCI-MSI-edge      ahci
  76:          4          3          2          2          2          4          4          5   PCI-MSI-edge      ehci_hcd:usb1
  77:        911        947        917        989        931        990        987       1180   PCI-MSI-edge      ehci_hcd:usb2
  78:          0          0          0          0          0          0          0          0   PCI-MSI-edge      ehci_hcd:usb3
  79:          0          0          0          1          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb6
  80:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  81:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  82:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  83:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  84:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  85:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  86:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  87:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  88:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  89:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  90:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  91:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  92:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  93:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  94:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  95:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  96:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  97:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  98:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  99:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 100:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 101:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 102:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 103:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 104:        519        510        509        507        514        514        526        843   PCI-MSI-edge      eth0
 105:       1060       1043       1013        945       1026        978       1012       1182   PCI-MSI-edge      nvidia
 NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
 LOC:      25656      24210      16338      13305       7312       6824      12168       3861   Local timer interrupts
 SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
 PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
 IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
 RES:     168729     137325      73848      45939      21262      17407      13822       7231   Rescheduling interrupts
 CAL:       7594       7858       7435       9654       9729      10406      10429      10190   Function call interrupts
 TLB:      11546      10855       6499       4955       3204       5188       3316       2675   TLB shootdowns
 THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
 MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
 MCP:          3          3          3          3          3          3          3          3   Machine check polls


lspci -nnv
Code:


00:00.0 Host bridge [0600]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (external gfx0 port B) [1002:5a14] (rev 02)
   Subsystem: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (external gfx0 port B) [1002:5a14]
   Flags: fast devsel
   Capabilities: [f0] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [c4] HyperTransport: Slave or Primary Interface
   Capabilities: [40] HyperTransport: Retry Mode
   Capabilities: [54] HyperTransport: UnitID Clumping
   Capabilities: [9c] HyperTransport: #1a
   Capabilities: [70] MSI: Enable- Count=1/4 Maskable- 64bit-

00:00.2 IOMMU [0806]: Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory Management Unit (IOMMU) [1002:5a23]
   Subsystem: Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory Management Unit (IOMMU) [1002:5a23]
   Flags: fast devsel, IRQ 72
   Capabilities: [40] Secure device <?>
   Capabilities: [54] MSI: Enable+ Count=1/1 Maskable- 64bit+
   Capabilities: [64] HyperTransport: MSI Mapping Enable+ Fixed+

00:02.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port B) [1002:5a16] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
   I/O behind bridge: 0000e000-0000efff
   Memory behind bridge: fd000000-fe0fffff
   Prefetchable memory behind bridge: 00000000d0000000-00000000d9ffffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:04.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port D) [1002:5a18] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
   I/O behind bridge: 0000d000-0000dfff
   Memory behind bridge: fe500000-fe5fffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:05.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port E) [1002:5a19] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
   I/O behind bridge: 0000c000-0000cfff
   Memory behind bridge: fe400000-fe4fffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:06.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port F) [1002:5a1a] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
   Memory behind bridge: fe300000-fe3fffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:07.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port G) [1002:5a1b] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
   Memory behind bridge: fe200000-fe2fffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:09.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port H) [1002:5a1c] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
   Memory behind bridge: fe100000-fe1fffff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:0b.0 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (NB-SB link) [1002:5a1f] (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=00, secondary=07, subordinate=08, sec-latency=0
   I/O behind bridge: 0000b000-0000bfff
   Capabilities: [50] Power Management version 3
   Capabilities: [58] Express Root Port (Slot+), MSI 00
   Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit-
   Capabilities: [b0] Subsystem: Advanced Micro Devices [AMD] nee ATI Device [1002:5a14]
   Capabilities: [b8] HyperTransport: MSI Mapping Enable+ Fixed+
   Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
   Capabilities: [190] Access Control Services
   Kernel driver in use: pcieport

00:11.0 RAID bus controller [0104]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [RAID5 mode] [1002:4393] (rev 40)
   Subsystem: ASUSTeK Computer Inc. Device [1043:84df]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 19
   I/O ports at f040 [size=8]
   I/O ports at f030 [size=4]
   I/O ports at f020 [size=8]
   I/O ports at f010 [size=4]
   I/O ports at f000 [size=16]
   Memory at fe607000 (32-bit, non-prefetchable) [size=1K]
   Capabilities: [70] SATA HBA v1.0
   Capabilities: [a4] PCI Advanced Features
   Kernel driver in use: ahci

00:12.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 18
   Memory at fe606000 (32-bit, non-prefetchable) [size=4K]
   Kernel driver in use: ohci_hcd

00:12.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 76
   Memory at fe605000 (32-bit, non-prefetchable) [size=256]
   Capabilities: [c0] Power Management version 2
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit-
   Capabilities: [e4] Debug port: BAR=1 offset=00e0
   Kernel driver in use: ehci_hcd

00:13.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 20
   Memory at fe604000 (32-bit, non-prefetchable) [size=4K]
   Kernel driver in use: ohci_hcd

00:13.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 77
   Memory at fe603000 (32-bit, non-prefetchable) [size=256]
   Capabilities: [c0] Power Management version 2
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit-
   Capabilities: [e4] Debug port: BAR=1 offset=00e0
   Kernel driver in use: ehci_hcd

00:14.0 SMBus [0c05]: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller [1002:4385] (rev 42)
   Subsystem: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller [1002:4385]
   Flags: 66MHz, medium devsel

00:14.3 ISA bridge [0601]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller [1002:439d] (rev 40)
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller [1002:439d]
   Flags: bus master, 66MHz, medium devsel, latency 0

00:14.4 PCI bridge [0604]: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge [1002:4384] (rev 40) (prog-if 01 [Subtractive decode])
   Flags: bus master, VGA palette snoop, 66MHz, medium devsel, latency 64
   Bus: primary=00, secondary=09, subordinate=09, sec-latency=64
   Capabilities: [54] HyperTransport: MSI Mapping Enable+ Fixed+

00:14.5 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller [1002:4399] (prog-if 10 [OHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller [1002:4399]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 79
   Memory at fe602000 (32-bit, non-prefetchable) [size=4K]
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit-
   Kernel driver in use: ohci_hcd

00:16.0 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397] (prog-if 10 [OHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller [1002:4397]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 22
   Memory at fe601000 (32-bit, non-prefetchable) [size=4K]
   Kernel driver in use: ohci_hcd

00:16.2 USB controller [0c03]: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396] (prog-if 20 [EHCI])
   Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller [1002:4396]
   Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 78
   Memory at fe600000 (32-bit, non-prefetchable) [size=256]
   Capabilities: [c0] Power Management version 2
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit-
   Capabilities: [e4] Debug port: BAR=1 offset=00e0
   Kernel driver in use: ehci_hcd

00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 0 [1022:1600]
   Flags: fast devsel
   Capabilities: [80] HyperTransport: Host or Secondary Interface

00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 1 [1022:1601]
   Flags: fast devsel

00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 2 [1022:1602]
   Flags: fast devsel

00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 3 [1022:1603]
   Flags: fast devsel
   Capabilities: [f0] Secure device <?>
   Kernel driver in use: k10temp

00:18.4 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 4 [1022:1604]
   Flags: fast devsel
   Kernel driver in use: fam15h_power
   Kernel modules: fam15h_power

00:18.5 Host bridge [0600]: Advanced Micro Devices [AMD] Family 15h Processor Function 5 [1022:1605]
   Flags: fast devsel

01:00.0 VGA compatible controller [0300]: nVidia Corporation GF110 [GeForce GTX 570 HD] [10de:1086] (rev a1) (prog-if 00 [VGA controller])
   Subsystem: ASUSTeK Computer Inc. Device [1043:8387]
   Flags: bus master, fast devsel, latency 0, IRQ 105
   Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
   Memory at d0000000 (64-bit, prefetchable) [size=128M]
   Memory at d8000000 (64-bit, prefetchable) [size=32M]
   I/O ports at e000 [size=128]
   [virtual] Expansion ROM at fe000000 [disabled] [size=512K]
   Capabilities: [60] Power Management version 3
   Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
   Capabilities: [78] Express Endpoint, MSI 00
   Capabilities: [b4] Vendor Specific Information: Len=14 <?>
   Capabilities: [100] Virtual Channel
   Capabilities: [128] Power Budgeting <?>
   Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
   Kernel driver in use: nvidia
   Kernel modules: nvidia

01:00.1 Audio device [0403]: nVidia Corporation GF110 High Definition Audio Controller [10de:0e09] (rev a1)
   Subsystem: ASUSTeK Computer Inc. Device [1043:8387]
   Flags: bus master, fast devsel, latency 0, IRQ 7
   Memory at fe080000 (32-bit, non-prefetchable) [size=16K]
   Capabilities: [60] Power Management version 3
   Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
   Capabilities: [78] Express Endpoint, MSI 00

02:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 01) (prog-if 01 [AHCI 1.0])
   Subsystem: ASUSTeK Computer Inc. Device [1043:84b7]
   Flags: bus master, fast devsel, latency 0, IRQ 75
   I/O ports at d050 [size=8]
   I/O ports at d040 [size=4]
   I/O ports at d030 [size=8]
   I/O ports at d020 [size=4]
   I/O ports at d000 [size=32]
   Memory at fe500000 (32-bit, non-prefetchable) [size=512]
   Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit-
   Capabilities: [78] Power Management version 3
   Capabilities: [80] Express Legacy Endpoint, MSI 00
   Capabilities: [100] Virtual Channel
   Kernel driver in use: ahci

03:00.0 Ethernet controller [0200]: Intel Corporation 82583V Gigabit Network Connection [8086:150c]
   Subsystem: ASUSTeK Computer Inc. Device [1043:8457]
   Flags: bus master, fast devsel, latency 0, IRQ 104
   Memory at fe400000 (32-bit, non-prefetchable) [size=128K]
   I/O ports at c000 [size=32]
   Memory at fe420000 (32-bit, non-prefetchable) [size=16K]
   Capabilities: [c8] Power Management version 2
   Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
   Capabilities: [e0] Express Endpoint, MSI 00
   Capabilities: [a0] MSI-X: Enable- Count=1 Masked-
   Capabilities: [100] Advanced Error Reporting
   Capabilities: [140] Device Serial Number 54-04-a6-ff-ff-0b-c6-f6
   Kernel driver in use: e1000e
   Kernel modules: e1000e

04:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller [1b21:1042] (prog-if 30 [XHCI])
   Subsystem: ASUSTeK Computer Inc. Device [1043:8488]
   Flags: bus master, fast devsel, latency 0, IRQ 51
   Memory at fe300000 (64-bit, non-prefetchable) [size=32K]
   Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
   Capabilities: [68] MSI-X: Enable+ Count=8 Masked-
   Capabilities: [78] Power Management version 3
   Capabilities: [80] Express Legacy Endpoint, MSI 00
   Capabilities: [100] Virtual Channel
   Kernel driver in use: xhci_hcd

05:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller [1b21:1042] (prog-if 30 [XHCI])
   Subsystem: ASUSTeK Computer Inc. Device [1043:8488]
   Flags: bus master, fast devsel, latency 0, IRQ 50
   Memory at fe200000 (64-bit, non-prefetchable) [size=32K]
   Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
   Capabilities: [68] MSI-X: Enable+ Count=8 Masked-
   Capabilities: [78] Power Management version 3
   Capabilities: [80] Express Legacy Endpoint, MSI 00
   Capabilities: [100] Virtual Channel
   Kernel driver in use: xhci_hcd

06:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller [1b21:1042] (prog-if 30 [XHCI])
   Subsystem: ASUSTeK Computer Inc. Device [1043:8488]
   Flags: bus master, fast devsel, latency 0, IRQ 48
   Memory at fe100000 (64-bit, non-prefetchable) [size=32K]
   Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
   Capabilities: [68] MSI-X: Enable+ Count=8 Masked-
   Capabilities: [78] Power Management version 3
   Capabilities: [80] Express Legacy Endpoint, MSI 00
   Capabilities: [100] Virtual Channel
   Kernel driver in use: xhci_hcd

07:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge [10b5:8112] (rev aa) (prog-if 00 [Normal decode])
   Flags: bus master, fast devsel, latency 0
   Bus: primary=07, secondary=08, subordinate=08, sec-latency=32
   I/O behind bridge: 0000b000-0000bfff
   Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
   Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00
   Capabilities: [100] Power Budgeting <?>

08:04.0 Multimedia audio controller [0401]: C-Media Electronics Inc CMI8788 [Oxygen HD Audio] [13f6:8788]
   Subsystem: ASUSTeK Computer Inc. Virtuoso 100 (Xonar Essence STX) [1043:835c]
   Flags: bus master, medium devsel, latency 32, IRQ 32
   I/O ports at b000 [size=256]
   Capabilities: [c0] Power Management version 2
   Kernel driver in use: snd_virtuoso
   Kernel modules: snd-virtuoso
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Sat Mar 17, 2012 7:26 am    Post subject: Reply with quote

Ok, I updated the patch to inlcude roarinelk's changes and also added SATA MSI enabling. Therefore I disable D3 power management to be on the safe side. So using S1 Standby is no problem. The RPR actually says to disable MSI on older revisions, but I guess that's just because of the INTX disable quirk. It works fine on my system.

@potenzial

Did you already apply the patch and then dumped lspci? Because then I wouldn't understand why MSI for OHCI wouldn't be enabled. What is your southbridge chipset? Nice system, btw.
Back to top
View user's profile Send private message
potenzial
n00b
n00b


Joined: 11 Oct 2004
Posts: 9
Location: Earth, Germany, Essen

PostPosted: Sat Mar 17, 2012 1:48 pm    Post subject: Reply with quote

PrakashP wrote:
Ok, I updated the patch to inlcude roarinelk's changes and also added SATA MSI enabling. Therefore I disable D3 power management to be on the safe side. So using S1 Standby is no problem. The RPR actually says to disable MSI on older revisions, but I guess that's just because of the INTX disable quirk. It works fine on my system.

@potenzial

Did you already apply the patch and then dumped lspci? Because then I wouldn't understand why MSI for OHCI wouldn't be enabled. What is your southbridge chipset? Nice system, btw.

Yes, I did sry forget to mention it.
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Sat Mar 17, 2012 2:47 pm    Post subject: Reply with quote

Well, it would be helpful to tell me the chipset you motherboard has.
Back to top
View user's profile Send private message
potenzial
n00b
n00b


Joined: 11 Oct 2004
Posts: 9
Location: Earth, Germany, Essen

PostPosted: Sat Mar 17, 2012 6:52 pm    Post subject: Reply with quote

It'a ASUS Crosshair 5 and the chipset is AMD 990FX/SB950
But with your patch everything is using msi.
Thanks for the help.

/proc/interrupts
Code:


            CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
   0:         29          6          6         10          5          4          8          9   IO-APIC-edge      timer
   1:       3953       4006       3948       4011       3973       4027       4244       6033   IO-APIC-edge      i8042
   8:         13         18         15         14         12         15         14         18   IO-APIC-edge      rtc0
   9:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
  32:         63         69         69         71         69         67         69         84   IO-APIC-fasteoi   snd_oxygen_lib
  72:          0          0          0          0          0          0          0          0   PCI-MSI-edge      AMD-Vi
  73:     225195     230080     230552     228237     228893     223831     231656     325231   PCI-MSI-edge      ahci
  74:         36         27         30         29         36         34         38         41   PCI-MSI-edge      ahci
  75:     106709     104981     104586     105711     105707     106336     109553     142469   PCI-MSI-edge      ehci_hcd:usb1
  76:      77115      76824      77012      77522      76863      78104      81289     133622   PCI-MSI-edge      ehci_hcd:usb2
  77:          0          0          0          0          0          0          0          0   PCI-MSI-edge      ehci_hcd:usb3
  78:          0          1          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb4
  79:          0          0          1          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb5
  80:          0          0          0          1          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb6
  81:          0          0          0          0          1          0          0          0   PCI-MSI-edge      ohci_hcd:usb7
  82:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  83:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  84:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  85:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  86:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  87:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  88:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  89:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  90:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  91:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  92:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  93:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  94:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  95:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  96:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  97:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  98:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
  99:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 100:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 101:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 102:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 103:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 104:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 105:          0          0          0          0          0          0          0          0   PCI-MSI-edge      xhci_hcd
 106:     418702     424524     423486     427569     425925     428305     437578     631839   PCI-MSI-edge      eth0
 107:     126074     129567     128866     127969     127785     126821     131617     190713   PCI-MSI-edge      nvidia
 NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
 LOC:   10565986   10436705    9581323    7989167    4570563    2357276     749455     460092   Local timer interrupts
 SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
 PMI:          0          0          0          0          0          0          0          0   Performance monitoring interrupts
 IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
 RES:   14986817   14060214   11426854    8805579    4852224    2427484     999271     576936   Rescheduling interrupts
 CAL:    1418752    1403668    1465288    1502408    1614837    1665673    1676964    1679916   Function call interrupts
 TLB:    1311774    1364116    1326196    1196649    1068995     971792     824616     790479   TLB shootdowns
 THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
 MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
 MCP:         53         53         53         53         53         53         53         53   Machine check polls
 ERR:          0
 MIS:          0


Last edited by potenzial on Fri Mar 23, 2012 6:45 pm; edited 2 times in total
Back to top
View user's profile Send private message
j_c_p
Apprentice
Apprentice


Joined: 30 Aug 2003
Posts: 297
Location: France - Colmar

PostPosted: Mon Mar 19, 2012 11:12 pm    Post subject: Reply with quote

I've tried the patch too :D :
Code:
CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       
  0:        120          7        209         34       4568      43191   IO-APIC-edge      timer
  1:          0          0          0          0         10        728   IO-APIC-edge      i8042
  6:          0          0          0          0          0          3   IO-APIC-edge      floppy
  9:          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 20:          0          1          0          0          2        444   IO-APIC-fasteoi   snd_ice1712
 42:          1          0          8          1        221      56702   PCI-MSI-edge      ahci
 43:          0          0          1          0         16       1183   PCI-MSI-edge      pata_atiixp
 44:          0          0          1          0         33       6438   PCI-MSI-edge      eth0
 45:          0          0          0          0          0          0   PCI-MSI-edge      ehci_hcd:usb1
 46:          0          0          0          0          0          3   PCI-MSI-edge      ehci_hcd:usb2
 47:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb3
 48:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb4
 49:          0          0          0          0          3         30   PCI-MSI-edge      ohci_hcd:usb5
 50:          0          0          1          1         16        970   PCI-MSI-edge      ohci_hcd:usb6
 51:          0          0          0          0          0          0   PCI-MSI-edge      ohci_hcd:usb7
 52:          0          0          1          0         56       6067   PCI-MSI-edge      nvidia
NMI:          0          0          0          0          0          0   Non-maskable interrupts
LOC:      32738      28000      26078      23273      21616      58260   Local timer interrupts
SPU:          0          0          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0          0          0   IRQ work interrupts
RTR:          0          0          0          0          0          0   APIC ICR read retries
RES:      56660      28092      24769      23241      23042      13736   Rescheduling interrupts
CAL:       9450       9139       9000       9465       9301       6669   Function call interrupts
TLB:       1463       1645       1476       1386       1273       1230   TLB shootdowns
THR:          0          0          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0          0          0   Machine check exceptions
MCP:          1          1          1          1          1          1   Machine check polls
ERR:          0
MIS:          0

Code:
00:00.0 Host bridge: Advanced Micro Devices [AMD] nee ATI RD780 Northbridge only dual slot PCI-e_GFX and HT1 K8 part
00:02.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD790 PCI to PCI bridge (external gfx0 port A)
00:0a.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD790 PCI to PCI bridge (PCI express gpp port F)
00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 3a)
00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller
00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: NVIDIA Corporation GT200 [GeForce GTX 260] (rev a1)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
03:06.0 Multimedia audio controller: VIA Technologies Inc. ICE1712 [Envy24] PCI Multi-Channel I/O Controller (rev 02)
03:0e.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)

_________________
Lian Li PC60 - AMD Phenom II X6 1100T BE - Asrock 990FX EXTREME9 - MSI 480GTX TFII - M-Audio Delta Audiophile 24/96
Kernel 3.14.4 KDE 4.13.1 GCC 4.8.2 x86_64 05/16/2014
Back to top
View user's profile Send private message
s4e8
Apprentice
Apprentice


Joined: 29 Jul 2006
Posts: 215

PostPosted: Wed Mar 28, 2012 3:14 pm    Post subject: Reply with quote

I work beatiful here. But I'd like to have 64 bit DMA in ehci controller either. It think 64bit DMA is more important than MSI interrupt. Intel ehci controller support 64bit DMA, but AMD/ATI not. In order to enable 64 bit DMA, you must check and set dma_mask before ehci_mem_init(). The kernel source has some commented code in ehci_run(), it's wrong place, because ehci_mem_init() allocate/map DMA buffer before ehci_run().
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 444

PostPosted: Thu Mar 29, 2012 7:06 pm    Post subject: Reply with quote

s4e8 wrote:
I work beatiful here. But I'd like to have 64 bit DMA in ehci controller either. It think 64bit DMA is more important than MSI interrupt. Intel ehci controller support 64bit DMA, but AMD/ATI not. In order to enable 64 bit DMA, you must check and set dma_mask before ehci_mem_init(). The kernel source has some commented code in ehci_run(), it's wrong place, because ehci_mem_init() allocate/map DMA buffer before ehci_run().


The dma_mask describes the address range the device can DMA from/to. So if there is a 32bit
dma_mask it means the device can only DMA to/from the first 4G of RAM. That isn't something
that can be changed in the hardware on the fly.
Back to top
View user's profile Send private message
maudeb
n00b
n00b


Joined: 14 May 2012
Posts: 1

PostPosted: Mon May 14, 2012 9:44 pm    Post subject: Reply with quote

PrakashP's patch works like a charm here too:

- Debian Squeeze/Sid w/ Liquorix 3.3.6 kernel
- Asrock 870 Extreme 3 (AMD 870 + SB850) + Phenom II X4 965

...but I still can't see HPET_MSI-edge (BLK_DEV_FD is not set). I'd really like if someone could port this on the kernel tree.

Thanks! Mau

Code:

$ cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       
   0:        240        318       9098     944740   IO-APIC-edge      timer
   1:          1          0         57       7195   IO-APIC-edge      i8042
   7:          1          0          0          0   IO-APIC-edge   
   8:          0          0          0          1   IO-APIC-edge      rtc0
   9:          0          0          0          0   IO-APIC-fasteoi   acpi
  16:          0          0          2        100   IO-APIC-fasteoi   firewire_ohci
  20:          0          0          0          0   IO-APIC-fasteoi   pata_hpt37x
  21:          0          0          3        213   IO-APIC-fasteoi   snd_rme96
  43:          2         10       1045     219080   PCI-MSI-edge      ahci
  44:          0          2        187      36635   PCI-MSI-edge      eth0
  45:          0          0          1         42   PCI-MSI-edge      ehci_hcd:usb1
  46:          0          0          0          1   PCI-MSI-edge      xhci_hcd
  47:          0          0          0          0   PCI-MSI-edge      xhci_hcd
  48:          0          0          0          0   PCI-MSI-edge      xhci_hcd
  49:          0          0          0          0   PCI-MSI-edge      xhci_hcd
  50:          0          0          0          0   PCI-MSI-edge      xhci_hcd
  51:          0          0          0          0   PCI-MSI-edge      ehci_hcd:usb4
  52:          0          0          0          4   PCI-MSI-edge      ehci_hcd:usb5
  53:          0          0          0          1   PCI-MSI-edge      ohci_hcd:usb6
  54:          0          0          0          1   PCI-MSI-edge      ohci_hcd:usb7
  55:          0          0          0          1   PCI-MSI-edge      ohci_hcd:usb8
  56:         13         28       5176    1089298   PCI-MSI-edge      ohci_hcd:usb9
  57:          0          1         51      26989   PCI-MSI-edge      snd_hda_intel
  58:          0          0          0        133   PCI-MSI-edge      snd_hda_intel
  59:          4         27       3355     678668   PCI-MSI-edge      nvidia
 NMI:          0          0          0          0   Non-maskable interrupts
 LOC:    1961953    1900546    1471976    1108968   Local timer interrupts
 SPU:          0          0          0          0   Spurious interrupts
 PMI:          0          0          0          0   Performance monitoring interrupts
 IWI:          0          0          0          0   IRQ work interrupts
 RTR:          0          0          0          0   APIC ICR read retries
 RES:    2365595    2268301    1397656     576100   Rescheduling interrupts
 CAL:      44648      52905      54065      59860   Function call interrupts
 TLB:      33309      26895      28393      22008   TLB shootdowns
 TRM:          0          0          0          0   Thermal event interrupts
 THR:          0          0          0          0   Threshold APIC interrupts
 MCE:          0          0          0          0   Machine check exceptions
 MCP:         22         22         22         22   Machine check polls
 ERR:          1
 MIS:          0
Back to top
View user's profile Send private message
roarinelk
Guru
Guru


Joined: 04 Mar 2004
Posts: 444

PostPosted: Tue May 15, 2012 3:52 am    Post subject: Reply with quote

maudeb wrote:
4 965

...but I still can't see HPET_MSI-edge (BLK_DEV_FD is not set). I'd really like if someone could port this on the kernel tree.


a) it's overrated (APIC timer has a much higher resolution than HPET),
b) you need to set CONFIG_HPET=n AND have a HPET with 3 or more timers for one of the
entries to appear.
Back to top
View user's profile Send private message
_______0
Guru
Guru


Joined: 15 Oct 2012
Posts: 521

PostPosted: Thu Dec 27, 2012 7:31 pm    Post subject: Reply with quote

roarinelk wrote:
maudeb wrote:
4 965

...but I still can't see HPET_MSI-edge (BLK_DEV_FD is not set). I'd really like if someone could port this on the kernel tree.


a) it's overrated (APIC timer has a much higher resolution than HPET),
b) you need to set CONFIG_HPET=n AND have a HPET with 3 or more timers for one of the
entries to appear.


this is interesting, how to pick APIC timer?? I don't see it in /sys/bus/clocksource/devices/clocksource0/available_clocksource

In fact, there's no kernel parametr for apic timer:

Code:
        clocksource=    Override the default clocksource
                        Format: <string>
                        Override the default clocksource and use the clocksource
                        with the name specified.
                        Some clocksource names to choose from, depending on
                        the platform:
                        [all] jiffies (this is the base, fallback clocksource)
                        [ACPI] acpi_pm
                        [ARM] imx_timer1,OSTS,netx_timer,mpu_timer2,
                                pxa_timer,timer3,32k_counter,timer0_1
                        [AVR32] avr32
                        [X86-32] pit,hpet,tsc;
                                scx200_hrt on Geode; cyclone on IBM x440
                        [MIPS] MIPS
                        [PARISC] cr16
                        [S390] tod
                        [SH] SuperH
                        [SPARC64] tick
                        [X86-64] hpet,tsc


And how do you determine HPET is overrated and apic timer is better??

I am interested, I think this can help run a system tuned for real time audio.

thanks.

Oh, also, does this patch work with 3.7.x kernels?? is it 100% bug-free?? Moving stuff over to MSI seems rather trivial.
Back to top
View user's profile Send private message
PrakashP
Veteran
Veteran


Joined: 27 Oct 2003
Posts: 1246
Location: C.C.A.A., Germania

PostPosted: Fri Dec 28, 2012 11:41 am    Post subject: Reply with quote

I am always running a relatively new kernel from the git tree and thus forward-port the patch. And yes it works (for me), but I haven't posted any updated patches. I cannot guarantee though that no bugs emerge. Only AMD can give that guarantee.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum