[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 07/15] argo: implement the register op
On Tue, Jan 15, 2019 at 12:36 AM Jan Beulich <JBeulich@xxxxxxxx> wrote: > > >>> On 15.01.19 at 08:56, <christopher.w.clark@xxxxxxxxx> wrote: > > On Mon, Jan 14, 2019 at 6:19 AM Jan Beulich <JBeulich@xxxxxxxx> wrote: > >> >>> On 07.01.19 at 08:42, <christopher.w.clark@xxxxxxxxx> wrote: > >> > + /* > >> > + * A ring must be large enough to transmit messages, so requires > >> > space for: > >> > + * * 1 message header, plus > >> > + * * 1 payload slot (payload is always rounded to a multiple of 16 > >> > bytes) > >> > + * for the message payload to be written into, plus > >> > + * * 1 more slot, so that the ring cannot be filled to capacity > >> > with a > >> > + * single message -- see the logic in ringbuf_insert -- allowing > >> > for this > >> > + * ensures that there can be space remaining when a message is > >> > present. > >> > + * The above determines the minimum acceptable ring size. > >> > + */ > >> > + if ( (reg.len < (sizeof(struct xen_argo_ring_message_header) > >> > + + ROUNDUP_MESSAGE(1) + ROUNDUP_MESSAGE(1))) || > >> > >> These two summands don't look to fulfill the "cannot be filled to > >> capacity" constraint the comment describes, as (aiui) messages > >> can be larger than 16 bytes. What's the deal? > > > > This is intended to be about bound checking reg.len against a minimum > > size: the smallest ring that you can fit a message onto, as determined > > by the logic in ringbuf_insert. The smallest message you can send is: > > sizeof(struct xen_argo_ring_message_header) + ROUNDUP_MESSAGE(1) > > > > and then ringbuf_insert won't accept a message unless there is (at > > least) ROUNDUP_MESSAGE(1) space remaining, so that, plus the smallest > > message size, is the smallest viable ring. There's no point accepting > > registration of a ring smaller than that. > > > > You're right that messages can be larger than 16 bytes, but they can > > only be sent to rings that are larger than that minimum - on a minimum > > sized ring, they'll be rejected by sendv. > > So perhaps the comment wants to say "... cannot be filled to capacity > with a single, minimum size message"? ack, done. Christopher _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |