lkml.org 
[lkml]   [2019]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH v2 12/14] x86/watchdog/hardlockup/hpet: Determine if HPET timer caused NMI
On Wed, 27 Feb 2019, Ricardo Neri wrote:
> @@ -62,7 +67,18 @@ static inline void set_comparator(struct hpet_hld_data *hdata,
> static void kick_timer(struct hpet_hld_data *hdata, bool force)
> {
> bool kick_needed = force || !(hdata->flags & HPET_DEV_PERI_CAP);
> - unsigned long new_compare, count;
> + unsigned long tsc_curr, tsc_delta, new_compare, count;
> +
> + /* Start obtaining the current TSC and HPET counts. */
> + tsc_curr = rdtsc();
> +
> + if (kick_needed)
> + count = get_count();

Can you please keep the TSC code in one block and the HPET block in the
next one? Having this inbetween is really bad to follow.

It really does not matter whether you read the HPET counter before or after
the calculation. This is a crystal ball estimation anyway so a few cyles
more or less are completely irrelevant.

> + tsc_delta = (unsigned long)watchdog_thresh * (unsigned long)tsc_khz
> + * 1000L;
> + hdata->tsc_next = tsc_curr + tsc_delta;
> + hdata->tsc_next_error = tsc_delta >> 6;

Thanks,

tglx

\
 
 \ /
  Last update: 2019-03-26 21:56    [W:0.196 / U:0.848 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site