lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 20 Oct 2012 12:22:39 -0400
From:	Frederic Weisbecker <fweisbec@...il.com>
To:	LKML <linux-kernel@...r.kernel.org>
Cc:	Frederic Weisbecker <fweisbec@...il.com>,
	Peter Zijlstra <peterz@...radead.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Ingo Molnar <mingo@...nel.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Steven Rostedt <rostedt@...dmis.org>,
	Paul Gortmaker <paul.gortmaker@...driver.com>
Subject: [RFC PATCH 0/8] printk: Make it usable on nohz CPUs v2

Hi,

So the design is not quite the same here. Instead of using the ad hoc
printk_tick() in periodic mode and irq_work on nohz mode, printk
is now always using irq_work.

In turn, irq_work subsystem is able to let enqueuers choose between IPI
or lazy tick hook to execute works, and that in order to avoid IPI storm
when we have lots of enqueuing of non-urgent works like klogd wakeup
in short period of time so this keeps the old printk_tick behaviour.

It also teaches irq_work to handle nohz mode.

Warning: only compile tested in x86 for now.

Frederic Weisbecker (8):
  irq_work: Move irq_work_raise() declaration/default definition to
    arch headers
  irq_work: Let the arch tell us about self-IPI support
  x86: Implement arch_irq_work_has_ipi()
  nohz: Add API to check tick state
  irq_work: Make self-IPIs optable
  irq_work: Handle queuing without IPI support in dyntick idle mode
  irq_work: Remove CONFIG_HAVE_IRQ_WORK
  printk: Wake up klogd using irq_work

 arch/alpha/Kconfig                           |    1 -
 arch/alpha/include/asm/irq_work.h            |    9 +++++
 arch/alpha/kernel/time.c                     |    2 +-
 arch/arm/Kconfig                             |    1 -
 arch/arm/include/asm/irq_work.h              |    1 +
 arch/arm64/Kconfig                           |    1 -
 arch/arm64/include/asm/irq_work.h            |    1 +
 arch/blackfin/Kconfig                        |    1 -
 arch/blackfin/include/asm/irq_work.h         |    1 +
 arch/frv/Kconfig                             |    1 -
 arch/frv/include/asm/irq_work.h              |    1 +
 arch/hexagon/Kconfig                         |    1 -
 arch/hexagon/include/asm/irq_work.h          |    1 +
 arch/mips/Kconfig                            |    1 -
 arch/mips/include/asm/irq_work.h             |    1 +
 arch/parisc/Kconfig                          |    1 -
 arch/parisc/include/asm/irq_work.h           |    1 +
 arch/powerpc/Kconfig                         |    1 -
 arch/powerpc/include/asm/irq_work.h          |    8 ++++
 arch/powerpc/kernel/time.c                   |    2 +-
 arch/s390/Kconfig                            |    1 -
 arch/s390/include/asm/irq_work.h             |    1 +
 arch/sh/Kconfig                              |    1 -
 arch/sh/include/asm/irq_work.h               |    1 +
 arch/sparc/Kconfig                           |    1 -
 arch/sparc/include/asm/irq_work.h            |    8 ++++
 arch/sparc/kernel/pcr.c                      |    2 +-
 arch/x86/Kconfig                             |    1 -
 arch/x86/include/asm/irq_work.h              |   15 ++++++++
 arch/x86/kernel/cpu/mcheck/mce.c             |    2 +-
 arch/x86/kernel/irq_work.c                   |    6 ++--
 arch/x86/kvm/pmu.c                           |    2 +-
 drivers/acpi/apei/ghes.c                     |    2 +-
 drivers/staging/iio/trigger/Kconfig          |    1 -
 drivers/staging/iio/trigger/iio-trig-sysfs.c |    2 +-
 include/asm-generic/irq_work.h               |   23 ++++++++++++
 include/linux/irq_work.h                     |    9 ++++-
 include/linux/printk.h                       |    3 --
 include/linux/tick.h                         |   17 ++++++++-
 init/Kconfig                                 |    5 +--
 kernel/events/core.c                         |    4 +-
 kernel/events/ring_buffer.c                  |    2 +-
 kernel/irq_work.c                            |   48 +++++++++++++++++++------
 kernel/printk.c                              |   14 ++++----
 kernel/time/tick-sched.c                     |    6 ++--
 kernel/timer.c                               |    1 -
 46 files changed, 156 insertions(+), 59 deletions(-)
 create mode 100644 arch/alpha/include/asm/irq_work.h
 create mode 100644 arch/arm/include/asm/irq_work.h
 create mode 100644 arch/arm64/include/asm/irq_work.h
 create mode 100644 arch/blackfin/include/asm/irq_work.h
 create mode 100644 arch/frv/include/asm/irq_work.h
 create mode 100644 arch/hexagon/include/asm/irq_work.h
 create mode 100644 arch/mips/include/asm/irq_work.h
 create mode 100644 arch/parisc/include/asm/irq_work.h
 create mode 100644 arch/powerpc/include/asm/irq_work.h
 create mode 100644 arch/s390/include/asm/irq_work.h
 create mode 100644 arch/sh/include/asm/irq_work.h
 create mode 100644 arch/sparc/include/asm/irq_work.h
 create mode 100644 arch/x86/include/asm/irq_work.h
 create mode 100644 include/asm-generic/irq_work.h

-- 
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