Commit Graph

31963 Commits

Author SHA1 Message Date
Gregory Nutt
42720a5473 Update README 2018-02-07 14:55:56 -06:00
Gregory Nutt
6c58eac6ab configs/sabre-6quad: Update README. 2018-02-07 08:57:01 -06:00
Gregory Nutt
50ab5d638a sched/task: It is not appropriate for logic in task_exit() to call the new version of this_task(). sched/irq: Remove redundant fetch of CPU index; configs/sabre-6qguad: update README. 2018-02-06 19:06:33 -06:00
Gregory Nutt
cce21bef32 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. 2018-02-06 13:49:21 -06:00
Gregory Nutt
de34b4523f 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. 2018-02-06 11:17:33 -06:00
Gregory Nutt
8aa1538506 arch/arm/src/armv7-a: Found some additional places were the new this_task() function cannot be called in the i.MX6 SMP configuration. 2018-02-06 10:33:28 -06:00
Gregory Nutt
0ba7853016 sched/irq: Fix a infinite recursion problem that a recent change introduced into the i.MX6 SMP implementation. 2018-02-06 09:18:03 -06:00
Alan Carvalho de Assis
fb50c44d08 Fix various issues noted by Coverity 2018-02-06 09:13:16 -06:00
Gregory Nutt
56bb76caca sched/irq: Fix an error in a assertion introduced in commit 37c9b3d54a. Noted by Masayuki Ishikawa. 2018-02-05 21:13:42 -06:00
Gregory Nutt
b884fb9fed 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. 2018-02-05 13:32:09 -06:00
Gregory Nutt
37c9b3d54a 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. 2018-02-05 13:12:36 -06:00
Gregory Nutt
f51693e36a sched/sched: Clean up some logic that I committed yesterday. Add more comments and conditional logic to clarify the issues. 2018-02-05 08:31:21 -06:00
Gregory Nutt
8a48031615 Update some comments 2018-02-05 07:58:00 -06:00
Michael Jung
cbd8fa31d1 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. 2018-02-05 06:35:40 -06:00
Gregory Nutt
873ffd13bc sched/sched: Temporarily comment out some bad logic 2018-02-04 18:18:26 -06:00
Gregory Nutt
aaf1079fa7 sched/sched: Fix a typo in the previous commit 2018-02-04 18:15:45 -06:00
Masayuki Ishikawa
c8a372702a 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. 2018-02-04 16:59:09 -06:00
Gregory Nutt
31278bc163 Kconfigs: Add comments and a dependency. 2018-02-04 16:32:14 -06:00
Gregory Nutt
8187858d79 Fix a typo just introduced to a Kconfig file 2018-02-04 15:53:01 -06:00
Gregory Nutt
5beab6fbf0 spin_lock_irqsave() and spin_unlock_irqrestore() are only valid if the CPU supports global disabling of interrupts. 2018-02-04 15:41:22 -06:00
Gregory Nutt
5c5d19f1c8 Some ommissions from previous commit. 2018-02-04 12:36:51 -06:00
Gregory Nutt
1e59d9dd14 armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions. 2018-02-04 12:22:03 -06:00
Alan Carvalho de Assis
97937d3d47 configs/stm32f103-minimum: Add support to BMP180 on BluePill (stm32f103-minimum) board. 2018-02-04 07:34:31 -06:00
Gregory Nutt
fad70bf90e Update some comments 2018-02-03 09:35:46 -06:00
Gregory Nutt
2683f713ab Make sure that labeling is used consistently in all function headers (part 3). 2018-02-01 12:17:03 -06:00
Gregory Nutt
1567b82429 Make sure that labeling is used consistently in all function headers (part 2). 2018-02-01 12:03:55 -06:00
Gregory Nutt
12474d2c38 Eliminate new warnings due to unused local variables noted in build testing. 2018-02-01 10:25:48 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Gregory Nutt
a096bc1266 binfmt/: Fix one more inappropriate access to the errno variable. 2018-02-01 08:33:04 -06:00
Gregory Nutt
e93cb86903 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(). 2018-02-01 07:37:16 -06:00
Stewart
be81893b55 arm/src/kinetis: Correct some Ethernet PHY register bit tests for the KSZ8081 PHY. 2018-02-01 07:24:36 -06:00
Gregory Nutt
d87b54099a Eliminate a warning. 2018-01-31 17:54:20 -06:00
Gregory Nutt
84b00e54d3 graphics/nxmu: Correct a compile error introduced with last big set of changes. 2018-01-31 16:26:51 -06:00
Gregory Nutt
8191640320 sched/task: Correct a compile error introduced with last big set of changes. 2018-01-31 16:17:23 -06:00
Gregory Nutt
50ca32e254 Squashed commit of the following:
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.
2018-01-31 16:11:54 -06:00
Gregory Nutt
1550ef2f54 arch/arm/src/lpc43xx: Correct a typo introduced in last large set of changes 2018-01-31 11:32:43 -06:00
Gregory Nutt
770a83bc7d graphics/vnc: Correct a typo introduced in last large set of changes 2018-01-31 11:31:12 -06:00
Gregory Nutt
da50646bcf 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. 2018-01-31 10:09:14 -06:00
Gregory Nutt
a959d7fefa fs/aio: Fix one additional place where the errno variable is being accessed inappropriately. 2018-01-31 09:19:19 -06:00
Juha Niskanen
a5cb1129f9 drivers/sensors/lis2dh: use realtime clock if monotonic is not available 2018-01-31 07:41:56 -06:00
Masayuki Ishikawa
325a5804f1 Merged in masayuki2009/nuttx.nuttx/smp_fixes (pull request #589)
SMP: Introduce a new global IRQ clearing logic and tasklist protection.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-31 13:35:14 +00:00
Matt Thompson
1f10a9c576 Merged in extent3d/nuttx/i2c (pull request #588)
SAMDL: Added I2S register definitions

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-31 13:29:23 +00:00
Masayuki Ishikawa
d295f11a3a SMP: Introduce a new global IRQ clearing logic and tasklist protection.
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>
2018-01-31 15:35:36 +09:00
Gregory Nutt
3521aaf944 Squashed commit of the following:
binfmt/, configs/, grahics/, libc/, mm/, net/, sched/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
    arch/arm/src/stm32 and stm32f7:  Architecture-specific code is not permitted to modify the errno variable.  drivers/ and libc/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
2018-01-30 17:57:36 -06:00
Gregory Nutt
30f2927101 binfmt/, drivers/, graphics/: Fix several inappropriate accesses to get_errno() that were missed in previous changes (some going back to nuttx-.23). 2018-01-30 17:23:10 -06:00
Gregory Nutt
82982f7972 sched/: Fix several inappropriate accesses to get_errno() that were missed in previous changes (some going back to nuttx-.23). Add new nxsched_setscheduler() and nxsched_getaffinity() which are equivalent to their counterparts without the nx on front. These versions do not modify the errno value. Changed all calls within the OS to use these newer versions of the functions. 2018-01-30 16:16:41 -06:00
Gregory Nutt
170a50c690 Squashed commit of the following:
sched/sched:  Correct some build issues introduced by last set of changes.
    sched/sched:  Add new internal OS function nxsched_setaffinity() that is identical to sched_isetaffinity() except that it does not modify the errno value.  All usage of sched_setaffinity() within the OS is replaced with nxsched_setaffinity().
    sched/sched:  Internal functions sched_reprioritize() and sched_setpriority() no longer movidify the errno value.  Also renamed to nxsched_reprioritize() and sched_setpriority().
    sched/sched:  Add new internal OS function nxsched_getscheduler() that is identical to sched_getscheduler() except that it does not modify the errno value.  All usage of sched_getscheduler() within the OS is replaced with nxsched_getscheduler().
    sched/sched:  Add new internal OS function nxsched_setparam() that is identical to sched_setparam() except that it does not modify the errno value.  All usage of sched_setparam() within the OS is replaced with nxsched_setparam().
    sched/sched:  Add new internal OS function nxsched_getparam() that is identical to sched_getparam() except that it does not modify the errno value (actually, the previous value erroneously neglected to set the errno value to begin with, but this fixes both issues).  All usage of sched_getparam() within the OS is replaced with nxsched_getparam().
2018-01-30 11:08:18 -06:00
Gregory Nutt
947191780f tools: Trivial. define _GNU_SOURCE to be 1, don't just define it. 2018-01-30 11:08:18 -06:00
Matt Thompson
20016b841a Merged in extent3d/nuttx (pull request #587)
SAMDL: Added Timer Compare for Control registers header

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-29 19:20:00 +00:00
Gregory Nutt
8956a6001f tools/logparser.c: A few more minor enhancements. Also add #define _GNU_SOURCE to all C files that call asprintf() 2018-01-29 13:13:29 -06:00