From: hs@denx.de (Heiko Schocher)
To: linux-arm-kernel@lists.infradead.org
Subject: shared memory problem on ARM v5TE using threads
Date: Thu, 17 Dec 2009 12:31:31 +0100 [thread overview]
Message-ID: <4B2A1693.6020000@denx.de> (raw)
In-Reply-To: <309002C0DA137042828828FC53D7A9347E2630EEC2@IL-MB01.marvell.com>
Hello Christian,
>On Tue, Dec 15, 2009 at 04:31:35PM +0100, christian pellegrin wrote:
>> The patch here does what was described by Russell and seems to solve
>> the read/write and the MAP_PRIVATE in test cases like the one I
>> posted. As noted it may not be enough.
>
> This might be enough (but needs thorough testing). However, adding
> the requirement for L2 cache flushing in flush_dcache_page() because
> you have an L2 cache is unfair on those L2's which don't suffer from
> this problem.
>
> I think we need to have a little more information about the behaviour
> of the L2 cache so that we can decide how much flushing is required,
> and where.
FYI:
I tried your patch:
http://lists.infradead.org/pipermail/linux-arm-kernel/2009-December/006192.html
with the testprogramm, I posted here:
http://lists.infradead.org/pipermail/linux-arm-kernel/2009-December/005489.html
and on my board [1] it works fine [2] with your patch.
Another question comes in my mind:
As we have problems with shared memory, if using more than one
mapping, do we have this problems also when using other "standard"
Linux IPC, like for example semaphores, queues, ... ?
bye,
Heiko
[1]
-bash-3.2# cat /proc/cpuinfo
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 799.53
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Keymile SUEN3 Board
Revision : 0000
Serial : 0000000000000000
-bash-3.2#
[2] log from testprogramm with patch from christian:
-bash-3.2# cat shtest2.sh
#!/bin/sh
echo "Run shmtest2"
./shmtest2 write 1 &
./shmtest2 read 4 &
-bash-3.2# ./shtest2.sh
Run shmtest2
Write to in_msg
Creating thread 0
Shared memory Id:0
attach shared mem:40961000
Start Write Thread 0, addr:40961000
359: write new mesg: 0
Read from in_msg
Creating thread 0
Shared memory Id:0
attach shared mem:40961000
Start Read Thread addr:40961000
Creating thread 1
Shared memory Id:0
attach shared mem:41170000
Start Read Thread addr:41170000
Creating thread 2
Shared memory Id:0
attach shared mem:4197f000
Start Read Thread addr:4197f000
Creating thread 3
Shared memory Id:0
attach shared mem:4218e000
Start Read Thread addr:4218e000
-bash-3.2# 359: write new mesg: 0
361 Read from entry in_msg=1000, out_msg=1000, addr=40961000
361 Read from entry in_msg=2000, out_msg=1000, addr=41170000
361 Read from entry in_msg=3000, out_msg=1000, addr=4197f000
361 Read from entry in_msg=4000, out_msg=1000, addr=4218e000
359: write new mesg: 1000
361 Read from entry in_msg=5000, out_msg=2000, addr=40961000
361 Read from entry in_msg=6000, out_msg=2000, addr=41170000
361 Read from entry in_msg=7000, out_msg=2000, addr=4197f000
361 Read from entry in_msg=8000, out_msg=2000, addr=4218e000
359: write new mesg: 2000
361 Read from entry in_msg=9000, out_msg=3000, addr=40961000
361 Read from entry in_msg=10000, out_msg=3000, addr=41170000
361 Read from entry in_msg=11000, out_msg=3000, addr=4197f000
361 Read from entry in_msg=12000, out_msg=3000, addr=4218e000
359: write new mesg: 3000
[...]
349: write new mesg: 57000
350 Read from entry in_msg=230000, out_msg=58000, addr=4197f000
350 Read from entry in_msg=231000, out_msg=58000, addr=41170000
350 Read from entry in_msg=232000, out_msg=58000, addr=4218e000
350 Read from entry in_msg=233000, out_msg=58000, addr=40961000
349: write new mesg: 58000
350 Read from entry in_msg=234000, out_msg=59000, addr=4197f000
350 Read from entry in_msg=235000, out_msg=59000, addr=41170000
350 Read from entry in_msg=236000, out_msg=59000, addr=4218e000
350 Read from entry in_msg=237000, out_msg=59000, addr=40961000
350 Read from entry in_msg=237000, out_msg=59000, addr=4197f000
350 Read from entry in_msg=237000, out_msg=59000, addr=4218e000
350 Read from entry in_msg=237000, out_msg=59000, addr=41170000
All write threads finished, exit
All read threads finished, exit
-bash-3.2#
out_msg increments as suggested!
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
next prev parent reply other threads:[~2009-12-17 11:31 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-04 11:23 shared memory problem on ARM v5TE using threads Heiko Schocher
2009-12-04 12:26 ` Joerg Wagner
2009-12-04 13:13 ` Russell King - ARM Linux
2009-12-04 13:42 ` Heiko Schocher
2009-12-04 15:42 ` Russell King - ARM Linux
2009-12-04 15:58 ` Heiko Schocher
2009-12-04 16:38 ` Russell King - ARM Linux
2009-12-04 16:59 ` Russell King - ARM Linux
2009-12-04 17:53 ` Heiko Schocher
2009-12-04 19:13 ` Russell King - ARM Linux
2009-12-04 19:35 ` Heiko Schocher
2009-12-06 13:53 ` Ronen Shitrit
2009-12-06 14:16 ` Russell King - ARM Linux
2009-12-07 7:54 ` Ronen Shitrit
2009-12-07 8:33 ` Heiko Schocher
2009-12-07 11:31 ` saeed bishara
2009-12-07 11:42 ` Russell King - ARM Linux
2009-12-07 12:16 ` Ronen Shitrit
2009-12-07 12:27 ` Heiko Schocher
2009-12-07 12:42 ` Ronen Shitrit
2009-12-07 15:24 ` Nicolas Pitre
2009-12-07 12:24 ` Heiko Schocher
2009-12-07 12:55 ` Ronen Shitrit
2009-12-07 14:52 ` Russell King - ARM Linux
2009-12-07 15:37 ` Nicolas Pitre
2009-12-07 17:05 ` Russell King - ARM Linux
2009-12-07 17:33 ` Nicolas Pitre
2009-12-07 17:56 ` Russell King - ARM Linux
2009-12-13 11:48 ` Ronen Shitrit
2009-12-13 12:00 ` Russell King - ARM Linux
2009-12-13 12:06 ` Russell King - ARM Linux
2009-12-13 15:42 ` Ronen Shitrit
2009-12-14 13:13 ` christian pellegrin
2009-12-14 14:46 ` Ronen Shitrit
2009-12-14 17:48 ` christian pellegrin
2009-12-14 20:14 ` Nicolas Pitre
2009-12-15 7:50 ` saeed bishara
2009-12-15 11:01 ` christian pellegrin
2009-12-15 15:31 ` christian pellegrin
2009-12-15 17:18 ` Russell King - ARM Linux
2009-12-16 14:08 ` Ronen Shitrit
2009-12-15 17:14 ` Russell King - ARM Linux
2009-12-16 16:35 ` christian pellegrin
2009-12-16 17:38 ` christian pellegrin
2009-12-17 7:35 ` Ronen Shitrit
2009-12-18 20:22 ` Nicolas Pitre
2009-12-18 20:44 ` Russell King - ARM Linux
2009-12-18 21:23 ` Nicolas Pitre
2009-12-18 21:57 ` Russell King - ARM Linux
2009-12-19 11:24 ` christian pellegrin
2009-12-19 11:27 ` [PATCH] Fix coherency problems on ARM v5 with L2 PIPT cache Christian Pellegrin
2009-12-14 19:59 ` shared memory problem on ARM v5TE using threads Nicolas Pitre
2009-12-15 10:33 ` christian pellegrin
2009-12-18 18:45 ` Pavel Machek
2009-12-18 19:00 ` Nicolas Pitre
2009-12-20 19:51 ` Pavel Machek
2009-12-20 22:32 ` Nicolas Pitre
2009-12-21 7:40 ` Pavel Machek
2009-12-18 19:16 ` Russell King - ARM Linux
2009-12-20 19:56 ` Pavel Machek
2009-12-17 11:31 ` Heiko Schocher [this message]
2009-12-18 8:08 ` christian pellegrin
2009-12-07 15:40 ` Russell King - ARM Linux
2009-12-07 15:57 ` Nicolas Pitre
2009-12-07 16:06 ` Ronen Shitrit
2009-12-07 17:17 ` Russell King - ARM Linux
2009-12-04 17:25 ` Nicolas Pitre
2009-12-04 17:31 ` Russell King - ARM Linux
2009-12-04 17:47 ` Heiko Schocher
2009-12-04 17:56 ` Nicolas Pitre
2009-12-04 19:33 ` Heiko Schocher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B2A1693.6020000@denx.de \
--to=hs@denx.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.