From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: Guest kernel device compatability auto-detection Date: Thu, 25 Aug 2011 16:48:36 -0500 Message-ID: <4E56C334.5070509@codemonkey.ws> References: <1314249688.3459.23.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel , kvm To: Sasha Levin Return-path: In-Reply-To: <1314249688.3459.23.camel@lappy> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org On 08/25/2011 12:21 AM, Sasha Levin wrote: > Hi, > > Currently when we run the guest we treat it as a black box, we're not > quite sure what it's going to start and whether it supports the same > features we expect it to support when running it from the host. > > This forces us to start the guest with the safest defaults possible, for > example: '-drive file=my_image.qcow2' will be started with slow IDE > emulation even though the guest is capable of virtio. > > I'm currently working on a method to try and detect whether the guest > kernel has specific configurations enabled and either warn the user if > we know the kernel is not going to properly work or use better defaults > if we know some advanced features are going to work. > > How am I planning to do it? First, we'll try finding which kernel the > guest is going to boot (easy when user does '-kernel', less easy when > the user boots an image). For simplicity sake I'll stick with the > '-kernel' option for now. Is the problem you're trying to solve determine whether the guest kernel is going to work well under kvm tool or trying to choose the right hardware profile to expose to the guest? If it's the former, I think the path you're heading down is the most likely to succeed (trying to guess based on what you can infer about the kernel). If it's the later, there's some interesting possibilities we never fully explored in QEMU. One would be exposing a well supported device (like IDE emulation) and having a magic mode that allowed you to basically promote the device from IDE emulation to virtio-blk. Likewise, you could do something like that to promote from the e1000 to virtio-net. It might require some special support in the guest kernel and would likely be impossible to do in Windows, but if you primarily care about Linux guests, it ought to be possible. Regards, Anthony Liguori From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:60399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qwhn2-0000wm-CX for qemu-devel@nongnu.org; Thu, 25 Aug 2011 17:48:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qwhn1-0001Tt-EB for qemu-devel@nongnu.org; Thu, 25 Aug 2011 17:48:44 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:46546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qwhn1-0001Tp-AT for qemu-devel@nongnu.org; Thu, 25 Aug 2011 17:48:43 -0400 Received: by yxt3 with SMTP id 3so2431390yxt.4 for ; Thu, 25 Aug 2011 14:48:42 -0700 (PDT) Message-ID: <4E56C334.5070509@codemonkey.ws> Date: Thu, 25 Aug 2011 16:48:36 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1314249688.3459.23.camel@lappy> In-Reply-To: <1314249688.3459.23.camel@lappy> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Guest kernel device compatability auto-detection List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Sasha Levin Cc: qemu-devel , kvm On 08/25/2011 12:21 AM, Sasha Levin wrote: > Hi, > > Currently when we run the guest we treat it as a black box, we're not > quite sure what it's going to start and whether it supports the same > features we expect it to support when running it from the host. > > This forces us to start the guest with the safest defaults possible, for > example: '-drive file=my_image.qcow2' will be started with slow IDE > emulation even though the guest is capable of virtio. > > I'm currently working on a method to try and detect whether the guest > kernel has specific configurations enabled and either warn the user if > we know the kernel is not going to properly work or use better defaults > if we know some advanced features are going to work. > > How am I planning to do it? First, we'll try finding which kernel the > guest is going to boot (easy when user does '-kernel', less easy when > the user boots an image). For simplicity sake I'll stick with the > '-kernel' option for now. Is the problem you're trying to solve determine whether the guest kernel is going to work well under kvm tool or trying to choose the right hardware profile to expose to the guest? If it's the former, I think the path you're heading down is the most likely to succeed (trying to guess based on what you can infer about the kernel). If it's the later, there's some interesting possibilities we never fully explored in QEMU. One would be exposing a well supported device (like IDE emulation) and having a magic mode that allowed you to basically promote the device from IDE emulation to virtio-blk. Likewise, you could do something like that to promote from the e1000 to virtio-net. It might require some special support in the guest kernel and would likely be impossible to do in Windows, but if you primarily care about Linux guests, it ought to be possible. Regards, Anthony Liguori