#1117002 linux-image-6.12.48+deb13-amd64: warning in arch/x86/kernel/cpu/cpuid-deps.c:117 do_clear_cpu_cap on Intel Atom N450

Package:
src:linux
Source:
src:linux
Submitter:
Laurentiu Pancescu
Date:
2025-12-01 20:31:01 UTC
Severity:
normal
Tags:
#1117002#5
Date:
2025-10-02 05:05:55 UTC
From:
To:
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 ]---

#1117002#10
Date:
2025-10-02 05:20:39 UTC
From:
To:
reportbug seems not to include dmesg output, attaching it now. Thanks!
#1117002#15
Date:
2025-10-12 17:45:42 UTC
From:
To:
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

#1117002#22
Date:
2025-10-13 17:41:46 UTC
From:
To:
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

#1117002#29
Date:
2025-10-17 14:05:48 UTC
From:
To:
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

#1117002#34
Date:
2025-10-17 14:26:17 UTC
From:
To:
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.

#1117002#43
Date:
2025-10-17 15:36:59 UTC
From:
To:
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

#1117002#48
Date:
2025-10-17 15:52:07 UTC
From:
To:
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);
		}
	}

#1117002#53
Date:
2025-10-17 21:02:38 UTC
From:
To:
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

#1117002#58
Date:
2025-10-17 22:44:11 UTC
From:
To:
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."

#1117002#63
Date:
2025-10-18 03:56:20 UTC
From:
To:
Many thanks! The warning still appears with setcpuid=0x70, but if it's
harmless, it's ok.

#1117002#68
Date:
2025-11-27 12:37:57 UTC
From:
To:
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

#1117002#73
Date:
2025-12-01 17:54:00 UTC
From:
To:
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?

#1117002#78
Date:
2025-12-01 20:29:37 UTC
From:
To:
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