Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp545700pxu; Wed, 7 Oct 2020 09:33:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXudCMtGkdPKuYcJYzgXlbNPVTRxqvwGeetGhSGmTnWkOXWvPv2D8OG21KKTy/X5Zmoopo X-Received: by 2002:a17:906:7013:: with SMTP id n19mr4175055ejj.388.1602088381523; Wed, 07 Oct 2020 09:33:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602088381; cv=none; d=google.com; s=arc-20160816; b=mRZONEYAwQVCx0KtLJE21iprs6/OPTXx1v8bgLQcY9n36EjJLC6lMurhG1AVJ5i/VT EgZk7j/JGRVJFDroolyLBGZ3tOHh3SCVFVvfqNck+PGFLfpPTGl35fDUIIaIKtDmprJC HTEe0XyRAaRs4qaHEoER4gdg+p8pqn/wiSXWGWmEWsmMPzcdALUOkba1wnXPSCTc2R6M srdEt/nHeD2woRJfDW0CKI9UWuM4V8uee9hUy19LiPYTsNs/otgatq8hR35GCSb5cDqb fQsPSCo3VuaaPnDLr+L3ib+4rfZO6ehfNjGwKWYcfPQBGYe9nlYl5bu267EbY+51xNIL TAZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=UYMk+BlOXeIbztTTmOGtrLRWb7ewhHw6QepmeLnJlMQ=; b=vflyHP7CMn4pp7YaUhsSaI4rVTI66xawxv0HrglU+FwyB/DJafFmvCvaIXjQQ9yga7 F5mA0wNtnmk7o81kEi7Hud1YQH/6pdsxkmOcbawAf9Kc+NPGCYPpqy/iEqqnWE8l1NuL ogf6QNU2Wj6O5YsIl8nJI8FMJxrhd235gUf4J8yYIII3a+sOu3xSSaXeQAzfYW8uESdr KCxJJd+jlp/5BtfQC91DibFfcRcwzxLKk+AqgXhmtT+QcIDs5dVbWCKrikjg9KRRsJxl Sye7nPHBbaZIYRgRzWQaITXT7R876yNTgYJufxSZ/tB5cnCDpZYEEfqUJASYzvsjHUnm uZDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Y4+NKXdl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x9si2219832ejc.668.2020.10.07.09.32.38; Wed, 07 Oct 2020 09:33:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Y4+NKXdl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728016AbgJGQaj (ORCPT + 99 others); Wed, 7 Oct 2020 12:30:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727978AbgJGQai (ORCPT ); Wed, 7 Oct 2020 12:30:38 -0400 Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF9D5C0613D2 for ; Wed, 7 Oct 2020 09:30:36 -0700 (PDT) Received: by mail-il1-x141.google.com with SMTP id j13so2847362ilc.4 for ; Wed, 07 Oct 2020 09:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UYMk+BlOXeIbztTTmOGtrLRWb7ewhHw6QepmeLnJlMQ=; b=Y4+NKXdlYiaTxkXT9l/2+Nk56HfwQ2izplaW+tMW3d0vI4hwfIC5V8T2ruDvM0wUNb yAPjVLoCd3dSKe2CMd6GozDwwbjRFayGNqlAb00cDAldU9bBDMLQfDJNr1gfV5cHAAaf /Z77J4+EhN66Oxu7/U6S2CevfxJwD8Y/meciKSGT0YiMbOeBYXIyiKiYjReB102VMaQ2 pk01mw9bZbvbUxpipQXJIWIZ8X+p311eE3aTLuxeb5hV41N5AtMTbTX46pfwersSs8SQ IxEnrPM5BvSJ9lgamii7Kt//gXnrI3fPFKGpbt95RQHe2+2TJ2LX0CESU0s2JRmQ1an/ IxRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UYMk+BlOXeIbztTTmOGtrLRWb7ewhHw6QepmeLnJlMQ=; b=mvsDoW1/Mgs4+h6VHjWYSOEon519v/qhOoALKVy772Wza/jqcD/cYE7gVyGjQbFlVE d8rySAZ4X9q0lr4YLrbnwRTIW0ccTi0y6itR8m+yfoMxO3O5cpKtfqPZC2wiTXo9iAAB zvBaWLt9KaujDY/YmvlbEkqOF+Rm+AK5Hj9As2jmPc0N7MDHj5QaFvlwgzUunnj771a/ PPtUSI2YONRsPDjju5nNirs5xrIkzlVsO9/2I8cqxmeNb16Tof15Xh36/HU3ZbiL8d6T sziQiojdF6c10zmCL2X4/fc5h4K7eWSfoEPFq3ofGMjTbKKE9R60jO+Mxji3K4onYwSL o2mg== X-Gm-Message-State: AOAM532TqwLEP/DlOgqoUEJOEdBVPDlp1u7dU11Gim5VdmW54E3PV93k NzeE392SpeKXr86s616zPTxdehyaA4zc9ZG7AUn1cuRXFXeTPxF1olE= X-Received: by 2002:a92:cbcd:: with SMTP id s13mr3157728ilq.306.1602088235893; Wed, 07 Oct 2020 09:30:35 -0700 (PDT) MIME-Version: 1.0 References: <20200925212302.3979661-1-bgardon@google.com> <20200925212302.3979661-19-bgardon@google.com> <44822999-f5dc-6116-db12-a41f5bd80dd8@redhat.com> In-Reply-To: <44822999-f5dc-6116-db12-a41f5bd80dd8@redhat.com> From: Ben Gardon Date: Wed, 7 Oct 2020 09:30:24 -0700 Message-ID: Subject: Re: [PATCH 18/22] kvm: mmu: Support disabling dirty logging for the tdp MMU To: Paolo Bonzini Cc: LKML , kvm , Cannon Matthews , Peter Xu , Sean Christopherson , Peter Shier , Peter Feiner , Junaid Shahid , Jim Mattson , Yulei Zhang , Wanpeng Li , Vitaly Kuznetsov , Xiao Guangrong Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 25, 2020 at 6:09 PM Paolo Bonzini wrote: > > On 25/09/20 23:22, Ben Gardon wrote: > > + for_each_tdp_pte_root(iter, root, start, end) { > > + if (!is_shadow_present_pte(iter.old_spte) || > > + is_last_spte(iter.old_spte, iter.level)) > > + continue; > > + > > I'm starting to wonder if another iterator like > for_each_tdp_leaf_pte_root would be clearer, since this idiom repeats > itself quite often. The tdp_iter_next_leaf function would be easily > implemented as > > while (likely(iter->valid) && > (!is_shadow_present_pte(iter.old_spte) || > is_last_spte(iter.old_spte, iter.level)) > tdp_iter_next(iter); Do you see a substantial efficiency difference between adding a tdp_iter_next_leaf and building on for_each_tdp_pte_using_root with something like: #define for_each_tdp_leaf_pte_using_root(_iter, _root, _start, _end) \ for_each_tdp_pte_using_root(_iter, _root, _start, _end) \ if (!is_shadow_present_pte(_iter.old_spte) || \ !is_last_spte(_iter.old_spte, _iter.level)) \ continue; \ else I agree that putting those checks in a wrapper makes the code more concise. > > Paolo >