History log of /openbmc/linux/init/calibrate.c (Results 151 – 175 of 312)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 10e69627 01-Jul-2011 Ingo Molnar <mingo@elte.hu>

Merge commit 'v3.0-rc5' into perf/core

Merge reason: Pick up the latest fixes.

Signed-off-by: Ingo Molnar <mingo@elte.hu>


# 5b944a71 30-Jun-2011 James Morris <jmorris@namei.org>

Merge branch 'linus' into next


# 6da49a29 30-Jun-2011 Benjamin Herrenschmidt <benh@kernel.crashing.org>

Merge remote branch 'origin/master' into next


# 8eb2c0ee 29-Jun-2011 Keith Packard <keithp@keithp.com>

Merge branch 'drm-intel-fixes' into drm-intel-next


Revision tags: v3.0-rc5
# 20733d59 24-Jun-2011 Paul Mundt <lethal@linux-sh.org>

Merge branch 'fbdev/stable-updates'


# 74d83b7e 23-Jun-2011 Nicholas Bellinger <nab@linux-iscsi.org>

Merge tag 'v3.0-rc4' of /pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus


# 1b19ca9f 22-Jun-2011 Russell King <rmk+kernel@arm.linux.org.uk>

Fix CPU spinlock lockups on secondary CPU bringup

