Re: Major SMP Improvements

2015-05-15 Thread Chris Johns
On 16/05/2015 4:44 pm, Daniel Hellstrom wrote: > > I thought this was publicaly known and that Sebastian's ticket was the > way to fix it. There was a discussion about it when it was discovered > around Aug 2014, and I agreed then that Sebastian's path to fixing it > sounded very good but I dont k

Re: Major SMP Improvements

2015-05-15 Thread Daniel Hellstrom
Hi Chris, I thought this was publicaly known and that Sebastian's ticket was the way to fix it. There was a discussion about it when it was discovered around Aug 2014, and I agreed then that Sebastian's path to fixing it sounded very good but I dont know all aspects of it. As I recall its not a

Re: Major SMP Improvements

2015-05-15 Thread Chris Johns
On 15/05/2015 9:41 pm, Sebastian Huber wrote: > https://devel.rtems.org/ticket/2130 > https://devel.rtems.org/ticket/2131 > https://devel.rtems.org/ticket/2271 > https://devel.rtems.org/ticket/2273 > https://devel.rtems.org/ticket/2307 > > It provides a major performance boost for SMP configuratio

Re: Major SMP Improvements

2015-05-15 Thread Chris Johns
On 15/05/2015 11:01 pm, Daniel Hellstrom wrote: > I just want to confirm this issue with the master branch. In order to > use it on LEON in SMP configuration we had to make a hack in cpukit code > to call the LEON timer code to make it work. It would of course be nice > to have a fix for this in 4.

Re: I think there is a mistake in some bsp_specs files

2015-05-15 Thread Chris Johns
On 16/05/2015 12:45 am, Gedare Bloom wrote: > Someone please open a ticket on Trac for this. https://devel.rtems.org/ticket/2345 Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH] [RSB] rtems-all.bset: add rtems-epiphany

2015-05-15 Thread Gedare Bloom
What about h8300? On Fri, May 15, 2015 at 7:51 AM, Hesham ALMatary wrote: > --- > rtems/config/4.11/rtems-all.bset | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/rtems/config/4.11/rtems-all.bset > b/rtems/config/4.11/rtems-all.bset > index 8a0fe82..6897e11 100644 > --- a/rtems/config/

Re: [PATCH 05/45] score: Add header to _Watchdog_Remove()

2015-05-15 Thread Gedare Bloom
>> --- a/cpukit/score/src/watchdogremove.c >> +++ b/cpukit/score/src/watchdogremove.c >> @@ -23,6 +23,7 @@ >> #include >> >> Watchdog_States _Watchdog_Remove( >> + Watchdog_Header *header, >>Watchdog_Control *the_watchdog >> ) >> { > Is the parameter unused in this function? > nevermind

Re: [PATCH 05/45] score: Add header to _Watchdog_Remove()

2015-05-15 Thread Gedare Bloom
On Fri, May 15, 2015 at 7:41 AM, Sebastian Huber wrote: > Add watchdog header parameter to _Watchdog_Remove() to be in line with > the other operations. Add _Watchdog_Remove_ticks() and > _Watchdog_Remove_seconds() for convenience. > > Update #2307. > --- > cpukit/posix/src/alarm.c

Re: I think there is a mistake in some bsp_specs files

2015-05-15 Thread Gedare Bloom
Someone please open a ticket on Trac for this. On Wed, May 13, 2015 at 9:08 PM, Chris Johns wrote: > On 14/05/2015 9:59 am, Joel Sherrill wrote: >> >> >> On May 13, 2015 6:57:29 PM CDT, Chris Johns wrote: >>> On 14/05/2015 3:10 am, Joel Sherrill wrote: On 5/13/2015 4:07 AM, Tom wr

Re: USB Host and MMC/SD Card Stack

2015-05-15 Thread Sebastian Huber
Hello, the USB host and MMC/SD card stack for RTEMS is now available via the libbsd: http://git.rtems.org/rtems-libbsd.git/ I will remove my libusb repository to avoid confusion. On 27/08/14 14:19, Sebastian Huber wrote: Hello, I added a USB host and MMC/SD card stack for RTEMS (libusb) to

Re: Major SMP Improvements

2015-05-15 Thread Cudmore, Alan P. (GSFC-5820)
This does sound like a nice improvement. I would also like to put in my vote for stable SMP on the LEON for 4.11. Thanks, Alan On 5/15/15, 9:01 AM, "Daniel Hellstrom" wrote: >Hello Sebastian, > >Thanks for your work! I havn't looked at your work but I have some >comments. > >On 05/15/2015 01:4

Re: Major SMP Improvements

2015-05-15 Thread Daniel Hellstrom
Hello Sebastian, Thanks for your work! I havn't looked at your work but I have some comments. On 05/15/2015 01:41 PM, Sebastian Huber wrote: https://devel.rtems.org/ticket/2130 https://devel.rtems.org/ticket/2131 https://devel.rtems.org/ticket/2271 https://devel.rtems.org/ticket/2273 https://de

[PATCH] [RSB] rtems-all.bset: add rtems-epiphany

2015-05-15 Thread Hesham ALMatary
--- rtems/config/4.11/rtems-all.bset | 1 + 1 file changed, 1 insertion(+) diff --git a/rtems/config/4.11/rtems-all.bset b/rtems/config/4.11/rtems-all.bset index 8a0fe82..6897e11 100644 --- a/rtems/config/4.11/rtems-all.bset +++ b/rtems/config/4.11/rtems-all.bset @@ -5,6 +5,7 @@ 4.11/rtems-arm

Re: RSB: Targets missing in rtems/config/4.11/rtems-all.bset

2015-05-15 Thread Hesham ALMatary
Hi, On Fri, May 15, 2015 at 12:28 PM, Sebastian Huber wrote: > Hello, > > the following targets are missing in rtems/config/4.11/rtems-all.bset: > > epiphany This is not intentional, I will submit a patch. > h8300 > > Is this intentional? > > I was not able to build the moxie tool set. > There h

[PATCH 41/45] timecounter: Use uint32_t instead of u_int

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig FreeBSD assumes that u_int is a 32-bit integer type. This is wrong for some 16-bit targets supported by RTEMS. Update #2271. --- cpukit/score/include/sys/timetc.h | 4 ++-- cpukit/score/src/kern_tc.c| 34 +- 2 files changed, 19 i

[PATCH 29/45] score: Fine grained locking for mutexes

2015-05-15 Thread Sebastian Huber
Update #2273. --- cpukit/libnetworking/rtems/rtems_glue.c | 19 ++ cpukit/posix/src/mutexlocksupp.c | 7 -- cpukit/posix/src/mutexsetprioceiling.c | 11 ++- cpukit/posix/src/mutexunlock.c | 11 ++- cpukit/rtems/src/semobtain.c

[PATCH 43/45] timecounter: Port to RTEMS

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig New test sptests/timecounter01. Update #2271. --- cpukit/sapi/Makefile.am| 3 + cpukit/sapi/include/rtems/bsd.h| 141 ++ cpukit/sapi/include/rtems/timecounter.h| 304 + cpukit/sapi/

[PATCH 45/45] bsps: Convert clock drivers to use a timecounter

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig Update #2271. --- c/src/lib/libbsp/arm/beagle/clock.c| 35 ++ c/src/lib/libbsp/arm/edb7312/clock/clockdrv.c | 2 + c/src/lib/libbsp/arm/gba/clock/clockdrv.c | 2 + c/src/lib/libbsp/arm/nds/clock/clock.c | 2 + c/src/lib

[PATCH 21/45] score: New thread queue implementation

2015-05-15 Thread Sebastian Huber
Use thread wait flags for synchronization. The enqueue operation is now part of the initial critical section. This is the key change and enables fine grained locking on SMP for objects using a thread queue like semaphores and message queues. Update #2273. --- cpukit/score/Makefile.am

[PATCH 32/45] score: Fine grained locking for MrsP

2015-05-15 Thread Sebastian Huber
Update #2273. --- cpukit/rtems/src/semobtain.c| 7 +- cpukit/rtems/src/semrelease.c | 10 +-- cpukit/score/include/rtems/score/mrsp.h | 27 -- cpukit/score/include/rtems/score/mrspimpl.h | 135 cpukit/score/src/schedulerchanger

[PATCH 44/45] timecounter: Use in RTEMS

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig Replace timestamp implementation with FreeBSD bintime and timecounters. New test sptests/sptimecounter02. Update #2271. --- cpukit/libnetworking/rtems/rtems_bsdnet_internal.h | 3 +- cpukit/libnetworking/rtems/rtems_glue.c| 4 - cpukit/posix/src/clockget

[PATCH 40/45] timecounter: Import from FreeBSD

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig Update #2271. --- cpukit/score/include/sys/_ffcounter.h | 42 + cpukit/score/include/sys/timeffc.h| 389 +++ cpukit/score/include/sys/timepps.h| 249 cpukit/score/include/sys/timetc.h | 89 ++ cpukit/score/include/sys/timex.h | 171 +++ cp

[PATCH 09/45] score: New timer server implementation

2015-05-15 Thread Sebastian Huber
Use mostly the standard watchdog operations. Use a system event for synchronization. This implementation is simpler and offers better SMP performance. Close #2131. --- cpukit/rtems/include/rtems/rtems/event.h | 5 + cpukit/rtems/include/rtems/rtems/timerimpl.h | 51 +- cpukit

[PATCH 36/45] score: Replace _Thread_Delay_ended()

2015-05-15 Thread Sebastian Huber
Use _Thread_Timeout() instead. Use pseudo thread queue for nanosleep() to deal with signals. Close #2130. --- cpukit/posix/src/nanosleep.c| 35 +++--- cpukit/posix/src/psignalunblockthread.c | 11 +- cpukit/rtems/src/taskwakeafter.c| 10 +--

[PATCH 38/45] rtems: Avoid Giant lock for events

2015-05-15 Thread Sebastian Huber
--- cpukit/rtems/src/eventseize.c | 2 -- cpukit/rtems/src/eventsurrender.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/cpukit/rtems/src/eventseize.c b/cpukit/rtems/src/eventseize.c index 6611a8d..61727bc 100644 --- a/cpukit/rtems/src/eventseize.c +++ b/cpukit/rtems/src/eventseize.c

[PATCH 24/45] score: Fine grained locking for message queues

2015-05-15 Thread Sebastian Huber
Aggregate several critical sections into a bigger one. Sending and receiving messages is now protected by an ISR lock. Thread dispatching is only disabled in case a blocking operation is necessary. The message copy procedure is done inside the critical section (interrupts disabled). Thus this c

[PATCH 16/45] score: Reduce thread wait states

2015-05-15 Thread Sebastian Huber
Merge THREAD_WAIT_STATE_SATISFIED, THREAD_WAIT_STATE_TIMEOUT, THREAD_WAIT_STATE_INTERRUPT_SATISFIED, and THREAD_WAIT_STATE_INTERRUPT_TIMEOUT into one state THREAD_WAIT_STATE_READY_AGAIN. This helps to write generic routines to block a thread. Update #2273. --- cpukit/rtems/src/eventsurrender.c

[PATCH 12/45] Filesystem: Use lock for deferred release

2015-05-15 Thread Sebastian Huber
--- cpukit/libcsupport/src/sup_fs_location.c | 21 + 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cpukit/libcsupport/src/sup_fs_location.c b/cpukit/libcsupport/src/sup_fs_location.c index 545dfe1..ddda4d1 100644 --- a/cpukit/libcsupport/src/sup_fs_location.c

[PATCH 13/45] libcsupport: Avoid Giant lock in rtems_verror()

2015-05-15 Thread Sebastian Huber
--- cpukit/libcsupport/src/error.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpukit/libcsupport/src/error.c b/cpukit/libcsupport/src/error.c index 81ddae2..44cc1ee 100644 --- a/cpukit/libcsupport/src/error.c +++ b/cpukit/libcsupport/src/error.c @@ -36,7 +36,7 @@ int rtems

[PATCH 23/45] score: Delete _CORE_message_queue_Flush_support()

2015-05-15 Thread Sebastian Huber
Check the number of pending messages in _CORE_message_queue_Flush() to avoid race conditions. --- cpukit/score/Makefile.am | 2 +- cpukit/score/include/rtems/score/coremsgimpl.h | 17 -- cpukit/score/src/coremsgclose.c| 3 +- cpukit/score/src/coremsgflus

[PATCH 20/45] score: More thread queue operations

2015-05-15 Thread Sebastian Huber
Move thread queue discipline specific operations into Thread_queue_Operations. Use a separate node in the thread control block for the thread queue to make it independent of the scheduler data structures. Update #2273. --- cpukit/posix/src/killinfo.c | 2 +- cpukit/score/incl

[PATCH 31/45] score: Remove Giant lock in rtems_clock_tick()

2015-05-15 Thread Sebastian Huber
Update #2307. --- cpukit/rtems/src/clocktick.c | 11 +-- testsuites/sptests/sp37/init.c | 4 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/cpukit/rtems/src/clocktick.c b/cpukit/rtems/src/clocktick.c index a026b44..fe49e9a 100644 --- a/cpukit/rtems/src/clocktick.c +

[PATCH 07/45] score: Add Watchdog_Iterator

2015-05-15 Thread Sebastian Huber
Rewrite the _Watchdog_Insert(), _Watchdog_Remove() and _Watchdog_Tickle() functions to use iterator items to synchronize concurrent operations. This makes it possible to get rid of the global variables _Watchdog_Sync_level and _Watchdog_Sync_count which are a blocking point for scalable SMP soluti

[PATCH 19/45] score: Add Thread_queue_Operations

2015-05-15 Thread Sebastian Huber
Replace the Thread_Priority_control with more general Thread_queue_Operations which will be used for generic priority change, timeout, signal and wait queue operations in the future. Update #2273. --- cpukit/score/Makefile.am | 1 + cpukit/score/include/rtems/score/thread.h

[PATCH 27/45] score: Inline _CORE_semaphore_Flush()

2015-05-15 Thread Sebastian Huber
--- cpukit/score/Makefile.am | 2 +- cpukit/score/include/rtems/score/coresemimpl.h | 11 ++-- cpukit/score/src/coresemflush.c| 39 -- 3 files changed, 10 insertions(+), 42 deletions(-) delete mode 100644 cpukit/score/src/coresemf

[PATCH 25/45] score: Fine grained locking for semaphores

2015-05-15 Thread Sebastian Huber
Update #2273. --- cpukit/posix/include/rtems/posix/semaphoreimpl.h | 14 ++ cpukit/posix/src/sempost.c | 13 ++--- cpukit/rtems/src/semobtain.c | 9 +++ cpukit/rtems/src/semrelease.c| 19 + cpukit/score/incl

[PATCH 33/45] score: Delete _Objects_Put_for_get_isr_disable()

2015-05-15 Thread Sebastian Huber
This function is superfluous due to the introduction of fine grained locking. --- cpukit/rtems/src/eventsend.c | 1 - cpukit/rtems/src/systemeventsend.c| 1 - cpukit/score/include/rtems/score/objectimpl.h | 10 -- 3 files changed, 12 deletions(-) diff --git

[PATCH 17/45] score: Generalize _Event_Timeout()

2015-05-15 Thread Sebastian Huber
Add a thread wait timeout code. Replace _Event_Timeout() with a general purpose _Thread_Timeout() watchdog handler. Update #2273. --- cpukit/rtems/Makefile.am | 1 - cpukit/rtems/src/eventseize.c | 8 ++- cpukit/rtems/src/eventtimeout.c | 70 -

[PATCH 42/45] timecounter: Honor FFCLOCK define

2015-05-15 Thread Sebastian Huber
From: Alexander Krutwig Update #2271. --- cpukit/score/src/kern_tc.c | 4 1 file changed, 4 insertions(+) diff --git a/cpukit/score/src/kern_tc.c b/cpukit/score/src/kern_tc.c index 3e33495..94b7385 100644 --- a/cpukit/score/src/kern_tc.c +++ b/cpukit/score/src/kern_tc.c @@ -994,11 +994,13

[PATCH 28/45] score: Inline _CORE_semaphore_Surrender()

2015-05-15 Thread Sebastian Huber
--- cpukit/score/Makefile.am | 3 +- cpukit/score/include/rtems/score/coresemimpl.h | 41 +++- cpukit/score/src/coresemsurrender.c| 66 -- 3 files changed, 40 insertions(+), 70 deletions(-) delete mode 100644 cpukit/score/src/

[PATCH 14/45] libcsupport: Fix umask() locking

2015-05-15 Thread Sebastian Huber
Delete comment related to an obsolete implementation of rtems_libio_set_private_env(). --- cpukit/libcsupport/src/umask.c | 9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/cpukit/libcsupport/src/umask.c b/cpukit/libcsupport/src/umask.c index 678cac8..fba2405 100644 --- a

[PATCH 15/45] Filesystem: Thread life protection for env changes

2015-05-15 Thread Sebastian Huber
--- cpukit/libcsupport/src/privateenv.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cpukit/libcsupport/src/privateenv.c b/cpukit/libcsupport/src/privateenv.c index 5717745..29821e4 100644 --- a/cpukit/libcsupport/src/privateenv.c +++ b/cpukit/libcsup

[PATCH 06/45] score: Add _Watchdog_Acquire|Release|Flash()

2015-05-15 Thread Sebastian Huber
Update #2307. --- cpukit/score/include/rtems/score/watchdogimpl.h | 30 + cpukit/score/src/watchdogadjust.c | 16 ++--- cpukit/score/src/watchdogadjusttochain.c| 8 +++ cpukit/score/src/watchdoginsert.c | 10 - cpukit

