From: Sean Christopherson <seanjc@google.com>
To: Vipin Sharma <vipinsh@google.com>
Cc: pbonzini@redhat.com, bgardon@google.com, dmatlack@google.com,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [Patch v3 0/7] Optimize clear dirty log
Date: Tue, 21 Mar 2023 12:57:20 -0700 [thread overview]
Message-ID: <ZBoMIJipRtmvsNXg@google.com> (raw)
In-Reply-To: <CAHVum0feM8hnD-+dXF4jiug8tmpm9GBAh619Xf279LNSm=Jozw@mail.gmail.com>
On Tue, Mar 21, 2023, Vipin Sharma wrote:
> On Mon, Mar 20, 2023 at 5:41 PM Sean Christopherson <seanjc@google.com> wrote:
> >
> > On Fri, Mar 17, 2023, Sean Christopherson wrote:
> > > Did a cursory glance, looks good. I'll do a more thorough pass next week and get
> > > it queued up if all goes well. No need for a v4 at this point, I'll fixup David's
> > > various nits when applying.
> >
> > Ooof, that ended up being painful. In hindsight, I should have asked for a v4,
> > but damage done, and it's my fault for throwing you a big blob of code in the
> > first place.
> >
> > I ended up splitting the "interesting" patches into three each:
> >
> > 1. Switch to the atomic-AND
> > 2. Drop the access-tracking / dirty-logging (as appropriate)
> > 3. Drop the call to __handle_changed_spte()
> >
> > because logically they are three different things (although obviously related).
> >
> > I have pushed the result to kvm-x86/mmu, but haven't merged to kvm-x86/next or
> > sent thanks because it's not yet tested. I'll do testing tomorrow, but if you
> > can take a look in the meantime to make sure I didn't do something completely
> > boneheaded, it'd be much appreciated.
>
>
> Thanks for refactoring the patches. I reviewed the commits, no obvious
> red flags from my side. Few small nits I found:
>
> commit e534a94eac07 ("KVM: x86/mmu: Use kvm_ad_enabled() to determine
> if TDP MMU SPTEs need wrprot")
> - kvm_ad_enabled() should be outside the loop.
Hmm, I deliberately left it inside the loop, but I agree that it would be better
to hoist it out in that commit.
> commit 69032b5d71ef (" KVM: x86/mmu: Atomically clear SPTE dirty state
> in the clear-dirty-log flow")
> - MMU_WARN_ON(kvm_ad_enabled() &&
> spte_ad_need_write_protect(iter.old_spte) should be after
> if(iter.level > PG_LEVEL_4k...)
Ah, hrm. This was also deliberate, but looking at the diff I agree that relative
to the diff, it's an unnecessary/unrelated change. I think what I'll do is
land the assertion above the "if (iter.level > PG_LEVEL_4K ||" in the above
commit that switches to kvm_ad_enabled(). That way there shouldn't be any change
for the assertion in this commit.
> commit 93c375bb6aea ("KVM: x86/mmu: Bypass __handle_changed_spte()
> when clearing TDP MMU dirty bits")
> - Needs new performance numbers. Adding MMU_WARN_ON() might change
> numbers. I will run a perf test on your mmu branch and see if
> something changes a lot.
It won't. MMU_WARN_ON() is dead code without manual modification to define MMU_DEBUG.
Part of the reason I used MMU_WARN_ON() was to remind myself to send a patch/series
to overhaul MMU_WARN_ON[*]. My thought/hope is that a Kconfig will allow developers
and testers to run with a pile of assertions and sanity checks without impacting
the runtime overhead for production builds.
[*] https://lore.kernel.org/all/Yz4Qi7cn7TWTWQjj@google.com/
next prev parent reply other threads:[~2023-03-21 19:57 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-11 1:46 [Patch v3 0/7] Optimize clear dirty log Vipin Sharma
2023-02-11 1:46 ` [Patch v3 1/7] KVM: x86/mmu: Add a helper function to check if an SPTE needs atomic write Vipin Sharma
2023-02-11 1:46 ` [Patch v3 2/7] KVM: x86/mmu: Atomically clear SPTE dirty state in the clear-dirty-log flow Vipin Sharma
2023-02-15 21:12 ` David Matlack
2023-03-17 22:59 ` Sean Christopherson
2023-03-17 23:50 ` Vipin Sharma
2023-02-11 1:46 ` [Patch v3 3/7] KVM: x86/mmu: Remove "record_dirty_log" in __tdp_mmu_set_spte() Vipin Sharma
2023-02-15 21:10 ` David Matlack
2023-02-11 1:46 ` [Patch v3 4/7] KVM: x86/mmu: Optimize SPTE change for aging gfn range Vipin Sharma
2023-02-15 21:15 ` David Matlack
2023-03-21 0:51 ` Sean Christopherson
2023-02-11 1:46 ` [Patch v3 5/7] KVM: x86/mmu: Remove "record_acc_track" in __tdp_mmu_set_spte() Vipin Sharma
2023-02-22 19:31 ` David Matlack
2023-02-11 1:46 ` [Patch v3 6/7] KVM: x86/mmu: Remove handle_changed_spte_dirty_log() Vipin Sharma
2023-02-22 19:36 ` David Matlack
2023-02-11 1:46 ` [Patch v3 7/7] KVM: x86/mmu: Merge all handle_changed_pte* functions Vipin Sharma
2023-02-22 19:42 ` David Matlack
2023-03-17 22:51 ` Sean Christopherson
2023-03-17 23:48 ` Vipin Sharma
2023-03-17 22:57 ` [Patch v3 0/7] Optimize clear dirty log Sean Christopherson
2023-03-17 23:51 ` Vipin Sharma
2023-03-21 0:41 ` Sean Christopherson
2023-03-21 18:11 ` Vipin Sharma
2023-03-21 19:57 ` Sean Christopherson [this message]
2023-03-21 20:40 ` Sean Christopherson
2023-03-21 21:38 ` Sean Christopherson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZBoMIJipRtmvsNXg@google.com \
--to=seanjc@google.com \
--cc=bgardon@google.com \
--cc=dmatlack@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=vipinsh@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.