[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOuPNLgj8c0a1gDESQDatoa4GU_PYu8TK1NJ0KKkVfjW7zvsdA@mail.gmail.com>
Date: Thu, 8 Feb 2018 12:40:26 +0530
From: Pintu Kumar <pintu.ping@...il.com>
To: Russell King - ARM Linux <linux@...linux.org.uk>,
"Lynch, Nathan" <Nathan_Lynch@...tor.com>,
open list <linux-kernel@...r.kernel.org>,
david.brown@...aro.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [VDSO]: vdso_test failing on arm 32 bit
Dear Nathan & Russel,
I have few more question about vdso for arm-32-bit.
I am using iMX7 board to very VDSO gettimeofday timing.
To make kernel/Documentation/vDSO/vdsotest work on this board, I
commented the device tree reading property:
arm,cpu-registers-not-fw-configured , from the :
arch/arm/kernel/vdso.c
[However, I havent removed the property from device-tree itself, so it
is still being read by: drivers/clocksource/arm_arch_timer.c ⇒
arch_timer_of_init(…)]
But it seems the VDSO gettimeofday call is rather very slow.
This is the result of 10 iteration (with 10 seconds delay between
each), after fresh reboot:
bash-3.2# ./run_vdso.sh
The time is 1116.898864
===========================
The time is 1126.957507
===========================
The time is 1136.988507
===========================
The time is 1147.023134
===========================
The time is 1157.053017
===========================
The time is 1167.082912
===========================
The time is 1177.117722
===========================
The time is 1187.150945
===========================
The time is 1197.180820
===========================
The time is 1207.215339
===========================
The time is 1217.245189
===========================
Although architected timer support is not available in firmware, so it
may not give the accurate timing.
1) So, I wonder why vdso call is very slow and increasing by every second ?
This is the result of benchmark test.
bash-3.2# ./vdsotest_bench gettimeofday bench
gettimeofday: syscall: 681 nsec/call
gettimeofday: libc: 4190 nsec/call
gettimeofday: vdso: 4171 nsec/call
Also, when I call gettimeofday API from a sample program, I could not
find any system call trace.
bash-3.2# time ./test-vdso-syscall.out
real 0m3.997s
user 0m3.980s
sys 0m0.000s
2) So, how do I conclude whether VDSO gettimeofday is working correctly or not ?
3) Is it important to have that device-tree property in VDSO, if
arch-timer support is not available in firmware ?
Please let me know your opinion.
Thank You!
Pintu
On Thu, Dec 14, 2017 at 3:51 PM, Russell King - ARM Linux
<linux@...linux.org.uk> wrote:
> On Thu, Dec 14, 2017 at 10:50:50AM +0530, Pintu Kumar wrote:
>> Oh ok. Thanks for this information.
>> So, in conclusion, can I summarize like this: VDSO support on ARM 32-bit
>> 1) VDSO works only on Cortex A7/A15 -> where generic timer extension
>> is available.
>> 2) VDSO works only on kernel 4.1 and above => where 32-bit vdso
>> support is available
>> 3) glibc version should be 2.20 or higher
>> 4) This device-tree property should not be set:
>> arm,cpu-registers-not-fw-configured => This means there is a firmware
>> bug
>>
>> Sorry, but still I have 2 more queries:
>> 1) Which is the firmware that we are talking about here ? What is the
>> name of firmware ? Is it available in kernel ?
>
> It's not in-kernel firmware, but whatever runs on the kernel prior to
> booting the kernel.
>
>> 2) Is there any ARM 32-bit board available, where I can confirm that
>> VDSO works on ARM 32-bit?
>
> I'm know of none. That's not to say that there aren't any, I just don't
> know of any.
>
> --
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
> According to speedtest.net: 8.21Mbps down 510kbps up
Powered by blists - more mailing lists