[Skiboot] [PATCH 6/6] npu2: Add support for relaxed-ordering mode

Reza Arbab arbab at linux.ibm.com
Tue Jul 31 02:05:37 AEST 2018


On Mon, Jul 30, 2018 at 04:37:33PM +1000, Alistair Popple wrote:
>On Friday, 27 July 2018 9:47:42 AM AEST Reza Arbab wrote: 
>> +/*
>> + * Enable or disable relaxed ordering on all nvlinks on a given NPU. May leave
>> + * relaxed ordering partially enabled if there are insufficient HW resources to
>> + * enable it on all links.
>> + */
>
>This comment isn't correct as it does so for all nvlinks on all NPUs. Whomever
>wrote that originaly clearly didn't know what he was talking about. He also
>can't spell "originally" correctly.

Changed to "for a given PEC" in v2.

>> +static int npu2_check_relaxed_ordering(struct phb *phb __unused,
>> +				       struct pci_device *pd, void *enable)
>> +{
>> +	/*
>> +	 * IBM PCIe bridge devices (ie. the root ports) can always allow relaxed
>> +	 * ordering
>> +	 */
>> +	if (pd->vdid == 0x04c11014)
>> +		pd->allow_relaxed_ordering = true;
>> +
>> +	PCINOTICE(phb, pd->bdfn, "Checking relaxed ordering config\n");
>> +	if (pd->allow_relaxed_ordering)
>> +		return 0;
>> +
>> +	PCINOTICE(phb, pd->bdfn, "Relaxed ordering not allowed\n");
>
>It's probably best to drop the log level here. Maybe PCIDBG?

No problem.

>> +static int64_t opal_npu_set_relaxed_order(uint64_t phb_id, uint16_t bdfn,
>> +					  bool request_enabled)
>> +{
>> +	struct phb *phb = pci_get_phb(phb_id);
>> +	struct phb4 *phb4;
>> +	uint32_t chip_id, pec;
>> +	struct pci_device *pd;
>> +	bool enable = true;
>> +
>> +	if (!phb || phb->phb_type != phb_type_pcie_v4)
>> +		return OPAL_PARAMETER;
>> +
>> +	phb4 = phb_to_phb4(phb);
>> +	pec = phb4->pec;
>> +	chip_id = phb4->chip_id;
>> +
>> +	/* Can chip_id be packed into NPU2_RELAXED_ORDERING_SOURCE_GRPCHP? */
>> +	if (chip_id & 0x64)
>
>Actually this negates my comments above on gcid validation, but perhaps a
>comment in npu2_relaxed_ordering_source_grpchp(uint32_t gcid) mentioning that
>the caller needs to ensure the gcid is within a valid range wouldn't hurt.

I reworked this a bit so npu2_relaxed_ordering_source_grpchp() is where 
the argument gets validated now.

-- 
Reza Arbab



More information about the Skiboot mailing list