From: Kai Huang <kai.huang@linux.intel.com>
To: Xiao Guangrong <guangrong.xiao@linux.intel.com>, pbonzini@redhat.com
Cc: gleb@kernel.org, mtosatti@redhat.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 06/11] KVM: MMU: let page fault handler be aware tracked page
Date: Wed, 16 Dec 2015 15:31:55 +0800 [thread overview]
Message-ID: <5671136B.3040006@linux.intel.com> (raw)
In-Reply-To: <566FD77F.9050009@linux.intel.com>
On 12/15/2015 05:03 PM, Xiao Guangrong wrote:
>
>
> On 12/15/2015 04:11 PM, Kai Huang wrote:
>>
>>
>> On 12/01/2015 02:26 AM, Xiao Guangrong wrote:
>>> The page fault caused by write access on the write tracked page can not
>>> be fixed, it always need to be emulated. page_fault_handle_page_track()
>>> is the fast path we introduce here to skip holding mmu-lock and shadow
>>> page table walking
>> Why can it be out side of mmu-lock? Is it OK that some other thread
>> removes tracking of this page
>> simultaneously? Shall we assuming the emulation code should handle
>> this case?
>>
>
> What your mentioned is the worst case, if that happen the vcpu will spend
> longer time to emulate the access rather then retry it. It is bad but
> it is
> the rare contention. It is worth speeding up the common / most case.
My concern is when this case happen, whether emulating the access is
still the right behavior, you know, after other thread removed the GFN
from tracking..
And as the notifier's track_write call back will be called in the
emulating code, won't there be problem if the GFN has been removed from
tracking by other thread?
Thanks,
-Kai
>
>> Even it works for write protection, is it OK for other purpose
>> tracking (as your tracking framework
>> can be extended for other purpose)?
>
> We only need to make sure that no track event is lost, i.e, we can not
> skip the case that the index is changed from 0 to 1.
>
> If we see index is 0, the vcpu can hold the mmu-lock and go to slow path
> anyway so no track event will be lost.
>
>>>
>>> However, if the page table is not present, it is worth making the page
>>> table entry present and readonly to make the read access happy
>> It's fine for tracking write from guest. But what if I want to track
>> every read from guest?
>> Probably I am exaggerating :)
>>
>
> Then we do not go to the real page fault handler, just keep the shadow
> page entry non-present.
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2015-12-16 7:36 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-30 18:26 [PATCH 00/11] KVM: x86: track guest page access Xiao Guangrong
2015-11-30 18:26 ` [PATCH 01/11] KVM: MMU: rename has_wrprotected_page to mmu_gfn_lpage_is_disallowed Xiao Guangrong
2015-11-30 18:26 ` [PATCH 02/11] KVM: MMU: introduce kvm_mmu_gfn_{allow,disallow}_lpage Xiao Guangrong
2015-11-30 18:26 ` [PATCH 03/11] KVM: MMU: introduce kvm_mmu_slot_gfn_write_protect Xiao Guangrong
2015-11-30 18:26 ` [PATCH 04/11] KVM: page track: add the framework of guest page tracking Xiao Guangrong
2015-12-15 7:06 ` Kai Huang
2015-12-15 8:46 ` Xiao Guangrong
2015-12-16 7:33 ` Kai Huang
2015-11-30 18:26 ` [PATCH 05/11] KVM: page track: introduce kvm_page_track_{add,remove}_page Xiao Guangrong
2015-12-15 7:15 ` Kai Huang
2015-12-15 7:56 ` Kai Huang
2015-11-30 18:26 ` [PATCH 06/11] KVM: MMU: let page fault handler be aware tracked page Xiao Guangrong
2015-12-15 8:11 ` Kai Huang
2015-12-15 9:03 ` Xiao Guangrong
2015-12-16 7:31 ` Kai Huang [this message]
2015-12-16 8:23 ` Xiao Guangrong
2015-11-30 18:26 ` [PATCH 07/11] KVM: page track: add notifier support Xiao Guangrong
2015-12-16 5:53 ` Jike Song
2015-12-16 6:26 ` Xiao Guangrong
2015-11-30 18:26 ` [PATCH 08/11] KVM: MMU: use page track for non-leaf shadow pages Xiao Guangrong
2015-12-15 7:52 ` Kai Huang
2015-12-15 7:59 ` Kai Huang
2015-12-15 9:10 ` Xiao Guangrong
2015-12-16 7:51 ` Kai Huang
2015-12-16 8:39 ` Xiao Guangrong
2015-12-17 2:44 ` Kai Huang
2015-12-17 4:07 ` Xiao Guangrong
2015-11-30 18:26 ` [PATCH 09/11] KVM: MMU: simplify mmu_need_write_protect Xiao Guangrong
2015-12-15 8:43 ` Kai Huang
2015-12-15 8:47 ` Kai Huang
2015-12-15 9:26 ` Xiao Guangrong
2015-12-15 9:25 ` Xiao Guangrong
2015-12-16 8:05 ` Kai Huang
2015-12-16 8:48 ` Xiao Guangrong
2015-12-17 2:51 ` Kai Huang
2015-11-30 18:26 ` [PATCH 10/11] KVM: MMU: clear write-flooding on the fast path of tracked page Xiao Guangrong
2015-11-30 18:26 ` [PATCH 11/11] KVM: MMU: apply page track notifier Xiao Guangrong
2015-12-01 10:17 ` [PATCH 00/11] KVM: x86: track guest page access Paolo Bonzini
2015-12-01 15:02 ` Andrea Arcangeli
2015-12-01 15:08 ` Paolo Bonzini
2015-12-01 17:00 ` Xiao Guangrong
2015-12-05 16:56 ` Xiao Guangrong
-- strict thread matches above, loose matches on Subject: below --
2016-02-24 9:51 [PATCH v4 " Xiao Guangrong
2016-02-24 9:51 ` [PATCH 06/11] KVM: MMU: let page fault handler be aware tracked page Xiao Guangrong
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=5671136B.3040006@linux.intel.com \
--to=kai.huang@linux.intel.com \
--cc=gleb@kernel.org \
--cc=guangrong.xiao@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).