Gregory Nutt
b54ffe858a
Standardization of some function headers.
2018-03-13 09:52:27 -06:00
Gregory Nutt
e6e7dae05b
sched/clock: Fix a recently introduced name collision
2018-03-12 13:36:06 -06:00
Masayuki Ishikawa
7062ca2c03
Merged in masayuki2009/nuttx.nuttx/lc823450_smp_test (pull request #601 )
...
lc823450 smp test
* sched/clock: Replace critical section APIs with spin lock APIs in clock_gettime.c
This change will improve performance for SMP systems but nothing
changes for non-SMP systems. (Pls see include/nuttx/irq.h)
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
* sched/sched: Remove unnecessary DEBUGASSERT in sched_removereadytorun.c
In SMP mode, rtrtcb is not always at the g_readytorun.head.
This change removes DEBUGASSERT() to avoid this condition.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-02-15 14:18:25 +00: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
e238c8b090
sched/clock/clock_systimer.c: Change the way that the 64-bit time is sampled. Previously, we disabled interrupts before sampling the 64-bit timer since the uint64_t access is not atomic on most CPUs. However, disabling (local) interrupts does not work in the SMP case. In that case, the timer interrupt will be running on only one of the CPUs; disabling interrupts on a different CPU will provide no protection from timer rollover. To work around this, logic was added that samples 64-bit timer is sampled twice and if 32-bit rollover was detected between samples, then loops until there is no rollover.
2018-01-15 11:05:45 -06:00
Masayuki Ishikawa
0ecef4dbcb
clock_systimer: Replace critical section APIs with spinlock APIs. (64bit only)
...
If SMP=n or SMP=y && SPINLOCK_IRQ=n, this works in the same way as before.
If SMP=y && SPINLOCK_IRQ=y, performance will be improved.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2018-01-15 15:08:11 +09:00
Juha Niskanen
cc7af2b0d0
procfs: Fix uptime being close to maximum 32-bit value in certain config
2017-11-10 09:01:39 -06:00
Arjun Hary
b274a97840
Miscellaneous fixes from astyle tool.
2017-08-14 17:19:27 -06:00
Jussi Kivilinna
e835803166
yslog: use monotonic clock for timestamp when available
2017-04-26 10:38:15 -06:00
Jussi Kivilinna
33ddaa0b10
clock: add testing for 32-bit overflow of 64-bit system timer
2017-04-21 08:55:07 -06:00
Jussi Kivilinna
c57d49f420
clock: Add new type ssystime_t for relative 64-bit ticks, change ticks<->time conversion functions to use ssystime_t
2017-04-21 08:51:31 -06:00
Jussi Kivilinna
325ba1a803
clock: add clock_resynchronize and use subseconds RTC
...
Add clock_resynchronize for better synchronization of CLOCK_REALTIME and CLOCK_MONOTONIC to match RTC after resume from low-power state.
Add up_rtc_getdatetime_with_subseconds under CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and resynchronizing) system clock with subseconds accuracy RTC.
2017-04-21 08:45:57 -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
123c520db4
Correct time initialization for the case where time is initialized from settings in the .config file. The correct range for month (tm_mon) internally is 0-11, not 1-12 as it is in the .config file.
2016-10-27 08:36:24 -06:00
Gregory Nutt
3404b3cb4a
sched/: Review and correct some stylistic inconsistencies
2016-08-07 08:32:11 -06:00
Gregory Nutt
18ce4ff57b
sched/: Review and correct some stylistic inconsistencies
2016-08-07 08:25:30 -06:00
Gregory Nutt
94d34bba47
Fix a typo in a Make.defs file
2016-07-28 09:46:28 -06:00
Gregory Nutt
246773faa7
Rename CONFIG_SCHED_TIMEKEEPING to CONFIG_CLOCK_TIMEKEEPING. That is a better compartmentalized name.
2016-07-11 06:54:02 -06:00
Gregory Nutt
f47b69e1f0
Add support for adjtime system call
2016-07-10 16:55:32 -06:00
Gregory Nutt
c326b6320a
Add description of adjtime() from Linux man page
2016-07-10 16:47:06 -06:00
Max Neklyudov
8db29071da
timekeeping: initial implementation
2016-07-10 16:14:25 -06:00
Gregory Nutt
13cac3b592
sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition.
2016-06-11 16:42:42 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
720343612b
Remove some empty file section section header comments
2016-02-17 18:05:03 -06:00
Gregory Nutt
6e3107650d
nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section()
2016-02-14 08:17:46 -06:00
Gregory Nutt
84d4cb007b
clock_systimer: 64-bit timer accesses are not atomic. Noted by Freddie Chopin.
2016-01-22 12:24:36 -06:00
Gregory Nutt
2de5be34e5
Update ChangeLog
2016-01-21 19:29:43 -06:00
Gregory Nutt
032ad1b70b
Remove clock_systimer32 and clock_systimer64. There is now only clock_systimer
2016-01-21 16:49:24 -06:00
Gregory Nutt
b04e2ea021
Trivial improvement to comments
2016-01-21 16:28:36 -06:00
Gregory Nutt
a4f5254cbe
Fix a typo introduced into the last commit
2016-01-21 13:48:35 -06:00
Gregory Nutt
e001f37593
sched/clock/clock_timespec.c: Fix an error in the time conversion
2016-01-21 13:31:00 -06:00
Gregory Nutt
f348e68069
Update to use 64-bit timer when available
2016-01-21 11:54:26 -06:00
Gregory Nutt
a2e1ece873
RTC: Handle RTC failures. If mktime is called with garbage, it may crash
2015-12-21 14:39:40 -06:00
Gregory Nutt
4b29bcee7f
Rename up_rtcinitialize to up_rtc_initialize so that it looks like other RTC interfaces
2015-11-20 08:27:52 -06:00
Gregory Nutt
892ba4f26a
DS1307: Change year bias to 1968 which is a leap year juse like 2000
2015-11-19 15:12:40 -06:00
Gregory Nutt
c34b5108a7
RTC: Fix system time initialization when using an exernal RTC. Fix some bugs in the DS1307/DS3231 RTC driver
2015-11-19 14:54:30 -06:00
Lok
da8950fe5b
Fix an error in clock_timespec_subtract
2015-11-03 07:28:46 -06:00
Gregory Nutt
79d554939e
sched/: Fix some spacing issues
2015-10-07 19:59:14 -06:00
Gregory Nutt
5b51a9fcdd
Standardize the width of all comment boxes in C files
2015-10-02 17:43:18 -06:00
Gregory Nutt
cb9e27c3b0
Standardize naming used for public data and function groupings
2015-10-02 16:30:35 -06:00
Gregory Nutt
99664b7811
Sporadic scheduler: Add logic to collection the partial timer expiration when a sporadic thread is suspended in tickless mode
2015-07-26 15:03:47 -06:00
Max Neklyudov
61af0d511f
Use up_timer_gettime for CLOCK_MONOTONIC in tickless mode. From Max Neklyudov.
2015-06-22 06:37:26 -06:00
Gregory Nutt
16276a4793
Change the order of some operations to prevent a debug assertion from firing.
2015-05-18 06:34:54 -06:00
Gregory Nutt
b4423c1eed
Make some file section headers more consistent with standard
2015-04-08 06:47:36 -06:00
Gregory Nutt
c99d927527
When an RTC is used, clock_systimespec() must subtract the basetime from the RTC time
2015-02-25 07:24:03 -06:00
Gregory Nutt
3724a5e98e
RTC: Remove all backdoor interfaces from rtc.h
2015-02-13 08:41:34 -06:00
Gregory Nutt
d9f960e97b
Fix a problem in clock_systimer64 that occurs when (1) the 64-bit system time is enabled, and (2) the value of CONFIG_USEC_PER_TICK is less than 1 millisconds (such as when using the tickless mode of operation). In that case, the convertion of time to 64-bit millisecond value in clock_systmer64() causes some bad times to be returned. Time was converted to milliseconds, then to configured ticks. Precision was lost in the millisecond convertion.
...
The fix is to first convert time to a 64-bit microsecond value, then to the configured tick value.
Noted by David Sidrane.
2015-02-13 06:13:47 -06:00
Gregory Nutt
147042218b
gettimeofday() and settimeofday(): Move gittimeofdady() from sched/clock to libc/time. All remove gettimeofday() from NuttX system calls. It is only a wrapper around clock_settime() and does not need a trap. gettimeofday() is no longer tried as a core OS interface.
...
gettimeofday has been decremented in POSIX 2008. settimeofday() was never part of POSIX, but I decided to add it to libc as well just for symmetry.
2015-02-12 11:10:46 -06:00
Gregory Nutt
c5ab7c39d3
Eliminates a warning. From Macs N
2015-02-03 06:44:59 -06:00
Gregory Nutt
e69003cbf7
clock_systimespec(): Fixes for compilation errors in certain configurations. From Macs N.
2015-01-30 08:19:40 -06:00
Gregory Nutt
8c28718bcb
alling mq_timedreceived with immediate timeout was getting stuck and not
...
timeout. Immediate timeout is achieved by setting absolute timeout value to
past time, for example abstime={ .tv_sec=0, .tv_nsec=0 }. However absolute
time was converted to relative time using unsigned integer arithmetic and
resulted large ticks count by clock_abstime2ticks, instead of expected negative
ticks value.
Patch corrects clock_abstime2ticks to return negative ticks, if absolute time
is in the past.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@haltian.com>
2014-11-19 09:25:00 -06:00
Gregory Nutt
322f9f401c
Simplify how C source files are selected in the build
2014-10-07 07:42:36 -06:00
Gregory Nutt
da29907ac9
Update TODO list + cosmetic changes to clock_systimer.c
2014-10-03 11:21:35 -06:00
Gregory Nutt
8d43a6bdcd
Fix build error with CONFIG_SYSTEM_TIME64
2014-10-03 10:20:46 -06:00
Gregory Nutt
4a20cd65c5
clock_gettime.c: Fix a cornercase bug in clock_gettime()
2014-09-10 17:10:54 -06:00
Gregory Nutt
c19659d7d2
Fixes to clock bias logic. Remove vestiges of g_tickbias; apply bias instead to g_basetime
2014-09-10 16:36:25 -06:00
Gregory Nutt
fc7bd31e07
last change alters semantics of __HAVE_KERNEL_GLOBALS
2014-08-30 14:44:48 -06:00
Gregory Nutt
2029236ed0
Back out and replace recent kludges for errno and clock_systimer. There is a cleaner way
2014-08-30 14:26:56 -06:00
Gregory Nutt
0ab1b0de25
nuttx/sched: Remove explicit references to errno. That is a problem from within the kernel for certain configurations
2014-08-28 17:00:24 -06:00
Gregory Nutt
9ab67dce75
In some configurations, g_system_tmer must be extern'ed as a private variable
2014-08-28 17:00:03 -06:00
Gregory Nutt
27c48a383e
Don't do 64-bit calculations if accuracy not achievable; Fix compile error in high res RTC mode
2014-08-15 17:48:07 -06:00
Gregory Nutt
eed1d6c619
When reading the system timer, don't read a struct timespec, convert it to a fake tick count, then back to a timespec. Remove CLOCK_ACTIVETIME.. it is non-standard, unused, and gets in the way of changes like this
2014-08-15 03:55:41 -06:00
Gregory Nutt
d4b56eb3cc
Move clock functions from sched/ to sched/clock
2014-08-08 14:43:02 -06:00