[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 00/10] xen: arm: map normal memory as inner shareable, reduce scope of various barriers
I forgot to add an "RFC" to the subject line. I'm sure I don't need to point out that this isn't for 4.3! On Fri, 2013-06-28 at 17:10 +0100, Ian Campbell wrote: > Currently Xen maps all RAM as Outer-Shareable, since that seemed like > the most conservative option early on when we didn't really know what > Inner- vs. Outer-Shareable meant. However we have long suspected that > actually Inner-Shareable would be the correct type to use. > > After reading the docs many times, getting more confused each time, I > finally got a reasonable explanation from a man (and a dog) down the > pub: Inner-Shareable == the processors in an SMP system, while > Outer-Shareable == devices. (NB: Not a random man, he knew what he was > talking about...). With that in mind switch all of Xen's memory mapping, > page table walks, TLB flushes and an appropriate subset of the barriers > to be inner shareable. > > In addition I have switched barriers to use the correct read/write/any > variants for their types. Note that I have only tackled the generic > mb/rmb/wmb and smp_* barriers (mainly used by common code) here. There > are also quite a few open-coded full-system dsb's in the arch code which > I will look at separately (10 patches is quite enough for now). Since > those deal with e.g. pagetable updates they will be fun ;-) > > I have tested this series on Cortex A15 and AEMv8 fast models in both > cases with 2 CPUs and I can start a guest in both cases. I have not > tested on any real hardware at all. > > These changes should result in a performance improvement, although only > having models to go on I haven't actually bothered to measure. > > I would appreciate anyone with access to real hardware giving it a go. I > have pushed the patches to: > > git://xenbits.xen.org/people/ianc/xen.git inner-shareable-v1 > > > Ian Campbell (10): > xen: arm: map memory as inner shareable. > xen: arm: Only upgrade guest barriers to inner shareable. > xen: arm: reduce instruction cache and tlb flushes to inner-shareable. > xen: arm: consolidate barrier definitions > xen: use SMP barrier in common code dealing with shared memory protocols > xen: arm: Use SMP barriers when that is all which is required. > xen: arm: Use dmb for smp barriers > xen: arm: add scope to dsb and dmb macros > xen: arm: weaken SMP barriers to inner shareable. > xen: arm: use more specific barriers for read and write barriers. > > xen/arch/arm/arm32/head.S | 8 +++--- > xen/arch/arm/arm64/head.S | 8 +++--- > xen/arch/arm/domain.c | 2 +- > xen/arch/arm/gic.c | 8 +++--- > xen/arch/arm/mm.c | 28 ++++++++++------------ > xen/arch/arm/platforms/vexpress.c | 6 ++-- > xen/arch/arm/smpboot.c | 6 ++-- > xen/arch/arm/time.c | 2 +- > xen/arch/arm/traps.c | 2 +- > xen/common/domain.c | 2 +- > xen/common/domctl.c | 2 +- > xen/common/grant_table.c | 4 +- > xen/common/page_alloc.c | 2 +- > xen/common/smp.c | 4 +- > xen/common/spinlock.c | 6 ++-- > xen/common/tmem_xen.c | 10 ++++---- > xen/common/trace.c | 8 +++--- > xen/drivers/char/console.c | 2 +- > xen/drivers/video/arm_hdlcd.c | 2 +- > xen/include/asm-arm/arm32/flushtlb.h | 12 +++++----- > xen/include/asm-arm/arm32/io.h | 4 +- > xen/include/asm-arm/arm32/page.h | 12 +++++----- > xen/include/asm-arm/arm32/system.h | 16 ------------- > xen/include/asm-arm/arm64/flushtlb.h | 4 +- > xen/include/asm-arm/arm64/io.h | 4 +- > xen/include/asm-arm/arm64/page.h | 10 ++++---- > xen/include/asm-arm/arm64/system.h | 17 ------------- > xen/include/asm-arm/page.h | 42 > +++++++++++++++++++++++++++++----- > xen/include/asm-arm/system.h | 21 +++++++++++++++++ > xen/include/xen/event.h | 4 +- > xen/xsm/flask/ss/sidtab.c | 4 +- > 31 files changed, 139 insertions(+), 123 deletions(-) > > Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |