Commit Graph

30640 Commits

Author SHA1 Message Date
Sebastian Huber
ecabd38496 rtems: Add rtems_scheduler_ident_by_processor_set
Update #3070.
2017-07-11 14:16:59 +02:00
Sebastian Huber
548d65a52b rtems: Add rtems_scheduler_ident_by_processor()
Update #3069.
2017-07-11 14:16:58 +02:00
Sebastian Huber
c29eb085f2 bsps/sparc: Fix ambapp_int_set_affinity()
Update #3059.
2017-07-11 14:15:47 +02:00
Sebastian Huber
3b14e7aa6e rtems: Fix warning
Update #3059.
2017-07-11 13:51:10 +02:00
Sebastian Huber
21389c0613 score: Make EDF the default SMP scheduler
The EDF SMP scheduler supports simple thread processor affinities
(see #3059) with a small run-time overhead. The current default SMP
scheduler lacks support for thread processor affinities at all. The EDF
SMP scheduler offers a good feature set for most applications. So, use
it by default. Run-time libraries like libgomp, MTAPI, work stealing
schedulers, language interpreters (e.g. Erlang virtual machine),
maintainence of per-processor data (e.g. Universal Memory Allocator
(UMA)), etc. use a one-to-one thread processor affinity for example.

Update #3063.
2017-07-10 07:49:40 +02:00
Sebastian Huber
4a1bdd3045 score: Fix set scheduler
Ensure that the thread processor affinity fits the new scheduler
instance.

Update #3059.
2017-07-10 07:49:40 +02:00
Sebastian Huber
34487537ce score: Add simple affinity support to EDF SMP
Update #3059.
2017-07-10 07:49:36 +02:00
Sebastian Huber
d19dc071a2 score: Pass scheduler nodes to processor allocator
This allows scheduler implementations to easily access
scheduler-specific data.

Update #3059.
2017-07-07 09:40:06 +02:00
Sebastian Huber
e745ec59d8 smptests/smpstrongapa01: Simplify
Update #3059.
2017-07-07 07:56:25 +02:00
Sebastian Huber
197a614209 score: Add scheduler node to set affinity op
Update #3059.
2017-07-07 07:56:24 +02:00
Sebastian Huber
16347a6b39 score: Fix default set affinity
The set of online processors must be a subset of the thread processor
affinity for the schedulers without arbitrary processor affinity support
to avoid problems in case of processor addition and removal.

Update #3059.
2017-07-07 07:56:24 +02:00
Sebastian Huber
76d119857f score: Introduce _SMP_Get_online_processors()
Update #3059.
2017-07-07 07:55:03 +02:00
Sebastian Huber
0232b28df1 score: Use processor mask for set affinity
Update #3059.
2017-07-07 07:36:31 +02:00
Sebastian Huber
1ec9c86fb6 rtems: Fix rtems_scheduler_remove_processor()
Account for the thread processor affinity and make sure that it is
possible to allocate a processor to each thread dedicated to a scheduler
instance.

Update #3059.
2017-07-07 07:28:35 +02:00
Sebastian Huber
6b1d8c7865 score: Add processor set to scheduler context
Replace the simple processor count with the processor set owned by the
scheduler instance.

Update #3059.
2017-07-07 07:28:35 +02:00
Sebastian Huber
78515554fd score: Move processor affinity to Thread_Control
Update #3059.
2017-07-07 07:28:29 +02:00
Sebastian Huber
6223097a8d score: Add some processor mask functions
Update #3059.
2017-07-06 15:32:48 +02:00
Sebastian Huber
7a5e4d9477 score: Add processor mask to/from cpu_set_t
Update #3059.
2017-07-06 15:29:27 +02:00
Sebastian Huber
3dfe55ee15 score: Use <sys/bitset.h> for Processor_mask
Implement the Processor_mask via <sys/bitset.h>.  Provide
_Processor_mask_To_uint32_t() to enable its use in device specific
routines, e.g. interrupt affinity register in an interrupt controller.

Update #3059.
2017-07-06 15:29:16 +02:00
Sebastian Huber
71943dd4d2 xz: Suppress attribute warnings
Update #2909.
2017-07-05 08:15:34 +02:00
Sebastian Huber
fab446f03f score: Fix format 2017-07-05 08:10:11 +02:00
Sebastian Huber
4cd52cc456 score: Avoid clash with <strings.h> provided fls() 2017-07-05 08:08:24 +02:00
Sebastian Huber
3e7827434d arm: Fix ARMv7-M interrupt processing
Right after a "msr basepri_max, %[basepri]" instruction an interrupt
service may still take place (observed at least on Cortex-M7).  However,
pendable service calls that are activated during this interrupt service
may be delayed until interrupts are enable again.  The
_ARMV7M_Pendable_service_call() did not check that a thread dispatch is
allowed.  Move this test from _ARMV7M_Interrupt_service_leave() to
_ARMV7M_Pendable_service_call().

Update #3060.
2017-07-04 15:15:37 +02:00
Sebastian Huber
550616e528 score: Add assert to _Thread_Dispatch()
Update #3060.
2017-07-04 15:15:10 +02:00
Sebastian Huber
9b07f5efe3 newlib01: Use fopen() instead of freopen()
With global stdio streams, a freopen() would close the global stream
object.

Update #3012.
2017-06-30 14:57:25 +02:00
Sebastian Huber
7adf4941a8 smptests/smpschededf01: New test
Update #3056.
2017-06-29 15:21:30 +02:00
Sebastian Huber
7f7a3e8f70 tests: Move busy loop to test support
Update #3056.
2017-06-29 14:36:58 +02:00
Sebastian Huber
74f9db8887 score: Add RTEMS_NO_INLINE
Update #3056.
2017-06-29 12:08:27 +02:00
Sebastian Huber
f3d9f2288e score: Add SMP EDF scheduler
Update #3056.
2017-06-29 11:28:32 +02:00
Sebastian Huber
15dbc710b6 score: Add red-black tree node to Scheduler_Node
In SMP configurations, add a red-black tree node to Scheduler_Node to
enable an EDF scheduler implementation.

Update #3056.
2017-06-29 11:15:50 +02:00
Sebastian Huber
1dbce41bb8 smptests: Split smpscheduler03
Split smpscheduler03 to run the tests with only one processor.

Update #3056.
2017-06-29 11:15:38 +02:00
Sebastian Huber
5bfeab951c Add rtems_interrupt_server_handler_iterate() 2017-06-26 08:23:33 +02:00
Joel Sherrill
b8b4b7d429 psxstat/test.c: Avoid potential string overflow 2017-06-21 12:50:31 -05:00
Joel Sherrill
9d945b5fff psximfs02/init.c: Avoid potential string overflow 2017-06-21 12:50:31 -05:00
Joel Sherrill
d6cb813d33 dl03/dl-cache.c: Fix duplicate const warning 2017-06-21 12:50:31 -05:00
Joel Sherrill
d8b548160f sys/utsname.h: Increase buffer to avoid overflow 2017-06-21 12:50:31 -05:00
Joel Sherrill
ec230fc77f i386/shared/comm/i386-stub-glue.c: Fix duplicate const warning 2017-06-21 12:50:30 -05:00
Joel Sherrill
91774269db lpc176x/misc/restart.c: Fix duplicate const warning 2017-06-21 12:50:30 -05:00
Joel Sherrill
d93181a059 malloctest/init.c: Disable check maximum size warning to allow error test case 2017-06-21 12:50:30 -05:00
Joel Sherrill
9761b98dcc capture/rtems-trace-buffer-vars.c: Fix duplicate const warning 2017-06-21 12:50:30 -05:00
Joel Sherrill
5700d8ba52 top/task1.c: Fix sprintf() buffer overflow 2017-06-21 12:50:30 -05:00
Joel Sherrill
a5d31fe642 rbheap01/init.c: Fix PAGE_SIZE redefined warning 2017-06-21 12:50:29 -05:00
Sebastian Huber
d30c2cc288 powerpc: Fix PPC_CONTEXT_VOLATILE_SIZE
Account for legacy AltiVec context.
2017-06-20 13:04:54 +02:00
Sebastian Huber
ae3e6af82a powerpc: Fix TLS support
Do not zero the GPR2 in the thread context via dcbz instructions.  Bug
was introduced by 32b4a0c427.
2017-06-20 10:41:39 +02:00
Sebastian Huber
c6810c824c bsps: Improve interrupt vector enable/disable API
Change bsp_interrupt_vector_enable() and bsp_interrupt_vector_disable()
to not return a status code.  Add bsp_interrupt_assert() and use it to
validate the vector number in the vector enable/disable implementations.
2017-06-20 07:42:25 +02:00
Sebastian Huber
b361cb6c4d bsps/powerpc: Fix warning
Close #3051.
2017-06-16 06:22:55 +02:00
Sebastian Huber
ae359a9df4 shell: Display scheduler instead of current CPU
Display the scheduler name instead of the current CPU in the "task"
shell command.  The current CPU could be misleading in case locking
protocols are involved.  The "cpuuse" command can be used to obtain the
current CPU.
2017-06-16 06:13:50 +02:00
Sichen Zhao
369372c3ee Fix beagle i2c file bbb-i2c.c comment issues 2017-06-15 15:01:31 -05:00
Sichen Zhao
8f550d2fa1 Add the i2c driver for Beaglebone Black
Update ticket #2891 and my GSOC project
add c/src/lib/libbsp/arm/beagle/i2c/bbb-i2c.c
modify c/src/lib/libbsp/arm/beagle/include/i2c.h
modify c/src/lib/libbsp/arm/beagle/include/bbb-gpio.h
modify c/src/lib/libcpu/arm/shared/include/am335x.h
modify c/src/lib/libbsp/arm/beagle/Makefile.am
Now can read the EEPROM by i2c, the test application link is: https://github.com/hahchenchen/GSOC-test-application
2017-06-14 12:11:31 -05:00
Sichen Zhao
7741545bfc Remove beagle old i2c code
modify c/src/lib/libbsp/arm/beagle/Makefile.am
modify c/src/lib/libbsp/arm/beagle/include/i2c.h
delete c/src/lib/libbsp/arm/beagle/misc/i2c.c
2017-06-14 11:47:58 -05:00