<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV><SPAN style="BORDER-BOTTOM: #366388 2px dotted; BACKGROUND: none transparent scroll repeat 0% 0%; CURSOR: hand" id=lw_1291907246_0 class=yshortcuts>Achim</SPAN> and Knut,</DIV>
<DIV> </DIV>
<DIV>Thanks for the info.</DIV>
<DIV> </DIV>
<DIV>As I understand, ESX-i has all emulations done inside the hypervisor layer, I was wondering if that migh be one of the reason that it's faster, and thus my question.</DIV>
<DIV> </DIV>
<DIV>ESX-i must have lower level device drivers with the hypersior, I guess, as it does i/o inside hypervisor.</DIV>
<DIV> </DIV>
<DIV>In other words, if someone uses VBox code to do a type I hypervisor, would be the performance close to ESX-i? (I know that would be a big undertaking)</DIV>
<DIV> </DIV>
<DIV>Huihong<BR><BR><BR>--- On <B>Thu, 12/9/10, Achim Hasenmüller <I><achim.hasenmueller@oracle.com></I></B> wrote:<BR></DIV>
<BLOCKQUOTE style="BORDER-LEFT: rgb(16,16,255) 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px"><BR>From: Achim Hasenmüller <achim.hasenmueller@oracle.com><BR>Subject: Re: [vbox-dev] detailed paths from vm i/o to host?<BR>To: "Knut St. Osmundsen" <knut.osmundsen@oracle.com><BR>Cc: vbox-dev@virtualbox.org<BR>Date: Thursday, December 9, 2010, 12:44 AM<BR><BR>
<DIV id=yiv2117262777>
<DIV><BR class=yiv2117262777Apple-interchange-newline>
<BLOCKQUOTE type="cite">
<DIV style="WORD-WRAP: break-word">
<DIV>
<DIV><BR class=yiv2117262777Apple-interchange-newline>
<BLOCKQUOTE type="cite">
<TABLE border=0 cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV id=yiv2117262777yiv1888725648>
<TABLE id=yiv2117262777yiv1888725648bodyDrftID class=yiv2117262777yiv1888725648 border=0 cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD style="FONT-FAMILY: arial; FONT-SIZE: 10pt" id=yiv2117262777yiv1888725648drftMsgContent>
<DIV>I wonder if anyone can provide some detailed info as how guest i/o comes to the host emulation layer (user space). For example, how does "outb port_num, val" instruction travel from guest kernel to host user space on AMD64 with VT-x/AMD-V?</DIV>
<DIV> </DIV>
<DIV>The reason I aksed is that I was wondering if performance would be further improved if moving some emulation layer from host user space to host kernel layer? that should at least saves two context switches.</DIV>
<DIV> </DIV>
<DIV>KVM provides some callbacks, any similar api exists for VBox? </DIV></TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE></BLOCKQUOTE></DIV></DIV></DIV></BLOCKQUOTE></DIV><BR>
<DIV>We do a lot more in kernel context than KVM and we have been doing so for many years. Our virtual device architecture lets you specify which handlers run at which context and you can handle simpler and more frequent cases in kernel mode and even decide in kernel mode that you can't handle the call and forward it to user mode.</DIV>
<DIV><BR></DIV>
<DIV>Achim</DIV>
<DIV><BR></DIV></DIV><BR>-----Inline Attachment Follows-----<BR><BR>
<DIV class=plainMail>_______________________________________________<BR>vbox-dev mailing list<BR><A href="http://us.mc343.mail.yahoo.com/mc/compose?to=vbox-dev@virtualbox.org" ymailto="mailto:vbox-dev@virtualbox.org">vbox-dev@virtualbox.org</A><BR><A href="http://vbox.innotek.de/mailman/listinfo/vbox-dev" target=_blank>http://vbox.innotek.de/mailman/listinfo/vbox-dev</A><BR></DIV></BLOCKQUOTE></td></tr></table>