Re: Disabling ASPM L1 sub-states selectively from drivers?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Heiner,

On Fri, Feb 22, 2019 at 12:16 AM Heiner Kallweit <hkallweit1@xxxxxxxxx> wrote:
>
> I face the issue that a PCIe network chip misses RX packets if ASPM L1
> sub-states are enabled. It seems that the RX FIFO is too small to buffer
> all incoming packets during ASPM exit latency.
>
> So far pci_disable_link_state() only allows to disable L1 completely.
> Would it make sense to extend this function to allow disabling
> L1 sub-states selectively? Looking at pcie_config_aspm_link() this
> seems to be possible.

We could certainly explore the option of selectively disabling L1 substates.

But before we do that, let's look at a couple things, because there
are some Linux issues in that area, and it's possible we could make a
generic fix that wouldn't require disabling the substates completely.

One problem is the ASPM L1.2 state depends on LTR information, and we
don't support LTR correctly.  There are a couple patches in -next to
fix some problems, but we still don't handle cases where the BIOS
doesn't program the LTR latencies and the LTR_L1.2_Threshold.

Can you open a report at bugzilla.kernel.org and attach the complete
dmesg log (booted with "pci=earlydump") and the "sudo lspci -vvvxx"
output?

Have you figured out which L1 substate specifically causes problems?
If not, maybe we can use setpci to fiddle with things manually and
narrow it down.

Bjorn



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux