mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Haofeng Li <920484857@qq.com>, John Stultz <jstultz@google.com>,
	Thomas Gleixner <tglx@linutronix.de>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Stephen Boyd <sboyd@kernel.org>, Haofeng Li <13266079573@163.com>
Subject: Re: [PATCH] timekeeping: Move debug sleep time accounting outside spinlock
Date: Wed, 10 Sep 2025 11:12:37 +0800	[thread overview]
Message-ID: <202509101047.oTfSjXyE-lkp@intel.com> (raw)
In-Reply-To: <tencent_6FBD7FB2B5EDA57B1481766C52482D033008@qq.com>

Hi Haofeng,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/timers/core]
[also build test WARNING on linus/master v6.17-rc5 next-20250909]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Haofeng-Li/timekeeping-Move-debug-sleep-time-accounting-outside-spinlock/20250909-183705
base:   tip/timers/core
patch link:    https://lore.kernel.org/r/tencent_6FBD7FB2B5EDA57B1481766C52482D033008%40qq.com
patch subject: [PATCH] timekeeping: Move debug sleep time accounting outside spinlock
config: m68k-allnoconfig (https://download.01.org/0day-ci/archive/20250910/202509101047.oTfSjXyE-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250910/202509101047.oTfSjXyE-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509101047.oTfSjXyE-lkp@intel.com/

All warnings (new ones prefixed by >>):

   kernel/time/timekeeping.c: In function 'timekeeping_resume':
>> kernel/time/timekeeping.c:1986:55: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
    1986 |                 tk_debug_account_sleep_time(&ts_delta);
         |                                                       ^


vim +/if +1986 kernel/time/timekeeping.c

  1929	
  1930	/**
  1931	 * timekeeping_resume - Resumes the generic timekeeping subsystem.
  1932	 */
  1933	void timekeeping_resume(void)
  1934	{
  1935		struct timekeeper *tks = &tk_core.shadow_timekeeper;
  1936		struct clocksource *clock = tks->tkr_mono.clock;
  1937		struct timespec64 ts_new, ts_delta;
  1938		bool inject_sleeptime = false;
  1939		u64 cycle_now, nsec;
  1940		unsigned long flags;
  1941	
  1942		read_persistent_clock64(&ts_new);
  1943	
  1944		clockevents_resume();
  1945		clocksource_resume();
  1946	
  1947		raw_spin_lock_irqsave(&tk_core.lock, flags);
  1948	
  1949		/*
  1950		 * After system resumes, we need to calculate the suspended time and
  1951		 * compensate it for the OS time. There are 3 sources that could be
  1952		 * used: Nonstop clocksource during suspend, persistent clock and rtc
  1953		 * device.
  1954		 *
  1955		 * One specific platform may have 1 or 2 or all of them, and the
  1956		 * preference will be:
  1957		 *	suspend-nonstop clocksource -> persistent clock -> rtc
  1958		 * The less preferred source will only be tried if there is no better
  1959		 * usable source. The rtc part is handled separately in rtc core code.
  1960		 */
  1961		cycle_now = tk_clock_read(&tks->tkr_mono);
  1962		nsec = clocksource_stop_suspend_timing(clock, cycle_now);
  1963		if (nsec > 0) {
  1964			ts_delta = ns_to_timespec64(nsec);
  1965			inject_sleeptime = true;
  1966		} else if (timespec64_compare(&ts_new, &timekeeping_suspend_time) > 0) {
  1967			ts_delta = timespec64_sub(ts_new, timekeeping_suspend_time);
  1968			inject_sleeptime = true;
  1969		}
  1970	
  1971		if (inject_sleeptime) {
  1972			suspend_timing_needed = false;
  1973			__timekeeping_inject_sleeptime(tks, &ts_delta);
  1974		}
  1975	
  1976		/* Re-base the last cycle value */
  1977		tks->tkr_mono.cycle_last = cycle_now;
  1978		tks->tkr_raw.cycle_last  = cycle_now;
  1979	
  1980		tks->ntp_error = 0;
  1981		timekeeping_suspended = 0;
  1982		timekeeping_update_from_shadow(&tk_core, TK_CLOCK_WAS_SET);
  1983		raw_spin_unlock_irqrestore(&tk_core.lock, flags);
  1984	
  1985		if (inject_sleeptime && timespec64_valid_strict(&ts_delta))
> 1986			tk_debug_account_sleep_time(&ts_delta);
  1987	
  1988		/* Resume the clockevent device(s) and hrtimers */
  1989		tick_resume();
  1990		/* Notify timerfd as resume is equivalent to clock_was_set() */
  1991		timerfd_resume();
  1992	}
  1993	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2025-09-10  3:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-09 10:23 Haofeng Li
2025-09-09 11:42 ` Thomas Gleixner
2025-09-09 11:46 ` Thomas Gleixner
2025-09-12 10:33   ` [PATCH WITHDRAWN] " Haofeng Li
2025-09-10  3:12 ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202509101047.oTfSjXyE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=13266079573@163.com \
    --cc=920484857@qq.com \
    --cc=jstultz@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®