Bug#864847: CP15 Barrier emulation performance?
Adrian Bunk
bunk at debian.org
Fri Jul 28 11:54:43 UTC 2017
On Fri, Jul 28, 2017 at 08:30:30AM +0000, Riku Voipio wrote:
> On Tue, Jul 11, 2017 at 09:45:49AM +0100, Ian Campbell wrote:
> > On Tue, 2017-07-11 at 08:56 +0100, Edmund Grimley Evans wrote:
> > > > Does this emulation take a considerable performance hit, as opposed
> > > > to
> > > > running on armhf hardware/kernel, where the instruction doesn't
> > > > appear
> > > > to be listed as deprecated?
> > >
> > > I'd expect the kernel-emulated instruction to be much slower than any
> > > non-emulated instruction, but the overall effect on performance will,
> > > of course, depend on how often the instruction is used.
> > >
> > > See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864847 (where I
> > > think I claimed that the instruction is deprecated on armhf hardware
> > > but I could easily be wrong)
>
> > Deprecated for both ARMv7 and ARMv8 according to the Kconfig help:
> > config CP15_BARRIER_EMULATION
> > bool "Emulate CP15 Barrier instructions"
> > help
> > The CP15 barrier instructions - CP15ISB, CP15DSB, and
> > CP15DMB - are deprecated in ARMv8 (and ARMv7). It is
> > strongly recommended to use the ISB, DSB, and DMB
> > instructions instead.
> >
> > Say Y here to enable software emulation of these
> > instructions for AArch32 userspace code. When this option is
> > enabled, CP15 barrier usage is traced which can help
> > identify software that needs updating.
> >
> > If unsure, say Y
> >
> > However I there is a sysctl which allows selecting between "undef",
> > "emulated" and "hw" (where the latter is dependent on the hw actually
> > supporting the instructions in question). See:
> > http://elixir.free-electrons.com/linux/latest/source/Documentation/arm64/legacy_instructions.txt
>
> The ghc sources don't appeart to have direct CP15 instructions, so I suspect
> ghc might be calling llvm with options that make it emit CP15 barriers instead
> of DMB. Anyways look like a configuration error rather than a coding error.
https://sources.debian.net/src/ghc/8.0.2-5/compiler/llvmGen/LlvmCodeGen/Ppr.hs/#L55
ghc contains a hack to change that to arm-unknown-linux-gnueabi for armel.
Changing it to armv7-unknown-linux-gnueabihf will likely fix this issue
for armhf.
> Riku
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
More information about the Pkg-haskell-maintainers
mailing list