> +/* Since we need to keep the order of used_idx as avail_idx, it's possible that > + * DMA done not in order in lower device driver for some reason. To prevent > + * used_idx out of order, upend_idx is used to track avail_idx order, done_idx > + * is used to track used_idx order. Once lower device DMA done, then upend_idx > + * can move to done_idx. Could you clarify this please? virtio explicitly allows out of order completion of requests. Does it simplify code that we try to keep used index updates in-order? Because if not, this is not really a requirement. -- MST -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html