summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-12-21 14:31:55 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-02-02 15:01:20 +0100
commit89c0313938aea0618a624b7230ed29cebe723d75 (patch)
tree05272eb7673abc783d329269d575eb208c0716d9 /testsuites
parentsmptests/smpopenmp01: New test (diff)
downloadrtems-89c0313938aea0618a624b7230ed29cebe723d75.tar.bz2
score: Optimize watchdog tickle
Avoid unnecessary lock acquire/release operations. Get realtime via timecounter only if necessary. Update #3264.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/sptests/spwatchdog/init.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/testsuites/sptests/spwatchdog/init.c b/testsuites/sptests/spwatchdog/init.c
index 0c7d41fd33..5b6266d033 100644
--- a/testsuites/sptests/spwatchdog/init.c
+++ b/testsuites/sptests/spwatchdog/init.c
@@ -82,10 +82,18 @@ static uint64_t test_watchdog_tick( Watchdog_Header *header, uint64_t now )
{
ISR_LOCK_DEFINE( , lock, "Test" )
ISR_lock_Context lock_context;
+ Watchdog_Control *first;
_ISR_lock_ISR_disable_and_acquire( &lock, &lock_context );
+
++now;
- _Watchdog_Tickle( header, now, &lock, &lock_context );
+ first = _Watchdog_Header_first( header );
+
+ if ( first != NULL ) {
+ _Watchdog_Tickle( header, first, now, &lock, &lock_context );
+ }
+
+ _ISR_lock_Release_and_ISR_enable( &lock, &lock_context );
_ISR_lock_Destroy( &lock );
return now;