From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=36859 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoeUM-0000Pe-3Q for qemu-devel@nongnu.org; Sun, 13 Feb 2011 11:07:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PoeUL-0006LE-2M for qemu-devel@nongnu.org; Sun, 13 Feb 2011 11:07:53 -0500 Received: from gate.crashing.org ([63.228.1.57]:46059) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PoeUK-0006Kv-Mh for qemu-devel@nongnu.org; Sun, 13 Feb 2011 11:07:52 -0500 From: Benjamin Herrenschmidt In-Reply-To: References: <1297522467-5975-1-git-send-email-david@gibson.dropbear.id.au> <1297522467-5975-16-git-send-email-david@gibson.dropbear.id.au> <1BA55C28-0AAF-46A5-A14F-04B0B61419DB@suse.de> <1297544424.14982.628.camel@pasglop> <1297552503.14982.637.camel@pasglop> Content-Type: text/plain; charset="UTF-8" Date: Sun, 13 Feb 2011 10:07:42 -0600 Message-ID: <1297613262.14982.647.camel@pasglop> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 15/15] Implement the bus structure for PAPR virtual IO List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: "qemu-devel@nongnu.org List" , Paul Mackerras , Alexander Graf , anton@samba.org, David Gibson On Sun, 2011-02-13 at 10:08 +0200, Blue Swirl wrote: > This is a bit of a special case, much like semihosting modes for m68k > or ARM, or like MOL hacks which were removed recently. From QEMU point > of view, the most natural way of handling this would be hypervisor > implemented in the guest side (for example BIOS). Then the hypervisor > would use normal IO (or virtio) to communicate with the host. If > inside QEMU, the interface of the hypervisor to the devices needs some > thought. We'd like to avoid ugly interfaces like vmmouse where a > device probes CPU registers directly or spaghetti interfaces like > APIC. I'm not sure I understand your point. We are emulating a guest running under pHyp, ie, qemu in that case is the hypervisor, and provides the same interfaces as pHyp does (the IBM proprietary hypervisor, aka sPAPR). This is how we enable booting existing kernels and distributions inside qemu/kvm. > Is the interface new design, or are you implementing what is used also > on real HW? We are implementing a subset of the interfaces implemented by pHyp today on "real HW". In the long run, when you throw KVM into the picture, on machines (hypothetical machines at this stage) where one can run a KVM has a hypervisor (currently you can only run pHyp on all released IBM machines), this will give you an environment that is compatible with pHyp and thus supports existing distributions and kernels. We -will- add support for the "real" virtio on top of that, but those will require modified guest kernels (and will provide better performances than the sPAPR emulation). But the sPAPR emulation is a necessary step to enable existing stuff to run. Cheers, Ben.