On Fri, Sep 4, 2020 at 8:20 AM Jan Kiszka <> wrote:
>
> On 25.08.20 16:45, Alexander Duyck wrote:
> > From: Alexander Duyck <>
> >
> > Free page hints allow the balloon driver to provide information on what
> > pages are not currently in use so that we can avoid the cost of copying
> > them in migration scenarios. Add a feature description for free page hints
> > describing basic functioning and requirements.
> >
> > Acked-by: Cornelia Huck <>
> > Reviewed-by: David Hildenbrand <>
> > Signed-off-by: Alexander Duyck <>
> > ---
> > conformance.tex | 2 +
> > content.tex | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > 2 files changed, 157 insertions(+), 6 deletions(-)
> >
> > diff --git a/conformance.tex b/conformance.tex
> > index b6fdec090383..a14e26edfcb2 100644
> > --- a/conformance.tex
> > +++ b/conformance.tex
> > @@ -149,6 +149,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> > \item \ref{drivernormative:Device Types / Memory Balloon Device / Feature bits}
> > \item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation}
> > \item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation / Memory Statistics}
> > +\item \ref{drivernormative:Device Types / Memory Balloon Device / Device Operation / Free Page Hinting}
> > \end{itemize}
> >
> > \conformance{\subsection}{SCSI Host Driver Conformance}\label{sec:Conformance / Driver Conformance / SCSI Host Driver Conformance}
> > @@ -331,6 +332,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
> > \item \ref{devicenormative:Device Types / Memory Balloon Device / Feature bits}
> > \item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation}
> > \item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation / Memory Statistics}
> > +\item \ref{devicenormative:Device Types / Memory Balloon Device / Device Operation / Free Page Hinting}
> > \end{itemize}
> >
> > \conformance{\subsection}{SCSI Host Device Conformance}\label{sec:Conformance / Device Conformance / SCSI Host Device Conformance}
> > diff --git a/content.tex b/content.tex
> > index 91735e3eb018..76dfce919b97 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -5005,10 +5005,13 @@ \subsection{Virtqueues}\label{sec:Device Types / Memory Balloon Device / Virtque
> > \begin{description}
> > \item[0] inflateq
> > \item[1] deflateq
> > -\item[2] statsq.
> > +\item[2] statsq
> > +\item[3] free_page_vq
> > \end{description}
> >
> > - Virtqueue 2 only exists if VIRTIO_BALLOON_F_STATS_VQ set.
> > + statsq only exists if VIRTIO_BALLOON_F_STATS_VQ is set.
> > +
> > + free_page_vq only exists if VIRTIO_BALLOON_F_FREE_PAGE_HINT is set.
> >
> > \subsection{Feature bits}\label{sec:Device Types / Memory Balloon Device / Feature bits}
> > \begin{description}
> > @@ -5019,6 +5022,10 @@ \subsection{Feature bits}\label{sec:Device Types / Memory Balloon Device / Featu
> > memory statistics is present.
> > \item[VIRTIO_BALLOON_F_DEFLATE_ON_OOM (2) ] Deflate balloon on
> > guest out of memory condition.
> > +\item[ VIRTIO_BALLOON_F_FREE_PAGE_HINT(3) ] The device has support for free
> > + page hinting. A virtqueue for providing hints as to what memory is
> > + currently free is present. Configuration field \field{free_page_hint_cmd_id}
> > + is valid.
> >
> > \end{description}
> >
> > @@ -5042,13 +5049,17 @@ \subsection{Feature bits}\label{sec:Device Types / Memory Balloon Device / Featu
> > VIRTIO_BALLOON_F_MUST_TELL_HOST is not negotiated.
> >
> > \subsection{Device configuration layout}\label{sec:Device Types / Memory Balloon Device / Device configuration layout}
> > - Both fields of this configuration
> > - are always available.
> > + \field{num_pages} and \field{actual} are always available.
> > +
> > + \field{free_page_hint_cmd_id} is available if
> > + VIRTIO_BALLOON_F_FREE_PAGE_HINT has been negotiated and is read-only by
> > + the driver.
>
> This reads at least to me like "...if VIRTIO_BALLOON_F_FREE_PAGE_HINT
> ... is read-only by the driver". I suspect you rather meant
> "free_page_hint_cmd_id is read-only...". Maybe split up into two sentences?
Yes, the intention is:
1. free_page_hint_cmd_id is only available if
VIRTIO_BALLOON_F_FREE_PAGE_HINT has been negotiated
2. free_page_hint_cmd_id is read only by the driver
If needed I suppose we could break it up by splitting it into two
sentences, or adding "the field" after the "and".
Thanks.
- Alex