All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/5] clockevents: decouple broadcast mechanism from drivers
@ 2012-12-18 12:06 ` Mark Rutland
  0 siblings, 0 replies; 36+ messages in thread
From: Mark Rutland @ 2012-12-18 12:06 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-arm-kernel, linux, tglx, nico, will.deacon, marc.zyngier,
	john.stultz, Mark Rutland

In some SMP systems, cpu-local timers may stop delivering interrupts
when in low power states, or not all CPUs may have local timers. To
support these systems we have a mechanism for broadcasting timer ticks
to other CPUs. This mechanism relies on the struct
clock_event_device::broadcast function pointer, which is a
driver-specific mechanism for broadcasting ticks to other CPUs.

As the broadcast mechanism is architecture-specific, placing the
broadcast function on struct clock_event_device ties each driver to a
single architecture. Additionally the driver or architecture backend
must handle the routing of broadcast ticks to the correct
clock_event_device, leading to duplication of the list of active
clock_event_devices.

These patches introduce a generic mechanism for handling the receipt of
timer broadcasts, and an optional architecture-specific broadcast
function which allows drivers to be decoupled from a particular
architecture will retaining support for timer tick broadcasts. These
mechanisms are wired up for the arm port, and have been boot-tested on a
pandaboard.

Thanks,
Mark.

Mark Rutland (5):
  ARM: remove useless guard in smp.c
  clockevents: Add generic timer broadcast receiver
  ARM: Use generic timer broadcast receive
  clockevents: Add generic timer broadcast function
  ARM: Add generic timer broadcast support

 arch/arm/Kconfig             |    1 +
 arch/arm/kernel/smp.c        |   15 ++-------------
 include/linux/clockchips.h   |    9 +++++++++
 kernel/time/Kconfig          |    4 ++++
 kernel/time/tick-broadcast.c |   30 ++++++++++++++++++++++++++++++
 5 files changed, 46 insertions(+), 13 deletions(-)



^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2013-01-02 11:41 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-18 12:06 [RFC PATCH 0/5] clockevents: decouple broadcast mechanism from drivers Mark Rutland
2012-12-18 12:06 ` Mark Rutland
2012-12-18 12:06 ` [RFC PATCH 1/5] ARM: remove useless guard in smp.c Mark Rutland
2012-12-18 12:06   ` Mark Rutland
2012-12-18 18:47   ` Stephen Boyd
2012-12-18 18:47     ` Stephen Boyd
2012-12-19  9:40     ` Mark Rutland
2012-12-19  9:40       ` Mark Rutland
2012-12-21 10:02   ` Santosh Shilimkar
2012-12-21 10:02     ` Santosh Shilimkar
2013-01-02 11:14     ` Mark Rutland
2013-01-02 11:14       ` Mark Rutland
2012-12-18 12:06 ` [RFC PATCH 2/5] clockevents: Add generic timer broadcast receiver Mark Rutland
2012-12-18 12:06   ` Mark Rutland
2012-12-18 22:17   ` Stephen Boyd
2012-12-18 22:17     ` Stephen Boyd
2012-12-19 10:19     ` Mark Rutland
2012-12-19 10:19       ` Mark Rutland
2012-12-21 10:02   ` Santosh Shilimkar
2012-12-21 10:02     ` Santosh Shilimkar
2013-01-02 10:59     ` Mark Rutland
2013-01-02 10:59       ` Mark Rutland
2012-12-18 12:06 ` [RFC PATCH 3/5] ARM: Use generic timer broadcast receive Mark Rutland
2012-12-18 12:06   ` Mark Rutland
2012-12-18 12:06 ` [RFC PATCH 4/5] clockevents: Add generic timer broadcast function Mark Rutland
2012-12-18 12:06   ` Mark Rutland
2012-12-18 22:17   ` Stephen Boyd
2012-12-18 22:17     ` Stephen Boyd
2012-12-19 10:37     ` Mark Rutland
2012-12-19 10:37       ` Mark Rutland
2012-12-18 12:06 ` [RFC PATCH 5/5] ARM: Add generic timer broadcast support Mark Rutland
2012-12-18 12:06   ` Mark Rutland
2012-12-21 10:08 ` [RFC PATCH 0/5] clockevents: decouple broadcast mechanism from drivers Santosh Shilimkar
2012-12-21 10:08   ` Santosh Shilimkar
2013-01-02 11:41   ` Mark Rutland
2013-01-02 11:41     ` Mark Rutland

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.