clock: Remove CONFIG_TICKLESS_KERNEL_TIME_UNIT_IN_MICRO_SECS

This was only used in a few places just to indirect the already
perfectly valid SYS_CLOCK_TICKS_PER_SEC value.  There's no reason for
these to ever have been kconfig units, and in fact the distinction
appears to have introduced a hidden/untested bug in the power
subsystem (the two variables were used interchangably, but they were
defined in reciprocal units!).

Just use "ticks" as our time unit pervasively, and clarify the docs to
explain that.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
This commit is contained in:
Andy Ross 2018-09-19 11:08:19 -07:00 committed by Anas Nashif
parent 220d4f8347
commit 393ec71ec3
4 changed files with 5 additions and 20 deletions

View file

@ -28,11 +28,7 @@ extern "C" {
static inline int sys_clock_ticks_per_sec(void) static inline int sys_clock_ticks_per_sec(void)
{ {
#ifdef CONFIG_TICKLESS_KERNEL
return 1000000 / (CONFIG_TICKLESS_KERNEL_TIME_UNIT_IN_MICRO_SECS);
#else
return CONFIG_SYS_CLOCK_TICKS_PER_SEC; return CONFIG_SYS_CLOCK_TICKS_PER_SEC;
#endif
} }
#ifdef CONFIG_TICKLESS_KERNEL #ifdef CONFIG_TICKLESS_KERNEL

View file

@ -516,6 +516,11 @@ config SYS_CLOCK_TICKS_PER_SEC
can require a non-trivial extra amount of stack space (e.g. around 80 can require a non-trivial extra amount of stack space (e.g. around 80
bytes on x86). bytes on x86).
Note that when available and enabled, in "tickless" mode
this config variable specifies the minimum available timing
granularity, not necessarily the number or frequency of
interrupts delivered to the kernel.
config SYS_CLOCK_HW_CYCLES_PER_SEC config SYS_CLOCK_HW_CYCLES_PER_SEC
int "System clock's h/w timer frequency" int "System clock's h/w timer frequency"
help help

View file

@ -97,18 +97,6 @@ config TICKLESS_KERNEL
clock interrupt generation would be stopped at all times. This option clock interrupt generation would be stopped at all times. This option
requires Tickless Idle option to be enabled. requires Tickless Idle option to be enabled.
config TICKLESS_KERNEL_TIME_UNIT_IN_MICRO_SECS
int "Tickless kernel time unit in micro seconds"
default 1000
depends on TICKLESS_KERNEL
help
This option makes the system clock and scheduling granularity.
The default will be one millisecond. This option also determines
the time unit passed in functions like _sys_soc_suspend. The
value should be determined based what the timer hardware and driver
can support. Specifying too small a time unit than what the overall
system speed can support would cause scheduling errors.
config BUSY_WAIT_USES_ALTERNATE_CLOCK config BUSY_WAIT_USES_ALTERNATE_CLOCK
bool "Busy wait uses alternate clock in tickless kernel mode" bool "Busy wait uses alternate clock in tickless kernel mode"
help help

View file

@ -13,11 +13,7 @@
#include <logging/log.h> #include <logging/log.h>
LOG_MODULE_DECLARE(power); LOG_MODULE_DECLARE(power);
#ifdef CONFIG_TICKLESS_KERNEL
#define SECS_TO_TICKS CONFIG_TICKLESS_KERNEL_TIME_UNIT_IN_MICRO_SECS
#else
#define SECS_TO_TICKS CONFIG_SYS_CLOCK_TICKS_PER_SEC #define SECS_TO_TICKS CONFIG_SYS_CLOCK_TICKS_PER_SEC
#endif
#if !(defined(CONFIG_SYS_POWER_STATE_CPU_LPS_SUPPORTED) || \ #if !(defined(CONFIG_SYS_POWER_STATE_CPU_LPS_SUPPORTED) || \
defined(CONFIG_SYS_POWER_STATE_CPU_LPS_1_SUPPORTED) || \ defined(CONFIG_SYS_POWER_STATE_CPU_LPS_1_SUPPORTED) || \