Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752133AbbKZCf0 (ORCPT ); Wed, 25 Nov 2015 21:35:26 -0500 Received: from tama50.ecl.ntt.co.jp ([129.60.39.147]:48491 "EHLO tama50.ecl.ntt.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751071AbbKZCfX (ORCPT ); Wed, 25 Nov 2015 21:35:23 -0500 Subject: Re: [PATCH 09/10] KVM: x86: MMU: Move parent_pte handling from kvm_mmu_get_page() to link_shadow_page() To: Paolo Bonzini , Xiao Guangrong References: <20151120174005.9880b89f54eee2cec2422da5@lab.ntt.co.jp> <20151120174805.a91793d1fce2f0a493f1b955@lab.ntt.co.jp> <564EE08B.4040100@linux.intel.com> <5655E2B5.4030709@redhat.com> Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, mtosatti@redhat.com From: Takuya Yoshikawa Message-ID: <56567025.6030005@lab.ntt.co.jp> Date: Thu, 26 Nov 2015 11:36:21 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <5655E2B5.4030709@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1437 Lines: 37 On 2015/11/26 1:32, Paolo Bonzini wrote: > On 20/11/2015 09:57, Xiao Guangrong wrote: >> You can move this patch to the front of >> [PATCH 08/10] KVM: x86: MMU: Use for_each_rmap_spte macro instead of >> pte_list_walk() >> >> By moving kvm_mmu_mark_parents_unsync() to the behind of mmu_spte_set() >> (then the parent >> spte is present now), you can directly clean up for_each_rmap_spte(). > > So basically squash together the two patches (8/10 and 9/10) except the > change to kvm_mmu_mark_parents_unsync; then in the second patch switch > from pte_list_walk to for_each_rmap_spte. > > That makes sense indeed. Sorry for my being late to respond to Xiao's suggestions. I could not use my development machine for a while this week. In short, this kvm_mmu_mark_parents_unsync() call in kvm_mmu_get_page() should have been mark_unsync() for the new parent_pte only, because we are constructing the mappings from/to it and other parents in the sp->parent_ptes are not related to this fault? As the code has been this way for some time, a bit scary to change it, but I'll do some tests without that extra kvm_mmu_mark_parents_unsync() with a guest (with ept=0) this afternoon. Takuya -- 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/