Messages in this thread Patch in this message | | | Date | Thu, 29 Apr 2021 07:04:40 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH v11 clocksource 6/6] clocksource: Reduce clocksource-skew threshold for TSC |
| |
On Thu, Apr 29, 2021 at 03:02:36PM +0800, kernel test robot wrote: > Hi "Paul, > > I love your patch! Yet something to improve: > > [auto build test ERROR on tip/timers/core] > [also build test ERROR on tip/x86/core linux/master linus/master v5.12] > [cannot apply to next-20210428] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch] > > url: https://github.com/0day-ci/linux/commits/Paul-E-McKenney/Do-not-mark-clocks-unstable-due-to-delays-for-v5-13/20210429-093259 > base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 2d036dfa5f10df9782f5278fc591d79d283c1fad > config: riscv-randconfig-p002-20210428 (attached as .config) > compiler: riscv64-linux-gcc (GCC) 9.3.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/0day-ci/linux/commit/26be1e45593936a0c04aa1d268522f8c1cb646de > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review Paul-E-McKenney/Do-not-mark-clocks-unstable-due-to-delays-for-v5-13/20210429-093259 > git checkout 26be1e45593936a0c04aa1d268522f8c1cb646de > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=riscv > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > All errors (new ones prefixed by >>): > > kernel/time/clocksource.c: In function '__clocksource_update_freq_scale': > >> kernel/time/clocksource.c:1094:36: error: 'WATCHDOG_MAX_SKEW' undeclared (first use in this function) > 1094 | if (cs->uncertainty_margin < 2 * WATCHDOG_MAX_SKEW) > | ^~~~~~~~~~~~~~~~~ > kernel/time/clocksource.c:1094:36: note: each undeclared identifier is reported only once for each function it appears in > >> kernel/time/clocksource.c:1097:28: error: 'WATCHDOG_THRESHOLD' undeclared (first use in this function) > 1097 | cs->uncertainty_margin = WATCHDOG_THRESHOLD; > | ^~~~~~~~~~~~~~~~~~
Does the patch below help?
Longer term, these definitions will likely need to instead go into a header file, but to move testing along in the here and now...
Thanx, Paul
------------------------------------------------------------------------
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index c228f3727191..328a65ddb959 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c @@ -96,6 +96,20 @@ static char override_name[CS_NAME_LEN]; static int finished_booting; static u64 suspend_start; +/* + * Threshold: 0.0312s, when doubled: 0.0625s. + * Also a default for cs->uncertainty_margin when registering clocks. + */ +#define WATCHDOG_THRESHOLD (NSEC_PER_SEC >> 5) + +/* + * Maximum permissible delay between two readouts of the watchdog + * clocksource surrounding a read of the clocksource being validated. + * This delay could be due to SMIs, NMIs, or to VCPU preemptions. Used as + * a lower bound for cs->uncertainty_margin values when registering clocks. + */ +#define WATCHDOG_MAX_SKEW (50 * NSEC_PER_USEC) + #ifdef CONFIG_CLOCKSOURCE_WATCHDOG static void clocksource_watchdog_work(struct work_struct *work); static void clocksource_select(void); @@ -122,17 +136,9 @@ static int clocksource_watchdog_kthread(void *data); static void __clocksource_change_rating(struct clocksource *cs, int rating); /* - * Interval: 0.5sec Threshold: 0.0312s, when doubled: 0.0625s + * Interval: 0.5sec. */ #define WATCHDOG_INTERVAL (HZ >> 1) -#define WATCHDOG_THRESHOLD (NSEC_PER_SEC >> 5) - -/* - * Maximum permissible delay between two readouts of the watchdog - * clocksource surrounding a read of the clocksource being validated. - * This delay could be due to SMIs, NMIs, or to VCPU preemptions. - */ -#define WATCHDOG_MAX_SKEW (50 * NSEC_PER_USEC) static void clocksource_watchdog_work(struct work_struct *work) {
| |