Messages in this thread | | | Date | Fri, 25 Jan 2013 13:28:16 +0900 | From | Takuya Yoshikawa <> | Subject | Re: [PATCH 0/2] kvm: IOMMU read-only mapping support |
| |
On Fri, 25 Jan 2013 12:59:12 +0900 Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp> wrote:
> > The commit c972f3b1 changed the write-protect behaviour - it does > > wirte-protection only when dirty flag is set. > > [ I did not see this commit when we discussed the problem before. ] > > I'll look at the commit later, after the lunch break.
I've done!
So we need to do:
if (npages && (GET_DIRTY || RDONLY)) write protect
About sync_page, I'm not sure what is the best fix.
Takuya
> > > Further more, i notice that write-protect is not enough, when do sync > > shadow page: > > > > FNAME(sync_page): > > > > host_writable = sp->spt[i] & SPTE_HOST_WRITEABLE; > > > > set_spte(vcpu, &sp->spt[i], pte_access, > > PT_PAGE_TABLE_LEVEL, gfn, > > spte_to_pfn(sp->spt[i]), true, false, > > host_writable); > > > > It sets spte based on the old value that means the readonly flag check > > is missed. We need to call kvm_arch_flush_shadow_all under this case. > > So the change needed will be in arch/x86. > in arch_commit_* one. > > Right? > > Note: I'm not touching arch_* memory slot APIs now because ARM KVM > is coming now. So no problem, the flags will be passed as before. > > Takuya
-- Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
| |