Zang Hongyong
2008-Mar-17 14:02 UTC
[Xen-devel] question about system call mechanism in xen
hi, I''m interested in system call mechanism in Xen. My understanding (guess) as follows. 1)When user application makes a system call, a "int 80" will occur. 2)Then trap to Ring 0 (Which is hypervisor''s location). 3)Then hypervisor redirect it to Guest OS''s kernel to do system call operation. 4)Then back to Ring 0 5)back to user appliction Is that true? Where can I get documents about this question in detail? thanks in advance _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2008-Mar-17 14:57 UTC
Re: [Xen-devel] question about system call mechanism in xen
>>> "Zang Hongyong" <zanghongyong@ncic.ac.cn> 17.03.08 15:02 >>> >hi, > I''m interested in system call mechanism in Xen. My understanding (guess) as follows. > 1)When user application makes a system call, a "int 80" will occur. > 2)Then trap to Ring 0 (Which is hypervisor''s location). > 3)Then hypervisor redirect it to Guest OS''s kernel to do system call operation. > 4)Then back to Ring 0 > 5)back to user appliction > > Is that true?If everything is 32-bit, "int 80" will be used, but it''ll be directed directly to the guest kernel in ring 1 (i.e. the hypervisor isn''t involved). If the hypervisor is 64-bit, things behave differently based upon what kind of kernel/app you''re running and whether it''s a AMD or Intel CPUs the system is equipped with.> Where can I get documents about this question in detail?Source code is probably the only reference. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Zang Hongyong
2008-Mar-18 01:21 UTC
Re: Re: [Xen-devel] question about system call mechanism in xen
======= 2008-03-17 22:57:46 您在来信中写道:======>>>> "Zang Hongyong" <zanghongyong@ncic.ac.cn> 17.03.08 15:02 >>> >>hi, >> I'm interested in system call mechanism in Xen. My understanding (guess) as follows. >> 1)When user application makes a system call, a "int 80" will occur. >> 2)Then trap to Ring 0 (Which is hypervisor's location). >> 3)Then hypervisor redirect it to Guest OS's kernel to do system call operation. >> 4)Then back to Ring 0 >> 5)back to user appliction >> >> Is that true? > >If everything is 32-bit, "int 80" will be used, but it'll be directed directly >to the guest kernel in ring 1 (i.e. the hypervisor isn't involved).Many thanks yet the words "directed directly" equals "fast trap" which appears in "Xen and the Art of Virtualization". Right? "Fast trap" is implemented in this way that systemcall's item in IDT of hypervisor points to Guest's kernel operation. Right?>If the hypervisor is 64-bit, things behave differently based upon what >kind of kernel/app you're running and whether it's a AMD or Intel CPUs >the system is equipped with. > >> Where can I get documents about this question in detail? > >Source code is probably the only reference. > >Jan > > >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.xensource.com >http://lists.xensource.com/xen-devel= = = = = = = = = = = = = = = = = = = 致 礼! Zang Hongyong zanghongyong@ncic.ac.cn 2008-03-18 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
weiming
2008-Mar-18 02:06 UTC
Re: Re: [Xen-devel] question about system call mechanism in xen
under x86_32, syscall is essentially a soft int, which will be handled by hardware (interrupt controller): when a guest domain is scheduled to run, it just installs the entry point of the corresponding service routine to the IDT. Then whenever a int 80 is issued, control is transferred to the handler. The whole process is free of xen's interference. that why it's called "directly" weiming 2008/3/17 Zang Hongyong <zanghongyong@ncic.ac.cn>:> ======= 2008-03-17 22:57:46 您在来信中写道:======> > >>>> "Zang Hongyong" <zanghongyong@ncic.ac.cn> 17.03.08 15:02 >>> > >>hi, > >> I'm interested in system call mechanism in Xen. My understanding > (guess) as follows. > >> 1)When user application makes a system call, a "int 80" will occur. > >> 2)Then trap to Ring 0 (Which is hypervisor's location). > >> 3)Then hypervisor redirect it to Guest OS's kernel to do system call > operation. > >> 4)Then back to Ring 0 > >> 5)back to user appliction > >> > >> Is that true? > > > >If everything is 32-bit, "int 80" will be used, but it'll be directed > directly > >to the guest kernel in ring 1 (i.e. the hypervisor isn't involved). > Many thanks > yet the words "directed directly" equals "fast trap" which appears in "Xen > and the Art of Virtualization". > Right? > "Fast trap" is implemented in this way that systemcall's item in IDT of > hypervisor points to Guest's kernel operation. > Right? > > > >If the hypervisor is 64-bit, things behave differently based upon what > >kind of kernel/app you're running and whether it's a AMD or Intel CPUs > >the system is equipped with. > > > >> Where can I get documents about this question in detail? > > > >Source code is probably the only reference. > > > >Jan > > > > > >_______________________________________________ > >Xen-devel mailing list > >Xen-devel@lists.xensource.com > >http://lists.xensource.com/xen-devel > > = = = = = = = = = = = = = = = = = = = > > > 致 > 礼! > > > Zang Hongyong > zanghongyong@ncic.ac.cn > 2008-03-18 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel