Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp262275ybh; Wed, 11 Mar 2020 00:21:42 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtjglirmzmKeM242iVRbFygGyQS8EDBnqw/SI/Nb29Egssbze8/HosqBufJKTXKPwsYs9SS X-Received: by 2002:a9d:76d6:: with SMTP id p22mr1279186otl.37.1583911302219; Wed, 11 Mar 2020 00:21:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583911302; cv=none; d=google.com; s=arc-20160816; b=hzVBuR/hzWbYxaCTmGpMX0nkc6R7WQ9m/+88HNFHclB3Hrfjg+wiFXhiaNfjb7qh7T diwr+OE6osDb7L9Y+b6ES4Fui9mWKosO2aSFyorDtLzdMiwdbGoMpKY2Oxdc5QhHXmb/ JIrIqU4zFrCg3p3jlYdainEYnXW5EYyciAqdw8v4xu3SqM30JBYXSOjxKsf3NsD7Wr+k VaDNhO6so0HH4UABvP9swdYHSYJOwLwqyeBkY9rwyfxAQJp6vjdXmlinTZuXl6ZQLvUv dpbAZ/f8cTnatqc5a8ui2/TtLxm61HQx5UqNhNdNOVIYg8cuA2crXyub8brBg3L3HGMu 90Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:cc:references:to :subject; bh=P62DSgpoIfC0VCcArMPbQo/v9HsdCtqDY7xMGUrsDlI=; b=ZPQXr47s0TAdwzSI7a/ZdIlCNYwBIbhM5agApB3omU1tOWoUvqlfwnfwQfAqCEgzJh M3poLTdMc3f6tsbc8L7cxq22BHthSjsoHP6nHtEEA5JCATJQ6sVKm9GemcOkv+FRP2f5 s3qwhcvDDTpBGFjXW3LKr28/hz1ui6eKUil3L57aJEfy5igp8ekp48Nnsh1h0AX+QvZr w+tSA6UZjSucQJyskSHnEaH/QVQsAP00kcWs94TkKeKyOb6BL3y2oCHGVL9CX4c2Th1Q tLv09F8xO5iqy1GnrOHcdZLSVnxAfKC85i1oOOqd27MflupBrssi8eNtLOttzVUFiWo4 uNAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z16si873001otj.5.2020.03.11.00.21.30; Wed, 11 Mar 2020 00:21:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728459AbgCKHUK (ORCPT + 99 others); Wed, 11 Mar 2020 03:20:10 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:11626 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728242AbgCKHUK (ORCPT ); Wed, 11 Mar 2020 03:20:10 -0400 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 1D0CEFE6F693335B3302; Wed, 11 Mar 2020 15:20:06 +0800 (CST) Received: from [127.0.0.1] (10.173.221.230) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server id 14.3.487.0; Wed, 11 Mar 2020 15:19:55 +0800 Subject: Re: [RFC] KVM: arm64: support enabling dirty log graually in small chunks To: Marc Zyngier References: <20200309085727.1106-1-zhukeqian1@huawei.com> <4b85699ec1d354cc73f5302560231f86@misterjones.org> <64925c8b-af3d-beb5-bc9b-66ef1e47f92d@huawei.com> CC: , , , , "Jay Zhou" , Sean Christopherson , Paolo Bonzini , "James Morse" , Julien Thierry , Suzuki K Poulose From: zhukeqian Message-ID: <9ddefc54-dd5b-0555-0aaa-00a3a23febcf@huawei.com> Date: Wed, 11 Mar 2020 15:19:54 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.173.221.230] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Marc, On 2020/3/10 21:16, Marc Zyngier wrote: > On 2020-03-10 08:26, zhukeqian wrote: >> Hi Marc, >> >> On 2020/3/9 19:45, Marc Zyngier wrote: >>> Kegian, > > [...] > >>> Is there a userspace counterpart to it? >>> >> As this KVM/x86 related changes have not been merged to mainline >> kernel, some little modification is needed on mainline Qemu. > > Could you please point me to these changes? I made some changes locally listed below. However, Qemu can choose to enable KVM_DIRTY_LOG_INITIALLY_SET or not. Here I made no judgement on dirty_log_manual_caps because I just want to verify the optimization of this patch. diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 439a4efe52..1611f644a4 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -2007,14 +2007,16 @@ static int kvm_init(MachineState *ms) s->coalesced_pio = s->coalesced_mmio && kvm_check_extension(s, KVM_CAP_COALESCED_PIO); - s->manual_dirty_log_protect = + uint64_t dirty_log_manual_caps = kvm_check_extension(s, KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2); - if (s->manual_dirty_log_protect) { - ret = kvm_vm_enable_cap(s, KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2, 0, 1); + if (dirty_log_manual_caps) { + ret = kvm_vm_enable_cap(s, KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2, 0, + dirty_log_manual_caps); if (ret) { warn_report("Trying to enable KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 " "but failed. Falling back to the legacy mode. "); - s->manual_dirty_log_protect = false; + } else { + s->manual_dirty_log_protect = true; } } > >> As I tested this patch on a 128GB RAM Linux VM with no huge pages, the >> time of enabling dirty log will decrease obviously. > > I'm not sure how realistic that is. Not having huge pages tends to lead > to pretty bad performance in general... Sure, this has no effect on guests which are all of huge pages. For my understanding, once a guest has normal pages (maybe are initialized at beginning or dissloved from huge pages), it can benefit from this patch. > > Thanks, > > M. Pretty thanks for your review. Thanks, Keqian