On Fri, Mar 25, 2022 at 4:53 PM David Matlack <dmatlack@xxxxxxxxxx> wrote: > > On Fri, Mar 25, 2022 at 4:31 PM Vipin Sharma <vipinsh@xxxxxxxxxx> wrote: > > > > Avoid calling handlers on empty rmap entries and skip to the next non > > empty rmap entry. > > > > Empty rmap entries are noop in handlers. > > > > Signed-off-by: Vipin Sharma <vipinsh@xxxxxxxxxx> > > Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx> > > Change-Id: I8abf0f4d82a2aae4c5d58b80bcc17ffc30785ffc > > nit: Omit Change-Id tags from upstream commits. Thanks for catching it. > > > --- > > arch/x86/kvm/mmu/mmu.c | 9 ++++++--- > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > > index 51671cb34fb6..f296340803ba 100644 > > --- a/arch/x86/kvm/mmu/mmu.c > > +++ b/arch/x86/kvm/mmu/mmu.c > > @@ -1499,11 +1499,14 @@ static bool slot_rmap_walk_okay(struct slot_rmap_walk_iterator *iterator) > > return !!iterator->rmap; > > } > > > > -static void slot_rmap_walk_next(struct slot_rmap_walk_iterator *iterator) > > +static noinline void > > What is the reason to add noinline? My understanding is that since this method is called from __always_inline methods, noinline will avoid gcc inlining the slot_rmap_walk_next in those functions and generate smaller code.