From: Alex Chiang on
* Jens Axboe <jens.axboe(a)oracle.com>:
> On Tue, Oct 13 2009, Alex Chiang wrote:
> > > > Can you modprobe acpiphp with debug=1? And send the output?
> > >
> > > acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
> > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:05.0
> > > acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
> > > acpiphp: Slot [1] registered
> > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:07.0
> > > acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0b:00
> > > acpiphp: Slot [2] registered
> > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:07.0
> > > acpiphp_glue: found ACPI PCI Hotplug slot 6 at PCI 0000:84:00
> > > acpiphp: Slot [6] registered
> > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:09.0
> > > acpiphp_glue: found ACPI PCI Hotplug slot 7 at PCI 0000:87:00
> > > acpiphp: Slot [7] registered
> > > acpiphp_glue: Bus 0000:87 has 1 slot
> > > acpiphp_glue: Bus 0000:84 has 1 slot
> > > acpiphp_glue: Bus 0000:0b has 1 slot
> > > acpiphp_glue: Bus 0000:08 has 1 slot
> > > acpiphp_glue: Total 4 slots
> >
> > You mentioned in another mail that you echoed 1 into the various
> > slots' power files.
> >
> > Did you do that after modprobing acpiphp with debug=1?
> >
> > If so, there should be debug output when you try and turn them
> > on.
>
> It produces:
>
> acpiphp: enable_slot - physical_slot = 1
> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> acpiphp: enable_slot - physical_slot = 2
> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> acpiphp: enable_slot - physical_slot = 6
> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> acpiphp: enable_slot - physical_slot = 7
> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL

Hm, so for some reason, firmware on your machine is telling us
that it doesn't think cards are present and/or enabled.

Unfortunately, I don't know why your firmware would be saying
that. We could add some more debug printks to see what firmware
thinks about your system... Or we could just wait and see what
happens after you get your hardware replaced.

> I have a card in one of the slots only this time.
>
> > Also, quick dummy check, you are trying to power on populated
> > slots, right? :)
>
> Yes :-)
>
> > Can you send the output of lspci -vv? And I like the output of
> > lspci -vt as well... Both before and after loading acpiphp
> > please.
>
> Send privately.

No difference in before and after. Odd.

If you want to poke us again after your hardware swap, please do
so. Sorry for being not so helpful. :-/

/ac

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Jens Axboe on
On Tue, Oct 20 2009, Alex Chiang wrote:
> * Jens Axboe <jens.axboe(a)oracle.com>:
> > On Tue, Oct 13 2009, Alex Chiang wrote:
> > > > > Can you modprobe acpiphp with debug=1? And send the output?
> > > >
> > > > acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
> > > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:05.0
> > > > acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
> > > > acpiphp: Slot [1] registered
> > > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:07.0
> > > > acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0b:00
> > > > acpiphp: Slot [2] registered
> > > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:07.0
> > > > acpiphp_glue: found ACPI PCI Hotplug slot 6 at PCI 0000:84:00
> > > > acpiphp: Slot [6] registered
> > > > acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:09.0
> > > > acpiphp_glue: found ACPI PCI Hotplug slot 7 at PCI 0000:87:00
> > > > acpiphp: Slot [7] registered
> > > > acpiphp_glue: Bus 0000:87 has 1 slot
> > > > acpiphp_glue: Bus 0000:84 has 1 slot
> > > > acpiphp_glue: Bus 0000:0b has 1 slot
> > > > acpiphp_glue: Bus 0000:08 has 1 slot
> > > > acpiphp_glue: Total 4 slots
> > >
> > > You mentioned in another mail that you echoed 1 into the various
> > > slots' power files.
> > >
> > > Did you do that after modprobing acpiphp with debug=1?
> > >
> > > If so, there should be debug output when you try and turn them
> > > on.
> >
> > It produces:
> >
> > acpiphp: enable_slot - physical_slot = 1
> > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > acpiphp: enable_slot - physical_slot = 2
> > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > acpiphp: enable_slot - physical_slot = 6
> > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > acpiphp: enable_slot - physical_slot = 7
> > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>
> Hm, so for some reason, firmware on your machine is telling us
> that it doesn't think cards are present and/or enabled.
>
> Unfortunately, I don't know why your firmware would be saying
> that. We could add some more debug printks to see what firmware
> thinks about your system... Or we could just wait and see what
> happens after you get your hardware replaced.

New board, the exact same thing happens.

> > I have a card in one of the slots only this time.
> >
> > > Also, quick dummy check, you are trying to power on populated
> > > slots, right? :)
> >
> > Yes :-)
> >
> > > Can you send the output of lspci -vv? And I like the output of
> > > lspci -vt as well... Both before and after loading acpiphp
> > > please.
> >
> > Send privately.
>
> No difference in before and after. Odd.
>
> If you want to poke us again after your hardware swap, please do
> so. Sorry for being not so helpful. :-/

