From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MDEGP-0003GJ-Qg for qemu-devel@nongnu.org; Sun, 07 Jun 2009 05:02:01 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MDEGK-0003Ec-3c for qemu-devel@nongnu.org; Sun, 07 Jun 2009 05:02:00 -0400 Received: from [199.232.76.173] (port=37281 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MDEGJ-0003EX-JQ for qemu-devel@nongnu.org; Sun, 07 Jun 2009 05:01:55 -0400 Received: from mail-bw0-f223.google.com ([209.85.218.223]:33432) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MDEGI-0004nh-Sr for qemu-devel@nongnu.org; Sun, 07 Jun 2009 05:01:55 -0400 Received: by bwz23 with SMTP id 23so2036752bwz.34 for ; Sun, 07 Jun 2009 02:01:53 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4A2B7F5E.8050807@web.de> References: <4A26F1E3.1040509@codemonkey.ws> <4A2A92FE.2010700@redhat.com> <4A2AA10B.6060401@web.de> <4A2B49C0.8020703@redhat.com> <4A2B6DD8.3090104@web.de> <4A2B7F5E.8050807@web.de> Date: Sun, 7 Jun 2009 12:01:53 +0300 Message-ID: From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: POLL: Why do you use kqemu? List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: =?UTF-8?Q?Andreas_F=C3=A4rber?= , Avi Kivity , "qemu-devel@nongnu.org" On 6/7/09, Jan Kiszka wrote: > Blue Swirl wrote: > > On 6/7/09, Jan Kiszka wrote: > >> Avi Kivity wrote: > >> > Jan Kiszka wrote: > >> >>> Maybe the backwards compatibility features should be ported to QEMU? > >> >>> For example, is there a workaround for > >> >>> #error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS > >> >>> ? > >> >>> > >> >> > >> >> Given that we have always-up-to-date kvm-kmod packages with support down > >> >> to reasonable kernel versions, I would prefer to keep upstream clean > >> >> from old workarounds. They should only be needed for issues found very > >> >> recently (KVM_CAP_JOIN_MEMORY_REGIONS_WORKS) or that might be found in > >> >> the future. > >> >> > >> > > >> > Requiring the latest up-to-date modules is pushing the problem to the > >> > users. Sometimes there is no choice, but when there is, the > >> > implementation that cares about its uses prefer unclean code and > >> > functionality over perfection and brokenness. > >> > >> > >> Let's make it more concrete: > >> > >> By the time upstream is as well tested, feature-rich and with comparable > >> performance as qemu-kvm, its current baseline requirement (2.6.29 due to > >> KVM_CAP_DESTROY_MEMORY_REGION_WORKS) will no longer be a problem to most > >> normal users. Until then they are better off with qemu-kvm anyway. > >> > >> So all I wanted to express is that I see no point in merging workarounds > >> upstream that hardly anyone will need but that restrict non-kvm code in > >> upstream. Basically I have the current line along > >> KVM_CAP_DESTROY_MEMORY_REGION_WORKS / clean memory slot management in > >> mind. Anything older should be skipped when merging upstream. And unless > >> something more problematic comes along (rather unlikely), 2.6.29 or > >> compatible kvm-kmod is a reasonable minimum requirement for the long term. > > > > I pulled qemu-kvm and it looks to me that > > KVM_CAP_DESTROY_MEMORY_REGION_WORKS and the derived functions > > kvm_destroy_memory_region_works() and must_use_aliases_*() are only > > used in very few places. Do I miss something, how can this be of any > > restriction? > > > Check e.g the diff of hw/vga.c against upstream: All the magic dances > there are required as qemu-kvm tracking cpu_register_physical_memory and > kvm_log_start cannot cope with all the patterns normal qemu code comes > up with. Upstream slot management now provides the same features > (including migration) like qemu-kvm, it just does not deal with legacy, > thus it does not have to patch qemu code (rather, we were able to remove > some already merged hooks - vga_dirty_log_stop). Still not very restrictive, all this could be encapsulated with for example macro COMPAT_NO_DMRW which could be removed when we don't care anymore. Next?