Dear Maintainer, I'm getting the following warning on the current stable kernel (oldstable doesn't show this issue): ct 02 06:15:53 snowbell kernel: WARNING: CPU: 1 PID: 0 at arch/x86/kernel/cpu/cpuid-deps.c:117 do_clear_cpu_cap+0xde/0x130 Oct 02 06:15:53 snowbell kernel: Modules linked in: Oct 02 06:15:53 snowbell kernel: CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 6.12.48+deb13-amd64 #1 Debian 6.12.48-1 Oct 02 06:15:53 snowbell kernel: Hardware name: ASUSTeK Computer INC. 1005PE/1005P, BIOS 1202 06/23/2010 Oct 02 06:15:53 snowbell kernel: RIP: 0010:do_clear_cpu_cap+0xde/0x130 Oct 02 06:15:53 snowbell kernel: Code: 24 60 65 48 2b 04 25 28 00 00 00 75 67 48 83 c4 68 5b 5d 41 5c 41 5d c3 cc cc cc cc 8b 15 4a 46 e0 01 85 d2 0f 84 6e ff ff ff <0f> 0b e9 67 ff ff ff 48 c7 c7 20 36 86 ac e8 0f ff ff ff f0 4c 0f Oct 02 06:15:53 snowbell kernel: RSP: 0000:ffffade7c00d7e10 EFLAGS: 00010002 Oct 02 06:15:53 snowbell kernel: RAX: 0000000000000000 RBX: ffffade7c00d7e10 RCX: 0000000000000000 Oct 02 06:15:53 snowbell kernel: RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffade7c00d7e70 Oct 02 06:15:53 snowbell kernel: RBP: 0000000000000070 R08: 0000000000000000 R09: ffffade7c00d7c70 Oct 02 06:15:53 snowbell kernel: R10: ffffffffac6b43a8 R11: 0000000000000003 R12: 0000000000000000 Oct 02 06:15:53 snowbell kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 Oct 02 06:15:53 snowbell kernel: FS: 0000000000000000(0000) GS:ffff9ba83d500000(0000) knlGS:0000000000000000 Oct 02 06:15:53 snowbell kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 02 06:15:53 snowbell kernel: CR2: 0000000000000000 CR3: 000000006d822000 CR4: 00000000000006f0 Oct 02 06:15:53 snowbell kernel: Call Trace: Oct 02 06:15:53 snowbell kernel: <TASK> Oct 02 06:15:53 snowbell kernel: early_init_intel.cold+0x34/0x10c Oct 02 06:15:53 snowbell kernel: init_intel+0x27/0x360 Oct 02 06:15:53 snowbell kernel: identify_cpu+0x15e/0x5d0 Oct 02 06:15:53 snowbell kernel: identify_secondary_cpu+0x12/0x40 Oct 02 06:15:53 snowbell kernel: smp_store_cpu_info+0x49/0x60 Oct 02 06:15:53 snowbell kernel: start_secondary+0x7f/0x140 Oct 02 06:15:53 snowbell kernel: common_startup_64+0x13e/0x141 Oct 02 06:15:53 snowbell kernel: </TASK> Oct 02 06:15:53 snowbell kernel: ---[ end trace 0000000000000000 ]--- Oct 02 06:15:53 snowbell kernel: ------------[ cut here ]------------ Oct 02 06:15:53 snowbell kernel: WARNING: CPU: 1 PID: 0 at arch/x86/kernel/cpu/cpuid-deps.c:117 do_clear_cpu_cap+0xde/0x130 Oct 02 06:15:53 snowbell kernel: Modules linked in: Oct 02 06:15:53 snowbell kernel: CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Tainted: G W 6.12.48+deb13-amd64 #1 Debian 6.12.48-1 Oct 02 06:15:53 snowbell kernel: Tainted: [W]=WARN Oct 02 06:15:53 snowbell kernel: Hardware name: ASUSTeK Computer INC. 1005PE/1005P, BIOS 1202 06/23/2010 Oct 02 06:15:53 snowbell kernel: RIP: 0010:do_clear_cpu_cap+0xde/0x130 Oct 02 06:15:53 snowbell kernel: Code: 24 60 65 48 2b 04 25 28 00 00 00 75 67 48 83 c4 68 5b 5d 41 5c 41 5d c3 cc cc cc cc 8b 15 4a 46 e0 01 85 d2 0f 84 6e ff ff ff <0f> 0b e9 67 ff ff ff 48 c7 c7 20 36 86 ac e8 0f ff ff ff f0 4c 0f Oct 02 06:15:53 snowbell kernel: RSP: 0000:ffffade7c00d7d80 EFLAGS: 00010002 Oct 02 06:15:53 snowbell kernel: RAX: 0000000000000000 RBX: ffffade7c00d7d80 RCX: 0000000000000000 Oct 02 06:15:53 snowbell kernel: RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffade7c00d7de0 Oct 02 06:15:53 snowbell kernel: RBP: 0000000000000070 R08: 0000000000000000 R09: ffffade7c00d7c70 Oct 02 06:15:53 snowbell kernel: R10: ffffffffac6b43a8 R11: 0000000000000003 R12: ffffffffac863620 Oct 02 06:15:53 snowbell kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 Oct 02 06:15:53 snowbell kernel: FS: 0000000000000000(0000) GS:ffff9ba83d500000(0000) knlGS:0000000000000000 Oct 02 06:15:53 snowbell kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 02 06:15:53 snowbell kernel: CR2: 0000000000000000 CR3: 000000006d822000 CR4: 00000000000006f0 Oct 02 06:15:53 snowbell kernel: Call Trace: Oct 02 06:15:53 snowbell kernel: <TASK> Oct 02 06:15:53 snowbell kernel: do_clear_cpu_cap+0x108/0x130 Oct 02 06:15:53 snowbell kernel: early_init_intel.cold+0x34/0x10c Oct 02 06:15:53 snowbell kernel: init_intel+0x27/0x360 Oct 02 06:15:53 snowbell kernel: identify_cpu+0x15e/0x5d0 Oct 02 06:15:53 snowbell kernel: identify_secondary_cpu+0x12/0x40 Oct 02 06:15:53 snowbell kernel: smp_store_cpu_info+0x49/0x60 Oct 02 06:15:53 snowbell kernel: start_secondary+0x7f/0x140 Oct 02 06:15:53 snowbell kernel: common_startup_64+0x13e/0x141 Oct 02 06:15:53 snowbell kernel: </TASK> Oct 02 06:15:53 snowbell kernel: ---[ end trace 0000000000000000 ]---
reportbug seems not to include dmesg output, attaching it now. Thanks!
Control: tags -1 + moreinfo Thanks for providing the full dmesg as well in he additional message. This is quite an old system. Can you please provide us as well the full dmesg while booting the most recent kernel in unstable available? 6.16.11-1 (as of this writing). I would be interested to see if it warns about unmet CPU feature dependencies. Regards, Salvatore
Hi Salvatore, many thanks for the quick reply! I attached the dmesg output from kernel 6.16.9-1 from the latest testing live weekly. Is that good enough? Yes, it's an old system from 2009, already slow when I bought it, but still working fine, with a better battery life than my work-provided Thinkpad and with an in-order CPU making it immune to most speculative execution attacks. I use it occasionally, especially to quickly attach to routers with a short LAN cable - but it's also usable for Firefox (with zram enabled). Best regards and many thanks, Laurentiu
Hi, In Debian Laurențiu Păncescu reported to see the following warnings on his (admittely old system) with a Intel Atom CPU N450: [...] [ 0.351035] smp: Bringing up secondary CPUs ... [ 0.351876] smpboot: x86: Booting SMP configuration: [ 0.351888] .... node #0, CPUs: #1 [ 0.008282] Disabled fast string operations [ 0.008282] ------------[ cut here ]------------ [ 0.008282] WARNING: CPU: 1 PID: 0 at arch/x86/kernel/cpu/cpuid-deps.c:123 do_clear_cpu_cap+0xdc/0x130 [ 0.008282] Modules linked in: [ 0.008282] CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 6.16.9+deb14-amd64 #1 PREEMPT(lazy) Debian 6.16.9-1 [ 0.008282] Hardware name: ASUSTeK Computer INC. 1005PE/1005P, BIOS 1202 06/23/2010 [ 0.008282] RIP: 0010:do_clear_cpu_cap+0xdc/0x130 [ 0.008282] Code: 44 24 60 65 48 2b 05 6b 21 96 02 75 67 48 83 c4 68 5b 5d 41 5c 41 5d c3 cc cc cc cc 8b 15 54 1e 03 02 85 d2 0f 84 6f ff ff ff <0f> 0b e9 68 ff ff ff 48 c7 c7 a0 0b f2 b8 e8 11 ff ff ff f0 4c 0f [ 0.008282] RSP: 0000:ffffcd5fc00bfda8 EFLAGS: 00010002 [ 0.008282] RAX: 0000000000000000 RBX: ffffcd5fc00bfda8 RCX: 0000000000000000 [ 0.008282] RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffcd5fc00bfe08 [ 0.008282] RBP: 0000000000000070 R08: 0000000000000000 R09: 706f20676e697274 [ 0.008282] R10: 7473207473616620 R11: 64656c6261736944 R12: 0000000000000000 [ 0.008282] R13: ffff8ad332718090 R14: 000000000000061c R15: 0000000000000000 [ 0.008282] FS: 0000000000000000(0000) GS:ffff8ad378ec7000(0000) knlGS:0000000000000000 [ 0.008282] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.008282] CR2: 0000000000000000 CR3: 000000005842c000 CR4: 00000000000006f0 [ 0.008282] Call Trace: [ 0.008282] <TASK> [ 0.008282] early_init_intel.cold+0x4d/0x11a [ 0.008282] init_intel+0x2a/0x2c0 [ 0.008282] identify_cpu+0x18c/0x750 [ 0.008282] identify_secondary_cpu+0x50/0xa0 [ 0.008282] start_secondary+0x7c/0x160 [ 0.008282] common_startup_64+0x13e/0x141 [ 0.008282] </TASK> [ 0.008282] ---[ end trace 0000000000000000 ]--- [ 0.008282] ------------[ cut here ]------------ [ 0.008282] WARNING: CPU: 1 PID: 0 at arch/x86/kernel/cpu/cpuid-deps.c:123 do_clear_cpu_cap+0xdc/0x130 [ 0.008282] Modules linked in: [ 0.008282] CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Tainted: G W 6.16.9+deb14-amd64 #1 PREEMPT(lazy) Debian 6.16.9-1 [ 0.008282] Tainted: [W]=WARN [ 0.008282] Hardware name: ASUSTeK Computer INC. 1005PE/1005P, BIOS 1202 06/23/2010 [ 0.008282] RIP: 0010:do_clear_cpu_cap+0xdc/0x130 [ 0.008282] Code: 44 24 60 65 48 2b 05 6b 21 96 02 75 67 48 83 c4 68 5b 5d 41 5c 41 5d c3 cc cc cc cc 8b 15 54 1e 03 02 85 d2 0f 84 6f ff ff ff <0f> 0b e9 68 ff ff ff 48 c7 c7 a0 0b f2 b8 e8 11 ff ff ff f0 4c 0f [ 0.008282] RSP: 0000:ffffcd5fc00bfd18 EFLAGS: 00010002 [ 0.008282] RAX: 0000000000000000 RBX: ffffcd5fc00bfd18 RCX: 0000000000000000 [ 0.008282] RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffcd5fc00bfd78 [ 0.008282] RBP: 0000000000000070 R08: 0000000000000000 R09: 706f20676e697274 [ 0.008282] R10: 7473207473616620 R11: 64656c6261736944 R12: ffffffffb8f20ba0 [ 0.008282] R13: ffff8ad332718090 R14: 000000000000061c R15: 0000000000000000 [ 0.008282] FS: 0000000000000000(0000) GS:ffff8ad378ec7000(0000) knlGS:0000000000000000 [ 0.008282] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 0.008282] CR2: 0000000000000000 CR3: 000000005842c000 CR4: 00000000000006f0 [ 0.008282] Call Trace: [ 0.008282] <TASK> [ 0.008282] do_clear_cpu_cap+0x106/0x130 [ 0.008282] early_init_intel.cold+0x4d/0x11a [ 0.008282] init_intel+0x2a/0x2c0 [ 0.008282] identify_cpu+0x18c/0x750 [ 0.008282] identify_secondary_cpu+0x50/0xa0 [ 0.008282] start_secondary+0x7c/0x160 [ 0.008282] common_startup_64+0x13e/0x141 [ 0.008282] </TASK> [ 0.008282] ---[ end trace 0000000000000000 ]--- [ 0.354753] smp: Brought up 1 node, 2 CPUs [ 0.354797] smpboot: Total of 2 processors activated (6666.06 BogoMIPS) Any ideas? Regards, Salvatore
That's a fun one.
This looks to be this code:
pr_info("Disabled fast string operations\n");
setup_clear_cpu_cap(X86_FEATURE_REP_GOOD);
because we can see the pr_info() and I'm assuming that the 'feature' is
X86_FEATURE_REP_GOOD (0x70) which we can see in RSI/RBP.
But X86_FEATURE_REP_GOOD isn't even a real CPU feature, it's one of the
synthetic ones. The only way I can see this happening is if
MSR_IA32_MISC_ENABLE_FAST_STRING is mismatched between the boot CPU and
a secondary.
Could you boot the system on a known good kernel and run this, please?
rdmsr -a 0x000001a0
That'll dump out MSR_IA32_MISC_ENABLE on all the CPUs.
When was the last kernel that worked for you? Also, do you have old
microcode? Can you dump the beginning of /proc/cpuinfo, please?
processor : 21
vendor_id : GenuineIntel
cpu family : 6
model : 170
model name : Intel(R) Core(TM) Ultra 7 155H
stepping : 4
microcode : 0x24
I can see your microcode version in dmesg, but not the cpu
model/family/stepping.
It's probably caused by that. I guess he disabled fast strings in his BIOS and if he switches that setting it would go away. The related code would need to be moved earlier in the boot sequence to make the alternative patching work. But in practice it's unlikely it causes any real functional problems
Based on the CPU information in the dmesg:
smpboot: CPU0: Intel(R) Atom(TM) CPU N450 @ 1.66GHz (family: 0x6,
model: 0x1c, stepping: 0xa)
This code should behave the same way on Boot CPU and secondary CPUs. So,
as Dave mentioned, it is likely to be an (BIOS) issue if it is exposed
inconsistently across CPUs.
if (c->x86_vfm >= INTEL_PENTIUM_M_DOTHAN) {
rdmsrq(MSR_IA32_MISC_ENABLE, misc_enable);
if (misc_enable & MSR_IA32_MISC_ENABLE_FAST_STRING) {
/* X86_FEATURE_ERMS is set based on CPUID */
set_cpu_cap(c, X86_FEATURE_REP_GOOD);
} else {
pr_info("Disabled fast string operations\n");
setup_clear_cpu_cap(X86_FEATURE_REP_GOOD);
setup_clear_cpu_cap(X86_FEATURE_ERMS);
}
}
Hello everyone,
many thanks for the quick replies!
The netbook is from 2009 and has the latest BIOS update offered by Asus,
version 1202 from 2010. I used the BIOS defaults (it doesn't even have
fail-safe and optimized defaults, just "defaults"), and there are basically
no settings you can change: enable/disable onboard audio, LAN and LAN boot,
set the HDD in IDE or AHCI mode, and a sole CPU option "Max CPUID Limit"
("disabled for WIndows XP", but it makes no difference for the warning if I
enable or disable it).
I have been running Debian Stable on the netbook ever since I bought it,
and it worked without any errors or warnings in all versions before Debian
13 with kernel 6.12.43 (I get the same in Debian Testing with kernel
6.16.9). I attached the dmesg output produced by Debian 12 Bookworm, kernel
6.1.0, which works without warnings, and cpuinfo. There's a single CPU, an
Intel Atom N450, seen as two CPUs due to hyperthreading - but I can't
disable hyperthreading in BIOS, either.
"rdmsr -a 0x000001a0" produces the following output:
364972489
364972488
Kind regards,
Laurentiu
initialization for extended Families"). It started honoring the preference set in MSR_IA32_MISC_ENABLE which seems to have unmasked this issue. The commit has the following snippet: "X86_FEATURE_REP_GOOD is cleared in early_init_intel() if MISC_ENABLE.FAST_STRING is 0. But it gets set later on unconditionally for all Family 6 processors in init_intel(). This not only overrides the BIOS preference but also contradicts the earlier check. Fix this by combining the related checks and always relying on the BIOS provided preference for fast string operations."
Many thanks! The warning still appears with setcpuid=0x70, but if it's harmless, it's ok.
Hi! On Friday, 17 October 2025 at 16:26, Dave Hansen wrote: [...] Nov 26 23:25:43 localhost kernel: ------------[ cut here ]------------ Nov 26 23:25:43 localhost kernel: WARNING: CPU: 1 PID: 0 at arch/x86/kernel/cpu/cpuid-deps.c:123 do_clear_cpu_cap+0xdc/0x130 Nov 26 23:25:43 localhost kernel: Modules linked in: Nov 26 23:25:43 localhost kernel: CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 6.17.8-200.fc42.x86_64 #1 PREEMPT(lazy) Nov 26 23:25:43 localhost kernel: Hardware name: FOXCONN TPS01/TPS01, BIOS 080015 03/23/2010 Nov 26 23:25:43 localhost kernel: RIP: 0010:do_clear_cpu_cap+0xdc/0x130 Nov 26 23:25:43 localhost kernel: Code: 44 24 60 65 48 2b 05 5b 7f 49 03 75 67 48 83 c4 68 5b 5d 41 5c 41 5d c3 cc cc cc cc 8> Nov 26 23:25:43 localhost kernel: RSP: 0000:ffffcb40c00bfdb0 EFLAGS: 00010002 Nov 26 23:25:43 localhost kernel: RAX: 0000000000000000 RBX: ffffcb40c00bfdb0 RCX: 0000000000000000 Nov 26 23:25:43 localhost kernel: RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffcb40c00bfe10 Nov 26 23:25:43 localhost kernel: RBP: 0000000000000070 R08: 0000000000000000 R09: ffffcb40c00bfc28 Nov 26 23:25:43 localhost kernel: R10: ffffffff90f39a88 R11: 00000000ffffdfff R12: 0000000000000000 Nov 26 23:25:43 localhost kernel: R13: 0000000000000018 R14: 0000000000000000 R15: 0000000000000000 Nov 26 23:25:43 localhost kernel: FS: 0000000000000000(0000) GS:ffff89baab6c7000(0000) knlGS:0000000000000000 Nov 26 23:25:43 localhost kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Nov 26 23:25:43 localhost kernel: CR2: 0000000000000000 CR3: 0000000019a2c000 CR4: 00000000000006f0 Nov 26 23:25:43 localhost kernel: Call Trace: Nov 26 23:25:43 localhost kernel: <TASK> Nov 26 23:25:43 localhost kernel: early_init_intel.cold+0x47/0x112 Nov 26 23:25:43 localhost kernel: ? cpu_parse_topology+0xa4/0x170 Nov 26 23:25:43 localhost kernel: init_intel+0x26/0x2d0 Nov 26 23:25:43 localhost kernel: identify_cpu+0x193/0x7d0 Nov 26 23:25:43 localhost kernel: identify_secondary_cpu+0x4f/0xb0 Nov 26 23:25:43 localhost kernel: ? lapic_setup_esr+0x4d/0xa0 Nov 26 23:25:43 localhost kernel: start_secondary+0x7a/0x170 Nov 26 23:25:43 localhost kernel: common_startup_64+0x13e/0x141 Nov 26 23:25:43 localhost kernel: </TASK> Nov 26 23:25:43 localhost kernel: ---[ end trace 0000000000000000 ]--- Nov 26 23:25:43 localhost kernel: ------------[ cut here ]------------ Admittedly, the machine is 15 years old. # rdmsr -a 0x000001a0 60840488 60840488 60840488 60840489 Out of available Fedora kernels, the last one without the WARNING is 6.9.12. I have version 0x107. I think there's no newer one for Atom D510. # head -n 27 /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU D510 @ 1.66GHz stepping : 10 microcode : 0x107 cpu MHz : 1666.655 cache size : 512 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 ... Regards, Dominik
and mis-programmed this MSR on one of the CPUs. We can shut the warning up, of course. But it _is_ a quite valid warning. I'm just not sure how much code we want to add to the kernel to silence a warning on 15-year-old CPUs with buggy BIOSes. Are there any ill effects other than the warning splat?
I appreciate the explanation. Buggy BIOSes are a sad fact of life. Can I fix that with the following? wrmsr -p 3 0x000001a0 60840488 Would that change anything? Probably not worth any effort, then. Kernel becomes tainted, which may lead to bug reports of other valid issues get rejected. I guess that's my main concern. Regards, Dominik