pcie_bus_config settings. What exactly do each setting mean..

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

 



Hi Bjorn

I was trying to fix pcie_write_mrrs() since its seems to not follow PCIe
SIG recommendations. 

It appears to that 010 (512b) is the default and 4096b is the max spec
allowed limit.

Current code seems to match MRRS and MPS, which seem to be completely
different purposes. 

But trying to fix i got confused with all these pcie_bus_config_types.

enum pcie_bus_config_types {
        PCIE_BUS_TUNE_OFF,      /* Don't touch MPS at all */
        PCIE_BUS_DEFAULT,       /* Ensure MPS matches upstream bridge */
        PCIE_BUS_SAFE,          /* Use largest MPS boot-time devices support */
        PCIE_BUS_PERFORMANCE,   /* Use MPS and MRRS for best performance */
        PCIE_BUS_PEER2PEER,     /* Set MPS = 128 for all devices */
};

Not sure what the difference between BUS_TUNE_OFF and BUS_DEFAULT is.

MPS matching upstream bridge is required in all cases right?
BUS_SAFE/BUS_PERFORMANCE? Not sure why that is special for BUS_DEFAULT.

Wouldn't it be simple to say:

BUS_DEFAULT : Just use BIOS settings, no change to anything.

BUS_SAFE: Says Choose largest MPS boot-time settings? What does that
actually mean? Why isn't that BUS_PERFORMANCE?

P2P: Choose smallest setting makes sense.

I think only 3 settings make sense.

BUS_DEFAULT == TUNE_OFF : Choose BIOS values, don't touch anything
BUS_SAFE == BUS_PERFORMANCE : Should actually be the default.
BUS_PEER2PEER - Same as now

Do we really have value for the other settings? Maybe for BUS_DEFAULT we
should call it BUS_BIOS (to indicate real meaning)

BUS_PERFORMANCE should be the default setting for the system.

BUS_P2P if someone needs to configure for p2p.

Cheers,
Ashok



[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