virtio-pmem: PMEM device spec
PATCH 1/1 virtio-pmem: PMEM device spec
Posting virtio specification for virtio pmem device. Virtio pmem is a paravirtualized device which allows the guest to bypass page cache. Virtio pmem kernel driver is merged in Upstream Kernel 5.3. Also, Qemu device is merged in Qemu 4.1.
---
Sorry, It took me long time to get back on this. There is an enhancement to this spec by "Taylor Stark" CCed in the list. Request for feedback and merging.
RFC is posted here [1]
[1] https://lists.oasis-open.org/archives/virtio-dev/201903/msg00083.html
conformance.tex | 19 ++++++- content.tex | 1 + virtio-pmem.tex | 132 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 virtio-pmem.tex
conformance.tex +17 -2
@@ -31,7 +31,8 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets} \ref{sec:Conformance / Driver Conformance / Sound Driver Conformance}, \ref{sec:Conformance / Driver Conformance / Memory Driver Conformance}, \ref{sec:Conformance / Driver Conformance / I2C Adapter Driver Conformance} or -\ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance}. +\ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance}, +\ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance}. \item Clause \ref{sec:Conformance / Legacy Interface: Transitional Device and Transitional Driver Conformance}. \end{itemize}
@@ -55,7 +56,8 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets} \ref{sec:Conformance / Device Conformance / Sound Device Conformance}, \ref{sec:Conformance / Device Conformance / Memory Device Conformance}, \ref{sec:Conformance / Device Conformance / I2C Adapter Device Conformance} or -\ref{sec:Conformance / Device Conformance / SCMI Device Conformance}. +\ref{sec:Conformance / Device Conformance / SCMI Device Conformance}, +\ref{sec:Conformance / Device Conformance / PMEM Driver Conformance}. \item Clause \ref{sec:Conformance / Legacy Interface: Transitional Device and Transitional Driver Conformance}. \end{itemize}
@@ -301,6 +303,19 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets} \item \ref{drivernormative:Device Types / SCMI Device / Device Operation / Setting Up eventq Buffers} \end{itemize} +\conformance{\subsection}{PMEM Driver Conformance}\label{sec:Conformance / Driver Conformance / PMEM Driver Conformance} + +A PMEM driver MUST conform to the following normative statements: + +\begin{itemize} +\item \ref{devicenormative:Device Types / PMEM Device / Device Initialization} +\item \ref{drivernormative:Device Types / PMEM Driver / Driver Initialization / Direct access} +\item \ref{drivernormative:Device Types / PMEM Driver / Driver Initialization / Virtio flush} +\item \ref{drivernormative:Device Types / PMEM Driver / Driver Operation / Virtqueue command} +\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / Virtqueue flush} +\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / Virtqueue return} +\end{itemize} + \conformance{\section}{Device Conformance}\label{sec:Conformance / Device Conformance} A device MUST conform to the following normative statements:
content.tex +1 -0
@@ -6583,6 +6583,7 @@ \subsubsection{Legacy Interface: Framing Requirements}\label{sec:Device \input{virtio-mem.tex} \input{virtio-i2c.tex} \input{virtio-scmi.tex} +\input{virtio-pmem.tex} \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
virtio-pmem.tex new file +132 -0
132 lines not on this page · raw message
Signature · 1 line
2.25.1
Quoted 6 lines · Pankaj Gupta
Posting virtio specification for virtio pmem device. Virtio pmem is a paravirtualized device which allows the guest to bypass page cache. Virtio pmem kernel driver is merged in Upstream Kernel 5.3. Also, Qemu device is merged in Qemu 4.1.
Is there still time to adjust this?
I notice that this document reiterates concepts that are described in the PMEM programming model definition:
https://www.snia.org/sites/default/files/technical_work/final/NVMProgrammingModel_v1.2.pdf
...specifically that virtio-pmem explicitly disables NVM.PM.OPTIMIZED_FLUSH and forces NVM.PM.FILE.SYNC. Then this document can describe what happens on the backend to convey the sync operation from the VM to the VMM.
Hi Dan,
Quoted 12 lines
Quoted 6 lines
Posting virtio specification for virtio pmem device. Virtio pmem is a paravirtualized device which allows the guest to bypass page cache. Virtio pmem kernel driver is merged in Upstream Kernel 5.3. Also, Qemu device is merged in Qemu 4.1.
Is there still time to adjust this?
I notice that this document reiterates concepts that are described in the PMEM programming model definition:
Quoted 6 lines
https://www.snia.org/sites/default/files/technical_work/final/NVMProgrammingModel_v1.2.pdf
...specifically that virtio-pmem explicitly disables NVM.PM.OPTIMIZED_FLUSH and forces NVM.PM.FILE.SYNC. Then this document can describe what happens on the backend to convey the sync operation from the VM to the VMM.
Thanks for having a look. I am currently removing(mostly removed) the implementation details from
the proposed spec and only keeping device and driver interfaces and their communication structures as per
the feedback from the VIRTIO committee.
Good to know the above document covers guest FLUSH usability details which also applies to virtio-pmem.
Best regards,
Pankaj