> Date: Thu, 21 Feb 2013 09:01:53 +0000
> From: tim@xen.org
> To: zhangzhi2022@hotmail.com
> CC: xen-devel@lists.xen.org
> Subject: Re: [Xen-devel] ipi(inter-processor interrupt) about xen
hypervisor
>
> Hi,
>
> At 23:59 +0800 on 15 Feb (1360972763), henry wrote:
> > In the context of multi-core mode, core 1 is in root-mode, meaning
> > that it''s running VMM. And core 2 is in non-root mode,
meaning that it''s
> > running guest OS in kernel level. If core 1 wants core2 to execute a
> > pre-defined program located in kernel-mode, say a syscall or a virtual
> > external interrupt handler(the program is completed via syscall or
another
> > kernel module). Considering that core1 is in vmm mode, and core2 is
not
> > supposed to vm-exit, so I can''t use the method of
event-delivery. What kind
> > of thing should core 1 do ?
>
> If you need the VM on core 2 to act immediately (and it''s
currently
> doing something other than waiting for core 1 to send it a message) then
> you''ll need to send it some sort of interrupt. There''s no
way of doing
> that in Xen without core 2 vm-exiting, because all interrupts are
> handled in Xen.
>
> In theory you could implement something like ELI for Xen. That could be
> interesting, not least as a piece of repeated research, but it''s
quite a
> serious undertaking.
>
(http://researcher.watson.ibm.com/researcher/files/il-ABELG/eli_asplos12.pdf)
>
I''ve read about ELI already, which is quite interesting and a software
implementation of ipi withou vmexits. Recently, according to kvm mailing list,
Intel announced a new feature, called posted interrupts, that enables a VMM
running on core0 to inject virtual interrupts to a guest running on core1
without vmexits. The feature is described in details in the latest Intel-x86
software developer manual.
BTW, they also have published another paper which describes how they used
exitless virtual interrupt injection to improve para-virtual I/O performance
(http://researcher.watson.ibm.com/researcher/files/il-ABELG/elvis-systor12.pdf)
In a nutshell, I''m still considering the implementation of ipi based on
the new intel feature, compared to software method.
> Of course, if you don''t need an immediate answer, any
shared-memory
> protocol will do. You just need to arrange for the VM to check for
> messages periodically.
>
yes, you are right, but I need an immediate response anyway. At first, polling
mechanism is considered but then given up because of the performance cost.
> Cheers,
>
> Tim.
Best regards,
henry
--_7fe9d0b3-63aa-4e8d-a9e1-0793f438c257_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: 8bit
<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:微软雅黑
}
--></style></head>
<body class=''hmmessage''><div
dir=''ltr''>
<BR> <BR>
<DIV id=SkyDrivePlaceholder></DIV>
<DIV>> Date: Thu, 21 Feb 2013 09:01:53 +0000<BR>>
From: tim@xen.org<BR>> To:
zhangzhi2022@hotmail.com<BR>> CC:
xen-devel@lists.xen.org<BR>> Subject: Re: [Xen-devel]
ipi(inter-processor interrupt) about xen hypervisor<BR>>
<BR>> Hi,<BR>> <BR>> At 23:59 +0800 on 15
Feb (1360972763), henry wrote:<BR>> > In the context of
multi-core mode, core 1 is in root-mode, meaning<BR>> > that
it''s running VMM. And core 2 is in non-root mode, meaning that
it''s<BR>> > running guest OS in kernel level. If
core 1 wants core2 to execute a<BR>> > pre-defined program
located in kernel-mode, say a syscall or a virtual<BR>> >
external interrupt handler(the program is completed via syscall or
another<BR>> > kernel module). Considering that core1 is in
vmm mode, and core2 is not<BR>> > supposed to vm-exit, so I
can''t use the method of event-delivery. What kind<BR>>
> of thing should core 1 do ? <BR>> <BR>> If
you need the VM on core 2 to act immediately (and it''s
currently<BR>> doing something other than waiting for core 1 to
send it a message) then<BR>> you''ll need to send it some
sort of interrupt. There''s no way of doing<BR>> that in
Xen without core 2 vm-exiting, because all interrupts are<BR>>
handled in Xen.<BR>> <BR>> In theory you could
implement something like ELI for Xen. That could be<BR>>
interesting, not least as a piece of repeated research, but it''s quite
a<BR>> serious undertaking.<BR>>
(http://researcher.watson.ibm.com/researcher/files/il-ABELG/eli_asplos12.pdf)<BR>>
</DI
V>
<DIV>I''ve read about ELI already, which is quite
interesting and a software implementation of ipi withou vmexits. Recently,
according to <FONT size=3 face=Calibri>kvm mailing list,<FONT
size=2 face=微软雅黑> </FONT></FONT><SPAN
style="FONT-FAMILY:
''Calibri'',''sans-serif''; FONT-SIZE: 10.5pt;
mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin;
mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;
mso-hansi-theme-font: minor-latin; mso-bidi-font-family: ''Times New
Roman''; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US;
mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang=EN-US>Intel
announced a new feature, called posted interrupts, that enables a VMM running on
core0 to inject virtual interrupts to a guest running on core1 without vm
exits.<SPAN style="mso-spacerun: yes">
</SPAN>The feature is described in details in the latest Intel-x86
software developer manual.</SPAN></DIV>
<DIV><SPAN style="FONT-FAMILY:
''Calibri'',''sans-serif''; FONT-SIZE: 10.5pt;
mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin;
mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;
mso-hansi-theme-font: minor-latin; mso-bidi-font-family: ''Times New
Roman''; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US;
mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang=EN-US>BTW,
they also have published another paper <SPAN lang=EN-US>which describes
how they used exitless virtual interrupt injection to improve
para-virtual I/O performance<?xml:namespace prefix = o ns =
"urn:schemas-microsoft-com:office:office"
/><o:p></o:p></SPAN>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoPlainText><SPAN
lang=EN-US>(<A
href="http://researcher.watson.ibm.com/researcher/files/il-ABELG/elvis-systor12.pdf"><FONT
color=#0000ff>http://researcher.watson.ibm.com/researcher/files/il-ABELG/elvis-systor12.pdf</FONT></A>)<o:p></o:p></SPAN></P></SPAN></DIV>
<DIV><SPAN style="FONT-FAMILY:
''Calibri'',''sans-serif''; FONT-SIZE: 10.5pt;
mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin;
mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;
mso-hansi-theme-font: minor-latin; mso-bidi-font-family: ''Times New
Roman''; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US;
mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"
lang=EN-US>In a nutshell, I''m still considering the
implementation of ipi based on the new intel feature, compared to software
method. </SPAN></DIV>
<DIV><SPAN style="FONT-FAMILY:
''Calibri'',''sans-serif''; FONT-SIZE: 10.5pt;
mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin;
mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;
mso-hansi-theme-font: minor-latin; mso-bidi-font-family: ''Times New
Roman''; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US;
mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"
lang=EN-US></SPAN> </DIV>
<DIV><SPAN style="FONT-FAMILY:
''Calibri'',''sans-serif''; FONT-SIZE: 10.5pt;
mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin;
mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;
mso-hansi-theme-font: minor-latin; mso-bidi-font-family: ''Times New
Roman''; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US;
mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"
lang=EN-US></SPAN>> Of course, if you don''t need an
immediate answer, any shared-memory<BR>> protocol will do. You just
need to arrange for the VM to check for<BR>> messages
periodically.<BR>> </DIV>
<DIV>yes, you are right, but I need an immediate response anyway. At
first, polling mechanism is considered but then given up because of the
performance cost. </DIV>
<DIV><BR>> Cheers,<BR>> <BR>>
Tim.<BR></DIV>
<DIV>Best regards,</DIV>
<DIV>henry</DIV> </div></body>
</html>
--_7fe9d0b3-63aa-4e8d-a9e1-0793f438c257_--
--===============2682350373056606736=Content-Type: text/plain;
charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
--===============2682350373056606736==--