[PATCH 03/45] score: Delete STATES_WAITING_ON_THREAD_QUEUE

2015-05-15 Thread Sebastian Huber
Avoid the usage of the current thread state in _Thread_queue_Extract_with_return_code() since thread queues should not know anything about thread states. --- cpukit/posix/src/psignalunblockthread.c | 6 +++--- cpukit/score/include/rtems/score/statesimpl.h | 26 ++ cp

[PATCH 10/45] rtems: Use once mutex for timer server init

2015-05-15 Thread Sebastian Huber
--- cpukit/rtems/src/timerserver.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cpukit/rtems/src/timerserver.c b/cpukit/rtems/src/timerserver.c index db38f48..047fd09 100644 --- a/cpukit/rtems/src/timerserver.c +++ b/cpukit/rtems/src/timerserver.c @@ -29,6 +29,7 @@ #in

[PATCH 05/45] score: Add header to _Watchdog_Remove()

2015-05-15 Thread Sebastian Huber
Add watchdog header parameter to _Watchdog_Remove() to be in line with the other operations. Add _Watchdog_Remove_ticks() and _Watchdog_Remove_seconds() for convenience. Update #2307. --- cpukit/posix/src/alarm.c| 2 +- cpukit/posix/src/psignalunblockthread.c |

[PATCH 08/45] score: Move _Watchdog_Tickle()

2015-05-15 Thread Sebastian Huber
Make internal function _Watchdog_Remove_it() static to avoid accidental usage. Update #2307. --- cpukit/score/Makefile.am| 3 +- cpukit/score/include/rtems/score/watchdogimpl.h | 10 --- cpukit/score/src/watchdogremove.c | 67 ++- cpukit/scor

[PATCH 11/45] libcsupport: Avoid Giant lock in _times()

2015-05-15 Thread Sebastian Huber
--- cpukit/libcsupport/src/__times.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cpukit/libcsupport/src/__times.c b/cpukit/libcsupport/src/__times.c index 5a1f9eb..895ee6b 100644 --- a/cpukit/libcsupport/src/__times.c +++ b/cpukit/libcsupport/src/__times.c @@ -6

Major SMP Improvements

2015-05-15 Thread Sebastian Huber
https://devel.rtems.org/ticket/2130 https://devel.rtems.org/ticket/2131 https://devel.rtems.org/ticket/2271 https://devel.rtems.org/ticket/2273 https://devel.rtems.org/ticket/2307 It provides a major performance boost for SMP configurations, see https://devel.rtems.org/ticket/2271 and https://deve

[PATCH 02/45] score: _Thread_queue_Extract()

2015-05-15 Thread Sebastian Huber
Remove thread queue parameter from _Thread_queue_Extract() since the current thread queue is stored in the thread control block. --- cpukit/rtems/src/msgmp.c | 2 +- cpukit/rtems/src/partmp.c | 2 +- cpukit/rtems/src/regionmp.c| 2 +

[PATCH 01/45] score: Add _SMP_Assert()

2015-05-15 Thread Sebastian Huber
--- cpukit/score/include/rtems/score/assert.h | 9 + 1 file changed, 9 insertions(+) diff --git a/cpukit/score/include/rtems/score/assert.h b/cpukit/score/include/rtems/score/assert.h index 43ec2d0..6308378 100644 --- a/cpukit/score/include/rtems/score/assert.h +++ b/cpukit/score/include

[PATCH 04/45] score: Optimize _Thread_queue_Compare_priority()

2015-05-15 Thread Sebastian Huber
--- cpukit/score/src/threadq.c | 19 ++- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/cpukit/score/src/threadq.c b/cpukit/score/src/threadq.c index bdd380d..0ea0c82 100644 --- a/cpukit/score/src/threadq.c +++ b/cpukit/score/src/threadq.c @@ -29,19 +29,20 @@ RBTree

RSB: Targets missing in rtems/config/4.11/rtems-all.bset

2015-05-15 Thread Sebastian Huber
Hello, the following targets are missing in rtems/config/4.11/rtems-all.bset: epiphany h8300 Is this intentional? I was not able to build the moxie tool set. -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +4

Re: Porting ethernet driver from FREEBSD to rtems-libbsd

2015-05-15 Thread ragu nath
Thank you. I will check the git log. I am also inclined to using nexus support. I already compiled the driver using nexus support. I fully intend to add more documentation to the project. I will keep posting on this thread if I have any further issues. Thanks, Ragunath On Fri, May 15, 2015 at 12