All of lore.kernel.org
 help / color / mirror / Atom feed
* [virtio-dev] virtio-spec: Clarify /wrt maintaining a split-queue descriptors
@ 2019-10-12  7:20 Jan Kiszka
  2019-10-27 11:37 ` Michael S. Tsirkin
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kiszka @ 2019-10-12  7:20 UTC (permalink / raw)
  To: virtio-dev@lists.oasis-open.org

Hi all,

I'm wondering if the spec is clear enough regarding who is in charge of
setting fields in a descriptor of split virtqueues. Background: I just
made the mistake in an experimental backend of writing back the number
of bytes pushed into a buffer not only in virtq_used_elem but also the
referenced virtq_desc - with unpleasant effects for the guest.

The spec in section 2.6.8 reads to me like virtq_used_elem.len is rather
informative. At least this section leaves it fuzzy to me whether there
are other sources from where a driver can find out how much a device has
delivered - and misled me to also update virtq_desc.len in the device.

But maybe I'm missing a clear note in another section.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [virtio-dev] virtio-spec: Clarify /wrt maintaining a split-queue descriptors
  2019-10-12  7:20 [virtio-dev] virtio-spec: Clarify /wrt maintaining a split-queue descriptors Jan Kiszka
@ 2019-10-27 11:37 ` Michael S. Tsirkin
  0 siblings, 0 replies; 2+ messages in thread
From: Michael S. Tsirkin @ 2019-10-27 11:37 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: virtio-dev@lists.oasis-open.org

On Sat, Oct 12, 2019 at 09:20:02AM +0200, Jan Kiszka wrote:
> Hi all,
> 
> I'm wondering if the spec is clear enough regarding who is in charge of
> setting fields in a descriptor of split virtqueues. Background: I just
> made the mistake in an experimental backend of writing back the number
> of bytes pushed into a buffer not only in virtq_used_elem but also the
> referenced virtq_desc - with unpleasant effects for the guest.
> 
> The spec in section 2.6.8 reads to me like virtq_used_elem.len is rather
> informative. At least this section leaves it fuzzy to me whether there
> are other sources from where a driver can find out how much a device has
> delivered - and misled me to also update virtq_desc.len in the device.
> 
> But maybe I'm missing a clear note in another section.
> 
> Jan


Well it does say this:

	When the driver wants to send a buffer to the device, it fills in
	a slot in the descriptor table (or chains several together), and
	writes the descriptor index into the available ring.  It then
	notifies the device. When the device has finished a buffer, it
	writes the descriptor index into the used ring, and sends a
	used buffer notification.

but for sure, documenting that descriptor area is read-only by device
can't hurt.

> -- 
> Siemens AG, Corporate Technology, CT RDA IOT SES-DE
> Corporate Competence Center Embedded Linux
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-10-27 11:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-12  7:20 [virtio-dev] virtio-spec: Clarify /wrt maintaining a split-queue descriptors Jan Kiszka
2019-10-27 11:37 ` Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.