linux/arch/parisc/kernel
Linus Torvalds ab486bc9a5 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
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()
  ...
2018-02-01 13:36:15 -08:00
..
.gitignore
asm-offsets.c parisc: Drop per_cpu uaccess related exception_data struct 2017-05-10 17:46:13 +02:00
audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
binfmt_elf32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.c parisc: Handle vma's whose context is not current in flush_cache_range 2017-07-31 08:22:33 +02:00
compat_audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drivers.c parisc: Show unhashed hardware inventory 2018-01-02 21:00:57 +01:00
entry.S parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel 2018-01-02 22:21:54 +01:00
firmware.c parisc: Add wrapper for pdc_instr() firmware function 2017-09-22 19:46:44 +02:00
ftrace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hardware.c parisc: add serial ports of C8000/1GHz machine to hardware database 2014-07-13 15:51:58 +02:00
head.S parisc: Fix ftrace function tracer 2016-04-14 17:47:19 +02:00
hpmc.S parisc: Align os_hpmc_size on word boundary 2017-12-17 21:06:25 +01:00
inventory.c parisc: Add Page Deallocation Table (PDT) support 2017-05-12 09:14:15 +02:00
irq.c parisc: Increase thread and stack size to 32kb 2017-07-31 08:41:26 +02:00
Makefile parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
module.c parisc64: Add .opd based function descriptor dereference 2018-01-09 10:45:38 +01:00
pa7300lc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pacache.S parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel 2018-01-02 22:21:54 +01:00
parisc_ksyms.c parisc: Export __cmpxchg_u64 unconditionally 2017-10-19 08:48:45 +02:00
pci-dma.c microblaze: remove dma_nommu_dma_supported 2018-01-10 16:41:16 +01:00
pci.c parisc: Use generic pci_mmap_resource_range() 2017-04-20 08:47:47 -05:00
pdc_chassis.c parisc: single_open() leaks 2013-05-05 00:10:41 -04:00
pdc_cons.c treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
pdt.c mm/memory_failure: Remove unused trapno from memory_failure 2018-01-23 12:17:42 -06:00
perf.c parisc: Static initialization of spinlocks in perf and unwind code 2017-08-22 16:34:33 +02:00
perf_asm.S
perf_images.h
process.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk 2018-02-01 13:36:15 -08:00
processor.c parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
ptrace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
real2.S parisc: Make existing core files reuseable for bootloader 2017-08-22 16:34:35 +02:00
setup.c parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
signal.c Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 11:54:55 -08:00
signal32.c signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal32.h signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
smp.c parisc: Move init_per_cpu() into init section 2017-09-22 19:47:08 +02:00
stacktrace.c
sys_parisc.c mm: larger stack guard gap, between vmas 2017-06-19 21:50:20 +08:00
sys_parisc32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
syscall.S parisc: Fix validity check of pointer size argument in new CAS implementation 2017-11-17 15:27:13 +01:00
syscall_table.S parisc: use compat_sys_keyctl() 2017-07-02 22:10:47 +02:00
time.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
topology.c parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
traps.c signal/parisc: Document a conflict with SI_USER with SIGFPE 2018-01-12 14:21:03 -06:00
unaligned.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
unwind.c parisc: remove duplicate includes 2017-12-17 21:06:25 +01:00
vmlinux.lds.S parisc64: Add .opd based function descriptor dereference 2018-01-09 10:45:38 +01:00