[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2 00/17] xen: arm: resync low level asm primitive from Linux

(Jan/Keir -- only the first patch is of interest to you, Jan has
reviewed it but an Ack from you Keir would be useful)

The following resyncs the bitops, atomics, cmpxchg and various optimised
library functions (str*, mem*, clear_page) from Linux. It also adds
various additional optimised variants, especially for arm64 which was
lacking them in Linux when we started.

One area which I have skipped is spinlocks, the generic infrastructure
is pretty different between Xen and Linux so this would need more
thought (it would have included a switch to ticket locks on arm64 for

I've combined multiple Linux changes into a single Xen change where I
thought it made sense, i.e. for smaller changes even if they are
independent, but for large and complicated changes I've kept things

As part of this I've also reinstated Linux coding style (in particular
the use of hard tabs) to make life easier when comparing things. This
was always the intention but it seems one or two files got accidentally
reindented at some point.

This booted a guest on both Midway and Xgene. I haven't done any actual
perf measurement, having assumed that whoever wrote this for Linux found
them to be worthwhile enough...

Since v2 I've rebased, applied a load of acks and fixed a couple of
minor issues. The status of the patches are:

 R      xen: x86 & generic: change to __builtin_prefetch()
  a     xen: arm32: resync bitops with Linux v3.14-rc7
  a     xen: arm32: ensure cmpxchg has full barrier semantics
  a     xen: arm32: replace hard tabs in atomics.h
        xen: arm32: resync atomics with (almost) v3.14-rc7
  a     xen: arm32: resync mem* with Linux v3.14-rc7
  a     xen: arm32: add optimised memchr routine
  a     xen: arm32: add optimised strchr and strrchr routines
  am    xen: arm: remove atomic_clear_mask()
  a     xen: arm64: disable alignment traps
  a     xen: arm64: atomics: fix use of acquire + release for full barrier 
  a     xen: arm64: reinstate hard tabs in system.h cmpxchg
  a     xen: arm64: asm: remove redundant "cc" clobbers
  a     xen: arm64: assembly optimised mem* and str*
        xen: arm64: optimised clear_page
        xen: arm: refactor xchg and cmpxchg into their own headers
   m    xen: arm: document what low level primitives we have imported from Linux

R - reviewed (by Jan)
a - acked (by Julien)
m - (minor) modifications in v2

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.