xen/arm: fix "xen_add_mach_to_phys_entry: cannot add" problem
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest posting 2/20 of 3 patches 0 repliesNew
- v2 posting 1/20 of 3 patches 0 repliesSuperseded
Patches in v2 posting 2/2 No applies recorded yet
None of the 3 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [Xen-devel] [PATCH v2 0/3] xen/arm: fix "xen_add_mach_to_phys_entry: cannot add" problem
Quoted 15 lines · Stefano Stabellini
Quoted 14 lines · Konrad Rzeszutek Wilk
Quoted 12 lines · Stefano Stabellini
Hi all,
Xen support in Linux for ARM and ARM64 suffers from lack of support for multiple mfn to pfn mappings: whenever a frontend grants the same page multiple times to the backend, the mfn to pfn accounting inarch/arm/xen/p2m.cfails. The issue has become critical since v3.15, when xen-netfront/xen-netback switched from grant copies to grant mappings, therefore causing the issue to happen much more often.Fixing the mfn to pfn accounting in
p2m.cis difficult and expensive, therefore we are looking for alternative solutions. One idea is avoiding mfn to pfn conversions altogether. The only code path that needs them is swiotlb-xen:unmap_page (andsingle_for_cpuandsingle_for_device).
Quoted 6 lines
Quoted 3 lines
I seem to have lost track of that patch? Or is it in now in the kernel?
Could you include the git commit id or URL for it in the cover letter please?
I take that you are asking the id of the commit that introduced the function calls that need mfn to pfn conversions in swiotlb-xen, right?
Earlier you said: "avoiding mfn to pfn conversions. The only code path that needs them is .." So I suspected (it seems wrongly) that there was some SWIOTLB patch that would do this and I had missed it.
But it seems that this soo fresh you hadn't yet posted the SWIOTLB changes to use this new API - so I hadn't missed them :-)
Quoted 49 lines
The commit that introduced them is:
commit
6cf054636261ca5c88f3c2984058d51f927b8a2eAuthor: Stefano Stabellini <[email protected]> Date: Fri Oct 25 10:33:25 2013 +0000swiotlb-xen: use xen_dma_map/unmap_page, xen_dma_sync_single_for_cpu/device
xen_dma_unmap_pageon x86 doesn't do anything but on ARM performs important cache invalidate operations for non-dma-coherent devices.Quoted 36 lines
Thanks
Quoted 34 lines
To avoid mfn to pfn conversions we rely on a second p2m mapping done by Xen (a separate patch series will be sent for Xen). In Linux we use it to perform the cache maintenance operations without mfns conversions.
Changes in v2:
- introduceXENFEAT_grant_map_11;
- remeber the ptep corresponding to scratch pages so that we don't need to calculate it again every time;
- do not acutally unmap the page onxen_mm32_unmap;
- properly account preempt_enable/disable;
- do not check for mfn inxen_add_phys_to_mach_entry.Stefano Stabellini (3):
xen/arm: introduceXENFEAT_grant_map_11xen/arm: reimplementxen_dma_unmap_page& friends xen/arm: removemach_to_physrbtreearch/arm/include/asm/xen/page-coherent.h | 25 ++-- arch/arm/include/asm/xen/page.h | 9 -- arch/arm/xen/Makefile | 2 +- arch/arm/xen/enlighten.c | 6 + arch/arm/xen/mm32.c | 202 ++++++++++++++++++++++++++++++ arch/arm/xen/p2m.c | 66 +--------- include/xen/interface/features.h | 3 + 7 files changed, 220 insertions(+), 93 deletions(-) create mode 100644 arch/arm/xen/mm32.c_______________________________________________
Xen-devel mailing list
Xen-devel at lists.xen.org
http://lists.xen.org/xen-devel