Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07454bff authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

clockevents: check broadcast tick device not the clock events device



Impact: jiffies increment too fast.

Hugh Dickins noted that with NOHZ=n and HIGHRES=n jiffies get
incremented too fast. The reason is a wrong check in the broadcast
enter/exit code, which keeps the local apic timer in periodic mode
when the switch happens.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 2165f631
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -235,7 +235,8 @@ static void tick_do_broadcast_on_off(void *why)
	case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
		if (!cpu_isset(cpu, tick_broadcast_mask)) {
			cpu_set(cpu, tick_broadcast_mask);
			if (bc->mode == TICKDEV_MODE_PERIODIC)
			if (tick_broadcast_device.mode ==
			    TICKDEV_MODE_PERIODIC)
				clockevents_shutdown(dev);
		}
		if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
@@ -245,7 +246,8 @@ static void tick_do_broadcast_on_off(void *why)
		if (!tick_broadcast_force &&
		    cpu_isset(cpu, tick_broadcast_mask)) {
			cpu_clear(cpu, tick_broadcast_mask);
			if (bc->mode == TICKDEV_MODE_PERIODIC)
			if (tick_broadcast_device.mode ==
			    TICKDEV_MODE_PERIODIC)
				tick_setup_periodic(dev, 0);
		}
		break;