[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <622ffc59-d914-c718-3f2f-952f714ac63c@redhat.com>
Date: Mon, 28 Sep 2020 17:11:24 +0200
From: Paolo Bonzini <pbonzini@...hat.com>
To: Ben Gardon <bgardon@...gle.com>, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org
Cc: Cannon Matthews <cannonmatthews@...gle.com>,
Peter Xu <peterx@...hat.com>,
Sean Christopherson <sean.j.christopherson@...el.com>,
Peter Shier <pshier@...gle.com>,
Peter Feiner <pfeiner@...gle.com>,
Junaid Shahid <junaids@...gle.com>,
Jim Mattson <jmattson@...gle.com>,
Yulei Zhang <yulei.kernel@...il.com>,
Wanpeng Li <kernellwp@...il.com>,
Vitaly Kuznetsov <vkuznets@...hat.com>,
Xiao Guangrong <xiaoguangrong.eric@...il.com>
Subject: Re: [PATCH 15/22] kvm: mmu: Support changed pte notifier in tdp MMU
On 25/09/20 23:22, Ben Gardon wrote:
> + *iter.sptep = 0;
> + handle_changed_spte(kvm, as_id, iter.gfn, iter.old_spte,
> + new_spte, iter.level);
> +
Can you explain why new_spte is passed here instead of 0?
All calls to handle_changed_spte are preceded by "*something =
new_spte" except this one, so I'm thinking of having a change_spte
function like
static void change_spte(struct kvm *kvm, int as_id, gfn_t gfn,
u64 *sptep, u64 new_spte, int level)
{
u64 old_spte = *sptep;
*sptep = new_spte;
__handle_changed_spte(kvm, as_id, gfn, old_spte, new_spte, level);
handle_changed_spte_acc_track(old_spte, new_spte, level);
handle_changed_spte_dirty_log(kvm, as_id, gfn, old_spte, new_spte, level);
}
in addition to the previously-mentioned cleanup of always calling
handle_changed_spte instead of special-casing calls to two of the
three functions. It would be a nice place to add the
trace_kvm_mmu_set_spte tracepoint, too.
Paolo
Powered by blists - more mailing lists