An error occurred while fetching folder content.
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
Linus Torvalds authored
Pull printk updates from Petr Mladek:

 - Add a console_msg_format command line option:

     The value "default" keeps the old "[time stamp] text\n" format. The
     value "syslog" allows to see the syslog-like "<log
     level>[timestamp] text" format.

     This feature was requested by people doing regression tests, for
     example, 0day robot. They want to have both filtered and full logs
     at hands.

 - Reduce the risk of softlockup:

     Pass the console owner in a busy loop.

     This is a new approach to the old problem. It was first proposed by
     Steven Rostedt on Kernel Summit 2017. It marks a context in which
     the console_lock owner calls console drivers and could not sleep.
     On the other side, printk() callers could detect this state and use
     a busy wait instead of a simple console_trylock(). Finally, the
     console_lock owner checks if there is a busy waiter at the end of
     the special context and eventually passes the console_lock to the
     waiter.

     The hand-off works surprisingly well and helps in many situations.
     Well, there is still a possibility of the softlockup, for example,
     when the flood of messages stops and the last owner still has too
     much to flush.

     There is increasing number of people having problems with
     printk-related softlockups. We might eventually need to get better
     solution. Anyway, this looks like a good start and promising
     direction.

 - Do not allow to schedule in console_unlock() called from printk():

     This reverts an older controversial commit. The reschedule helped
     to avoid softlockups. But it also slowed down the console output.
     This patch is obsoleted by the new console waiter logic described
     above. In fact, the reschedule made the hand-off less effective.

 - Deprecate "%pf" and "%pF" format specifier:

     It was needed on ia64, ppc64 and parisc64 to dereference function
     descriptors and show the real function address. It is done
     transparently by "%ps" and "pS" format specifier now.

     Sergey Senozhatsky found that all the function descriptors were in
     a special elf section and could be easily detected.

 - Remove printk_symbol() API:

     It has been obsoleted by "%pS" format specifier, and this change
     helped to remove few continuous lines and a less intuitive old API.

 - Remove redundant memsets:

     Sergey removed unnecessary memset when processing printk.devkmsg
     command line option.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
  printk: drop redundant devkmsg_log_str memsets
  printk: Never set console_may_schedule in console_trylock()
  printk: Hide console waiter logic into helpers
  printk: Add console owner and waiter logic to load balance console writes
  kallsyms: remove print_symbol() function
  checkpatch: add pF/pf deprecation warning
  symbol lookup: introduce dereference_symbol_descriptor()
  parisc64: Add .opd based function descriptor dereference
  powerpc64: Add .opd based function descriptor dereference
  ia64: Add .opd based function descriptor dereference
  sections: split dereference_function_descriptor()
  openrisc: Fix conflicting types for _exext and _stext
  lib: do not use print_symbol()
  irq debug: do not use print_symbol()
  sysfs: do not use print_symbol()
  drivers: do not use print_symbol()
  x86: do not use print_symbol()
  unicore32: do not use print_symbol()
  sh: do not use print_symbol()
  mn10300: do not use print_symbol()
  ...
ab486bc9
Name Last commit Last update
..
basic fixdep: use existing helper to check modular CONFIG options
coccinelle Coccinelle: memdup: drop spurious line
dtc Merge tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
gcc-plugins License cleanup: add SPDX GPL-2.0 license identifier to files with no license
gdb scripts/gdb/linux/tasks.py: fix get_thread_info
genksyms genksyms: drop *.hash.c from .gitignore
kconfig Merge tag 'kconfig-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
ksymoops Fix dead URLs to ftp.kernel.org
mod Merge tag 'char-misc-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
package kbuild: pkg: make out-of-tree rpm/deb-pkg build immediately fail
selinux Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
tracing License cleanup: add SPDX GPL-2.0 license identifier to files with no license
.gitignore Docs: clean up some DocBook loose ends
Kbuild.include kbuild: create directory for make cache only when necessary
Lindent License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.asm-generic Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Makefile.build Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Makefile.clean License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.dtbinst Merge tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Makefile.extrawarn Kbuild: suppress packed-not-aligned warning for default setting only
Makefile.gcc-plugins License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.headersinst Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Makefile.host Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Makefile.kasan License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.kcov Makefile: support flag -fsanitizer-coverage=trace-cmp
Makefile.lib Merge tag 'kconfig-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Makefile.modbuiltin License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.modinst License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.modpost Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Makefile.modsign License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Makefile.ubsan License cleanup: add SPDX GPL-2.0 license identifier to files with no license
adjust_autoksyms.sh kbuild: fix scripts/adjust_autoksyms.sh* for the no modules case
asn1_compiler.c ASN.1: fix open failure check on headername
bloat-o-meter scripts/bloat-o-meter: don't fail with division by 0
bootgraph.pl scripts: Switch to more portable Perl shebang
check_00index.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license
check_extable.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license
checkincludes.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license
checkkconfigsymbols.py checkkconfigsymbols.py: support Kconfig's 'imply' statement
checkpatch.pl Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
checkstack.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license
checksyscalls.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license
checkversion.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license
cleanfile License cleanup: add SPDX GPL-2.0 license identifier to files with no license
cleanpatch License cleanup: add SPDX GPL-2.0 license identifier to files with no license
coccicheck Coccinelle: coccicheck: fix typo
config License cleanup: add SPDX GPL-2.0 license identifier to files with no license
conmakehash.c kbuild: trivial - remove trailing spaces
const_structs.checkpatch const_structs.checkpatch: add frequently used from Julia Lawall's list
decode_stacktrace.sh
decodecode
depmod.sh
diffconfig
documentation-file-ref-check
export_report.pl
extract-cert.c
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl
faddr2line
find-unused-docs.sh
gcc-goto.sh
gcc-ld
gcc-plugin.sh
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh
get_dvb_firmware
get_maintainer.pl
gfp-translate
headerdep.pl
headers.sh
headers_check.pl
headers_install.sh
insert-sys-cert.c
kallsyms.c
kernel-doc
ld-version.sh
leaking_addresses.pl
link-vmlinux.sh
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
module-common.lds
namespace.pl
objdiff
parse-maintainers.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h