From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe Gerum Subject: [PATCH 08/13] cobalt/arm64: ipipe: remove obsolete calibration handler Date: Sun, 31 Jan 2021 15:45:35 +0100 Message-Id: <20210131144540.243363-8-rpm@xenomai.org> In-Reply-To: <20210131144540.243363-1-rpm@xenomai.org> References: <20210131144540.243363-1-rpm@xenomai.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org From: Philippe Gerum Signed-off-by: Philippe Gerum --- kernel/cobalt/arch/arm64/ipipe/machine.c | 58 ------------------------ 1 file changed, 58 deletions(-) diff --git a/kernel/cobalt/arch/arm64/ipipe/machine.c b/kernel/cobalt/arch/arm64/ipipe/machine.c index cb2867492..a215e4caa 100644 --- a/kernel/cobalt/arch/arm64/ipipe/machine.c +++ b/kernel/cobalt/arch/arm64/ipipe/machine.c @@ -19,13 +19,8 @@ */ #include -#include -#include -#include #include -#define CALIBRATION_LOOPS 10 - static void mach_arm_prefault(struct vm_area_struct *vma) { unsigned long addr; @@ -43,58 +38,6 @@ static void mach_arm_prefault(struct vm_area_struct *vma) } } -static unsigned long mach_arm_calibrate(void) -{ - unsigned long delay = (cobalt_pipeline.timer_freq + HZ / 2) / HZ; - unsigned long long start, end, sum = 0, sum_sq = 0; - unsigned long result, flags, tsc_lat; - long long diff; - int i, j; - - flags = ipipe_critical_enter(NULL); - - /* - * Hw interrupts off, other CPUs quiesced, no migration - * possible. We can now fiddle with the timer chip (per-cpu - * local or global, ipipe_timer_set() will handle this - * transparently). - */ - ipipe_read_tsc(start); - barrier(); - ipipe_read_tsc(end); - tsc_lat = end - start; - barrier(); - - for (i = 0; i < CALIBRATION_LOOPS; i++) { - for (j = 0; j < CALIBRATION_LOOPS; j++) { - ipipe_read_tsc(start); - barrier(); - ipipe_timer_set(delay); - barrier(); - ipipe_read_tsc(end); - diff = end - start - tsc_lat; - if (diff > 0) { - sum += diff; - sum_sq += diff * diff; - } - } - } - - ipipe_critical_exit(flags); - - /* Use average + standard deviation as timer programming latency. */ - do_div(sum, CALIBRATION_LOOPS * CALIBRATION_LOOPS); - do_div(sum_sq, CALIBRATION_LOOPS * CALIBRATION_LOOPS); - result = sum + int_sqrt(sum_sq - sum * sum) + 1; - /* - * Reset the max trace, since it contains the calibration time - * now. - */ - ipipe_trace_max_reset(); - - return result; -} - static const char *const fault_labels[] = { [IPIPE_TRAP_ACCESS] = "Data or instruction access", [IPIPE_TRAP_SECTION] = "Section fault", @@ -115,7 +58,6 @@ struct cobalt_machine cobalt_machine = { .init = NULL, .late_init = NULL, .cleanup = NULL, - .calibrate = mach_arm_calibrate, .prefault = mach_arm_prefault, .fault_labels = fault_labels, }; -- 2.26.2