On 01/30, Daniel Thompson wrote:
@@ -98,26 +98,50 @@ unsigned long long notrace sched_clock(void) } /*
- Updating the data required to read the clock.
- sched_clock will never observe mis-matched data even if called from
- an NMI. We do this by maintaining an odd/even copy of the data and
- steering sched_clock to one or the other using a sequence counter.
- In order to preserve the data cache profile of sched_clock as much
- as possible the system reverts back to the even copy when the update
- completes; the odd copy is used *only* during an update.
- */
+static void update_clock_read_data(struct clock_read_data *rd)
notrace?
+{
- /* update the backup (odd) copy with the new data */
- cd.read_data[1] = *rd;
- /* steer readers towards the new data */
s/new data/odd copy/?
- raw_write_seqcount_latch(&cd.seq);
- /* now its safe for us to update the normal (even) copy */
- cd.read_data[0] = *rd;
- /* switch readers back to the even copy */
- raw_write_seqcount_latch(&cd.seq);
+}
+/*