Re: [Qemu-devel] [PATCH RFC] virtio: put last seen used index into ring itself

From: Rusty Russell
Date: Thu May 06 2010 - 23:24:06 EST


On Thu, 6 May 2010 07:30:00 pm Avi Kivity wrote:
> On 05/05/2010 11:58 PM, Michael S. Tsirkin wrote:
> > + /* We publish the last-seen used index at the end of the available ring.
> > + * It is at the end for backwards compatibility. */
> > + vr->last_used_idx =&(vr)->avail->ring[num];
> > + /* Verify that last used index does not spill over the used ring. */
> > + BUG_ON((void *)vr->last_used_idx +
> > + sizeof *vr->last_used_idx> (void *)vr->used);
> > }
> >
>
> Shouldn't this be on its own cache line?

It's next to the available ring; because that's where the guest publishes
its data. That whole page is guest-write, host-read.

Putting it on a cacheline by itself would be a slight pessimization; the host
cpu would have to get the last_used_idx cacheline and the avail descriptor
cacheline every time. This way, they are sometimes the same cacheline.

Hope that clarifies,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/