Le 16/03/13 09:01, Richard PALO a écrit :
Le 14/03/13 17:42, Richard PALO a écrit :
richard@x3200:~# echo ::interrupts -d |mdb -k
IRQ  Vect IPL Bus    Trg Type   CPU Share APIC/INT# Driver Name(s)
1    0x41 5   ISA    Edg Fixed  3   1     0x0/0x1   i8042#0
9    0x80 9   PCI    Lvl Fixed  1   1     0x0/0x9   acpi_wrapper_isr
12   0x42 5   ISA    Edg Fixed  0   1     0x0/0xc   i8042#0
14   0x40 5   ISA    Edg Fixed  0   1     0x0/0xe   ata#0
20   0x60 6   PCI    Lvl Fixed  2   3     0x0/0x14  nge#0, pci-ide#1,
pci-ide#1
21   0x81 9   PCI    Lvl Fixed  1   1     0x0/0x15  nvidia#0
22   0x82 9   PCI    Lvl Fixed  2   1     0x0/0x16  ehci#0
23   0x83 9   PCI    Lvl Fixed  3   1     0x0/0x17  ohci#0
160  0xa0 0          Edg IPI    all 0     -         poke_cpu
208  0xd0 14         Edg IPI    all 1     -
kcpc_hw_overflow_intr
209  0xd1 14         Edg IPI    all 1     -         cbe_fire
210  0xd3 14         Edg IPI    all 1     -         cbe_fire
240  0xe0 15         Edg IPI    all 1     -         xc_serv
241  0xe1 15         Edg IPI    all 1     -         apic_error_intr

after scratching my ear a bit, I realised that my sata disks were being
served by the ide driver (as indicated above).

The chipset is MCP61 (nforce 630a), so I did the following and am
relieved that nv_sata took over.
# update_drv -a -i "pci10de,3f6" nv_sata

( https://www.illumos.org/issues/1023 )

I'm trying to see with ASROCK support if I can prevent the shared IRQs
since there's quite a bit of room:
echo ::interrupts -d |mdb -k
IRQ  Vect IPL Bus    Trg Type   CPU Share APIC/INT# Driver Name(s)
1    0x43 5   ISA    Edg Fixed  2   1     0x0/0x1   i8042#0
9    0x80 9   PCI    Lvl Fixed  1   1     0x0/0x9   acpi_wrapper_isr
12   0x44 5   ISA    Edg Fixed  3   1     0x0/0xc   i8042#0
14   0x41 5   ISA    Edg Fixed  3   1     0x0/0xe   ata#0
20   0x83 9   PCI    Lvl Fixed  2   2     0x0/0x14  ohci#0, nv_sata#0
21   0x60 6   PCI    Lvl Fixed  1   2     0x0/0x15  nge#0, nv_sata#1
22   0x81 9   PCI    Lvl Fixed  0   1     0x0/0x16  nvidia#0
23   0x82 9   PCI    Lvl Fixed  1   1     0x0/0x17  ehci#0
160  0xa0 0          Edg IPI    all 0     -         poke_cpu
208  0xd0 14         Edg IPI    all 1     -         kcpc_hw_overflow_intr
209  0xd1 14         Edg IPI    all 1     -         cbe_fire
210  0xd3 14         Edg IPI    all 1     -         cbe_fire
240  0xe0 15         Edg IPI    all 1     -         xc_serv
241  0xe1 15         Edg IPI    all 1     -         apic_error_intr

I'm curious whether this has a bit to do with the hangs (heavy disk
banging during builds)... because since using nv_sata, I have not
noticed any more real hangs (outside of 100% cpu).  In this event, good
news on that front.

testing in parallele acpica-unix-20130214, if successful, I'll post my
updates in illumos.devel



-------------------------------------------

The good news is that since about a week I've been running acpica-20130823 (see illumos dev for webrev) and I haven't had a hang since.

Good thing as I was ready to toss this ASROCK, now I'm rather happy
(except still can't complete an omnios build which is still on the old acpica bits, I'm booted on hipster which is greatly improved as of late)

I notice a bit better response in general... and the nv_sata devices align on the same IRQ now as well which may have had at least something to do with the problem.

Before I could rarely finish a full illumos-gate build or a serious pkgsrc compile, I've done many of both since without problem.

It would be extremely useful to know if other mainboards can benefit from the updates to get a push committed after the upcoming september release once tested out.

In the meanwhile, I'll try to finish the acpidump update (which is now included in acpica (will be easy to integrate with Mr Pankovs restructuring work) in order to check out what's up with dsdt-hpet tables as Mr Saini indicates.

I might try the MSI trick again as well, for grins.

Also, I noticed the following in freebsd's code:
#if defined(__amd64__) || defined(__i386__)
    /*
     * XXX: Certain BIOSes have buggy AML that specify an IRQ that is
     * edge-sensitive and active-lo.  However, edge-sensitive IRQs
     * should be active-hi.  Force IRQs with an ISA IRQ value to be
     * active-hi instead.
     */
    if (irq < 16 && trig == ACPI_EDGE_SENSITIVE && pol == ACPI_ACTIVE_LOW)
    pol = ACPI_ACTIVE_HIGH;
#endif
    BUS_CONFIG_INTR(dev, irq, (trig == ACPI_EDGE_SENSITIVE) ?
    INTR_TRIGGER_EDGE : INTR_TRIGGER_LEVEL, (pol == ACPI_ACTIVE_HIGH) ?
    INTR_POLARITY_HIGH : INTR_POLARITY_LOW);
}

I will add a debug statement in psm_common.c to see what arrives in case this is also a corner case given I see edge-sensitive IRQs (kbd/mouse).



-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com

Reply via email to