[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCHv1] xen/evtchn: dynamically grow pending event channel ring

On 26/11/15 16:14, David Vrabel wrote:
> If more than 1024 event channels are bound to a evtchn device then it
> possible (even with well behaved applications) for the ring to
> overflow and events to be lost (reported as an -EFBIG error).
> Dynamically increase the size of the ring so there is always enough
> space for all bound events.  Well behaved applicables that only unmask
> events after draining them from the ring can thus no longer lose
> events.
> However, an application could unmask an event before draining it,
> allowing multiple entries per port to accumulate in the ring, and a
> overflow could still occur.  So the overflow detection and reporting
> is retained.
> The ring size is initially only 64 entries so the common use case of
> an application only binding a few events will use less memory than
> before.  The ring size may grow to 512 KiB (enough for all 2^17
> possible channels).  This order 7 kmalloc() may fail due to memory
> fragmentation, so we fall back to trying vmalloc().
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>

Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.