<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: HVM Xen Architecture</title>
	<atom:link href="http://www.2virt.com/blog/?feed=rss2&#038;p=122" rel="self" type="application/rss+xml" />
	<link>http://www.2virt.com/blog/?p=122</link>
	<description>Xen Source Development Blog</description>
	<lastBuildDate>Sun, 24 Jul 2011 23:32:24 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.17</generator>
	<item>
		<title>By: Scott Kuehn</title>
		<link>http://www.2virt.com/blog/?p=122&#038;cpage=1#comment-110</link>
		<dc:creator><![CDATA[Scott Kuehn]]></dc:creator>
		<pubDate>Thu, 29 Apr 2010 17:33:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.2virt.com/blog/?p=122#comment-110</guid>
		<description><![CDATA[Ack! I mispelled your name.  My apologies.  I need an edit feature wherever I go]]></description>
		<content:encoded><![CDATA[<p>Ack! I mispelled your name.  My apologies.  I need an edit feature wherever I go</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Kuehn</title>
		<link>http://www.2virt.com/blog/?p=122&#038;cpage=1#comment-109</link>
		<dc:creator><![CDATA[Scott Kuehn]]></dc:creator>
		<pubDate>Thu, 29 Apr 2010 17:09:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.2virt.com/blog/?p=122#comment-109</guid>
		<description><![CDATA[Hello Anhai,

This article is excellent, thanks!  I&#039;m curious how you were able to have multiple HVM&#039;s share the same stubdom.  I can&#039;t seem to find any examples, and the xen-supplied stubdom documentation is fairly sparse.  Any suggestions?  Perhaps you can share some snippets of your hvm/stubdom config files (the auto-gen file for the stubdom)?  

Sincerely,

Scott Kuehn]]></description>
		<content:encoded><![CDATA[<p>Hello Anhai,</p>
<p>This article is excellent, thanks!  I&#8217;m curious how you were able to have multiple HVM&#8217;s share the same stubdom.  I can&#8217;t seem to find any examples, and the xen-supplied stubdom documentation is fairly sparse.  Any suggestions?  Perhaps you can share some snippets of your hvm/stubdom config files (the auto-gen file for the stubdom)?  </p>
<p>Sincerely,</p>
<p>Scott Kuehn</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ankit</title>
		<link>http://www.2virt.com/blog/?p=122&#038;cpage=1#comment-33</link>
		<dc:creator><![CDATA[ankit]]></dc:creator>
		<pubDate>Mon, 15 Feb 2010 17:27:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.2virt.com/blog/?p=122#comment-33</guid>
		<description><![CDATA[Well I am working on same line as you suggested. 
Thanks for the help.]]></description>
		<content:encoded><![CDATA[<p>Well I am working on same line as you suggested.<br />
Thanks for the help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mihai Matei</title>
		<link>http://www.2virt.com/blog/?p=122&#038;cpage=1#comment-29</link>
		<dc:creator><![CDATA[Mihai Matei]]></dc:creator>
		<pubDate>Wed, 10 Feb 2010 21:28:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.2virt.com/blog/?p=122#comment-29</guid>
		<description><![CDATA[Hello Ankit,

Well it all depends what interrupts go to the hypervisor software and which ones go directly to a guest.
For example if it takes a synchronous exception, like a division by 0, I think this will go to the hypervisor software, do something there, and then be trampolined back to the current running guest, in kernel space.
For device emulation there will also be a sync exception taken in HVM guest, that will go to the hypervisor, injected into Qemu (Dom0), the when it is finished, injected back into the HVM guest (not really sure but something among this lines).
For external interrupts, such as a DMA completion interrupt, it may be possible to be configured to go directly to the priviledged Dom0 guest, because either Qemu or the backend drivers handles data from the real drivers, so basically this is the only place where the block device logic resides so it makes sense to configure this interrupts to go directly to Dom0 Linux kernel... if the architecture has this capability.
So for interrupts that go to the hypervisor I whould suggest looking at arch/x86_32(64)/entry.S. I think this are where the handles for all entry points into the hypervisor software get set up.
Also in arch/x86_emulate you will find the emulation of the instructions that the HVM guest&#039;s virtual CPU does not have access to (such as a TLB add instruction) done by the hypervisor software.
I think you can use the Xen&#039;s serial or the event channel mechanism to log something starting from here but you must make sure that you are in an interrupt context that you can use this facilities ... I haven&#039;t used the yet, will add more information once I have a chance to.
Finally, in Dom0 userspace Qemu process you can see in tools/ioemu-qemu-xen/i386-dm contains the Qemu port for xen, and it&#039;s using the xen/hvm APIs, you can take a look at xen/hvm/emulate.c which I believe is a high level API&#039;s for device emulation and interrupt injection I think it is done in xen/hvm/vpic (for virtual pic).

I will have to take a closer look when I have a little more time. Till then hope this helps a bit. But I sugest you take a look at Xen Wiki site, think there are some pages related to this subject.

Mihai]]></description>
		<content:encoded><![CDATA[<p>Hello Ankit,</p>
<p>Well it all depends what interrupts go to the hypervisor software and which ones go directly to a guest.<br />
For example if it takes a synchronous exception, like a division by 0, I think this will go to the hypervisor software, do something there, and then be trampolined back to the current running guest, in kernel space.<br />
For device emulation there will also be a sync exception taken in HVM guest, that will go to the hypervisor, injected into Qemu (Dom0), the when it is finished, injected back into the HVM guest (not really sure but something among this lines).<br />
For external interrupts, such as a DMA completion interrupt, it may be possible to be configured to go directly to the priviledged Dom0 guest, because either Qemu or the backend drivers handles data from the real drivers, so basically this is the only place where the block device logic resides so it makes sense to configure this interrupts to go directly to Dom0 Linux kernel&#8230; if the architecture has this capability.<br />
So for interrupts that go to the hypervisor I whould suggest looking at arch/x86_32(64)/entry.S. I think this are where the handles for all entry points into the hypervisor software get set up.<br />
Also in arch/x86_emulate you will find the emulation of the instructions that the HVM guest&#8217;s virtual CPU does not have access to (such as a TLB add instruction) done by the hypervisor software.<br />
I think you can use the Xen&#8217;s serial or the event channel mechanism to log something starting from here but you must make sure that you are in an interrupt context that you can use this facilities &#8230; I haven&#8217;t used the yet, will add more information once I have a chance to.<br />
Finally, in Dom0 userspace Qemu process you can see in tools/ioemu-qemu-xen/i386-dm contains the Qemu port for xen, and it&#8217;s using the xen/hvm APIs, you can take a look at xen/hvm/emulate.c which I believe is a high level API&#8217;s for device emulation and interrupt injection I think it is done in xen/hvm/vpic (for virtual pic).</p>
<p>I will have to take a closer look when I have a little more time. Till then hope this helps a bit. But I sugest you take a look at Xen Wiki site, think there are some pages related to this subject.</p>
<p>Mihai</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ankit gupta</title>
		<link>http://www.2virt.com/blog/?p=122&#038;cpage=1#comment-28</link>
		<dc:creator><![CDATA[ankit gupta]]></dc:creator>
		<pubDate>Wed, 10 Feb 2010 19:45:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.2virt.com/blog/?p=122#comment-28</guid>
		<description><![CDATA[hi,

Your explanation was quite useful.
I am working on logging interrupts and its point of occurrence for any hvm on xen hypervisor. Can you give some hint how to go about it.

Thank you,

regards
Ankit]]></description>
		<content:encoded><![CDATA[<p>hi,</p>
<p>Your explanation was quite useful.<br />
I am working on logging interrupts and its point of occurrence for any hvm on xen hypervisor. Can you give some hint how to go about it.</p>
<p>Thank you,</p>
<p>regards<br />
Ankit</p>
]]></content:encoded>
	</item>
</channel>
</rss>
