We should have thought of this before, though, especially as Xen does
this or something very similar:
/* Shared ring page */ \req_event and rsp_event allow the other side to indicate when it wants a
struct __name##_sring { \
RING_IDX req_prod, req_event; \
RING_IDX rsp_prod, rsp_event; \
uint8_t pad[48]; \
union __name##_sring_entry ring[1]; /* variable-length */ \
}; \
notification.
Well, we do have such a thing, in the ring suppression flags.
Note that DaveM is talking about moving network tx queue into the net drivers themselves, which will make them much more efficient (ie. drain entire queue before kick), which may again change the balance of what the Right Thing is.