OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [PATCH] pci: Update ISR related description about MSI-X


In commit 6a83c1d41748 ("pci: set ISR bit on config change with MSI-X"),
device is required to set ISR bit on config change even when MSI-X enabled.

This update other ISR related description for above commit.

Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
---
 content.tex | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/content.tex b/content.tex
index e863709..fea576d 100644
--- a/content.tex
+++ b/content.tex
@@ -1158,10 +1158,10 @@ \subsubsection{ISR status capability}\label{sec:Virtio Transport Options / Virti
 \end{tabular}
 
 To avoid an extra access, simply reading this register resets it to 0 and
-causes the device to de-assert the interrupt.
+causes the device to de-assert the interrupt when using INT\#x interrupt.
 
 In this way, driver read of ISR status causes the device to de-assert
-an interrupt.
+an INT\#x interrupt.
 
 See sections \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Used Buffer Notifications} and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Notification of Device Configuration Changes} for how this is used.
 
@@ -1511,7 +1511,7 @@ \subsubsection{Device Initialization}\label{sec:Virtio Transport Options / Virti
 
 When MSI-X capability is present and enabled in the device
 (through standard PCI configuration space) \field{config_msix_vector} and \field{queue_msix_vector} are used to map configuration change and queue
-interrupts to MSI-X vectors. In this case, the ISR Status is unused.
+interrupts to MSI-X vectors.
 
 Writing a valid MSI-X Table entry number, 0 to 0x7FF, to
 \field{config_msix_vector}/\field{queue_msix_vector} maps interrupts triggered
@@ -1681,6 +1681,8 @@ \subsubsection{Notification of Device Configuration Changes}\label{sec:Virtio Tr
 
   \item If MSI-X capability is enabled:
     \begin{enumerate}
+    \item If \field{config_msix_vector} is not NO_VECTOR, set the second
+      lower bit of the ISR Status field for the device.
     \item If \field{config_msix_vector} is not NO_VECTOR,
       request the appropriate MSI-X interrupt message for the
       device, \field{config_msix_vector} sets the MSI-X Table entry
@@ -1718,13 +1720,15 @@ \subsubsection{Driver Handling Interrupts}\label{sec:Virtio Transport Options /
     \end{itemize}
   \item If MSI-X capability is enabled:
     \begin{itemize}
+      \item Read the ISR Status field, which will reset it to zero.
       \item
         Look through all virtqueues mapped to that MSI-X vector for the
         device, to see if any progress has been made by the device
         which requires servicing.
       \item
-        If the MSI-X vector is equal to \field{config_msix_vector},
-        re-examine the configuration space to see what changed.
+        If the second lower bit of ISR Status filed is set and the
+        MSI-X vector is equal to \field{config_msix_vector}, re-examine
+        the configuration space to see what changed.
     \end{itemize}
 \end{itemize}
 
-- 
2.33.0



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]