virtio-comment

 View Only
  • 1.  [PATCH] pci: Update ISR related description about MSI-X

    Posted 09-02-2022 09:36
    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




  • 2.  Re: [virtio-comment] [PATCH] pci: Update ISR related description about MSI-X

    Posted 09-08-2022 21:17
    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/