0

假設一個PCI硬件支持三種可用的中斷範式:中斷範式中的驅動程序(MSI/MSI-X和傳統)

  • 傳統針基礎的INTx
  • MSI
  • MXI-X

我想在我的驅動程序中支持所有三種模式,並在module_param()宏中傳遞intr_type參數。我想知道什麼是一般的經驗法則:如果默認命令行參數是空的,支持MSI或MSI-X? 由於MSI和MSI-X在邏輯上接近,哪一個更適合使用?例如:如果驅動程序檢測到設備支持MSI-X,是否足以嘗試啓用MSI-X並在驅動程序中使用它,並且在故障情況下恢復爲傳統INTx?

謝謝。

回答

1

INTx中斷可能是共享的,所以驅動程序總是必須檢查它自己的設備是否是中斷源。通常,你想避免這種情況。

MSI-X旨在克服MSI的一些缺點。如果你不知道這些是什麼,那很可能它們對你的驅動程序無關緊要,你可以選擇其中一個。

+0

感謝您的意見。我知道MSI-X最多允許2048箇中斷由設備分配。除此之外,MSI和MSI-X的行爲相似,對嗎? – Mark

+0

還有其他的區別,但它們的確很相似。 –

1

基本上,您可以查詢MSI/MSIX支持的端點功能。

grep命令:PCI_CAP_ID_MSIPCI_CAP_ID_MSIX

你應該回退到從MSIX微星和INT如果它不支持。

相關問題