From: Gabriel C <nix.or.die@googlemail.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
LKML <linux-kernel@vger.kernel.org>,
Adrian Bunk <bunk@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Natalie Protasevich <protasnb@gmail.com>,
Gabriel C <crazy@frugalware.org>, Andi Kleen <ak@suse.de>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: 2.6.25-rc5-git6: Reported regressions from 2.6.24
Date: Tue, 18 Mar 2008 05:24:36 +0100 [thread overview]
Message-ID: <47DF4404.8080202@googlemail.com> (raw)
In-Reply-To: <47DF3E8B.6040502@googlemail.com>
Gabriel C wrote:
> Gabriel C wrote:
>> Thomas Gleixner wrote:
>>> On Mon, 17 Mar 2008, Gabriel C wrote:
>>>>> Subject : Clocksource tsc is always unstable with 2.6.25-* kernels and CONFIG_NO_HZ=y on my box
>>>>> Submitter : Gabriel C <nix.or.die@googlemail.com>
>>>>> Date : 2008-02-24 01:31 (22 days old)
>>>>> References : http://lkml.org/lkml/2008/2/23/380
>>>>> http://lkml.org/lkml/2008/2/24/281
>>>>> Handled-By : Thomas Gleixner <tglx@linutronix.de>
>>>>>
>>>> Thomas do you want me to bisect ?
>>> That'd be great.
>> Ok I'll start doing that later on today.
>>
>
> I managed to bisect 'one of the bugs' down , I got some problems and used skip once because a revision didn't compiled ,
> but it seems bisect got the right commit still. Sadly it seems there are 2 different bugs.
>
> Also before I've started the bisect I've tested linux-next to be sure the bug(s) still exists and while rc1 got that already
> I've started to bisect 2.6.24 -> 2.6.25-rc1.
>
> cat .git/refs/bisect/bad
> 1ada5cba6a0318f90e45b38557e7b5206a9cba38
>
> git show 1ada5cba6a0318f90e45b38557e7b5206a9cba38
> commit 1ada5cba6a0318f90e45b38557e7b5206a9cba38
> Author: Andi Kleen <ak@suse.de>
> Date: Wed Jan 30 13:30:02 2008 +0100
>
> clocksource: make clocksource watchdog cycle through online CPUs
>
> This way it checks if the clocks are synchronized between CPUs too.
> This might be able to detect slowly drifting TSCs which only
> go wrong over longer time.
>
> Signed-off-by: Andi Kleen <ak@suse.de>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>
> diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
> index cabfa19..edd5ef8 100644
> --- a/kernel/time/clocksource.c
> +++ b/kernel/time/clocksource.c
> @@ -142,8 +142,13 @@ static void clocksource_watchdog(unsigned long data)
> }
>
> if (!list_empty(&watchdog_list)) {
> - __mod_timer(&watchdog_timer,
> - watchdog_timer.expires + WATCHDOG_INTERVAL);
> + /* Cycle through CPUs to check if the CPUs stay synchronized to
> + * each other. */
> + int next_cpu = next_cpu(raw_smp_processor_id(), cpu_online_map);
> + if (next_cpu >= NR_CPUS)
> + next_cpu = first_cpu(cpu_online_map);
> + watchdog_timer.expires += WATCHDOG_INTERVAL;
> + add_timer_on(&watchdog_timer, next_cpu);
> }
> spin_unlock(&watchdog_lock);
> }
> @@ -165,7 +170,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
> if (!started && watchdog) {
> watchdog_last = watchdog->read();
> watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
> - add_timer(&watchdog_timer);
> + add_timer_on(&watchdog_timer, first_cpu(cpu_online_map));
> }
> } else {
> if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
> @@ -186,7 +191,8 @@ static void clocksource_check_watchdog(struct clocksource *cs)
> watchdog_last = watchdog->read();
> watchdog_timer.expires =
> jiffies + WATCHDOG_INTERVAL;
> - add_timer(&watchdog_timer);
> + add_timer_on(&watchdog_timer,
> + first_cpu(cpu_online_map));
> }
> }
> }
>
>
> git bisect log
> git-bisect start
> # bad: [19af35546de68c872dcb687613e0902a602cb20e] Linux 2.6.25-rc1
> git-bisect bad 19af35546de68c872dcb687613e0902a602cb20e
> # good: [49914084e797530d9baaf51df9eda77babc98fa8] Linux 2.6.24
> git-bisect good 49914084e797530d9baaf51df9eda77babc98fa8
> # bad: [d2e626f45cc450c00f5f98a89b8b4c4ac3c9bf5f] x86: add PAGE_KERNEL_EXEC_NOCACHE
> git-bisect bad d2e626f45cc450c00f5f98a89b8b4c4ac3c9bf5f
> # good: [fb46990dba94866462e90623e183d02ec591cf8f] [NETFILTER]: nf_queue: remove unnecessary hook existance check
> git-bisect good fb46990dba94866462e90623e183d02ec591cf8f
> # good: [936722922f6d2366378de606a40c14f96915474d] [IPV4] fib_trie: compute size when needed
> git-bisect good 936722922f6d2366378de606a40c14f96915474d
> # bad: [ff14c6164bd532a6dc9025c07d3b562f839f00a9] x86: x86-64 ia32 ptrace pt_regs cleanup
> git-bisect bad ff14c6164bd532a6dc9025c07d3b562f839f00a9
> # good: [c087567d3ffb2c7c61e091982e6ca45478394f1a] SUNRPC: Remove the obsolete RPC_WAITQ macro
> git-bisect good c087567d3ffb2c7c61e091982e6ca45478394f1a
> # bad: [af7a78e9258ffcca681e080cbc857f854869144f] x86: move mce related declarations
> git-bisect bad af7a78e9258ffcca681e080cbc857f854869144f
> # good: [34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a] SUNRPC: Don't bother changing the sigmask for asynchronous RPC calls
> git-bisect good 34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a
> # bad: [83bd01024b1fdfc41d9b758e5669e80fca72df66] x86: protect against sigaltstack wraparound
> git-bisect bad 83bd01024b1fdfc41d9b758e5669e80fca72df66
> # good: [efd9ac8630e89b9ee7ce64008bd7783952374f37] time: fold __get_realtime_clock_ts() into getnstimeofday()
> git-bisect good efd9ac8630e89b9ee7ce64008bd7783952374f37
> # bad: [37a47db8d7f0f38dac5acf5a13abbc8f401707fa] x86: assign IRQs to HPET timers, fix
> git-bisect bad 37a47db8d7f0f38dac5acf5a13abbc8f401707fa
> # skip: [316da3b3fc8efa9a5d2c99e0d449f01ff38c6aba] x86: restrict PIT clocksource usage
> git-bisect skip 316da3b3fc8efa9a5d2c99e0d449f01ff38c6aba
> # bad: [4713e22ce81eb8b3353e16435362eb3d0ec95640] clocksource: add unregister function to disable unusable clocksources
> git-bisect bad 4713e22ce81eb8b3353e16435362eb3d0ec95640
> # bad: [1ada5cba6a0318f90e45b38557e7b5206a9cba38] clocksource: make clocksource watchdog cycle through online CPUs
> git-bisect bad 1ada5cba6a0318f90e45b38557e7b5206a9cba38
> # good: [1077f5a917b7c630231037826b344b2f7f5b903f] clocksource.c: use init_timer_deferrable for clocksource_watchdog
> git-bisect good 1077f5a917b7c630231037826b344b2f7f5b903f
>
>
> Also the broken revision died with that :
>
> arch/x86/kernel/i8253.c: In function 'init_pit_clocksource':
> arch/x86/kernel/i8253.c:207: error: implicit declaration of function 'is_hpet_enabled'
> make[1]: *** [arch/x86/kernel/i8253.o] Error 1
> make: *** [arch/x86/kernel] Error 2
>
> If you tell me on how to fix that I'll restart the bisect from there , just in case ..
>
>
> Also reverting the commit from 2.6.25-rc1 fixes the 'Tsc being unstable thing' but it does not fix the hang
> when I boot with clocksource=acpi_pm so that seems to be introduced in a different commit.
>
> I will try to bisect this hang also , most probably on weekend.
>
>
> Also I reverted that commit from git head and an kernel compiles right now, I'll let you know in a bit if that worked out.
Worked out :)
git head - 1ada5cba6a0318f90e45b38557e7b5206a9cba38 works here.
dmesg|grep clocksource
[ 0.563915] Time: tsc clocksource has been installed.
uname -a
Linux lara 2.6.25-rc6-00014-gbde4f8f-dirty #2 SMP PREEMPT Tue Mar 18 04:48:53 CET 2008 i686 GNU/Linux
Gabriel
next prev parent reply other threads:[~2008-03-18 4:24 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-16 23:18 2.6.25-rc5-git6: Reported regressions from 2.6.24 Rafael J. Wysocki
2008-03-16 23:33 ` Linus Torvalds
2008-03-16 23:38 ` Rafael J. Wysocki
2008-03-17 0:20 ` Gabriel C
2008-03-17 16:17 ` Thomas Gleixner
2008-03-17 18:20 ` Gabriel C
2008-03-18 4:01 ` Gabriel C
2008-03-18 4:24 ` Gabriel C [this message]
2008-03-21 15:24 ` Gabriel C
2008-03-21 16:26 ` Thomas Gleixner
2008-03-21 16:46 ` Gabriel C
2008-03-21 18:11 ` Gabriel C
2008-03-21 18:49 ` Thomas Gleixner
2008-03-21 19:23 ` Gabriel C
2008-03-21 20:55 ` Gabriel C
2008-03-21 21:15 ` Thomas Gleixner
2008-03-21 21:59 ` Gabriel C
2008-03-21 22:09 ` Thomas Gleixner
2008-03-22 11:21 ` Thomas Gleixner
2008-03-22 13:34 ` Gabriel C
2008-03-22 14:30 ` Thomas Gleixner
2008-03-22 15:13 ` Gabriel C
2008-03-22 16:32 ` Thomas Gleixner
2008-03-22 21:55 ` Thomas Gleixner
2008-03-22 22:41 ` Gabriel C
2008-03-23 11:00 ` Gabriel C
2008-03-23 23:31 ` Gabriel C
2008-03-24 10:24 ` Thomas Gleixner
2008-03-24 22:33 ` Gabriel C
2008-03-25 8:06 ` Thomas Gleixner
2008-03-26 12:43 ` Gabriel C
2008-03-26 14:51 ` Thomas Gleixner
2008-03-22 14:25 ` Andi Kleen
2008-03-22 14:41 ` Thomas Gleixner
2008-03-17 6:47 ` Jason Wu
2008-03-17 21:36 ` Rafael J. Wysocki
2008-03-23 19:01 ` Christian Kujau
2008-03-23 19:06 ` Rafael J. Wysocki
2008-03-23 19:40 ` Chr
2008-03-23 21:17 ` Christian Kujau
2008-03-23 21:29 ` Rafael J. Wysocki
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=47DF4404.8080202@googlemail.com \
--to=nix.or.die@googlemail.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=bunk@kernel.org \
--cc=crazy@frugalware.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=protasnb@gmail.com \
--cc=rjw@sisk.pl \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox