[PATCH 2/2] powerpc/time: Only cap decrementer when watchdog is enabled
kbuild test robot
lkp at intel.com
Sat Sep 29 14:11:05 AEST 2018
Hi Anton,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.19-rc5 next-20180928]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Anton-Blanchard/powerpc-time-Use-clockevents_register_device-fixing-an-issue-with-large-decrementer/20180929-093322
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allnoconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
arch/powerpc/kernel/time.c: In function 'timer_interrupt':
>> arch/powerpc/kernel/time.c:580:44: error: 'watchdog_cpumask' undeclared (first use in this function); did you mean 'proc_watchdog_cpumask'?
cpumask_test_cpu(smp_processor_id(), &watchdog_cpumask))
^~~~~~~~~~~~~~~~
proc_watchdog_cpumask
arch/powerpc/kernel/time.c:580:44: note: each undeclared identifier is reported only once for each function it appears in
vim +580 arch/powerpc/kernel/time.c
549
550 /*
551 * timer_interrupt - gets called when the decrementer overflows,
552 * with interrupts disabled.
553 */
554 void timer_interrupt(struct pt_regs *regs)
555 {
556 struct clock_event_device *evt = this_cpu_ptr(&decrementers);
557 u64 *next_tb = this_cpu_ptr(&decrementers_next_tb);
558 struct pt_regs *old_regs;
559 u64 now;
560
561 /* Some implementations of hotplug will get timer interrupts while
562 * offline, just ignore these and we also need to set
563 * decrementers_next_tb as MAX to make sure __check_irq_replay
564 * don't replay timer interrupt when return, otherwise we'll trap
565 * here infinitely :(
566 */
567 if (unlikely(!cpu_online(smp_processor_id()))) {
568 *next_tb = ~(u64)0;
569 set_dec(decrementer_max);
570 return;
571 }
572
573 /* Ensure a positive value is written to the decrementer, or else
574 * some CPUs will continue to take decrementer exceptions. When the
575 * PPC_WATCHDOG (decrementer based) is configured, keep this at most
576 * 31 bits, which is about 4 seconds on most systems, which gives
577 * the watchdog a chance of catching timer interrupt hard lockups.
578 */
579 if (IS_ENABLED(CONFIG_PPC_WATCHDOG) &&
> 580 cpumask_test_cpu(smp_processor_id(), &watchdog_cpumask))
581 set_dec(0x7fffffff);
582 else
583 set_dec(decrementer_max);
584
585 /* Conditionally hard-enable interrupts now that the DEC has been
586 * bumped to its maximum value
587 */
588 may_hard_irq_enable();
589
590
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 5832 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20180929/8d938211/attachment.gz>
More information about the Linuxppc-dev
mailing list