- Feb 06, 2018
-
-
Gregory Nutt authored
sched/sched: sched_lock() and sched_unlock().. back out some changes I made recently. The seemed correct but apparently not. Also reorder to logic so that g_global_lockcount is incremented for the very minimum amount of time.
-
Gregory Nutt authored
sched/ and arch/arm/src/armv7-a: Replace a few more occurrences of this_task() with current_task(cpu) in an effort to get the i.MX6 working in SMP mode again. It does not yet work, sadly.
-
Gregory Nutt authored
arch/arm/src/armv7-a: Found some additional places were the new this_task() function cannot be called in the i.MX6 SMP configuration.
-
Gregory Nutt authored
sched/irq: Fix a infinite recursion problem that a recent change introduced into the i.MX6 SMP implementation.
-
Alan Carvalho de Assis authored
-
Gregory Nutt authored
sched/irq: Fix an error in a assertion introduced in commit 37c9b3d5. Noted by Masayuki Ishikawa.
-
- Feb 05, 2018
-
-
Gregory Nutt authored
sched/sched: Extend the last global lock change to work with the lc823450-xgevk which does not support the atomic fetch add but does support disabling interprocessor interrupts. Disabling interprocessor interrupts will also guarantee that the TCB addres calculation is atomic.
-
Gregory Nutt authored
sched/sched: Implements a global scheduler lock capability as part of SMP support. This allows the scheduler to be locked with no knowledge or access to the TCB of the currently running task. This is necessary because accessing the TCB of the currenlty running task is, itself, a non-atomic operation. This global scheduler lock cpability was add just to support that atomic access to the TCB.
-
Gregory Nutt authored
sched/sched: Clean up some logic that I committed yesterday. Add more comments and conditional logic to clarify the issues.
-
Gregory Nutt authored
-
Michael Jung authored
configs/stm32f429i-disco: Separate SPI4 from MTD init. I was trying to attach a non-MTD peripheral to an STM32F429I Discovery Board's SPI4 port and was hitting compilation problems, since CONFIG_MTD and thus 'struct mtd_geometry_s' was not defined. This patch separates SPI4 initialization logic from MTD initialization logic.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
- Feb 04, 2018
-
-
Masayuki Ishikawa authored
sched/sched: SMP: Fix this_task() to be an atomic operation. In the previous implementation, this_task() was defined in sched.h by using just a macro current_task(this_cpu()). However, I found that this is not atomic and actually sometimes switching CPU happened in executing the macro when we tested audio steaming plus executing commands via telnet. This change resolves this issue by implementing atomic this_task()in sched_thistask.c which is newly introduced.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
spin_lock_irqsave() and spin_unlock_irqrestore() are only valid if the CPU supports global disabling of interrupts.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Alan Carvalho de Assis authored
-
- Feb 03, 2018
-
-
Gregory Nutt authored
-
- Feb 01, 2018
-
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
libc/stdio: in dtoa(), up_interrupt_context() is used in a debug assertion. up_interrupt_context() is not available in the user-mode phase of the PROTECTED or KERNEL build configurations. In those configurations, enabling libc floating point support and debug assertions will result in an undefined reference to up_interrupt_context().
-
Stewart authored
-
- Jan 31, 2018
-
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
sched/: Convert legitimate uses of task_create() to nxtask_create(). Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()). graphics/: Review return values for all calls to kthread_start() because it no longer returns an errno. drivers/: threads started by drivers should be kernel threads, not user tasks. Review return values for all calls to kthread_start() because it no longer returns an errno. configs/: threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2). sched/task: Add nxtask_create(). Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable. configs/: threads started by board bringup logic should be kernel threads, not user tasks.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
sched/wdog: wd_start() is an internal OS function and should not set the errno value. Reviewed and updated every call to wd_start() to verify if return value is used and if so if the errno value is accessed.
-
Gregory Nutt authored
-
Juha Niskanen authored
-
Masayuki Ishikawa authored
SMP: Introduce a new global IRQ clearing logic and tasklist protection. Approved-by: Gregory Nutt <gnutt@nuttx.org>
-
Matt Thompson authored
SAMDL: Added I2S register definitions Approved-by: Gregory Nutt <gnutt@nuttx.org>
-
Masayuki Ishikawa authored
The previous implementation of clearing global IRQ in sched_addreadytorun() and sched_removereadytorun() was done too early. As a result, nxsem_post() would have a chance to enter the critical section even nxsem_wait() is still not in blocked state. This patch moves clearing global IRQ controls from sched_addreadytorun() and sched_removereadytorun() to sched_resumescheduler() to ensure that nxsem_post() can enter the critical section correctly. For this change, sched_resumescheduler.c is always necessary for SMP configuration. In addition, by this change, task_exit() had to be modified so that it calls sched_resumescheduler() because it calls sched_removescheduler() inside the function, otherwise it will cause a deadlock. However, I encountered another DEBUGASSERT() in sched_cpu_select() during HTTP streaming aging test on lc823450-xgevk. Actually sched_cpu_select() accesses the g_assignedtasks which might be changed by another CPU. Similarly, other tasklists might be modified simultaneously if both CPUs are executing scheduling logic. To avoid this, I introduced tasklist protetion APIs. With these changes, SMP kernel stability has been much improved. Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
-