All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Keir Fraser <keir.xen@gmail.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: Scalable Event Channel ABI design (draft A)
Date: Tue, 5 Feb 2013 14:48:42 +0000	[thread overview]
Message-ID: <51111BCA.3010207@citrix.com> (raw)
In-Reply-To: <CD35C394.4B677%keir.xen@gmail.com>

On 04/02/13 19:59, Keir Fraser wrote:
> On 04/02/2013 17:52, "David Vrabel" <david.vrabel@citrix.com> wrote:
> 
>> Hi,
>>
>> Here is a design for a scalable event channel ABI for Xen.  It has a
>> number of benefits over the design currently being proposed by Wei Lui.
>>
>> * More event channels (>100,000).
>> * 16 event priorities.
>> * Reduced memory requirements (only 1 additional page per domU).
>> * The use of FIFOs for events ensures fairness, whereas it is difficult
>> to reason about the fairness with the current bitmap system.
> 
> I have some sympathy for this design. It's primary downside compared with
> the 3-level alternative is its greater space cost (32*#vcpus). However, as
> you say the fairness and prioritisation features are rather nice. Also
> having the data structures be per vcpu may well help avoid cacheline
> contention on busy multi-vcpu guests.

This design originally (before I posted it) did have per-VCPU event
arrays but I changed it to per-domain to reduce the memory footprint.

A hybrid approach might be useful.  Busy guests like dom0 or driver
domains could use per-VCPU event arrays but other guests could be
per-domain.  This would be controlled by the toolstack.

> Interested in what others think, but I may actually prefer a ground-up
> redesign like this.

Since the ABI needs to be changed to support more event channels anyway,
it seems an ideal point to revisit the design.

David

  reply	other threads:[~2013-02-05 14:48 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-04 17:52 Scalable Event Channel ABI design (draft A) David Vrabel
2013-02-04 19:59 ` Keir Fraser
2013-02-05 14:48   ` David Vrabel [this message]
2013-02-05 15:16     ` Wei Liu
2013-02-05 18:05       ` George Dunlap
2013-02-05 18:57         ` David Vrabel
2013-02-05 19:03           ` Wei Liu
2013-02-06 11:32           ` George Dunlap
2013-02-06 13:53             ` Keir Fraser
2013-03-14 19:20               ` David Vrabel
2013-02-05 15:49     ` Keir Fraser
2013-02-05 15:54       ` David Vrabel
2013-02-05 16:11         ` Ian Campbell
2013-02-05 18:02           ` Keir Fraser
2013-02-06  9:38             ` Ian Campbell
2013-02-06 10:41               ` Keir Fraser
2013-02-06 10:42               ` Wei Liu
2013-02-06 10:52                 ` Ian Campbell
2013-02-06 11:09                   ` Wei Liu
2013-02-05 16:11         ` Keir Fraser
2013-02-06 11:46   ` Jan Beulich
2013-02-04 21:07 ` Wei Liu
2013-02-04 22:16   ` Keir Fraser
2013-02-05 18:36   ` David Vrabel
2013-02-05 16:10 ` Ian Campbell
2013-02-05 18:18   ` David Vrabel
2013-02-06  9:35     ` Ian Campbell
2013-02-06  9:13 ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51111BCA.3010207@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=keir.xen@gmail.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.