[PATCH V5 0/4] PCI/ASPM: reconfigure ASPM following hotplug for POLICY_DEFAULT

Patel, Mayurkumar mayurkumar.patel at intel.com
Mon Mar 27 23:02:03 PDT 2017


Hi Sinan

>Hi Mayurkumkar,
>
>On 3/25/2017 5:38 PM, Sinan Kaya wrote:
>> When the operating system is booted with the default ASPM policy
>> (POLICY_DEFAULT), current code is querying the enable/disable
>> states from ASPM registers to determine the policy.
>>
>> For example, a BIOS could set the power saving state to performance
>> and clear all ASPM control registers. A balanced ASPM policy could
>> enable L0s and disable L1. A power conscious BIOS could enable both
>> L0s and L1 to trade off latency and performance vs. power.
>>
>> After hotplug removal, pcie_aspm_exit_link_state() function clears
>> the ASPM registers. An insertion following hotplug removal reads
>> incorrect policy as ASPM disabled even though ASPM was enabled
>> during boot.
>>
>> This is caused by the fact that same function is used for reconfiguring
>> ASPM regardless of the power on state.
>>
>> ------------------------
>> Changes from v4 (http://www.spinics.net/lists/linux-pci/msg59245.html)
>> ------------------------
>> - pci_aspm_init(): Fix function comment.  Called for every device we
>>   enumerate.
>> 	Upstream link partner:  Shouldn't need to check pdev->link_state
>>         (should always be NULL for a brand-new device).
>>
>> - pcie_aspm_init_link_state(): Called for bridges (upstream end of
>>     link) after all children have been enumerated.  No longer needs to
>>     check aspm_support_enabled or pdev->has_secondary_link or the VIA
>>     quirk: pci_aspm_init() already checked that stuff, so we only need
>>     to check pdev->link_state here.
>>
>> - split the last patch into two
>>   PCI/ASPM: move link_state cleanup to bridge remove
>>   PCI/ASPM: save power on values during bridge init
>>
>> - create bugzilla (https://bugzilla.kernel.org/show_bug.cgi?id=194895)
>> - add fixes tags
>>
>> Sinan Kaya (4):
>>   PCI/ASPM: introduce pci_aspm_init() and add to pci_init_capabilities()
>>   PCI/ASPM: add init hook to device_add
>>   PCI/ASPM: save power on values during bridge init
>>   PCI/ASPM: move link_state cleanup to bridge remove
>>
>>  drivers/pci/pcie/aspm.c | 93 +++++++++++++++++++++++++++++++++----------------
>>  drivers/pci/probe.c     |  3 ++
>>  drivers/pci/remove.c    |  3 +-
>>  include/linux/pci.h     |  2 ++
>>  4 files changed, 69 insertions(+), 32 deletions(-)
>>
>
>Can you test this on your system and provide your tested-by if all good?
>
>Sinan
>

Thanks for your patches. I am seeing kernel panic after applying
these patches (on top of latest kernel) each time during early boot in pci_aspm_init() (any hints already?) function.
Need to check if it's something related to my local setup or it's because of these changes.
For now I don't have more details why it crashes but I will dig in further and I will provide
you more data as soon as I have it.

>--
>Sinan Kaya
>Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
>Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928




More information about the linux-arm-kernel mailing list