From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35614) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDf8v-0007Ki-Pw for qemu-devel@nongnu.org; Thu, 07 Mar 2013 13:02:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UDf8s-0007wm-OZ for qemu-devel@nongnu.org; Thu, 07 Mar 2013 13:02:13 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50091) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDf8s-0007wa-He for qemu-devel@nongnu.org; Thu, 07 Mar 2013 13:02:10 -0500 Date: Thu, 7 Mar 2013 20:02:21 +0200 From: "Michael S. Tsirkin" Message-ID: <20130307180221.GA30580@redhat.com> References: <1361806070-62465-1-git-send-email-cornelia.huck@de.ibm.com> <20130226110421.GB10915@redhat.com> <20130226111812.GA11111@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130226111812.GA11111@redhat.com> Subject: [Qemu-devel] virtio-s390: document GPR4/GPR2 cookie values List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: Carsten Otte , rusty@rustcorp.com.au, KVM , Gleb Natapov , linux-s390 , Marcelo Tosatti , Heiko Carstens , Alexander Graf , qemu-devel , Christian Borntraeger , Martin Schwidefsky , virtualization@lists.linux-foundation.org virtio-s390 on kvm can use a cookie value passed to guest to optimize channel/VQ lookups. Document this. Signed-off-by: Michael S. Tsirkin --- diff --git a/virtio-spec.lyx b/virtio-spec.lyx index 72d956c..91aed06 100644 --- a/virtio-spec.lyx +++ b/virtio-spec.lyx @@ -10627,7 +10626,252 @@ Guest->Host Notification For notifying the host of virtqueue buffers, the guest unfortunately can't use a channel command (the asynchronous characteristics of channel I/O interact badly with the host block I/O backend). - Instead, it uses a diagnose 0x500 call with subcode 3 specifying the queue. + Instead, it uses a diagnose 0x500 call with subcode 3 specifying the queue +\change_inserted 1986246365 1362677938 +, as follows: +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1362677973 +\begin_inset Tabular + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362677978 +GPR +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678629 +Input Value +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678627 +Output Value +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362677991 +1 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678208 +0x3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678620 + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678226 +2 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678498 +Subchannel ID +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678642 +Host Cookie +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678500 +3 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678540 +Virtqueue number +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678620 + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678529 +4 +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678644 +Host Cookie +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362678620 + +\end_layout + +\end_inset + + + + +\end_inset + + +\change_deleted 1986246365 1362677938 +. +\change_inserted 1986246365 1362678646 + +\end_layout + +\begin_layout Standard + +\change_inserted 1986246365 1362679010 +Host cookie is an optional per-virtqueue 64 bit value that can be used by + the hypervisor to speed up the notification execution. + For each notification, the output value is returned in GPR2 and should + be passed in GPR4 for the next notification: +\end_layout + +\begin_layout LyX-Code + +\change_inserted 1986246365 1362679011 +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + +\change_inserted 1986246365 1362679033 + +info->cookie = do_notify(schid, virtqueue_get_queue_index(vq), info->cookie); +\end_layout + +\end_inset + + \end_layout \begin_layout Subsubsection*