Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756107AbbLAKRg (ORCPT ); Tue, 1 Dec 2015 05:17:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45873 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751603AbbLAKRe (ORCPT ); Tue, 1 Dec 2015 05:17:34 -0500 Subject: Re: [PATCH 00/11] KVM: x86: track guest page access To: Xiao Guangrong References: <1448907973-36066-1-git-send-email-guangrong.xiao@linux.intel.com> Cc: gleb@kernel.org, mtosatti@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Andrea Arcangeli From: Paolo Bonzini X-Enigmail-Draft-Status: N1110 Message-ID: <565D73BA.8020002@redhat.com> Date: Tue, 1 Dec 2015 11:17:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1448907973-36066-1-git-send-email-guangrong.xiao@linux.intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2148 Lines: 49 On 30/11/2015 19:26, Xiao Guangrong wrote: > This patchset introduces the feature which allows us to track page > access in guest. Currently, only write access tracking is implemented > in this version. > > Four APIs are introduces: > - kvm_page_track_add_page(kvm, gfn, mode), single guest page @gfn is > added into the track pool of the guest instance represented by @kvm, > @mode specifies which kind of access on the @gfn is tracked > > - kvm_page_track_remove_page(kvm, gfn, mode), is the opposed operation > of kvm_page_track_add_page() which removes @gfn from the tracking pool. > gfn is no tracked after its last user is gone > > - kvm_page_track_register_notifier(kvm, n), register a notifier so that > the event triggered by page tracking will be received, at that time, > the callback of n->track_write() will be called > > - kvm_page_track_unregister_notifier(kvm, n), does the opposed operation > of kvm_page_track_register_notifier(), which unlinks the notifier and > stops receiving the tracked event > > The first user of page track is non-leaf shadow page tables as they are > always write protected. It also gains performance improvement because > page track speeds up page fault handler for the tracked pages. The > performance result of kernel building is as followings: > > before after > real 461.63 real 455.48 > user 4529.55 user 4557.88 > sys 1995.39 sys 1922.57 For KVM-GT, as far as I know Andrea Arcangeli is working on extending userfaultfd to tracking write faults only. Perhaps KVM-GT can do something similar, where KVM gets the write tracking functionality for free through the MMU notifiers. Any thoughts on this? Applying your technique to non-leaf shadow pages actually makes this series quite interesting. :) Shadow paging is still in use for nested EPT, so it's always a good idea to speed it up. Paolo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/