Re: hfi1 use of PCI internals

From: Ashutosh Dixit
Date: Thu Jun 16 2016 - 14:48:39 EST


On Thu, Jun 16 2016 at 12:20:52 PM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
> I noticed drivers/infiniband/hw/hfi1 got moved from staging to
> drivers/ for v4.7. It does a bunch of grubbing around in PCIe ASPM
> configuration, e.g., see drivers/infiniband/hw/hfi1/aspm.h.
>
> I know there have been lots of ASPM issues, both hardware problems and
> Linux kernel problems, but it is *supposed* to be manageable by the
> core, without special driver support. What's the justification for
> having to do this in the hfi1 driver?

The description for commit affa48de84 "staging/rdma/hfi1: Add support
for enabling/disabling PCIe ASPM" anticipates this question and
describes why this was done in the hfi1 driver:

Finally, the kernel ASPM API is not used in this patch. This is
because this patch does several non-standard things as SW
workarounds for HW issues. As mentioned above, it enables ASPM even
when advertised actual latencies are greater than acceptable
latencies. Also, whereas the kernel API only allows drivers to
disable ASPM from driver probe, this patch enables/disables ASPM
directly from interrupt context. Due to these reasons the kernel
ASPM API was not used.