Secondary CPU bringup typically calls calibrate_delay() during its
initialization. However, calibrate_delay() modifies a global variable
(loops_per

Fix CPU spinlock lockups on secondary CPU bringup

Secondary CPU bringup typically calls calibrate_delay() during its
initialization. However, calibrate_delay() modifies a global variable
(loops_per_jiffy) used for udelay() and __delay().

A side effect of 71c696b1 ("calibrate: extract fall-back calculation
into own helper") introduced in the 2.6.39 merge window means that we
end up with a substantial period where loops_per_jiffy is zero. This
causes the spinlock debugging code to malfunction:

u64 loops = loops_per_jiffy * HZ;
for (;;) {
for (i = 0; i < loops; i++) {
if (arch_spin_trylock(&lock->raw_lock))
return;
__delay(1);
}
...
}

by never calling arch_spin_trylock() - resulting in the CPU locking
up in an infinite loop inside __spin_lock_debug().

Work around this by only writing to loops_per_jiffy only once we have
completed all the calibration decisions.

Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: <stable@kernel.org> (2.6.39-stable)
--
Better solutions (such as omitting the calibration for secondary CPUs,
or arranging for calibrate_delay() to return the LPJ value and leave
it to the caller to decide where to store it) are a possibility, but
would be much more invasive into each architecture.

I think this is the best solution for -rc and stable, but it should be
revisited for the next merge window.

init/calibrate.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

show more ...


# 2cd1176b 21-Jun-2011 Keith Packard <keithp@keithp.com>

Merge branch 'drm-intel-fixes' into drm-intel-next


# 9f6ec8d6 21-Jun-2011 David S. Miller <davem@davemloft.net>

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/rtlwifi/pci.c
net/netfilter/ipvs/ip_

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/rtlwifi/pci.c
net/netfilter/ipvs/ip_vs_core.c

show more ...


Revision tags: v3.0-rc4
# 1f2d9c9d 16-Jun-2011 Patrick McHardy <kaber@trash.net>

Merge branch 'master' of /repos/git/net-next-2.6


# d0459e1a 16-Jun-2011 Paul Mundt <lethal@linux-sh.org>

Merge branches 'common/dma' and 'sh/stable-updates' into sh-latest


# de695e15 15-Jun-2011 Borislav Petkov <borislav.petkov@amd.com>

init/calibrate.c: remove annoying printk

Remove calibrate_delay_direct()'s KERN_DEBUG printk related to bogomips
calculation as it appears when booting every core on setups with
'ignore_loglevel' wh

init/calibrate.c: remove annoying printk

Remove calibrate_delay_direct()'s KERN_DEBUG printk related to bogomips
calculation as it appears when booting every core on setups with
'ignore_loglevel' which dmesg people scan for possible issues. As the
message doesn't show very useful information to the widest audience of
kernel boot message gazers, it should be removed.

Introduced by commit d2b463135f84 ("init/calibrate.c: fix for critical
bogoMIPS intermittent calculation failure").

Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Cc: Andrew Worsley <amworsley@gmail.com>
Cc: Phil Carmody <ext-phil.2.carmody@nokia.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

show more ...


Revision tags: v3.0-rc3
# 5be5758c 10-Jun-2011 Jiri Kosina <jkosina@suse.cz>

Merge branch 'master' into for-next

Sync with Linus' tree to be able to apply patches against new
code I have in queue.


# a61944c2 08-Jun-2011 Michal Marek <mmarek@suse.cz>

Merge commit 'v3.0-rc1' into kbuild/kconfig


# 2e483528 07-Jun-2011 Michal Marek <mmarek@suse.cz>

Merge commit 'v3.0-rc1' into kbuild/kbuild


# aa72f689 06-Jun-2011 Mark Brown <broonie@opensource.wolfsonmicro.com>

Merge branch 'for-3.0' into for-3.1


Revision tags: v3.0-rc2
# 8181d3ef 30-May-2011 Paul Mundt <lethal@linux-sh.org>

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh-fixes-for-linus


Revision tags: v3.0-rc1
# 6288cf1e 29-May-2011 Len Brown <len.brown@intel.com>

Merge branches 'acpica', 'aml-custom', 'bugzilla-16548', 'bugzilla-20242', 'd3-cold', 'ec-asus' and 'thermal-fix' into release


# ea77f7a2 26-May-2011 Eric Paris <eparis@redhat.com>

Merge commit 'v2.6.39' into 20110526

Conflicts:
lib/flex_array.c
security/selinux/avc.c
security/selinux/hooks.c
security/selinux/ss/policydb.c
security/smack/smack_lsm.c


# de66ee97 26-May-2011 Ingo Molnar <mingo@elte.hu>

Merge branch 'linus' into x86/urgent

Merge reason: we want to queue up a dependent patch.

Signed-off-by: Ingo Molnar <mingo@elte.hu>


# 1102c660 26-May-2011 Ingo Molnar <mingo@elte.hu>

Merge branch 'linus' into perf/urgent

Merge reason: Linus applied an overlapping commit:

5f2e8e2b0bf0: kernel/watchdog.c: Use proper ANSI C prototypes

So merge it in to make sure we can iterate

Merge branch 'linus' into perf/urgent

Merge reason: Linus applied an overlapping commit:

5f2e8e2b0bf0: kernel/watchdog.c: Use proper ANSI C prototypes

So merge it in to make sure we can iterate the file without conflicts.

Signed-off-by: Ingo Molnar <mingo@elte.hu>

show more ...


# d2b46313 24-May-2011 Andrew Worsley <amworsley@gmail.com>

init/calibrate.c: fix for critical bogoMIPS intermittent calculation failure

A fix to the TSC (Time Stamp Counter) based bogoMIPS calculation used on
secondary CPUs which has two faults:

1: Not han

init/calibrate.c: fix for critical bogoMIPS intermittent calculation failure

A fix to the TSC (Time Stamp Counter) based bogoMIPS calculation used on
secondary CPUs which has two faults:

1: Not handling wrapping of the lower 32 bits of the TSC counter on
32bit kernel - perhaps TSC is not reset by a warm reset?

2: TSC and Jiffies are no incrementing together properly. Either
jiffies increment too quickly or Time Stamp Counter isn't incremented
in during an SMI but the real time clock is and jiffies are
incremented.

Case 1 can result in a factor of 16 too large a value which makes udelay()
values too small and can cause mysterious driver errors. Case 2 appears
to give smaller 10-15% errors after averaging but enough to cause
occasional failures on my own board

I have tested this code on my own branch and attach patch suitable for
current kernel code. See below for examples of the failures and how the
fix handles these situations now.

I reported this issue earlier here:
Intermittent problem with BogoMIPs calculation on Intel AP CPUs -
http://marc.info/?l=linux-kernel&m=129947246316875&w=4

I suspect this issue has been seen by others but as it is intermittent and
bogoMIPS for secondary CPUs are no longer printed out it might have been
difficult to identify this as the cause. Perhaps these unresolved issues,
although quite old, might be relevant as possibly this fault has been
around for a while. In particular Case 1 may only be relevant to 32bit
kernels on newer HW (most people run 64bit kernels?). Case 2 is less
dramatic since the earlier fix in this area and also intermittent.

Re: bogomips discrepancy on Intel Core2 Quad CPU -
http://marc.info/?l=linux-kernel&m=118929277524298&w=4
slow system and bogus bogomips -
http://marc.info/?l=linux-kernel&m=116791286716107&w=4
Re: Re: [RFC-PATCH] clocksource: update lpj if clocksource has -
http://marc.info/?l=linux-kernel&m=128952775819467&w=4

This issue is masked a little by commit feae3203d711db0a ("timers, init:
Limit the number of per cpu calibration bootup messages") which only
prints out the first bogoMIPS value making it much harder to notice other
values differing. Perhaps it should be changed to only suppress them when
they are similar values?

Here are some outputs showing faults occurring and the new code handling
them properly. See my earlier message for examples of the original
failure.

Case 1: A Time Stamp Counter wrap:
...
Calibrating delay loop (skipped), value calculated using timer
frequency.. 6332.70 BogoMIPS (lpj=31663540)
....
calibrate_delay_direct() timer_rate_max=31666493
timer_rate_min=31666151 pre_start=4170369255 pre_end=4202035539
calibrate_delay_direct() timer_rate_max=2425955274
timer_rate_min=2425954941 pre_start=4265368533 pre_end=2396356387
calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap
around start=4265368581 >=post_end=2396356511
calibrate_delay_direct() timer_rate_max=31666274
timer_rate_min=31665942 pre_start=2440373374 pre_end=2472039515
calibrate_delay_direct() timer_rate_max=31666492
timer_rate_min=31666160 pre_start=2535372139 pre_end=2567038422
calibrate_delay_direct() timer_rate_max=31666455
timer_rate_min=31666207 pre_start=2630371084 pre_end=2662037415
Calibrating delay using timer specific routine.. 6333.28 BogoMIPS (lpj=31666428)
Total of 2 processors activated (12665.99 BogoMIPS).
....

Case 2: Some thing (presumably the SMM interrupt?) causing the
very low increase in TSC counter for the DELAY_CALIBRATION_TICKS
increase in jiffies
...
Calibrating delay loop (skipped), value calculated using timer
frequency.. 6333.25 BogoMIPS (lpj=31666270)
...
calibrate_delay_direct() timer_rate_max=31666483
timer_rate_min=31666074 pre_start=4199536526 pre_end=4231202809
calibrate_delay_direct() timer_rate_max=864348 timer_rate_min=864016
pre_start=2405343672 pre_end=2406207897
calibrate_delay_direct() timer_rate_max=31666483
timer_rate_min=31666179 pre_start=2469540464 pre_end=2501206823
calibrate_delay_direct() timer_rate_max=31666511
timer_rate_min=31666122 pre_start=2564539400 pre_end=2596205712
calibrate_delay_direct() timer_rate_max=31666084
timer_rate_min=31665685 pre_start=2659538782 pre_end=2691204657
calibrate_delay_direct() dropping min bogoMips estimate 1 = 864348
Calibrating delay using timer specific routine.. 6333.27 BogoMIPS (lpj=31666390)
Total of 2 processors activated (12666.53 BogoMIPS).
...

After 70 boots I saw 2 variations <1% slip through

[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: fix straggly printk mess]
Signed-off-by: Andrew Worsley <amworsley@gmail.com>
Reviewed-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

show more ...


# b73077eb 24-May-2011 Dmitry Torokhov <dmitry.torokhov@gmail.com>

Merge branch 'next' into for-linus


# 366a2382 23-May-2011 Jiri Kosina <jkosina@suse.cz>

Merge branches 'doc', 'multitouch', 'upstream' and 'upstream-fixes' into for-linus


Revision tags: v2.6.39
# 6b7b8e48 18-May-2011 Jiri Kosina <jkosina@suse.cz>

Merge branch 'master' into upstream.

This is sync with Linus' tree to receive KEY_IMAGES definition
that went in through input tree.


12345678910>>...13