lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20070305203549.GA7453@dreamland.darkstar.lan>
Date:	Mon, 5 Mar 2007 21:35:49 +0100
From:	Luca Tettamanti <kronos.it@...il.com>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	linux-kernel@...r.kernel.org
Subject: [BUG] check_tsc_sync_source: using smp_processor_id() in preemptible code

Hi Ingo,
git blame on tsc_sync.c points to you :)

I'm running 2.6.21-rc2, with PREEMP and SMP. I've enabled both hrtimers
and dyntick. CPU hotplug is also configured in (for swsusp).

If I put CPU1 offline and bring it back I get the following notice:

Breaking affinity for irq 1
Breaking affinity for irq 12
Breaking affinity for irq 16
Breaking affinity for irq 18
Breaking affinity for irq 219
CPU 1 is now offline
lockdep: not fixing up alternatives.
lockdep: not fixing up alternatives.
Booting processor 1/1 eip 3000
CPU 1 irqstacks, hard=b0437000 soft=b0435000
Initializing CPU#1
masked ExtINT on CPU#1
Calibrating delay using timer specific routine.. 4270.08 BogoMIPS (lpj=8540177)
CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000 0000e3bd 00000000 00000001
monitor/mwait feature present.
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
CPU: After all inits, caps: bfebfbff 20100000 00000000 00003940 0000e3bd 00000000 00000001
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz stepping 06
BUG: using smp_processor_id() in preemptible [00000001] code: bash/12805
caller is check_tsc_sync_source+0x18/0xeb
 [<b01d26b4>] debug_smp_processor_id+0xa0/0xb4
 [<b0113b3f>] check_tsc_sync_source+0x18/0xeb
 [<b0113518>] __cpu_up+0x144/0x166
 [<b0113280>] do_warm_boot_cpu+0x0/0x1a
 [<b013efe1>] _cpu_up+0x71/0xbb
 [<b013f04e>] cpu_up+0x23/0x34
 [<b024eac3>] store_online+0x3a/0x56
 [<b024ea89>] store_online+0x0/0x56
 [<b024be9a>] sysdev_store+0x1e/0x22
 [<b0195f31>] sysfs_write_file+0xbb/0xe5
 [<b0195e76>] sysfs_write_file+0x0/0xe5
 [<b0164162>] vfs_write+0x8a/0x10c
 [<b01646db>] sys_write+0x41/0x67
 [<b0103f08>] syscall_call+0x7/0xb
 =======================
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Switched to high resolution mode on CPU 1

If I read the code correctly the warning points a serious bug, since
check_tsc_warp (which follows the printk) may sample the TSC on
different CPUs...

.config is attached.

Luca
-- 
"Di tutte le perversioni sessuali, la castita` e` la piu` strana".
Anatole France

View attachment ".config" of type "text/plain" (49896 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