我怎么退订邮件
> Date: Mon, 7 Jun 2010 19:52:22 -0400 > From: qemu-devel-requ...@nongnu.org > Subject: Qemu-devel Digest, Vol 87, Issue 177 > To: qemu-devel@nongnu.org > > Send Qemu-devel mailing list submissions to > qemu-devel@nongnu.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.nongnu.org/mailman/listinfo/qemu-devel > or, via email, send a message with subject or body 'help' to > qemu-devel-requ...@nongnu.org > > You can reach the person managing the list at > qemu-devel-ow...@nongnu.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Qemu-devel digest..." > > > Today's Topics: > > 1. Re: [PATCH v3 00/17] clean up vl.c code (Juan Quintela) > 2. Re: [PATCH] configure: add an option to disable vlans > (Anthony Liguori) > 3. Re: [RFC] Moving the kvm ioapic, pic, and pit back to > userspace (Anthony Liguori) > 4. KVM call agenda for June 8 (Chris Wright) > 5. Re: KVM call agenda for June 8 (Anthony Liguori) > 6. Re: Getting tcg in a standalone library (Alexander Graf) > 7. [PATCH 03/22] QemuOpts: add function to set QemuOpts from > defaults (Anthony Liguori) > 8. [PATCH 0/22] Refactor machine support (Anthony Liguori) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 07 Jun 2010 23:41:40 +0200 > From: Juan Quintela <quint...@redhat.com> > Subject: [Qemu-devel] Re: [PATCH v3 00/17] clean up vl.c code > To: jes.soren...@redhat.com > Cc: qemu-devel@nongnu.org > Message-ID: <m3wruazfjf....@trasno.mitica> > Content-Type: text/plain; charset=us-ascii > > jes.soren...@redhat.com wrote: > > From: Jes Sorensen <jes.soren...@redhat.com> > > > > Hi, > > > > Ok third time lucky ... I hope! This fixes the missing git add on > > qemu-options.h as building for win32 using mingw (thanks Paolo!). > > > > The patches try to clean up the vl.c code by separating out OS > > specific code into OS specific files. Basically it is focused on > > moving things into os-posix.c for most UNIX/Linux systems, and > > os-win32.c for win32 specific bits. > > > > I have tried to be as careful as I can to not break non Linux support, > > but so far the patch has only been tested on Linux. > > > > Oh and this time without 'I am not very clever' editor backup files! > > > > Thanks, > > Jes > > Acked-by: Juan Quintela <quint...@redhat.com> > > Nice, thanks. Once there, perhaps you want to look about moving osdep.c > definitions to os-{posix,win32}.c. And no, that file is not nice > either. > > > > ------------------------------ > > Message: 2 > Date: Mon, 07 Jun 2010 16:57:09 -0500 > From: Anthony Liguori <anth...@codemonkey.ws> > Subject: Re: [Qemu-devel] [PATCH] configure: add an option to disable > vlans > To: "Michael S. Tsirkin" <m...@redhat.com> > Cc: Paul Brook <p...@codesourcery.com>, qemu-devel@nongnu.org > Message-ID: <4c0d6b35.8080...@codemonkey.ws> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > On 06/07/2010 04:37 PM, Anthony Liguori wrote: > > On 06/07/2010 03:58 PM, Michael S. Tsirkin wrote: > >> On Mon, Jun 07, 2010 at 03:40:57PM -0500, Anthony Liguori wrote: > >>> On 06/07/2010 02:21 PM, Michael S. Tsirkin wrote: > >>>> So I see two ways to go forward: switch default value in my patch, > >>>> or disable vlans unconditionally. > >>>> > >>> The problem with disabling vlans unconditionally is that you break -net > >>> socket and -net dump. > >>> > >>> If we can come up with an alternative way to do these things, I'm all > >>> for removing it. > >> Hmm, I'll try to look at supporting -net socket in netdev. > >> Does -net dump do anything that can't be done with tap+tcpdump? > > > > tap+tcpdump requires root privileges (even if you have a tap helper). > > > > Plus tcpdump doesn't help with slirp and -net dump is very useful for > > debugging slirp. > > Of course, you could add this functionality to netdev. It's arguably > better there too because then you can debug virtio-net+tap with full > offload enabled (which you cannot do today). > > Regards, > > Anthony Liguori > > > > > ------------------------------ > > Message: 3 > Date: Mon, 07 Jun 2010 17:23:57 -0500 > From: Anthony Liguori <anth...@codemonkey.ws> > Subject: [Qemu-devel] Re: [RFC] Moving the kvm ioapic, pic, and pit > back to userspace > To: Avi Kivity <a...@redhat.com> > Cc: qemu-devel <qemu-devel@nongnu.org>, KVM list <k...@vger.kernel.org> > Message-ID: <4c0d717d.8010...@codemonkey.ws> > Content-Type: text/plain; charset=UTF-8; format=flowed > > On 06/07/2010 01:42 PM, Avi Kivity wrote: > > On 06/07/2010 08:04 PM, Anthony Liguori wrote: > >> > >> I think we could also move the local APIC. > > > > I'm not even sure we can safely move the ioapic/pic (mostly due to > > churn). But the local APIC is so heavily accessed by the guest that > > it's impossible to move it. Run an ftrace one day, especially on an > > smp guest. Every IPI requires several APIC accesses. Before a halt a > > tickless kernel sets the wakeup timer. EOIs. > > > >> > >> To optimize device models, we've tended to put the full device model > >> in the kernel whereas the hardware vendors have tended to put only > >> the fast paths of the devices models in hardware. > >> > >> For instance, we could introduce a userspace interface similar to > >> vapic support whereas a shared page that mapped the APIC's layout was > >> used with a mask to select which registers trapped on read/write. > > > > That leads to very problematic interfaces. When you separate along a > > device boundary, you have a spec that defines the software > > interfaces. When you separate along a boundary that you define, it's > > up to you to get everything right. > > > > In fact with the ioapic/pic/lapic one of the problems is that the > > interconnection between the devices that is not well defined, and > > that's where we have bugs. > > > >> > >> That said, I can understand an argument that the local APIC is part > >> of the CPU state since it's a very special type of device. > >> > >> A better example would be a generic counter kernel mechanism. I can > >> envision such a device as doing nothing more than providing a > >> read-only view of a counter with a userspace configurable divider and > >> width. Any write to the counter or read of any other byte outside > >> the counter register would result in a trap to userspace. > > > > What about latches? byte access to word registers? There will be as > > many special cases as there are timers. > > > > If the kernel supported a bytecode/jit facility I'd happily use that > > to download portions of the device model into the kernel. > > > >> > >> That should allow both the PIT and the HPET to be accelerated with > >> minimal effort in the kernel. > > > > IMO it's probably more effort than porting HPET to the kernel. Try > > outlining an interface that supports PIT, HPET, RTC, and ACPI PMTIMER. > > I was referring specifically to time sources, not time events. > > An accelerated counter for HPET is pretty trivial. It's a 32-bit > register that's actually a nanosecond value in qemu. We need to be able > to set an offset from the host wall clock time, a means to stop it, and > a means to start it. > > The PIT is latched so the kernel needs to know enough about how to > decode the PIT state to understand the latching. There's very little > state associated with latching though so I don't think this is a huge > problem. It's a fixed value write to a fixed register followed by a > read to a fixed register. The act of latching doesn't effect the state > beyond the fact that you need to save the latched value in the event > that you have a live migration before reading the latched value. > > The PMTIMER is also pretty straight forward. It's a variable port > address (that's fixed during execution). > > Even if we require three separate interfaces, the interfaces are so > simply that it seems like an obvious win. > > >> > >> I'd be in favor of a straight port to userspace. We already have the > >> interfaces to communicate with an external device model for these > >> devices so let's just take the kernel code and stick it into > >> dedicated threads in userspace. > > > > Currently we support an all-or-nothing approach. I don't think local > > APIC in userspace is worthwhile. Esp. as it will slow down vhost and > > assigned devices significantly - interrupts will have to be mediated > > by userspace. > > Yeah, as I said, I can understand the arguments for keeping the lapic in > the kernel. > > >> > >> I think it's easier to then work to merge the two bits of code in the > >> same tree than it is to try and take out-of-tree code and merge it > >> incrementally. > > > > Are you talking about qemu.git/qemu-kvm.git? That's the least of my > > concerns, I'm worried about kvm.git. > > qemu.git. > > >> > >>> 5. Risk > >>> > >>> We may find out after all this is implemented that performance is > >>> not acceptable and all the work will have to be dropped. > >> > >> That's another advantage to a straight port to userspace. We can > >> collect performance data with only a modest amount of engineering > >> effort. > > > > Port what exactly? We have a userspace irqchip implementation. What > > we don't have is just the ioapic/pic/pit in userspace, and the only > > way to try it out is to implement the whole thing. > > If you take the kernel code and do a pretty straight port: switching > kernel functions to libc functions and maintaining all the existing > locking via pthreads, you could then implement a very simple MMIO/PIO > dispatch mechanism in the kvm code that shortcutted those devices before > we ever hit the qemu_mutex and the traditional qemu code paths. It > should be a relatively easy conversion and it gives a proper vehicle for > doing experimentations. > > In fact, you could pretty quickly determine viability by porting the PIT > to userspace and implementing a vpit interface in the kernel that > allowed the channel 0 counters to be latched and read within lightweight > exits. > > Regards, > > Anthony Liguori > > > > > ------------------------------ > > Message: 4 > Date: Mon, 7 Jun 2010 15:26:37 -0700 > From: Chris Wright <chr...@redhat.com> > Subject: [Qemu-devel] KVM call agenda for June 8 > To: k...@vger.kernel.org > Cc: qemu-devel@nongnu.org > Message-ID: <20100607222637.ga21...@x200.localdomain> > Content-Type: text/plain; charset=us-ascii > > Please send in any agenda items you are interested in covering. > > If we have a lack of agenda items I'll cancel the week's call. > > thanks, > -chris > > > > ------------------------------ > > Message: 5 > Date: Mon, 07 Jun 2010 17:41:51 -0500 > From: Anthony Liguori <anth...@codemonkey.ws> > Subject: [Qemu-devel] Re: KVM call agenda for June 8 > To: Chris Wright <chr...@redhat.com> > Cc: qemu-devel@nongnu.org, k...@vger.kernel.org > Message-ID: <4c0d75af.7050...@codemonkey.ws> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > On 06/07/2010 05:26 PM, Chris Wright wrote: > > Please send in any agenda items you are interested in covering. > > > > If we have a lack of agenda items I'll cancel the week's call. > > > > > > - Accelerating counters (aka moving PIT to userspace, keeping HPET in > userspace) > - Live migration + hotplug > > Regards, > > Anthony Liguori > > > thanks, > > -chris > > -- > > To unsubscribe from this list: send the line "unsubscribe kvm" in > > the body of a message to majord...@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > > ------------------------------ > > Message: 6 > Date: Tue, 8 Jun 2010 01:35:47 +0200 > From: Alexander Graf <ag...@suse.de> > Subject: Re: [Qemu-devel] Getting tcg in a standalone library > To: Peter Fritzsche <peter.fritzs...@gmx.de> > Cc: qemu-devel@nongnu.org > Message-ID: <cc39af26-861d-4864-81f9-fe4688048...@suse.de> > Content-Type: text/plain; charset=us-ascii > > > On 07.06.2010, at 23:27, Peter Fritzsche wrote: > > > Hi, > > > > I am currently quite interesting in tcg for binary translation. There are > > many > > emulator projects (I mean mostly console emulators) out there which start > > to > > implement more or less bad ILs to translate their specific cpu (for example > > gameboy has z80, n64 has r4300i, gamecube has powerpc 750CXe, ...). These > > are > > most of the time x86 only and very limited. But it seems that qemu's cpu > > libraries aren't made for those cpu's and don't seem to provide the needed > > infrastructure for emulating such highly integrated systems (please correct > > me > > if I am wrong). > > The old stuff is pretty tough, as it's timing critical. Everything as of the > GC should be fairly easy to emulate using tcg though, as you can just count > the overall emulated instructions and throttle it lazily from there. That's > basically what Dolphin does too. > > For the 750CXe all that's left to do is to emulate the paired single > instructions. And I have a full emulation of those in the KVM code already, > so you could take it from there. > > > I think that the best way to share code would be if other projects could > > also > > use tcg for their translation needs. But it seems to me that it it to > > tightly > > integrated into qemu and cannot be ripped out. Are their any plans to open > > it > > for other projects as you have already done it with the emulation cores? > > Yes, I agree. That would indeed be useful. Patches are welcome. > > > Alex > > > > > ------------------------------ > > Message: 7 > Date: Mon, 7 Jun 2010 18:51:51 -0500 > From: Anthony Liguori <aligu...@us.ibm.com> > Subject: [Qemu-devel] [PATCH 03/22] QemuOpts: add function to set > QemuOpts from defaults > To: qemu-devel@nongnu.org > Cc: Glauber Costa <glom...@redhat.com>, Anthony Liguori > <aligu...@us.ibm.com>, Gerd Hoffman <kra...@redhat.com> > Message-ID: <1275954730-8196-4-git-send-email-aligu...@us.ibm.com> > > This lets us hard code a list of default QemuOpts values in a structured way. > > Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> > > diff --git a/qemu-option.c b/qemu-option.c > index 03b1ef7..b990cf5 100644 > --- a/qemu-option.c > +++ b/qemu-option.c > @@ -954,3 +954,23 @@ int qemu_opts_foreach(QemuOptsList *list, > qemu_opts_loopfunc func, void *opaque, > loc_pop(&loc); > return rc; > } > + > +int qemu_opts_set_defaults(QemuOpts *opts, const QemuOptValue *defvals) > +{ > + int i; > + > + for (i = 0; defvals[i].name; i++) { > + int ret; > + > + if (qemu_opt_get(opts, defvals[i].name)) { > + continue; > + } > + > + ret = qemu_opt_set(opts, defvals[i].name, defvals[i].value); > + if (ret < 0) { > + return ret; > + } > + } > + > + return 0; > +} > diff --git a/qemu-option.h b/qemu-option.h > index 4823219..4a6717c 100644 > --- a/qemu-option.h > +++ b/qemu-option.h > @@ -104,6 +104,11 @@ struct QemuOptsList { > QemuOptDesc desc[]; > }; > > +typedef struct QemuOptValue { > + const char *name; > + const char *value; > +} QemuOptValue; > + > const char *qemu_opt_get(QemuOpts *opts, const char *name); > int qemu_opt_get_bool(QemuOpts *opts, const char *name, int defval); > uint64_t qemu_opt_get_number(QemuOpts *opts, const char *name, uint64_t > defval); > @@ -113,6 +118,8 @@ typedef int (*qemu_opt_loopfunc)(const char *name, const > char *value, void *opaq > int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque, > int abort_on_failure); > > +int qemu_opts_set_defaults(QemuOpts *opts, const QemuOptValue *defvals); > + > QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id); > QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, int > fail_if_exists); > int qemu_opts_set(QemuOptsList *list, const char *id, > -- > 1.7.0.4 > > > > > ------------------------------ > > Message: 8 > Date: Mon, 7 Jun 2010 18:51:48 -0500 > From: Anthony Liguori <aligu...@us.ibm.com> > Subject: [Qemu-devel] [PATCH 0/22] Refactor machine support > To: qemu-devel@nongnu.org > Cc: Glauber Costa <glom...@redhat.com>, Paul Brook > <p...@codesourcery.com> > Message-ID: <1275954730-8196-1-git-send-email-aligu...@us.ibm.com> > > This series introduces a rather radical change in the way we deal with machine > definitions in QEMU. Here are the features this series introduces: > > - Machines are definable via a -machine-def option or a [machine-def] config > stanza > - Parameters such as -kernel, -initrd, -append, -m, -acpi-enable, > -enable-kvm, > and potentially many more are now support via a config > - It's possible to set a default block format (ide, scsi, virtio) for a > machine > - It's possible to make kvm enablement a property of a machine type. The > support modes are KVM enabled, TCG enabled, and KVM enabled with TCG > fallback. > - All properties of the default machine type are overridable via global > config. > IOW, you can make KVM enablement default without touching the source code. > You can also increase the default ram size without touching any code. > > Conceptually, it works by introducing a MachineCore concept. A MachineCore is > a function that is able to create a machine based on a set of user specified > parameters. These parameters may be high level properties (like ram size) or > qdev global properties (virtio-blk-pci.vectors). > > A builtin Machine is an instance of a MachineCore that has a set of default > parameters set. > > The concept of MachineCore is *not* a stop-gap measure for proper qdev > conversion. Rather, the idea behind MachineCore is that it's a device tree > builder. > > You certainly could still have a machine described purely by a device tree and > qdev properties but that's not enough to represent the UI that we currently > expose. We need a way convert user visible operations like enable usb to > platform specific operations like add a PIIX3 USB hub. This is what a > MachineCore does. > > > > ------------------------------ > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel > > > End of Qemu-devel Digest, Vol 87, Issue 177 > ******************************************* _________________________________________________________________ SkyDrive电子画册,带你领略精彩照片,分享“美”时“美”刻! http://www.windowslive.cn/campaigns/e-magazine/ngmchina/?a=c