From: kernel test robot <lkp@intel.com>
To: 林濬哲 <m18667909625@163.com>, "Petr Mladek" <pmladek@suse.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Steven Rostedt <rostedt@goodmis.org>,
John Ogness <john.ogness@linutronix.de>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
linux-kernel@vger.kernel.org, m18667909625@163.com
Subject: Re: [PATCH] printk: fold consecutive duplicate messages
Date: Thu, 24 Sep 2026 05:34:32 +0800 [thread overview]
Message-ID: <202609240518.RU2loaID-lkp@intel.com> (raw)
In-Reply-To: <20260921050304.73440-1-m18667909625@163.com>
Hi 林濬哲,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v7.3-rc4 next-20260922]
[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/printk-fold-consecutive-duplicate-messages/20260921-130304
base: linus/master
patch link: https://lore.kernel.org/r/20260921050304.73440-1-m18667909625%40163.com
patch subject: [PATCH] printk: fold consecutive duplicate messages
config: hexagon-allnoconfig (https://download.01.org/0day-ci/archive/20260924/202609240518.RU2loaID-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 6e714c8d91116794cb699cdf80c26afe9cda3ef3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260924/202609240518.RU2loaID-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/202609240518.RU2loaID-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/printk/printk.c:158:7: warning: variable 'n' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
158 | if (dedup_repeat >= 10 ||
| ^~~~~~~~~~~~~~~~~~~~~
159 | now - dedup_window_start > PRINTK_DEDUP_WINDOW_NS) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/printk/printk.c:187:6: note: uninitialized use occurs here
187 | if (n)
| ^
kernel/printk/printk.c:158:3: note: remove the 'if' if its condition is always true
158 | if (dedup_repeat >= 10 ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~
159 | now - dedup_window_start > PRINTK_DEDUP_WINDOW_NS) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
160 | n = dedup_repeat;
161 | dedup_repeat = 0;
162 | dedup_window_start = now;
163 | drop = false;
164 | } else {
| ~~~~~~
165 | drop = true;
| ~~~~~~~~~~~~
166 | }
| ~
kernel/printk/printk.c:140:7: note: initialize the variable 'n' to silence this warning
140 | u32 n;
| ^
| = 0
1 warning generated.
vim +158 kernel/printk/printk.c
124
125 /*
126 * Detect consecutive duplicate printk messages and fold them away.
127 * Returns true if this message should be dropped.
128 *
129 * The dedup key is built from facility, level and the format string.
130 * Format parameters are intentionally not part of the key: va_list
131 * can only be consumed once, and hashing rendered text would put
132 * string comparisons on the printk fast path.
133 */
134 static bool outputs_dedupe(int facility, int level, const char *fmt)
135 {
136 unsigned long flags;
137 bool drop;
138 u64 now;
139 u32 key;
140 u32 n;
141
142 /* error and above must never be folded */
143 if (level <= LOGLEVEL_ERR || !printk_dedup)
144 return false;
145
146 key = hash_64((unsigned long)(fmt ? : ""), 32) ^
147 hash_32(facility ^ level, 32);
148 now = ktime_get_ns();
149
150 raw_spin_lock_irqsave(&dedup_lock, flags);
151
152 if (dedup_active && key == dedup_last_key) {
153 dedup_repeat++;
154 /*
155 * Force a flush when 10 repeats have accumulated or
156 * the 1s window has elapsed, so the summary shows up.
157 */
> 158 if (dedup_repeat >= 10 ||
159 now - dedup_window_start > PRINTK_DEDUP_WINDOW_NS) {
160 n = dedup_repeat;
161 dedup_repeat = 0;
162 dedup_window_start = now;
163 drop = false;
164 } else {
165 drop = true;
166 }
167 } else {
168 if (dedup_active && dedup_repeat) {
169 n = dedup_repeat;
170 drop = false;
171 } else {
172 n = 0;
173 drop = false;
174 }
175 dedup_last_key = key;
176 dedup_repeat = 0;
177 dedup_window_start = now;
178 dedup_active = true;
179 }
180
181 raw_spin_unlock_irqrestore(&dedup_lock, flags);
182
183 /*
184 * Print only after dropping the lock: pr_info() re-enters
185 * vprintk_emit() and would deadlock on dedup_lock otherwise.
186 */
187 if (n)
188 pr_info("last message repeated %u times\n", n);
189
190 return drop;
191 }
192
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-09-23 21:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260921050304.73440-1-m18667909625@163.com>
2026-09-23 20:59 ` [PATCH] printk: fold consecutive duplicate messages kernel test robot
2026-09-23 21:34 ` kernel test robot [this message]
2026-09-25 12:22 ` kernel test robot
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=202609240518.RU2loaID-lkp@intel.com \
--to=lkp@intel.com \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=m18667909625@163.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.