All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: linux-kernel <linux-kernel@vger.kernel.org>, linux-pci@vger.kernel.org
Subject: Re: Add option to passively listen for PCIE hotplug events
Date: Sun, 09 Nov 2008 16:08:54 +0000	[thread overview]
Message-ID: <49170B16.4010909@tuffmail.co.uk> (raw)
In-Reply-To: <491076BD.1030704@tuffmail.co.uk>

Alan Jenkins wrote:
> Matthew Garrett wrote:
>> On Tue, Nov 04, 2008 at 03:44:23PM +0000, Alan Jenkins wrote:
>>
>>  
>>> I instrumented all the delays I could find. hpc_check_lnk_status() was
>>> the only one that came up.  1000ms delay per call, and I get 6 such 
>>> delays.
>>>     
>>
>> Ok, which is getting called from pciehp_enable_slot(). I'm not quite 
>> clear on why this is being called 6 times - any chance you can put a 
>> dump_stack() in there? Some are probably directly from the resume 
>> code. This confuses me a little, since there's a check for whether 
>> there's a card in the slot first. If that fails, pciehp_enable_slot() 
>> isn't called. If it succeeds, pciehp_enable_slot checks whether the 
>> slot is already powered up. If it is, it bails before doing the link 
>> setup.

Bump.  In case you're still slightly confused, I've found out why.  It 
skips the slot power check because POWER_CTRL(ctrl) == 0.  (See "Power 
Controller" in the debug output below).

Interestingly, I can see that hpc_get_power_status() is still being 
called from elsewhere.  So I'm not sure why we avoid calling it here.

Should I try out the obvious dumb fix (removing the POWER_CTRL test)?

Ta
Alan


# modprobe pciehp pciehp_passive=1 pciehp_debug=1

dmesg output from last of 3 pcie slots:

[  328.873347] pciehp 0000:00:1c.1:pcie02: hpc_check_lnk_status: lnk_status = 1011
[  328.873347] pciehp 0000:00:1c.1:pcie02: Device 0000:03:00.0 already exists at 0000:03:00, cannot hot-add
[  328.873347] pciehp 0000:00:1c.1:pcie02: Cannot add device at 0000:03:00
[  328.873347] pciehp 0000:00:1c.1:pcie02: hpc_get_power_status: SLOTCTRL 58 value read 38
[  328.873347] pciehp 0000:00:1c.1:pcie02: hpc_get_attention_status: SLOTCTRL 58, value read 38
[  328.873347] pciehp 0000:00:1c.1:pcie02: service driver pciehp loaded
[  328.873347] pciehp 0000:00:1c.2:pcie02: Hotplug Controller:
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Seg/Bus/Dev/Func/IRQ : 0000:00:1c.2 IRQ 45
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Vendor ID            : 0x8086
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Device ID            : 0x2664
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Subsystem ID         : 0x0000
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Subsystem Vendor ID  : 0x0000
[  328.873347] pciehp 0000:00:1c.2:pcie02:   PCIe Cap offset      : 0x40
[  328.873347] pciehp 0000:00:1c.2:pcie02:   PCI resource [8]     : 0x3f00000@0xf8000000
[  328.873347] pciehp 0000:00:1c.2:pcie02:   PCI resource [9]     : 0x7000000@0xf0000000
[  328.873347] pciehp 0000:00:1c.2:pcie02: Slot Capabilities      : 0x00180560
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Physical Slot Number : 3
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Attention Button     :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Power Controller     :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   MRL Sensor           :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Attention Indicator  :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Power Indicator      :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Hot-Plug Surprise    : yes
[  328.873347] pciehp 0000:00:1c.2:pcie02:   EMI Present          :  no
[  328.873347] pciehp 0000:00:1c.2:pcie02:   Command Completed    : yes
[  328.873347] pciehp 0000:00:1c.2:pcie02: Slot Status            : 0x0040
[  328.873347] pciehp 0000:00:1c.2:pcie02: Slot Control           : 0x0000
[  328.873347] pciehp 0000:00:1c.2:pcie02: HPC vendor_id 8086 device_id 2664 ss_vid 0 ss_did 0
[  328.873347] pciehp 0000:00:1c.2:pcie02: Registering domain:bus:dev=0000:01:00 hp_slot=0 sun=3 slot_device_offset=0
[  328.873347] pciehp 0000:00:1c.2:pcie02: get_power_status: physical_slot = 3
[  328.873347] pciehp 0000:00:1c.2:pcie02: hpc_get_power_status: SLOTCTRL 58 value read 38
[  328.873347] pciehp 0000:00:1c.2:pcie02: get_attention_status: physical_slot = 3
[  328.873347] pciehp 0000:00:1c.2:pcie02: hpc_get_attention_status: SLOTCTRL 58, value read 38
[  328.873347] pciehp 0000:00:1c.2:pcie02: get_latch_status: physical_slot = 3
[  328.873347] pciehp 0000:00:1c.2:pcie02: get_adapter_status: physical_slot = 3
[  328.873347] pciehp 0000:00:1c.2:pcie02: board_added: slot device, slot offset, hp slot = 0, 0, 0
[  329.876677] pciehp 0000:00:1c.2:pcie02: hpc_check_lnk_status: DEBUG TIME 1000ms
[  329.876677] Pid: 5101, comm: modprobe Not tainted 2.6.28-rc3eeepc #128
[  329.876677] Call Trace:
[  329.876677]  [<e02d3b11>] hpc_check_lnk_status+0x107/0x1ba [pciehp]
[  329.876677]  [<e02d1eaa>] pciehp_enable_slot+0x19d/0x2c9 [pciehp]
[  329.876677]  [<e02d19b8>] pciehp_probe+0x3b2/0x3ee [pciehp]
[  329.876677]  [<c01c276d>] pcie_port_probe_service+0x29/0x63
[  329.876677]  [<c020759b>] driver_probe_device+0xa1/0x117
[  329.876677]  [<c020765a>] __driver_attach+0x49/0x67
[  329.876677]  [<c0206df8>] bus_for_each_dev+0x35/0x56
[  329.876677]  [<c020744a>] driver_attach+0x11/0x13
[  329.876677]  [<c0207611>] __driver_attach+0x0/0x67
[  329.876677]  [<c020713f>] bus_add_driver+0x91/0x192
[  329.876677]  [<c02077b1>] driver_register+0x6d/0xc2
[  329.876677]  [<c0191561>] sysfs_addrm_finish+0x13/0x16f
[  329.876677]  [<e027d000>] pcied_init+0x0/0x5c [pciehp]
[  329.876677]  [<e027d00b>] pcied_init+0xb/0x5c [pciehp]
[  329.876677]  [<c0101134>] _stext+0x4c/0x136
[  329.876677]  [<c01576c3>] __vunmap+0x7c/0x8a
[  329.876677]  [<c0135324>] load_module+0xfe3/0x10e8
[  329.876677]  [<e0046c77>] acpi_get_hp_params_from_firmware+0x0/0x49d [pci_hotplug]
[  329.876677]  [<c01354b0>] sys_init_module+0x87/0x177
[  329.876677]  [<c010376d>] sysenter_do_call+0x12/0x21
[  329.876677] pciehp 0000:00:1c.2:pcie02: hpc_check_lnk_status: lnk_status = 1011
[  329.876677] pciehp 0000:00:1c.2:pcie02: Device 0000:01:00.0 already exists at 0000:01:00, cannot hot-add
[  329.876677] pciehp 0000:00:1c.2:pcie02: Cannot add device at 0000:01:00
[  329.876677] pciehp 0000:00:1c.2:pcie02: hpc_get_power_status: SLOTCTRL 58 value read 38
[  329.876677] pciehp 0000:00:1c.2:pcie02: hpc_get_attention_status: SLOTCTRL 58, value read 38
[  329.876677] pciehp 0000:00:1c.2:pcie02: service driver pciehp loaded



  reply	other threads:[~2008-11-09 16:06 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bspwK-420-11@gated-at.bofh.it>
     [not found] ` <bujnh-2fr-5@gated-at.bofh.it>
     [not found]   ` <bujwT-2Ew-5@gated-at.bofh.it>
     [not found]     ` <buml1-6du-3@gated-at.bofh.it>
2008-11-04 11:29       ` Add option to passively listen for PCIE hotplug events Alan Jenkins
2008-11-04 12:47         ` Matthew Garrett
2008-11-04 13:32           ` Matthew Garrett
2008-11-04 14:26             ` Alan Jenkins
2008-11-04 14:33               ` Matthew Garrett
2008-11-04 15:01                 ` Alan Jenkins
2008-11-04 15:11                   ` Matthew Garrett
2008-11-04 15:44                     ` Alan Jenkins
2008-11-04 15:57                       ` Matthew Garrett
2008-11-04 16:22                         ` Alan Jenkins
2008-11-09 16:08                           ` Alan Jenkins [this message]
2008-11-12 23:34                             ` Matthew Garrett
2008-11-14 16:16                             ` Matthew Garrett
2008-11-14 17:07                               ` Alan Jenkins
2008-11-14 17:12                                 ` Matthew Garrett
2008-11-14 17:27                                   ` Alan Jenkins
2008-11-14 17:35                                     ` Matthew Garrett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49170B16.4010909@tuffmail.co.uk \
    --to=alan-jenkins@tuffmail.co.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.