On Wed, Aug 24, 2011 at 05:05:40PM -0300, Marcelo Tosatti wrote: > On Wed, Aug 24, 2011 at 04:16:52AM +0800, Xiao Guangrong wrote: > > On 08/24/2011 03:09 AM, Marcelo Tosatti wrote: > > > On Wed, Aug 24, 2011 at 12:32:32AM +0800, Xiao Guangrong wrote: > > >> On 08/23/2011 08:38 PM, Marcelo Tosatti wrote: > > >> > > >>>> And, i think there are not problems since: if the spte without accssed bit is > > >>>> written frequently, it means the guest page table is accessed infrequently or > > >>>> during the writing, the guest page table is not accessed, in this time, zapping > > >>>> this shadow page is not bad. > > >>> > > >>> Think of the following scenario: > > >>> > > >>> 1) page fault, spte with accessed bit is created from gpte at gfnA+indexA. > > >>> 2) write to gfnA+indexA, spte has accessed bit set, write_flooding_count > > >>> is not increased. > > >>> 3) repeat > > >>> > > >> > > >> I think the result is just we hoped, we do not want to zap the shadow page > > >> because the spte is currently used by the guest, it also will be used in the > > >> next repetition. So do not increase 'write_flooding_count' is a good choice. > > > > > > Its not used. Step 2) is write to write protected shadow page at > > > gfnA. > > > > > >> Let's consider what will happen if we increase 'write_flooding_count': > > >> 1: after three repetitions, zap the shadow page > > >> 2: in step 1, we will alloc a new shadow page for gpte at gfnA+indexA > > >> 3: in step 2, the flooding count is creased, so after 3 repetitions, the > > >> shadow page can be zapped again, repeat 1 to 3. > > > > > > The shadow page will not be zapped because the spte created from > > > gfnA+indexA has the accessed bit set: > > > > > > if (spte && !(*spte & shadow_accessed_mask)) > > > sp->write_flooding_count++; > > > else > > > sp->write_flooding_count = 0; > > > > > > > Ah, i see, i thought it was "repeat"ed on the same spte, it was my wrong. > > > > Yes, in this case, the sp is not zapped, but it is hardly to know the gfn > > is not used as gpte just depends on writing, for example, the guest can > > change the mapping address or the status bit, and so on...The sp can be > > zapped if the guest write it again(on the same address), i think it is > > acceptable, anymore, it is just the speculative way to zap the unused > > shadow page...your opinion? > > It could increase the flood count independently of the accessed bit of > the spte being updated, zapping after 3 attempts as it is now. > > But additionally reset the flood count if the gpte appears to be valid > (points to an existant gfn if the present bit is set, or if its zeroed). Well not zero, as thats a common pattern for non ptes. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html