Gregory Nutt
0029c04dad
task_restart: Make sure new task starts with pre-emption disabled and not in a critical section.
2016-11-21 07:33:23 -06:00
Gregory Nutt
d83ad6296c
Update README
2016-11-20 16:12:58 -06:00
Gregory Nutt
cee8d59b58
Update TODO list
2016-11-20 12:26:08 -06:00
Gregory Nutt
01ade4803a
Update README and TODO list
2016-11-20 09:51:54 -06:00
Gregory Nutt
e24f281401
This commit adds a new internal interfaces and fixes a problem with three APIs in the SMP configuration. The new internal interface is sched_cpu_pause(tcb). This function will pause a CPU if the task associated with 'tcb' is running on that CPU. This allows a different CPU to modify that OS data stuctures associated with the CPU. When the other CPU is resumed, those modifications can safely take place.
...
The three fixes are to handle cases in the SMP configuration where one CPU does need to make modifications to TCB and data structures on a task that could be running running on another CPU. Those three cases are task_delete(), task_restart(), and execution of signal handles. In all three cases the solutions is basically the same: (1) Call sched_cpu_pause(tcb) to pause the CPU on which the task is running, (2) perform the necessary operations, then (3) call up_cpu_resume() to restart the paused CPU.
2016-11-20 07:57:18 -06:00
Gregory Nutt
f5b35e0461
Clarify TODO list
2016-11-19 16:58:25 -06:00
Gregory Nutt
82cd27170b
Update TODO list
2016-11-19 16:37:09 -06:00
Gregory Nutt
ac9a11d9ab
Update TODO list
2016-11-19 13:31:14 -06:00
Gregory Nutt
6a7619b6f0
Update TODO list
2016-11-19 13:23:15 -06:00
Gregory Nutt
a2aba90252
Update some comments
2016-11-19 11:48:08 -06:00
Gregory Nutt
f40fbaa4b9
sched/task: task_restart() test not supported on SMP systems. This is not fully implemented.
2016-11-19 11:41:05 -06:00
Rajan Gill
0d8e191d69
sched/clock: Correct calculation for the case of Tickless mode with a 32-bit timer. In that case, the calculation was returning millisecond accuracy. That is not good when the timer accuracy is < 1 msec.
2016-11-19 09:55:21 -06:00
Gregory Nutt
439c72e7c8
Refresh all networking configurations due to changes in work-queue related configuration variables for Ethernet drivers.
2016-11-19 09:41:24 -06:00
Gregory Nutt
0804286ad3
arch/: Add option to use low-priority work queue to all Ethernet drivers in arch that support CONFIG_NET_NOINTS.
2016-11-19 09:20:01 -06:00
Gregory Nutt
5ca9128c38
Update comments
2016-11-19 08:33:55 -06:00
Gregory Nutt
ceacacbc63
vfork(): Fix a race condition in the SMP case. Existing logic depended on the fact that the child would not run until waitpid was called because the child had the same priority as the parent. BUT in the SMP case that is not true... the child may run immediately on a different CPU.
2016-11-19 07:30:01 -06:00
Gregory Nutt
0db99b8c89
Trivial fix from review of last PR
2016-11-19 06:52:51 -06:00
Gregory Nutt
8705ce816a
Merged in gnagflow/nuttx (pull request #173 )
...
Master
2016-11-19 12:49:56 +00:00
Gregory Nutt
a658dc0f28
Merged in paulpatience/nuttx/stm32 (pull request #172 )
...
STM32: STM32F303xB and STM32F303xC chips have 4 ADCs
2016-11-19 01:52:36 +00:00
Wolfgang Reißnegger
b23c1f8817
Typo fix in sam_udp.c
2016-11-18 17:23:22 -08:00
Wolfgang Reißnegger
5d658a8915
configs/dk-tm4c129x: Typo fix.
2016-11-18 17:23:21 -08:00
Wolfgang Reißnegger
88539a7497
USBMSC: Fix length of mode6 sense reply packet.
2016-11-18 17:23:21 -08:00
Wolfgang Reißnegger
d135246a7d
SAM3/4: Remove 'stalled' flag in UDP driver.
...
The flag is not necessary. The state of the endpoint can be determined
using 'epstate' instead.
2016-11-18 17:23:21 -08:00
Wolfgang Reißnegger
9e349f4335
SAM3/4: Remove unused 'halted' flag in UDP driver.
2016-11-18 17:23:21 -08:00
Wolfgang Reißnegger
c7ef82c546
SAM3/4: Add delay between setting and clearing the endpoint RESET bit in sam_ep_resume().
...
We need to add a delay between setting and clearing the endpoint reset
bit in SAM_UDP_RSTEP. Without the delay the USB controller will (may?)
not reset the endpoint.
If the endpoint is not being reset, the Data Toggle (DTGLE) bit will
not to be cleared which will cause the next transaction to fail if
DTGLE is 1. If that happens the host will time-out and reset the bus.
Adding this delay may also fix the USBMSC_STALL_RACEWAR in
usbmsc_scsi.c, however this has not been verified yet.
2016-11-18 17:23:21 -08:00
Paul A. Patience
8d9804d57b
STM32: STM32F303xB and STM32F303xC chips have 4 ADCs
2016-11-18 19:28:09 -05:00
Gregory Nutt
48d9fff95a
Update ChangeLog
2016-11-18 17:18:35 -06:00
Gregory Nutt
69e9f8638d
Most interrupt handling logic interacts with tasks via standard mechanism such as sem_post, sigqueue, mq_send, etc. This all call enter_critical_section and are assumed to be safe in the SMP case.
...
But certain logic interacts with tasks in different ways. The only one that comes to mind are wdogs. There is a tasking interface that to manipulate wdogs, and a different interface in the timer interrupt handling logic to manage wdog expirations.
In the normal case, this is fine. Since the tasking level code calls enter_critical_section, interrupts are disabled an no conflicts can occur. But that may not be the case in the SMP case. Most architectures do not permit disabling interrupts on other CPUs so enter_critical_section must work differently: Locks are required to protect code.
So this change adds locking (via enter_critical section) to wdog expiration logic for the the case if the SMP configuration.
2016-11-18 13:57:30 -06:00
Gregory Nutt
cdbc66addd
Merge branch 'master' of bitbucket.org:nuttx/nuttx
2016-11-18 09:30:40 -06:00
Gregory Nutt
936b55f608
drivers/net: Add option to use low-priority work queue to all drivers in drivers/net. Not yet added to all architecture-specific network drivers.
2016-11-18 09:22:49 -06:00
Gregory Nutt
175ec43628
Merged in slorquet/nuttx/timerfixes (pull request #171 )
...
Timerfixes
2016-11-18 14:45:36 +00:00
Gregory Nutt
52560bba37
ENC28J60: Allow either HP or LP work queue to be used.
2016-11-18 08:41:27 -06:00
Sebastien Lorquet
d6813b0e2d
Merge branch 'master' into timerfixes
2016-11-18 15:29:44 +01:00
Sebastien Lorquet
ddba6de8bc
Add support for timers to nucleo l476
2016-11-18 15:26:31 +01:00
Sebastien Lorquet
5363d0619a
Fix warnings
2016-11-18 15:26:08 +01:00
Gregory Nutt
78fd358023
Update some comments.
2016-11-18 08:20:52 -06:00
Gregory Nutt
8602e8a8a9
SMP: irq_csection() has a bad assumption. It assumed that the state of certain variables. That was true on entry into the interrupt handler, but might change to the execution of logic within the interrupt handler.
2016-11-18 07:38:16 -06:00
Gregory Nutt
8e029f019b
Update comments
2016-11-17 17:30:12 -06:00
Gregory Nutt
47b52a2633
Fix an error in manually bringing in Sebastien's changes; Update some comments.
2016-11-17 16:15:06 -06:00
Gregory Nutt
9acd57c819
Fix up some naming and update some comments.
2016-11-17 15:50:39 -06:00
Gregory Nutt
558f4049d4
sched/irq/irq_csection: Fix a bad DEBUG assertion when SMP is enabled.
2016-11-17 15:36:27 -06:00
Gregory Nutt
f92afbfbf3
apps/examples/timer: Restore the timer example, but adapt the interface to use the new signal logic from Sebastien, Lorquet. Totally untested and probably does not work!
2016-11-17 15:19:17 -06:00
Gregory Nutt
19c1c9d78b
All timer lower half drivers. Port Sebastien's changes to all all other implementations of the timer lower half. Very many just and untested. Expect some problems.
2016-11-17 15:03:31 -06:00
Sebastien Lorquet
197cec58d2
timer driver: Use signal to notify of timer expiration. Add generic argument so that there can be additional usage.
2016-11-17 14:38:21 -06:00
Gregory Nutt
18ad40b98c
ARMv7-M: Fix double allocation of MPU region in mmu.h
2016-11-17 13:37:24 -06:00
Gregory Nutt
61bdea1625
Merge remote-tracking branch 'origin/master' into csection
2016-11-17 13:05:36 -06:00
Gregory Nutt
d4a048c0c6
Timer driver: Add hooks to support signal notification of timer expiration. Commented out because invasive interface changes would also be required to complete the implementation.
2016-11-17 12:41:11 -06:00
Gregory Nutt
ecb2d4cbc1
drivers/timer: Remove the TIOC_SETHANDLER IOCTL call. This calls directly from the timer driver into application code. That is non-standard, non-portable, and cannot be supported
2016-11-17 11:52:42 -06:00
Gregory Nutt
10af1e1734
sabre-6quad: Update TODO list
2016-11-17 11:50:58 -06:00
Gregory Nutt
bb19f1b499
spinlocks should be volatile.
2016-11-17 10:04:22 -06:00