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-ia64-devel

Re: [Xen-ia64-devel] RE: Event channel vs current scheme speed [was vIOS

To: "Dong, Eddie" <eddie.dong@xxxxxxxxx>, "Magenheimer, Dan \(HP Labs Fort Collins\)" <dan.magenheimer@xxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-ia64-devel] RE: Event channel vs current scheme speed [was vIOSAPIC and IRQs delivery]
From: Tristan Gingold <Tristan.Gingold@xxxxxxxx>
Date: Thu, 9 Mar 2006 11:49:24 +0100
Delivery-date: Thu, 09 Mar 2006 10:46:35 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <26F44F810A51DF42A127BC2A06BE185E03D6511C@pdsmsx404>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <26F44F810A51DF42A127BC2A06BE185E03D6511C@pdsmsx404>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.5
Le Jeudi 09 Mars 2006 10:52, Dong, Eddie a écrit :
> Tristan Gingold wrote:
> > I'd like to narrow the discussion on this problem within this thread.
> >
> > We all agree we'd like to support shared IRQs and drivers domain.
> > I am saying I can do that without event channel, while Eddie says it
> > is required.
>
> The current vIOSAPIC can't, would like to see your enhancement if you
> want.
I really think I can achieve that.  But I don't work to do duplicate work.

> > One of Eddie argument is performance, as discussed previously.  Since
> > I don't agree and things should be obvious here, I'd like to
> > understand why we don't agree.
>
> I said event channel based solution was slight better in performance,
> but I also said this was not critical reason that I didn't buy in
> vIOSAPIC.
> The critical reason is in architecture correctness, compatability to Xen
> and maintaince effort in future.
Ok, these are your main arguments.

Maybe I am wrong but event-channel do not allow priority.  An interrupt can't 
be interrupted.  Is it true ?

[...]
> With event channel based approach, TPR, IVR is read in xen, not guest.
> That is the difference. Only EOI is conditionally written by a notifier
> request
> from event channel. So vIOSPAIC needs 3 hypercalls, while event channel
> based solution needs at most 1 hypercall.
So we agree here.

Event channel also means we loose hyper-reflexion, unless you are a volunter 
to rewrite it.

Event channel is 1 hypercall *iif* callback is used.  If current event-channel 
(through IRQ) is used, this is not true.  And I am angry with callback.

> > purpose of hypercall PHYSDEVOP_IRQ_UNMASK_NOTIFY.  Xen has to know
> > when all domains have finished to handle the interrupt.
>
> I have listed in the description of X86 flow, please refer. Basically
> this is same.
So we agree too.  "this is same".

[...]
> >> 3: Stability:
> >> Event channel based solution has undergone long time well test and
> >> real deployment, but vIOSAPIC is not. BTW, IRQ is very important in
> >> OS, a race condition issue may cost people weeks or even months
> >> debug effort.
> >
> > I don't agree.  Current logic is much more tested than event channel,
> > at least on ia64!
> > Radical changes are much more worrying.
>
> Please be aware that vIOSAPIC need to change IOSAPIC code, and
> original IOSAPIC is not aware of any race condition among
> multiple VMs that is totally new.
No, this is a Xen issue, not a linux one.  And basically the code is the same.

> On the other hand, using
> event channel based solution doesn't need to change single line code for
> run time service. The dish is there already.
>
> Background for others:  Choosing IOSAPIC as hardware interrupt
> ocntroller
>  or pirq is done at initialization time. If choosing pirq, the guest IRQ
> goes
>  into event channel based approach, there is no extra changes.
Correct.

>
> >> 4: Which one change linux less ?
> >>     My answer is still event channel based solution, as all event
> >> channel code are xen common and
> >> is already in (VBD/VNIF use it).
> >
> > You will have to change iosapic.c almost like my change, see
> > io_apic-xen.c and adding new event-channel irq_type.
>
> Initialization time change is almost same (neglictable difference), but
> for runtime service changes. Event channel based solution changes less.
>
> > Checking running_on_xen costs nothing.  If you fear about that, forget
> > transparent virtualization.
>
> As previously said, although event channel based solution has slight
> better
> performance, but it is not critical even for me. Just show u how
> transparent concept is much better supported in event channel
> based solution.
>
> >> 6: Stability of future:
> >>    My answer is clear, fixing an intial time bug only costs
> >> one-tenth of runtime bug. Eventchannel based solution only change
> >> intial time code.
> >
> > Current interrupt delivery is stable.  Why changing something which
> > is working ?
>
> Because we need to support driver domain, support IRQ sharing among
> guests.
My whole point is: this can be done without using event channel.

> Maybe I should ask u why xen code supporting interrupt delivery for
> driver domain and IRQ sharing is not choosed. xen code is a working code.
Ask Dan.  I don't know why he didn't use event channel to deliver IRQs.  By 
seeing the amount of optimization for IRQs, I deduced he didn't want to 
deviler IRQs with event-channel.  Maybe I am wrong.

Tristan.


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