Where exactly can I find in the Linux kernel code the limit set for MSI and MSI-X supporting 32 vectors and 2048 vectors respectively ?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The limits to which you are referring are actually from the PCI standard. See, for example, this freely available briefing on MSI:
http://www.pcisig.com/developers/main/training_materials/get_document?doc_id=1c17cc8e96e3c1969ef8969569648e10d65d7e4d
In the kernel itself, there’s some sanity checking in the MSI source code, but it looks like the maximum number of vectors is pulled from the PCI config space of the device, which should never return more than 32 (2048):
http://lxr.free-electrons.com/source/drivers/pci/msi.c?a=sh#L811