lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C31A3F0.6070207@redhat.com>
Date:	Mon, 05 Jul 2010 12:20:48 +0300
From:	Avi Kivity <avi@...hat.com>
To:	Xiao Guangrong <xiaoguangrong@...fujitsu.com>
CC:	Marcelo Tosatti <mtosatti@...hat.com>,
	LKML <linux-kernel@...r.kernel.org>,
	KVM list <kvm@...r.kernel.org>
Subject: Re: [PATCH v4 5/6] KVM: MMU: combine guest pte read between walk
 and pte prefetch

On 07/05/2010 12:09 PM, Xiao Guangrong wrote:
>
> Avi Kivity wrote:
>
>    
>> I'm not convinced we can bypass the checks.  Consider:
>>
>>
>> VCPU0                 VCPU1
>>
>> #PF
>> walk_addr
>> ->  gpml4e0,gpdpe0,gpde0,gpte0
>>
>>                        replace gpdpe0 with gpdpe1
>>                        #PF
>>                        walk_addr
>> ->  gpml4e0,gpdpe1,gpde1,gpte1
>>                        fetch
>>                        ->  establish hpml4e0,hpdpte1,hpde0,hpte1
>> fetch
>> read hpdpe1
>> if (present(hpdpe1))
>>      continue;
>> ...
>> write hpte0 using shadow hieratchy for hpte1
>>
>>      
> Ah, i missed this case, thanks for you point it out, i'll fix it in
> the next version.
>    

Note: I think we have to check _after_ kvm_mmu_get_page(), otherwise we 
might be checking a page that is not write-protected and can change again.

So the logic needs to be something like

for_each_shadow_entry:
     if (!last_level && !present(*spte))
         kvm_mmu_get_page
     verify gpte
     if (last_level)
         mmu_set_spte()

-- 
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