Hi Everyone knowing awfully lot about memory management and multicore op,
My name is Robert Fekete and I work in the ST-Ericsson Landing Team.
I have a question regarding multicore SMP aware memory operations libc, and
I hope you can have an answer or at least direct me to someone who might
know better. I have already mailed Michael Hope who recommended me to mail
this list(of course).
The issue I am experiencing is that when I am running a memset operation(on
different non overlapping memory areas) on both cores simultaneously they
will affect each other and prolong the work of each processes/cpu's by a
factor of ~3-4(measured in Lauterabach).
i.e. assume a memset op that takes around 1ms (some really big buffer in a
for loop many times)
Non-simultaneous memsets: (total time 2ms, each process execution time 1ms,
x == running)
core1 :xxxxoooo
core2 :ooooxxxx
Simultaneous memsets: (total time 3ms , each process 3ms)
core1 :xxxxxxxxxxxx
core2 :xxxxxxxxxxxx
Well there are some factors that can explain parts of it.
There is a bandwidth limitation which will peak on one memset meaning that
two memsets cannot possibly go faster and a proper value should be around
2ms(not 3-4ms), The L2$ is 512k which may lead to severe L2$ mess up since
the sceduler is extremely fair and fine granular between the cores. L1$ will
also get hurt.
But the real issue is that the two totally different memops(big ones though)
in parallell will mess up for each other. Not good if one of the processes
on core 1(for example) is a high prio compositor and the second process on
core 2 is a lowprio crap application. The the Low prio crap App will
severely mess up for the compositor. OS prio does not propagate to bus
access prio.
Is there a way to make this behaviour a bit more deterministic...for the
high prio op at least, like a scalable memory operation libc variant.
I read an article about a similar issue on Intel CPUs and the solution in
this case is a scalable memory allocator lib.
http://software.intel.com/en-us/blogs/2009/08/21/is-your-memory-management-…
More academic reading of the phenomenon:
http://books.google.com/books?id=NF-C2ZQZXekC&pg=PA353&lpg=PA353&dq=multi+c…
BR
/Robert Fekete
The following changes since commit fe75943b7808aac7ef001a1bd4d8159a95e758ac:
ARM: 6438/2: mmci: add SDIO support for ST Variants (2010-12-02 13:22:08 -0500)
are available in the git repository at:
git://git.linaro.org/people/dmart/linux-2.6-arm.git for-linaro-2.6.36/accepted-by-rmk
Dave Martin (16):
Revert "ARM: Avoid undefined Thumb-2 instructions using PC in compressed/head.S"
ARM: kexec: Add missing memory clobber to inline asm in crash_setup_regs()
ARM: kexec: Fix crash_setup_regs() for ARMv7 and CONFIG_THUMB2_KERNEL
ARM: kuser: Fix incorrect cmpxchg syscall in kuser helpers
ARM: RealView: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
ARM: vexpress: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
ARM: Allow SMP_ON_UP to work with Thumb-2 kernels.
ARM: kexec: Correct data alignment for CONFIG_THUMB2_KERNEL
ARM: vfp: Correct data alignment for CONFIG_THUMB2_KERNEL
ARM: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in bootp/init.S
ARM: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in kernel/head.S
ARM: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S
ARM: Thumb-2: Fix CONFIG_THUMB2_KERNEL breakage in compressed/head.S
ARM: Thumb-2: Restore sensible zImage header layout for CONFIG_THUMB2_KERNEL
ARM: Thumb-2: Fix long-distance conditional branches in head.S for Thumb-2.
ARM: kprobes: Don't HAVE_KPROBES when CONFIG_THUMB2_KERNEL is selected
arch/arm/Kconfig | 4 ++--
arch/arm/boot/Makefile | 5 -----
arch/arm/boot/bootp/init.S | 2 ++
arch/arm/boot/compressed/head.S | 17 ++++++++++-------
arch/arm/include/asm/assembler.h | 22 +++++++++++++++++++---
arch/arm/include/asm/kexec.h | 18 ++++++++++++++----
arch/arm/kernel/entry-armv.S | 6 +++---
arch/arm/kernel/head.S | 20 +++++++++++++++++---
arch/arm/kernel/relocate_kernel.S | 2 ++
arch/arm/mach-realview/headsmp.S | 1 +
arch/arm/mach-vexpress/headsmp.S | 1 +
arch/arm/mm/proc-v7.S | 4 ++--
arch/arm/vfp/vfphw.S | 1 +
13 files changed, 74 insertions(+), 29 deletions(-)
Hi,
I can't find any details about the landing teams on the wiki, except
this https://wiki.linaro.org/LandingTeams
It would be useful to have a Wiki page per landing team, showing the
team members and the corresponding Launchpad pages (if any).
For example, I wanted to reply to a forum question
(http://www.linaro.org/linux-bsps/show/15), but didn't find any link to
the OMAP landing team.
Thank you in advance,
Cheers,
Michael.
--
Michael Opdenacker - Community Manager
Linaro, http://linaro.org
Cell: +33 621 604 642
IRC: 'opm' in #linaro on irc.freenode.net
Hi there. Does anyone have a Cortex-A9 board with Maverick and a hard
disk that I could access? I've heard that we've regressed on the A9
in some benchmarks from 4.4 to 4.5 and would like to verify.
-- Michael
The following changes since commit fe75943b7808aac7ef001a1bd4d8159a95e758ac:
ARM: 6438/2: mmci: add SDIO support for ST Variants (2010-12-02 13:22:08 -0500)
are available in the git repository at:
git://git.linaro.org/people/dmart/linux-2.6-arm.git for-linaro-2.6.36/dirty/gas-workarounds
NOTE: These patches are workarounds for toolchain bugs
and should not be merged in a branch intended to go upstream.
Dave Martin (2):
Add local symbols in relocate_kernel.S to work around gas bugs
ARM: omap: Work around gas pc-relative adr/ldr global label bug for Thumb-2
arch/arm/kernel/relocate_kernel.S | 14 ++++++++++----
arch/arm/mach-omap2/sleep34xx.S | 3 ++-
2 files changed, 12 insertions(+), 5 deletions(-)
The following changes since commit fe75943b7808aac7ef001a1bd4d8159a95e758ac:
ARM: 6438/2: mmci: add SDIO support for ST Variants (2010-12-02 13:22:08 -0500)
are available in the git repository at:
git://git.linaro.org/people/dmart/linux-2.6-arm.git for-linaro-2.6.36/arm/ux500-thumb2
NOTE: These patches have not yet received any feedback and are
untested. Consider carefully before merging them to an important
branch.
Dave Martin (1):
ARM: ux500: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
arch/arm/mach-ux500/headsmp.S | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
The following changes since commit fe75943b7808aac7ef001a1bd4d8159a95e758ac:
ARM: 6438/2: mmci: add SDIO support for ST Variants (2010-12-02 13:22:08 -0500)
are available in the git repository at:
git://git.linaro.org/people/dmart/linux-2.6-arm.git for-linaro-2.6.36/arm/omap-thumb2
NOTE: These patches have not received significant upstream feedback
and have undergone limited testing. Consider carefully before
merging these changes to an important branch.
Dave Martin (3):
ARM: omap: Enable low-level omap3 PM code to work with CONFIG_THUMB2_KERNEL
ARM: omap4: Correct definition of do_wfi() for CONFIG_THUMB2_KERNEL
ARM: omap4: Convert END() to ENDPROC() for correct linkage with CONFIG_THUMB2_KERNEL
arch/arm/mach-omap2/include/mach/omap4-common.h | 5 +++
arch/arm/mach-omap2/omap-headsmp.S | 2 +-
arch/arm/mach-omap2/omap44xx-smc.S | 8 ++--
arch/arm/mach-omap2/pm.h | 2 +
arch/arm/mach-omap2/pm34xx.c | 13 ++++++--
arch/arm/mach-omap2/sleep34xx.S | 37 +++++++++++++++++++++--
arch/arm/mach-omap2/sram34xx.S | 34 +++++++++++++++-----
arch/arm/plat-omap/include/plat/sram.h | 1 +
arch/arm/plat-omap/sram.c | 10 +++++-
9 files changed, 90 insertions(+), 22 deletions(-)
The following changes since commit fe75943b7808aac7ef001a1bd4d8159a95e758ac:
ARM: 6438/2: mmci: add SDIO support for ST Variants (2010-12-02 13:22:08 -0500)
are available in the git repository at:
git://git.linaro.org/people/dmart/linux-2.6-arm.git for-linaro-2.6.36/arm/mxc-thumb2
NOTE: These patches have not yet received any feedback and are
untested. Consider carefully before merging them to an important
branch.
Dave Martin (1):
ARM: mxc: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
arch/arm/plat-mxc/ssi-fiq.S | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
The following changes since commit 61cb9ff7af265a28043724678b4d3b0482c2e525:
LINARO: Linaro-2.6.35.1008.13 (2010-10-22 07:02:42 -0600)
are available in the git repository at:
git://git.linaro.org/ubuntu/linux-meta-linaro.git master
John Rigby (1):
LINARO: Linaro-2.6.35.1010.14
meta-source/debian/changelog | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)