From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MirMZ-00062z-Hk for qemu-devel@nongnu.org; Wed, 02 Sep 2009 11:03:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MirMU-00061B-4B for qemu-devel@nongnu.org; Wed, 02 Sep 2009 11:03:06 -0400 Received: from [199.232.76.173] (port=56192 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MirMT-000617-St for qemu-devel@nongnu.org; Wed, 02 Sep 2009 11:03:01 -0400 Received: from mail-ew0-f222.google.com ([209.85.219.222]:63747) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MirMT-0003Sw-4U for qemu-devel@nongnu.org; Wed, 02 Sep 2009 11:03:01 -0400 Received: by ewy22 with SMTP id 22so772478ewy.28 for ; Wed, 02 Sep 2009 08:03:00 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4A9E3691.5070608@redhat.com> References: <4A9E3691.5070608@redhat.com> From: Blue Swirl Date: Wed, 2 Sep 2009 18:02:39 +0300 Message-ID: Subject: Re: [Qemu-devel] qdev status report Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: "qemu-devel@nongnu.org" On Wed, Sep 2, 2009 at 12:10 PM, Gerd Hoffmann wrote: > =C2=A0Hi, > > This is a summary of where we stand in terms of converting drivers to > qdev (with pc being the main focus). > > > qdev status report > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > There are basically three different states a driver can be in: > > not converted > =C2=A0Obvious, right? > > partly converted > =C2=A0The device will appear in the qdev tree. =C2=A0It will be visible i= n the > =C2=A0'info qtree' monitor command (when properly connected all the way u= p > =C2=A0to the main system bus). =C2=A0The setup still goes the old, hard-c= oded > =C2=A0code paths for setting up device parameters though. > > fully converted > =C2=A0The device is setup uses qdev properties for all device parameters. > =C2=A0Which means you can create fully functional instances of the device > =C2=A0using the -device command line switch. > > > Note that not all qemu configuration is in the qdev tree. =C2=A0We have > host side state and guest side state. =C2=A0qdev only handles the guest > side state, i.e. the devices seen by the guest. =C2=A0The host side state > is not covered by qdev. =C2=A0Having a clear split between host and guest > state is required though. =C2=A0Linking host state to a guest device is > done using properties. > > > host/guest split: drives > ------------------------ > > Works. > Host side: =C2=A0 -drive if=3Dnone,id=3D, > Guest side: =C2=A0-device virtio-blk-pci,drive=3D > > > host/guest split: chardevs > -------------------------- > > I'm working on it. =C2=A0Plan: > Host side: =C2=A0 -chardev pty,id=3D > Guest side: =C2=A0-device serial,chr=3D > > Note: Creating named+unconnected chardevs is also useful for > slirp forwarding. > > > host/guest split: nics > ---------------------- > > Not investigated yet in detail. > > The current way of having a NICInfo pointer as DeviceState->nd is a > big hack. =C2=A0The info in NICInfo should be attributes instead, and in > fact some already covered by qdev. =C2=A0Big question is how we'll link t= he > guest nic to the host side. =C2=A0Property with a vlan number? =C2=A0IIRC= there > are plans to replace vlans with something else, what is the state > there? > > > pc driver conversion status > --------------------------- > > core stuff: pic,apic,cpus,memory -- not converted > > isa: floppy -- partly converted > isa: ps/2 -- partly converted > isa: all others: not converted > > pci: hostbridge (i440fx) -- partly converted > pci: all vga -- partly converted > =C2=A0 =C2=A0-> vgabios is not handled. > > pci: nics -- partly converted > =C2=A0 =C2=A0-> see above: nic guest/host split. > =C2=A0 =C2=A0-> also: bootrom is not handled. > > pci sound -- fully converted > virtio-blk -- fully converted > virtio-balloon -- fully converted > > virtio-console -- party converted > =C2=A0 =C2=A0-> depends on chardev work > > scsi -- fully converted > =C2=A0 =C2=A0-> not merged yet, patches went to the list a few days ago. > > usb uhci -- fully converted > usb ohci -- pci version is fully converted. > usb hid -- fully converted > usb msd -- fully converted > usb others -- partly converted > =C2=A0 =C2=A0-> all usb not merged yet, patches went to the list a few da= ys ago. > =C2=A0 =C2=A0-> some usb devs depend on chardev work. > > ide -- not converted > =C2=A0 =C2=A0-> I'm working on it. > > watchdogs -- fully converted > > serial,parallel -- not converted > =C2=A0 =C2=A0-> depends on chardev work > > bluetooth -- not converted Sparc32 driver conversion status --------------------------- all devices: fully converted Sparc64 driver conversion status --------------------------- native devices: fully converted pc devices: see above