Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp273541ybh; Wed, 11 Mar 2020 00:37:11 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvKfXiRjCSWxDAKilbMHN4+FLA7oy1u/PEmLtBrgS5vai2e3vPjpc/7lxVTkg+Hn0rRPpeh X-Received: by 2002:a05:6830:1d6e:: with SMTP id l14mr1304425oti.32.1583912231699; Wed, 11 Mar 2020 00:37:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583912231; cv=none; d=google.com; s=arc-20160816; b=KXRh3jPh0rsNXHsOU2N3sHp3E6Duegh7LqDVUV24hVRwqImVW2x30M0ntfyjEH3cmY ZWZa4cZl42R1fLcBYTblQyKwdjNqk3QxYn9PTu9/0YqSQRS+elViSuUuH30odGPbxGDQ jP7zpdsUIISUj7g7F2pWpdLCSbVapptH5v9sKWhFcswbkzNs8/6Qd1+G5s2NpPe7ZxGH KqBtZMmS3/POXBfeCspFQVo5n0ywUsOLawRIz/CGJc9P84CYdzqmoS+PHfH0vq4BphN8 YYRPx6biW5F2jb2oTe+8Pwva5BIb4hMILRG7x2VqqJvoAiN8kr4WXGplgKdr7sUs32r+ WQog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=dm/w8NAp+tn0l4WrbCIGiWPL9neiD4In4PshYsPqkbc=; b=0FJcjum/b53XkFDEB36sgPBscVRf2RyegVIt+RkeSG0JuB+nDONXeAS+evh46pTAcl eZPhNlcFh9VbggYLgvDJ0+3VJ2liZvzl/wZdPA0UrzROt9S0+uAfqzJxviUfI/ItwaV4 XnbPt1d8k7Bj4TS+qzmUGiYz3Ohd1OeM8dzlxbuDcpej2fayeJ56hwGg+7L3vSAYLrq5 d8VdxTzZTxSYMmNwhZvGqlz8rG/ZmI1A6JFUxH7S0Ga4OlWYTCPTmky1uXvjzkPsyjs/ bJP46hYnaWE2jj+04Hpp7bM/vU3g052fOIPhFLKmWoH75sWvbwutG3ktP9x8m3spn4er emlQ== 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 m126si714296oig.177.2020.03.11.00.36.57; Wed, 11 Mar 2020 00:37:11 -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 S1728352AbgCKHfJ convert rfc822-to-8bit (ORCPT + 99 others); Wed, 11 Mar 2020 03:35:09 -0400 Received: from szxga08-in.huawei.com ([45.249.212.255]:37010 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726160AbgCKHfJ (ORCPT ); Wed, 11 Mar 2020 03:35:09 -0400 Received: from DGGEMM402-HUB.china.huawei.com (unknown [172.30.72.53]) by Forcepoint Email with ESMTP id 8A9A3905D61B99ACD7FD; Wed, 11 Mar 2020 15:35:03 +0800 (CST) Received: from DGGEMM421-HUB.china.huawei.com (10.1.198.38) by DGGEMM402-HUB.china.huawei.com (10.3.20.210) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 11 Mar 2020 15:35:02 +0800 Received: from DGGEMM528-MBX.china.huawei.com ([169.254.8.90]) by dggemm421-hub.china.huawei.com ([10.1.198.38]) with mapi id 14.03.0439.000; Wed, 11 Mar 2020 15:34:56 +0800 From: "Zhoujian (jay)" To: zhukeqian , Marc Zyngier CC: "kvmarm@lists.cs.columbia.edu" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Sean Christopherson , Paolo Bonzini , James Morse , Julien Thierry , Suzuki K Poulose , "Huangweidong (C)" , "wangxin (U)" Subject: RE: [RFC] KVM: arm64: support enabling dirty log graually in small chunks Thread-Topic: [RFC] KVM: arm64: support enabling dirty log graually in small chunks Thread-Index: AQHV9fES7bnu3RiLvUOZvoLEbVPgkKg/noOAgAFalYCAAFE+gIABLpcAgACIxzA= Date: Wed, 11 Mar 2020 07:34:55 +0000 Message-ID: References: <20200309085727.1106-1-zhukeqian1@huawei.com> <4b85699ec1d354cc73f5302560231f86@misterjones.org> <64925c8b-af3d-beb5-bc9b-66ef1e47f92d@huawei.com> <9ddefc54-dd5b-0555-0aaa-00a3a23febcf@huawei.com> In-Reply-To: <9ddefc54-dd5b-0555-0aaa-00a3a23febcf@huawei.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.173.228.206] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > -----Original Message----- > From: zhukeqian > Sent: Wednesday, March 11, 2020 3:20 PM > To: Marc Zyngier > Cc: kvmarm@lists.cs.columbia.edu; kvm@vger.kernel.org; > linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Zhoujian (jay) > ; Sean Christopherson > ; Paolo Bonzini ; > James Morse ; Julien Thierry > ; Suzuki K Poulose > Subject: Re: [RFC] KVM: arm64: support enabling dirty log graually in small chunks > > 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; > } > } FYI: I had submitted a patch to the Qemu community some days ago: https://patchwork.kernel.org/patch/11419191/ > > > >> 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. Yes, I agree. Regards, Jay Zhou