On Thu, 6 May 2010 07:30:00 pm Avi Kivity wrote:
On 05/05/2010 11:58 PM, Michael S. Tsirkin wrote:It's next to the available ring; because that's where the guest publishes
+ /* We publish the last-seen used index at the end of the available ring.Shouldn't this be on its own cache line?
+ * 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);
}
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.