Poke :-)

One more thing I tried was pushing the power button on the slot
manually. With acpiphp, I get the same messages as above. Using pciehp,
I get the same power fault bit interrupt storm. So no difference from
using the sysfs interface or doing it on the box side, doesn't work
either way.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alex Chiang on
* Jens Axboe <jens.axboe(a)oracle.com>:
> > > acpiphp: enable_slot - physical_slot = 1
> > > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > > acpiphp: enable_slot - physical_slot = 2
> > > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > > acpiphp: enable_slot - physical_slot = 6
> > > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> > > acpiphp: enable_slot - physical_slot = 7
> > > acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
> >
> > Hm, so for some reason, firmware on your machine is telling us
> > that it doesn't think cards are present and/or enabled.
> >
> > Unfortunately, I don't know why your firmware would be saying
> > that. We could add some more debug printks to see what firmware
> > thinks about your system... Or we could just wait and see what
> > happens after you get your hardware replaced.

Let's try and find out why firmware is telling us that we didn't
get ACPI_STA_ALL.

Can you please apply this debug patch and send the output? Again,
please modprobe with debug=1.

Thanks,
/ac

---
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 58d25a1..2caa447 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -797,9 +797,13 @@ static int power_on_slot(struct acpiphp_slot *slot)
struct list_head *l;
int retval = 0;

+ printk("%s\n", __func__);
+
/* if already enabled, just skip */
- if (slot->flags & SLOT_POWEREDON)
+ if (slot->flags & SLOT_POWEREDON) {
+ printk(" slot %ld already powered on\n", slot->sun);
goto err_exit;
+ }

list_for_each (l, &slot->funcs) {
func = list_entry(l, struct acpiphp_func, sibling);
@@ -813,6 +817,8 @@ static int power_on_slot(struct acpiphp_slot *slot)
goto err_exit;
} else
break;
+ } else {
+ printk(" no _PS0\n");
}
}

@@ -1122,11 +1128,14 @@ static unsigned int get_slot_status(struct acpiphp_slot *slot)
struct list_head *l;
struct acpiphp_func *func;

+ printk("%s\n", __func__);
+
list_for_each (l, &slot->funcs) {
func = list_entry(l, struct acpiphp_func, sibling);

if (func->flags & FUNC_HAS_STA) {
status = acpi_evaluate_integer(func->handle, "_STA", NULL, &sta);
+ printk(" FUNC_HAS_STA status %d _STA %#lx\n", status, sta);
if (ACPI_SUCCESS(status) && sta)
break;
} else {
@@ -1134,6 +1143,7 @@ static unsigned int get_slot_status(struct acpiphp_slot *slot)
PCI_DEVFN(slot->device,
func->function),
PCI_VENDOR_ID, &dvid);
+ printk(" reading config space dvid %#lx\n", dvid);
if (dvid != 0xffffffff) {
sta = ACPI_STA_ALL;
break;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Kenji Kaneshige on
Jens Axboe wrote:
> On Tue, Oct 20 2009, Alex Chiang wrote:
>> * Jens Axboe <jens.axboe(a)oracle.com>:
>>> On Tue, Oct 13 2009, Alex Chiang wrote:
>>>>>> Can you modprobe acpiphp with debug=1? And send the output?
>>>>> acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:05.0
>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
>>>>> acpiphp: Slot [1] registered
>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:07.0
>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0b:00
>>>>> acpiphp: Slot [2] registered
>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:07.0
>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 6 at PCI 0000:84:00
>>>>> acpiphp: Slot [6] registered
>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:09.0
>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 7 at PCI 0000:87:00
>>>>> acpiphp: Slot [7] registered
>>>>> acpiphp_glue: Bus 0000:87 has 1 slot
>>>>> acpiphp_glue: Bus 0000:84 has 1 slot
>>>>> acpiphp_glue: Bus 0000:0b has 1 slot
>>>>> acpiphp_glue: Bus 0000:08 has 1 slot
>>>>> acpiphp_glue: Total 4 slots
>>>> You mentioned in another mail that you echoed 1 into the various
>>>> slots' power files.
>>>>
>>>> Did you do that after modprobing acpiphp with debug=1?
>>>>
>>>> If so, there should be debug output when you try and turn them
>>>> on.
>>> It produces:
>>>
>>> acpiphp: enable_slot - physical_slot = 1
>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>> acpiphp: enable_slot - physical_slot = 2
>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>> acpiphp: enable_slot - physical_slot = 6
>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>> acpiphp: enable_slot - physical_slot = 7
>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>> Hm, so for some reason, firmware on your machine is telling us
>> that it doesn't think cards are present and/or enabled.
>>
>> Unfortunately, I don't know why your firmware would be saying
>> that. We could add some more debug printks to see what firmware
>> thinks about your system... Or we could just wait and see what
>> happens after you get your hardware replaced.
>
> New board, the exact same thing happens.
>
>>> I have a card in one of the slots only this time.
>>>
>>>> Also, quick dummy check, you are trying to power on populated
>>>> slots, right? :)
>>> Yes :-)
>>>
>>>> Can you send the output of lspci -vv? And I like the output of
>>>> lspci -vt as well... Both before and after loading acpiphp
>>>> please.
>>> Send privately.
>> No difference in before and after. Odd.
>>
>> If you want to poke us again after your hardware swap, please do
>> so. Sorry for being not so helpful. :-/
>
> Poke :-)
>
> One more thing I tried was pushing the power button on the slot
> manually. With acpiphp, I get the same messages as above. Using pciehp,
> I get the same power fault bit interrupt storm. So no difference from
> using the sysfs interface or doing it on the box side, doesn't work
> either way.
>

