WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Questions about device/event channels in Xen.

To: Liang Yang <multisyncfe991@xxxxxxxxxxx>
Subject: Re: [Xen-devel] Questions about device/event channels in Xen.
From: Daniel Stodden <stodden@xxxxxxxxxx>
Date: Fri, 16 Mar 2007 04:17:09 +0100
Cc: Xen Developers <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 15 Mar 2007 20:16:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <BAY125-DAV102E73319DCC90D7ADEC7E93720@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <907625E08839C4409CE5768403633E0B018E1A54@xxxxxxxxxxxxxxxxx> <BAY125-DAV102E73319DCC90D7ADEC7E93720@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, 2007-03-15 at 15:15 -0700, Liang Yang wrote:
> Hello,
> 
> I just have several questions about device and event channel:
> 1. From the implementation point of view, are device and event channel the 
> same (i.e. both based on shared memory)?
> 
> 2. In Xen papers, it is said up to 1024 channels are supported per domain. 
> Does 1024 include both device channel and event channel?

actually it depends on the architecture. on 64-bit-systems it's 4096.
there's a page of memory every domain shares with xen. this specific
limitation is due to the length of a bitvector where every event channel
marked pending sets a unique bit to 1, according to its port number (you
may think of this as a 'channel number', but actually the number depends
on who's holding the endpoint, similar to TCP/UDP connections. two
numbers connecting two domains by one channel).

the length of the bitvector in turn is more or less fixed, due to the
way it is indexed to speed up searches a little. when interrupted,
domains receiving events search the vector in order to determine which
device sent the notification.

> 3. Are these device/event channels allocated dynamically or statically for 
> each domain?

the channel itself is allocated dynamically. it's actually the port
numbers per domain being limited. but that is not much space.

> 4. It seems I need to allocate one device channel per device, is this true?

yes, as mark correctly explained. equivalent to the way different
interrupt lines in a physical host would be assigned to different
devices. one *may* share them, but it's tedious, and event channels are
cheaper than actual wire. :)

note: correctly termed, there's no such thing as a 'device channel'.
there are 'devices', being an event channel (for notification) and
shared memory (for the data).

regards,
daniel

-- 
Daniel Stodden
LRR     -      Lehrstuhl für Rechnertechnik und Rechnerorganisation
Institut für Informatik der TU München             D-85748 Garching
http://www.lrr.in.tum.de/~stodden         mailto:stodden@xxxxxxxxxx
PGP Fingerprint: F5A4 1575 4C56 E26A 0B33  3D80 457E 82AE B0D8 735B


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>