From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Ropert Subject: Re: [RFC] event channels and xen callbacks Date: Thu, 06 Apr 2006 17:12:58 +0200 Message-ID: <44352FFA.8020704@adviseo.fr> References: <44329A63.2020808@adviseo.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Keir Fraser wrote: > > On 4 Apr 2006, at 17:10, Mathieu Ropert wrote: > >> i'm currently playing a bit with event channels and hypervisor >> callbacks, and i find myself stuck because i miss some informations. >> Maybe you can give me some hints: >> >> on amd64 arch, i'd like to know about hypervisor callback: ie, stack >> layout when >> called by Xen, stack location in memory (is it using the TSS entry as >> hardware traps do?) and finally, about how HYPERVISOR_iret() expects >> to find the stack upon call (like when you used iret? or something >> else?). >> >> I may write a little paper or tutorial from i've learned and didn't >> found in Xen doc after i get a better view of the whole thing... > > > 1. The stack layout on callback is just as for a native hardware > interrupt or exception. Those exceptions that push an error code when > running natively also do so when running on Xen, for example. > > 2. The TSS isn't fully virtualised by Xen -- instead you register your > kernel stack with the stack_switch() hypercall. Calling this is > equivalent to writing your stack pointer into your TSS when running > natively. > > 3. When calling HYPERVISOR_iret() there should be a iret_context > swtructure at the top of the stack. See its definition, and a big > comment, in xen/include/public/arch-x86_64.h. > > -- Keir > Thanks Keir, that helped me a lot! Regards, Mathieu