17 Jun, 2009
2 commits
-
This adds a KERN_DEFAULT loglevel marker, for when you cannot decide
which loglevel you want, and just want to keep an existing printk
with the default loglevel.The difference between having KERN_DEFAULT and having no log-level
marker at all is two-fold:- having the log-level marker will now force a new-line if the
previous printout had not added one (perhaps because it forgot,
but perhaps because it expected a continuation)- having a log-level marker is required if you are printing out a
message that otherwise itself could perhaps otherwise be mistaken
for a log-level.Signed-of-by: Linus Torvalds
-
It used to be that we would only look at the log-level in a printk()
after explicit newlines, which can cause annoying problems when the
previous printk() did not end with a '\n'. In that case, the log-level
marker would be just printed out in the middle of the line, and be
seen as just noise rather than change the logging level.This changes things to always look at the log-level in the first
bytes of the printout. If a log level marker is found, it is always
used as the log-level. Additionally, if no newline existed, one is
added (unless the log-level is the explicit KERN_CONT marker, to
explicitly show that it's a continuation of a previous line).Acked-by: Arjan van de Ven
Signed-off-by: Linus Torvalds
06 Apr, 2009
1 commit
-
* 'printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
printk: correct the behavior of printk_timed_ratelimit()
vsprintf: unify the format decoding layer for its 3 users, cleanup
fix regression from "vsprintf: unify the format decoding layer for its 3 users"
vsprintf: fix bug in negative value printing
vsprintf: unify the format decoding layer for its 3 users
vsprintf: add binary printf
printk: introduce printk_once()Fix trivial conflicts (printk_once vs log_buf_kexec_setup() added near
each other) in include/linux/kernel.h.
03 Apr, 2009
1 commit
-
It would be nice to be able to extract the dmesg log from a vmcore file
without needing to keep the debug symbols for the running kernel handy all
the time. We have a facility to do this in /proc/vmcore. This patch adds
the log_buf and log_end symbols to the vmcoreinfo area so that tools (like
makedumpfile) can easily extract the dmesg logs from a vmcore image.[akpm@linux-foundation.org: several fixes and cleanups]
[akpm@linux-foundation.org: fix unused log_buf_kexec_setup()]
[akpm@linux-foundation.org: build fix]
Signed-off-by: Neil Horman
Cc: Simon Horman
Acked-by: Vivek Goyal
Cc: Neil Horman
Cc: Simon Horman
Cc: Vivek Goyal
Cc: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Mar, 2009
1 commit
-
Impact: fix jiffies-comparison sign-wrap behavior
The behavior provided by printk_timed_ratelimit() is, in some
situations, probably not what a caller would reasonably expect:bool printk_timed_ratelimit(unsigned long *caller_jiffies,
unsigned int interval_msecs)
{
if (*caller_jiffies == 0 || time_after(jiffies, *caller_jiffies)) {
*caller_jiffies = jiffies + msecs_to_jiffies(interval_msecs);
return true;
}
return false;
}On a 32 bit computer, if printk_timed_ratelimit() is initially called at
time jiffies == Ja, *caller_jiffies is set to
Ja + msecs_to_jiffies(interval_msecs): let's say Ja + 42 for this
example.If this caller then doesn't call printk_timed_ratelimit() until
jiffies == Ja + (1 << 31) + 42 (which can happen as soon as ~ 25 days
later on a 1000 HZ system), printk_timed_ratelimit() will then always
return false to this caller until jiffies loops completely (1 << 31 more
ticks).Ths change makes it only return false if jiffies is in the small
time window starting at the previous call when true was returned and
ending interval_msecs later. Note that if jiffies loops completely
between two calls to printk_timed_ratelimit(), it will obviously still
wrongly return false, but this is something with a low probability.If something completely reliable is needed I guess jiffies_64 must be
used (which this change does not do).Signed-off-by: Guillaume Knispel
Cc: Ulrich Drepper
Cc: Rusty Russell
Cc: Andrew Morton
Cc: Linus Torvalds
LKML-Reference:
Signed-off-by: Ingo Molnar
22 Feb, 2009
1 commit
-
This fixes a race where a thread acquires the console while the
console is suspended, and the console is resumed before this
thread releases it. In this case, the secondary console
semaphore would be left locked, and the primary semaphore would
be released twice. This in turn would cause the console switch
on suspend or resume to hang forever.Note that suspend_console does not actually lock the console
for clients that use acquire_console_sem, it only locks it for
clients that use try_acquire_console_sem. If we change
suspend_console to fully lock the console, then the kernel
may deadlock on suspend. One client of try_acquire_console_sem
is acquire_console_semaphore_for_printk, which uses it to
prevent printk from using the console while it is suspended.Signed-off-by: Arve Hjønnevåg
Signed-off-by: Rafael J. Wysocki
Cc: Len Brown
Cc: Greg KH
Signed-off-by: Linus Torvalds
14 Jan, 2009
2 commits
-
Signed-off-by: Heiko Carstens
-
Remove the -ENOSYS implementation for !CONFIG_PRINTK and use
the cond_syscall infrastructure instead.Acked-by: Kyle McMartin
Signed-off-by: Heiko Carstens
06 Jan, 2009
1 commit
-
Remove bogus indentation of new_text_line declaration introduced in
commit ac60ad741.Acked-by: Nick Andrew
Signed-off-by: Jiri Kosina
20 Dec, 2008
1 commit
-
Impact: fix truncated recursion bug message printout
When recursion_bug is true, kernel discards original message because printk_buf
contains recursion_bug_msg with NULL terminator. The sizeof(recursion_bug_msg)
makes this, use strlen() to get correct length without NULL terminator.Reported-by: Toshikazu Nakayama
Signed-off-by: Hiroshi Shimamoto
Signed-off-by: Ingo Molnar
24 Oct, 2008
1 commit
-
both log_buf_copy() and log_buf_len are unused.
Signed-off-by: Ingo Molnar
17 Oct, 2008
3 commits
-
* 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
do_generic_file_read: s/EINTR/EIO/ if lock_page_killable() fails
softirq, warning fix: correct a format to avoid a warning
softirqs, debug: preemption check
x86, pci-hotplug, calgary / rio: fix EBDA ioremap()
IO resources, x86: ioremap sanity check to catch mapping requests exceeding, fix
IO resources, x86: ioremap sanity check to catch mapping requests exceeding the BAR sizes
softlockup: Documentation/sysctl/kernel.txt: fix softlockup_thresh description
dmi scan: warn about too early calls to dmi_check_system()
generic: redefine resource_size_t as phys_addr_t
generic: make PFN_PHYS explicitly return phys_addr_t
generic: add phys_addr_t for holding physical addresses
softirq: allocate less vectors
IO resources: fix/remove printk
printk: robustify printk, update comment
printk: robustify printk, fix #2
printk: robustify printk, fix
printk: robustify printkFixed up conflicts in:
arch/powerpc/include/asm/types.h
arch/powerpc/platforms/Kconfig.cputype
manually. -
Add documentation in kerneldoc for new printk format extensions
This patch documents the new %pS/%pF options in printk in kernel doc.
Hope I didn't miss any other extension.
Signed-off-by: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
People can use the real name an an index into MAINTAINERS to find the
current email address.Signed-off-by: Francois Cami
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
15 Oct, 2008
1 commit
-
…' and 'core/misc' into core-v28-for-linus
14 Oct, 2008
1 commit
-
This is pure tty code so put it in the tty layer where it can be with the
locking relevant material it usesSigned-off-by: Alan Cox
Signed-off-by: Linus Torvalds
20 Aug, 2008
2 commits
-
Remove the comment describing the possibility of printk() deadlocking on
runqueue lock.Signed-off-by: Jiri Kosina
Acked-by: Peter Zijlstra
Signed-off-by: Ingo Molnar -
Dmitry Adamushko reported:
> [*] btw., with DEBUG being enabled, pr_debug() generates [1] when
> debug_smp_processor_id() is used (CONFIG_DEBUG_PREEMPT).
>
> the problem seems to be caused by the following commit:
> commit b845b517b5e3706a3729f6ea83b88ab85f0725b0
> Author: Peter Zijlstra
> Date: Fri Aug 8 21:47:09 2008 +0200
>
> printk: robustify printk
>
>
> wake_up_klogd() -> __get_cpu_var() -> smp_processor_id()
>
> and that's being called from release_console_sem() which is, in turn,
> said to be "may be called from any context" [2]
>
> and in this case, it seems to be called from some non-preemptible
> context (although, it can't be printk()...
> although, I haven't looked carefully yet).
>
> Provided [2], __get_cpu_var() is perhaps not the right solution there.
>
>
> [1]
>
> [ 7697.942005] BUG: using smp_processor_id() in preemptible [00000000] code: syslogd/3542
> [ 7697.942005] caller is wake_up_klogd+0x1b/0x50
> [ 7697.942005] Pid: 3542, comm: syslogd Not tainted 2.6.27-rc3-tip-git #2
> [ 7697.942005] Call Trace:
> [ 7697.942005] [] debug_smp_processor_id+0xe8/0xf0
> [ 7697.942005] [] wake_up_klogd+0x1b/0x50
> [ 7697.942005] [] release_console_sem+0x1e7/0x200
> [ 7697.942005] [] do_con_write+0xb7/0x1f30
> [ 7697.942005] [] ? show_trace+0x10/0x20
> [ 7697.942005] [] ? dump_stack+0x72/0x80
> [ 7697.942005] [] ? __ratelimit+0xbd/0xe0
> [ 7697.942005] [] ? debug_smp_processor_id+0xe8/0xf0
> [ 7697.942005] [] ? wake_up_klogd+0x1b/0x50
> [ 7697.942005] [] ? release_console_sem+0x1e7/0x200
> [ 7697.942005] [] con_write+0x19/0x30
> [ 7697.942005] [] write_chan+0x276/0x3c0
> [ 7697.942005] [] ? default_wake_function+0x0/0x10
> [ 7697.942005] [] ? _spin_lock_irqsave+0x22/0x50
> [ 7697.942005] [] tty_write+0x194/0x260
> [ 7697.942005] [] ? write_chan+0x0/0x3c0
> [ 7697.942005] [] redirected_tty_write+0xa4/0xb0
> [ 7697.942005] [] ? redirected_tty_write+0x0/0xb0
> [ 7697.942005] [] do_loop_readv_writev+0x52/0x80
> [ 7697.942005] [] do_readv_writev+0x1bd/0x1d0
> [ 7697.942005] [] vfs_writev+0x39/0x60
> [ 7697.942005] [] sys_writev+0x50/0x90
> [ 7697.942005] [] system_call_fastpath+0x16/0x1bSigned-off-by: Peter Zijlstra
Reported-by: Dmitry Adamushko
Signed-off-by: Ingo Molnar
11 Aug, 2008
1 commit
-
Avoid deadlocks against rq->lock and xtime_lock by deferring the klogd
wakeup by polling from the timer tick.Signed-off-by: Peter Zijlstra
Signed-off-by: Ingo Molnar
31 Jul, 2008
1 commit
-
The comment assumed the burst to be one and the ratelimit used to be named
printk_ratelimit_jiffies.Signed-off-by: Uwe Kleine-König
Cc: Dave Young
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
26 Jul, 2008
1 commit
-
All ratelimit user use same jiffies and burst params, so some messages
(callbacks) will be lost.For example:
a call printk_ratelimit(5 * HZ, 1)
b call printk_ratelimit(5 * HZ, 1) before the 5*HZ timeout of a, then b will
will be supressed.- rewrite __ratelimit, and use a ratelimit_state as parameter. Thanks for
hints from andrew.- Add WARN_ON_RATELIMIT, update rcupreempt.h
- remove __printk_ratelimit
- use __ratelimit in net_ratelimit
Signed-off-by: Dave Young
Cc: "David S. Miller"
Cc: "Paul E. McKenney"
Cc: Dave Young
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
25 Jul, 2008
1 commit
-
Tell the user about the no_console_suspend option, so that we don't have to
tell each bug reporter personally.[akpm@linux-foundation.org: clarify the text a little]
Signed-off-by: Pavel Machek
Cc: "Rafael J. Wysocki"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
15 Jul, 2008
1 commit
-
* 'core/printk' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86, generic: mark early_printk as asmlinkage
printk: export console_drivers
printk: remember the message level for multi-line output
printk: refactor processing of line severity tokens
printk: don't prefer unsuited consoles on registration
printk: clean up recursion check related static variables
namespacecheck: more kernel/printk.c fixes
namespacecheck: fix kernel printk.c
14 Jul, 2008
1 commit
-
Conflicts:
arch/x86/kernel/entry_32.S
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
arch/x86/lib/Makefile
include/asm-x86/irqflags.h
kernel/Makefile
kernel/sched.cSigned-off-by: Ingo Molnar
12 Jul, 2008
1 commit
-
Conflicts:
arch/x86/mm/ioremap.c
Signed-off-by: Ingo Molnar
10 Jul, 2008
1 commit
09 Jul, 2008
1 commit
-
Signed-off-by: Daniel Guilak
Acked-by: Josh Triplett
Signed-off-by: Linus Torvalds
08 Jul, 2008
1 commit
-
this symbol is needed by drivers/video/xen-fbfront.ko.
[ cherry-picked from tip/core/printk ]
Signed-off-by: Ingo Molnar
18 Jun, 2008
1 commit
-
It's not explicitly marked as asmlinkage, but invoked from x86_32
startup code with parameters on stack.No other architectures define early_printk and none of them are affected
by this change, since defines asmlinkage as empty token.Signed-off-by: Jiri Slaby
Cc: H. Peter Anvin
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner
Signed-off-by: Ingo Molnar
16 Jun, 2008
1 commit
-
this symbol is needed by drivers/video/xen-fbfront.ko.
Signed-off-by: Ingo Molnar
27 May, 2008
1 commit
-
Without console= arguments on the kernel command line, the first
console to register becomes enabled and the preferred console (the one
behind /dev/console). This is normally tty (assuming
CONFIG_VT_CONSOLE is enabled, which it commonly is).This is okay as long tty is a useful console. But unless we have the
PV framebuffer, and it is enabled for this domain, tty0 in domU is
merely a dummy. In that case, we want the preferred console to be the
Xen console hvc0, and we want it without having to fiddle with the
kernel command line. Commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7
did that for us.Since we now have the PV framebuffer, we want to enable and prefer tty
again, but only when PVFB is enabled. But even then we still want to
enable the Xen console as well.Problem: when tty registers, we can't yet know whether the PVFB is
enabled. By the time we can know (xenstore is up), the console setup
game is over.Solution: enable console tty by default, but keep hvc as the preferred
console. Change the preferred console to tty when PVFB probes
successfully, unless we've been given console kernel parameters.Signed-off-by: Markus Armbruster
Signed-off-by: Jeremy Fitzhardinge
Signed-off-by: Thomas Gleixner
25 May, 2008
6 commits
-
printk(KERN_ALERT "Danger Will Robinson!\nAlien Approaching!\n");
At present this will result in one message at ALERT level and one
at the current default message loglevel (e.g. WARNING). This is
non-intuitive.Modify vprintk() to remember the message loglevel each time it
is specified and use it for subsequent lines of output which do
not specify one, within the same call to printk.Signed-off-by: Nick Andrew
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner -
Restructure the logic of vprintk() so the processing of the leading
3 characters of each input line is in one place, regardless whether
printk_time is enabled. This makes the code smaller and easier to
understand.size reduction in kernel/printk.o:
text data bss dec hex filename
6157 397 1049804 1056358 101e66 printk.o.before
6117 397 1049804 1056318 101e3e printk.o.afterand some style uncleanlinesses removed as well as a side-effect:
Before:
total: 19 errors, 22 warnings, 1340 lines checked
After:
total: 17 errors, 22 warnings, 1333 lines checkedSigned-off-by: Nick Andrew
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner -
console election: If some console happens to be registered first which does
not provide a tty binding (!console->device), it prevents that more suited
consoles which are registered later on can enter the candidate pool for
console_device(). This is observable with KGDB's console which may already
be registered (and exploited!) during early debugger connections, that is
before any regular console registration.This patch fixes the issue by postponing the final, automated
preferred_console selection until someone with a non-NULL device handler
comes around.Signed-off-by: Jan Kiszka
Cc: Jason Wessel
Cc: Gerd Hoffmann
Cc: Michael Ellerman
Signed-off-by: Andrew Morton
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner -
Make printk_recursion_bug_msg static and drop printk prefix from recursion
variables.Signed-off-by: Tejun Heo
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner -
[ Stephen Rothwell : build fix ]
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner -
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner
24 May, 2008
1 commit
-
This patch adds latency tracing for critical timings
(how long interrupts are disabled for)."irqsoff" is added to /debugfs/tracing/available_tracers
Note:
tracing_max_latency
also holds the max latency for irqsoff (in usecs).
(default to large number so one must start latency tracing)tracing_thresh
threshold (in usecs) to always print out if irqs off
is detected to be longer than stated here.
If irq_thresh is non-zero, then max_irq_latency
is ignored.Here's an example of a trace with ftrace_enabled = 0
=======
preemption latency trace v1.1.5 on 2.6.24-rc7
Signed-off-by: Ingo Molnar
--------------------------------------------------------------------
latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)
-----------------
| task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)
-----------------
=> started at: _spin_lock_irqsave+0x2a/0xb7
=> ended at: _spin_unlock_irqrestore+0x32/0x5f_------=> CPU#
/ _-----=> irqs-off
| / _----=> need-resched
|| / _---=> hardirq/softirq
||| / _--=> preempt-depth
|||| /
||||| delay
cmd pid ||||| time | caller
\ / ||||| \ | /
swapper-0 1d.s3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])
swapper-0 1d.s3 100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])
swapper-0 1d.s3 100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)vim:ft=help
=======And this is a trace with ftrace_enabled == 1
=======
preemption latency trace v1.1.5 on 2.6.24-rc7
--------------------------------------------------------------------
latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)
-----------------
| task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)
-----------------
=> started at: _spin_lock_irqsave+0x2a/0xb7
=> ended at: _spin_unlock_irqrestore+0x32/0x5f_------=> CPU#
/ _-----=> irqs-off
| / _----=> need-resched
|| / _---=> hardirq/softirq
||| / _--=> preempt-depth
|||| /
||||| delay
cmd pid ||||| time | caller
\ / ||||| \ | /
swapper-0 1dNs3 0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])
swapper-0 1dNs3 46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000])
swapper-0 1dNs3 46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000])
swapper-0 1dNs3 46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000])
swapper-0 1dNs3 47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000])
swapper-0 1dNs3 47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47)
swapper-0 1dNs3 97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50)
swapper-0 1dNs3 98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000])
swapper-0 1dNs3 99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000])
swapper-0 1dNs3 101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000])
swapper-0 1dNs3 102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])
swapper-0 1dNs3 102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)vim:ft=help
=======Signed-off-by: Steven Rostedt
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner
30 Apr, 2008
2 commits
-
Fix update_console_cmdline() not to to read beyond the terminating zero of its
name argument.Signed-off-by: Markus Armbruster
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This adds a minimalistic braille screen reader support. This is meant to
be used by blind people e.g. on boot failures or when / cannot be mounted
etc and thus the userland screen readers can not work.[akpm@linux-foundation.org: fix exports]
Signed-off-by: Samuel Thibault
Cc: Jiri Kosina
Cc: Dmitry Torokhov
Acked-by: Alan Cox
Cc: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds