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/
Home Products Support Community News


[Xen-devel] Send an event using event channels

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Send an event using event channels
From: Daniele Sgandurra <dansgan@xxxxxxxx>
Date: Thu, 10 May 2007 17:20:30 +0200 (CEST)
Delivery-date: Thu, 10 May 2007 08:18:55 -0700
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.it; h=Message-ID:X-YMail-OSG:Received:Date:From:Subject:To:MIME-Version:Content-Type; b=RxjfVdVLgCmAknpPZ2SSwB64gY8WjK+IxkZmxymPT0iu8HlD0jEgysud7BwH98xmS2qelurhpUWyJD95xwv5Eu1n/DWIokfqc8LQgIQ18/IV5uc71/FPGzA1Igda3pJde7hRvWCetbqVNv3b7fGL141TA0uMy1UUhVqeocqAKKM= ;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I have a question regarding event channels. This is a
simplified version of the code I'm using to set up an
event channel between two domains (domU and dom0):

Code in domU (kernel space)

==alloc a page for shared memory:
        machine_address = virt_to_machine(p);
        mfn = machine_address >> PAGE_SHIFT;

==alloc an event channel HYPERVISOR_event_channel_op

==pass the values to dom0 using xenbus_write (mfn and

Code in dom0 (user space, using libxenstore and
==watch on xenbus, then read the values mfn and

    th = xs_transaction_start(xs)
    xs_read(xs, th, mfn , &len);
    xs_read(xs, th, chan , &len2);
    xs_transaction_end(xs, th, 1);

==bind an interdomain event channel with
      evtchn_op_t op = {
      .cmd = EVTCHNOP_bind_interdomain,
      .u.bind_interdomain.remote_dom = otherdomain_id,
      .u.bind_interdomain.remote_port = chan_port,

After the channel is established I don't understand
how to use it to send notification from domU to dom0.
I'd like also dom0 to acknowledge back domU using the
same channel.

How can dom0 be notified of an event sent from domU?
Looking through the code in drivers/xen/blkfront/ and
drivers/xen/blkback/, usually the driver associates a
virtual-irq and a callback function to the channel,
but I don't understand how to do it in user space
(using libxc), test the channel, reset it, and
acknowledge domU.

I hope I made myself clear :) Thank you very much!

L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: 

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Send an event using event channels, Daniele Sgandurra <=