ARM cortex A9 performance issue
rd bairva
rbairva at gmail.com
Fri Jul 8 07:38:38 EDT 2011
Now i have modified a source a little bit. Now I am doing a pingpong
using msgsnd and msgrcv. using this I am getting 40000req/sec and 55%
CPU usage.
In another version I have taken the same lock in both the processes to
ensure same thread is unlocking the mutex. But CPU usage is 100%.
Shouldn't be the behaviour 50%.
algo
msgsnd/msgrcv version.
Process1
shared memory counter++
msgsnd1
msgrcv 2
Process2
msgrcv 1
shared memory counter--
msgsnd2
Mutex version:
Process 1
mutex1
c++
unlock_mutex1
Process 2
mutex1
c++
unlock_mutex1
Regards,
Ramdayal
On Thu, Jul 7, 2011 at 8:57 PM, Dave Martin <dave.martin at linaro.org> wrote:
> On Thu, Jul 07, 2011 at 02:48:05PM +0530, rd bairva wrote:
>> Hi,
>>
>> We are trying to benchmark ARM cortex A9 dual core behavior with
>> respect to single core
>> performance and also measuring it with respect to x86 dual core/single core.
>> Please find attached with the mail is c app which we are using for benchmarking.
>>
>> Simple overview of C application:
>> - It creates a shared memory area using shm_open().
>> in this shm area, it declares 2 Process shared pthread mutex, lets say L1, L2.
>> - then it forks to create a server_task and client task.
>> - server_task takes L1 lock, touches a shm area, unlock L2, in a loop.
>> - client_task takes L2 lock, touches a shm area, unlock L1, in a loop.
>> - This loop runs for N number of times that we measure.
>
> The behaviour of pthread_mutex_unlock is unspecified if an attempt is made
> to ulock a mutex from a thread which doesn't currently own that mutex.
> You probably need to re-code your test to avoid this incorrect use of
> the ABI before an interpretation can be placed on the results.
>
> See pthread_mutexattr_init(3) for details.
>
>
>
> Some people have been reported issues related to process shared mutexes
> on ARM recently:
>
> https://bugs.launchpad.net/ubuntu/+source/apr/+bug/604753
>
> I'm not sure of the current status of that though, and I don't know
> whether it would affect your test or not.
>
> Cheers
> ---Dave
>
>>
>> Here are the results for N/sec for different CPUs.
>>
>> Platform Up cores req/sec cpuload
>> Cortexa9 2 ~44000
>> 100%
>> Cortexa9 1 ~18000
>> 100%
>> X86 2 ~64000
>> 35%
>> X86 1 ~458886
>> 100% (1 cpu down by sysfs)
>>
>> we are not able to understand the results.
>> - why for coretx A9 both dual/single core we are getting 100% cpu usage.
>> - why in case of x86, N/sec is very high for single core than dual core.
>> - why single core N/s is 1/3 in case of CortexA9.
>>
>> Thanks,
>> Ramdayal
>
>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
More information about the linux-arm-kernel
mailing list