|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC] xen: arm: use uncached foreign mappings when building guests
On Thu, 2013-12-19 at 14:30 +0000, Ian Campbell wrote:
> Looks like I might have missed a callpath.
Not just that, but a cache flush too so even with the uncached mapping
the cache is *still* potentially dirty.
One place this could be fixed is in dom0 in remap_pte_fn, and I've
confirmed that this works:
@@ -101,6 +102,8 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t
token, unsig
if (map_foreign_page(pfn, info->fgmfn, info->domid))
return -EFAULT;
set_pte_at(info->vma->vm_mm, addr, ptep, pte);
+ if (pgprot_val(info->prot) ==
pgprot_val(pgprot_noncached(info->prot)))
+ __cpuc_flush_dcache_area((void *)addr, PAGE_SIZE);
return 0;
}
I'm wondering though if it might be more correct to do this on the
hypervisor side. In particular I'm thinking that caches should be
invalidated when a page is freed. scrub_one_page would have been
convenient but is not called for a ballooned down page, so we'd have to
add something which maps the page and flushes it on free.
An alternative would be to invalidate the cache when we allocate the
page to a guest, e.g. in populate physmap.
Sadly -- neither of the last two ideas actually work in practice for
some reason...
I'll poke at it a bit more.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |