于 2013-01-27 19:19, Chris Clayton 写道:
> Hi Yijing
>
> On 01/27/13 02:45, Yijing Wang wrote:
>> 于 2013-01-27 4:54, Chris Clayton 写道:
>>> Hi Martin,
>>>
>>> On 01/24/13 19:21, Martin Mokrejs wrote:
>>>> Hi Chris,
>>>> try to include in kernel only acpiphp and omit pciehp. Don't use
>>>> modules but include
>>>> them statically. And try, in addition, check whether "pcie_aspm=off" in
>>>> grub.conf helped.
>>>>
>>>
>>> Thanks for the tip. I had the pciehp driver installed, but it was a module
>>> and not loaded. I didn't have acpiphp enabled at all. Building them both in
>>> statically, appears to have papered over the cracks of the oops :-)
>>
>> Not loaded pciehp driver? Remove the device from this slot without poweroff ?
>>
>
> That's correct. When I first encountered the oops, I did not have the pciehp
> driver loaded and removing the device from the slot whilst the laptop was
> powered on resulted in the oops.
Hmm, that's unsafe and dangerous, because device now may be running.
There are two ways to trigger pci hot-add or hot-remove in linux, after loaded
pciehp or acpiphp module
(the two modules only one can loaded into system at the same time). You can
trigger hot-add/hot-remove by
sysfs interface under /sys/bus/pci/slots/[slot-name]/power or attention button
on hardware (if your laptop supports that).
>>>
>>>> The best would if you subscribe to linux-pci, and read my recent
>>>> threads
>>>> about similar issues I had with express cards with Dell Vostro 3550.
>>>> Further, there is
>>>> a lot of changes to PCI hotplug done by Yingahi Liu and Rafael Wysockij,
>>>> just browse the
>>>> archives of linux-pci and see the pacthes and the discussion.
>>>
>>> Those discussions are way above my level of knowledge. I guess all this
>>> work will be merged into mainline in due course, so I'll watch for them in
>>> 3.9 or later. Unless, of course, there is a tree I could clone and help
>>> test the changes with my laptop and expresscard.
>>>
>>> Hotplug isn't working at all on my Fujitsu laptop, so I can only get the
>>> card recognised by rebooting with the card inserted (or by writing 1
>>> to/sys/bus/pci/rescan). There seem to be a few reports on this in the
>>> kernel bugzilla, so I'll look through them and see what's being done.
>>
>> Hi Chris,
>> What about use #modprobe pciehp pciehp_debug=1 pciehp_poll_mode=1
>> pciehp_poll_time=1 ?
>>
>> Can you resend the dmesg log and "lspci -vvv" info after hotplug device from
>> your Fujitsu laptop with above module parameters?
>>
>
> I wasn't sure whether or not the pciehp driver should be loaded on its own or
> with the acpiphp driver also loaded. So I built them both as modules and
> planned to try both, pciehp only and acpiphp only. However, I've found that
> acpiphp will not load (regardless of whether or not pciehp is already
> loaded). What I get is:
>
> [chris:~]$ sudo modprobe acpiphp debug=1
> modprobe: ERROR: could not insert 'acpiphp': No such device
>
Currently, If your hardware support pciehp native hotplug, acpiphp driver will
be rejected when loading it in system
(you can force loading it by add boot parameter pcie_aspm=off as Martin said).
> and at the end of the dmesg output I see:
>
> [ 68.199789] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
> [ 68.199970] acpiphp_glue: Total 0 slots
>
> The pciehp driver loads OK. I've attached pciehp-only which shows the dmesg
> and lscpi output that you asked for.
>
> As I said before, the only way that I can get the card detected with
> rebooting the laptop is to write 1 to /sys/bus/pci/rescan. In the hope that
> it might help (e.g. it shows details of the expresscard I'm using), I've also
> attached the output from dmesg and lspci after a rescan.
In this case, i guess your slot maybe always power on, once you insert your
pcie card, and use rescan intercace, you can find them.
I checked the WinTV-HVR-1400 expressed card device's parent port device, as
bellow.
I found the powerctrl in slot cap is clear. So I doubt the hardware support pci
hotplug.
Chris, Can you try to add and remove device by /sys/bus/pci/slots/3/power? (use
#modprobe pciehp pciehp_debug=1)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI
Express Root Port 4 (rev b5) (prog-if 00 [Normal decode])
Bus: primary=00, secondary=02, subordinate=06, sec-latency=0
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns,
L1 <1us
ExtTag- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
TransPend-
LnkCap: Port #4, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0
<512ns, L1 <16us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
Surprise+
Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt- HPIrq-
LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power-
Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
Interlock-
Changed: MRL- PresDet- LinkState+
>
> Please let me know if I can provide any additional diagnostics.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/