On Fri, Sep 02, 2022 at 05:35:48PM +0800, Keqian Zhu wrote:
> 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.
I think it has to be set always. With NO_VECTOR driver
can poll for config changes.
> \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
>
>
> This publicly archived list offers a means to provide input to the
> OASIS Virtual I/O Device (VIRTIO) TC.
>
> In order to verify user consent to the Feedback License terms and
> to minimize spam in the list archive, subscription is required
> before posting.
>
> Subscribe:
virtio-comment-subscribe@lists.oasis-open.org> Unsubscribe:
virtio-comment-unsubscribe@lists.oasis-open.org> List help:
virtio-comment-help@lists.oasis-open.org> List archive:
https://lists.oasis-open.org/archives/virtio-comment/> Feedback License:
https://www.oasis-open.org/who/ipr/feedback_license.pdf> List Guidelines:
https://www.oasis-open.org/policies-guidelines/mailing-lists> Committee:
https://www.oasis-open.org/committees/virtio/> Join OASIS:
https://www.oasis-open.org/join/