Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/812542/?format=api
{ "id": 812542, "url": "http://patchwork.ozlabs.org/api/patches/812542/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170911174933.20789-2-david@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170911174933.20789-2-david@redhat.com>", "list_archive_url": null, "date": "2017-09-11T17:49:28", "name": "[v1,1/6] kvm: require JOIN_MEMORY_REGIONS_WORKS", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "08402e17d1e83e58c5e4758fc9262476e2140728", "submitter": { "id": 70402, "url": "http://patchwork.ozlabs.org/api/people/70402/?format=api", "name": "David Hildenbrand", "email": "david@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170911174933.20789-2-david@redhat.com/mbox/", "series": [ { "id": 2539, "url": "http://patchwork.ozlabs.org/api/series/2539/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2539", "date": "2017-09-11T17:49:27", "name": "QEMU: kvm: cleanup kvm_slot handling", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/2539/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/812542/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/812542/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com", "ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=david@redhat.com" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrbsW4hvSz9s76\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 04:23:43 +1000 (AEST)", "from localhost ([::1]:59766 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drTMz-0007Lq-Jh\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 14:23:41 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:49104)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1drSq7-0000jc-Ne\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:44 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1drSq5-00085s-Ig\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:43 -0400", "from mx1.redhat.com ([209.132.183.28]:19394)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <david@redhat.com>) id 1drSq5-000858-9f\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:41 -0400", "from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 49CE8372590;\n\tMon, 11 Sep 2017 17:49:40 +0000 (UTC)", "from t460s.redhat.com (ovpn-116-74.ams2.redhat.com [10.36.116.74])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id D92316A82E;\n\tMon, 11 Sep 2017 17:49:38 +0000 (UTC)" ], "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 49CE8372590", "From": "David Hildenbrand <david@redhat.com>", "To": "qemu-devel@nongnu.org", "Date": "Mon, 11 Sep 2017 19:49:28 +0200", "Message-Id": "<20170911174933.20789-2-david@redhat.com>", "In-Reply-To": "<20170911174933.20789-1-david@redhat.com>", "References": "<20170911174933.20789-1-david@redhat.com>", "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.11", "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.30]);\n\tMon, 11 Sep 2017 17:49:40 +0000 (UTC)", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "209.132.183.28", "Subject": "[Qemu-devel] [PATCH v1 1/6] kvm: require JOIN_MEMORY_REGIONS_WORKS", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "Paolo Bonzini <pbonzini@redhat.com>, david@redhat.com,\n\tkvm@vger.kernel.org, =?utf-8?b?UmFkaW0gS3LEjW3DocWZ?=\n\t<rkrcmar@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "We already require DESTROY_MEMORY_REGION_WORKS, JOIN_MEMORY_REGIONS_WORKS\nwas added just half a year later.\n\nIn addition, with flatview overlapping memory regions are first\nremoved before adding the changed one. So we can't really detect joining\nmemory regions this way.\n\nLet's just get rid of this special handling.\n\nSigned-off-by: David Hildenbrand <david@redhat.com>\n---\n accel/kvm/kvm-all.c | 42 +-----------------------------------------\n 1 file changed, 1 insertion(+), 41 deletions(-)", "diff": "diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\nindex f85553a851..985b179ab6 100644\n--- a/accel/kvm/kvm-all.c\n+++ b/accel/kvm/kvm-all.c\n@@ -79,7 +79,6 @@ struct KVMState\n int coalesced_mmio;\n struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;\n bool coalesced_flush_in_progress;\n- int broken_set_mem_region;\n int vcpu_events;\n int robust_singlestep;\n int debugregs;\n@@ -127,6 +126,7 @@ static bool kvm_immediate_exit;\n static const KVMCapabilityInfo kvm_required_capabilites[] = {\n KVM_CAP_INFO(USER_MEMORY),\n KVM_CAP_INFO(DESTROY_MEMORY_REGION_WORKS),\n+ KVM_CAP_INFO(JOIN_MEMORY_REGIONS_WORKS),\n KVM_CAP_LAST_INFO\n };\n \n@@ -696,7 +696,6 @@ kvm_check_extension_list(KVMState *s, const KVMCapabilityInfo *list)\n static void kvm_set_phys_mem(KVMMemoryListener *kml,\n MemoryRegionSection *section, bool add)\n {\n- KVMState *s = kvm_state;\n KVMSlot *mem, old;\n int err;\n MemoryRegion *mr = section->mr;\n@@ -763,35 +762,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,\n abort();\n }\n \n- /* Workaround for older KVM versions: we can't join slots, even not by\n- * unregistering the previous ones and then registering the larger\n- * slot. We have to maintain the existing fragmentation. Sigh.\n- *\n- * This workaround assumes that the new slot starts at the same\n- * address as the first existing one. If not or if some overlapping\n- * slot comes around later, we will fail (not seen in practice so far)\n- * - and actually require a recent KVM version. */\n- if (s->broken_set_mem_region &&\n- old.start_addr == start_addr && old.memory_size < size && add) {\n- mem = kvm_alloc_slot(kml);\n- mem->memory_size = old.memory_size;\n- mem->start_addr = old.start_addr;\n- mem->ram = old.ram;\n- mem->flags = kvm_mem_flags(mr);\n-\n- err = kvm_set_user_memory_region(kml, mem);\n- if (err) {\n- fprintf(stderr, \"%s: error updating slot: %s\\n\", __func__,\n- strerror(-err));\n- abort();\n- }\n-\n- start_addr += old.memory_size;\n- ram += old.memory_size;\n- size -= old.memory_size;\n- continue;\n- }\n-\n /* register prefix slot */\n if (old.start_addr < start_addr) {\n mem = kvm_alloc_slot(kml);\n@@ -833,10 +803,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,\n }\n }\n \n- /* in case the KVM bug workaround already \"consumed\" the new slot */\n- if (!size) {\n- return;\n- }\n if (!add) {\n return;\n }\n@@ -1692,12 +1658,6 @@ static int kvm_init(MachineState *ms)\n \n s->coalesced_mmio = kvm_check_extension(s, KVM_CAP_COALESCED_MMIO);\n \n- s->broken_set_mem_region = 1;\n- ret = kvm_check_extension(s, KVM_CAP_JOIN_MEMORY_REGIONS_WORKS);\n- if (ret > 0) {\n- s->broken_set_mem_region = 0;\n- }\n-\n #ifdef KVM_CAP_VCPU_EVENTS\n s->vcpu_events = kvm_check_extension(s, KVM_CAP_VCPU_EVENTS);\n #endif\n", "prefixes": [ "v1", "1/6" ] }