I'd like to confirm power fault interrupt storm, just in case.
Could you get /proc/interrupts information after power fault
problem happens and send it to me?

Thanks,
Kenji Kaneshige



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Jens Axboe on
On Tue, Oct 27 2009, Kenji Kaneshige wrote:
> Jens Axboe wrote:
>> On Tue, Oct 20 2009, Alex Chiang wrote:
>>> * Jens Axboe <jens.axboe(a)oracle.com>:
>>>> On Tue, Oct 13 2009, Alex Chiang wrote:
>>>>>>> Can you modprobe acpiphp with debug=1? And send the output?
>>>>>> acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
>>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:05.0
>>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
>>>>>> acpiphp: Slot [1] registered
>>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:00:07.0
>>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0b:00
>>>>>> acpiphp: Slot [2] registered
>>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:07.0
>>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 6 at PCI 0000:84:00
>>>>>> acpiphp: Slot [6] registered
>>>>>> acpiphp_glue: found PCI-to-PCI bridge at PCI 0000:80:09.0
>>>>>> acpiphp_glue: found ACPI PCI Hotplug slot 7 at PCI 0000:87:00
>>>>>> acpiphp: Slot [7] registered
>>>>>> acpiphp_glue: Bus 0000:87 has 1 slot
>>>>>> acpiphp_glue: Bus 0000:84 has 1 slot
>>>>>> acpiphp_glue: Bus 0000:0b has 1 slot
>>>>>> acpiphp_glue: Bus 0000:08 has 1 slot
>>>>>> acpiphp_glue: Total 4 slots
>>>>> You mentioned in another mail that you echoed 1 into the various
>>>>> slots' power files.
>>>>>
>>>>> Did you do that after modprobing acpiphp with debug=1?
>>>>>
>>>>> If so, there should be debug output when you try and turn them
>>>>> on.
>>>> It produces:
>>>>
>>>> acpiphp: enable_slot - physical_slot = 1
>>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>>> acpiphp: enable_slot - physical_slot = 2
>>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>>> acpiphp: enable_slot - physical_slot = 6
>>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>>> acpiphp: enable_slot - physical_slot = 7
>>>> acpiphp_glue: acpiphp_enable_slot: Slot status is not ACPI_STA_ALL
>>> Hm, so for some reason, firmware on your machine is telling us
>>> that it doesn't think cards are present and/or enabled.
>>>
>>> Unfortunately, I don't know why your firmware would be saying
>>> that. We could add some more debug printks to see what firmware
>>> thinks about your system... Or we could just wait and see what
>>> happens after you get your hardware replaced.
>>
>> New board, the exact same thing happens.
>>
>>>> I have a card in one of the slots only this time.
>>>>
>>>>> Also, quick dummy check, you are trying to power on populated
>>>>> slots, right? :)
>>>> Yes :-)
>>>>
>>>>> Can you send the output of lspci -vv? And I like the output of
>>>>> lspci -vt as well... Both before and after loading acpiphp
>>>>> please.
>>>> Send privately.
>>> No difference in before and after. Odd.
>>>
>>> If you want to poke us again after your hardware swap, please do
>>> so. Sorry for being not so helpful. :-/
>>
>> Poke :-)
>>
>> One more thing I tried was pushing the power button on the slot
>> manually. With acpiphp, I get the same messages as above. Using pciehp,
>> I get the same power fault bit interrupt storm. So no difference from
>> using the sysfs interface or doing it on the box side, doesn't work
>> either way.
>>
>
> I'd like to confirm power fault interrupt storm, just in case.
> Could you get /proc/interrupts information after power fault
> problem happens and send it to me?

The box pretty much hangs when I try to power on a slot with pciehp, so
it's not easy to do... It doesn't hang with acpiphp, but doesn't work
either (see previous reply to Alex).

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/