Page MenuHomeFreeBSD

Fix interrupts delivery on ThunderX for VF IDs beyond 8
ClosedPublic

Authored by zbb on Apr 6 2016, 11:01 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 6, 9:36 PM
Unknown Object (File)
Tue, Nov 5, 10:16 AM
Unknown Object (File)
Oct 2 2024, 5:20 AM
Unknown Object (File)
Oct 2 2024, 5:10 AM
Unknown Object (File)
Sep 24 2024, 8:51 AM
Unknown Object (File)
Sep 11 2024, 3:46 PM
Unknown Object (File)
Aug 30 2024, 3:50 AM
Unknown Object (File)
Aug 13 2024, 10:11 PM

Details

Summary

SR-IOV devices usually use Alternative Routing ID (ARI).
In that case slot/device is always assumed to be 0 and
function/identifier is extended to 8 bits.

Fix interrupts delivery to VF IDs beyond 8 by using a correct
DevID not limited by PCI_FUNCMAX.

Reviewed by:
Obtained from: Semihalf
Sponsored by: Cavium
Differential Revision:

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

zbb retitled this revision from to Fix interrupts delivery on ThunderX for VF IDs beyond 8.
zbb updated this object.
zbb edited the test plan for this revision. (Show Details)
zbb added reviewers: wma, jhb.
zbb set the repository for this revision to rS FreeBSD src repository - subversion.
zbb added a subscriber: arm64.
wma edited edge metadata.
This revision is now accepted and ready to land.Apr 6 2016, 12:41 PM
sys/arm64/arm64/gic_v3_its.c
1599 ↗(On Diff #14921)

This should use PCI_ARI_RID()?

However, I think you can replace all of this with just:

bsf = pci_get_rid(pci_dev);

That already handles ARI for you. Just use that instead of PCI_RID() in your original patch.

zbb edited edge metadata.
This revision now requires review to proceed.Apr 6 2016, 6:31 PM
zbb marked an inline comment as done.Apr 6 2016, 7:56 PM
zbb added inline comments.
sys/arm64/arm64/gic_v3_its.c
1599 ↗(On Diff #14921)

Thank you. Your solution is much better on so many levels that I have no additional comments :-)

jhb edited edge metadata.
jhb added inline comments.
sys/arm64/arm64/gic_v3_its.c
64 ↗(On Diff #14944)

I think you don't need this anymore?

1599 ↗(On Diff #14921)

The real credit goes to rstone@ and kib@ as Ryan added this stuff and kib@ used in the DMAR code (which is where I looked). :)

This revision is now accepted and ready to land.Apr 6 2016, 10:50 PM
This revision was automatically updated to reflect the committed changes.
zbb marked an inline comment as done.