Example #1
0
static void wallclock_test(void *data)
{
        int *p_err = data;
        long ksec, offset;
        struct timespec ts;

        kvm_get_wallclock(&ts);
        ksec = ts.tv_sec;

        offset = ksec - sec;
        printf("Seconds get from kvmclock: %ld (cpu %d, offset: %ld)\n", ksec, smp_id(), offset);

        if (offset > threshold || offset < -threshold) {
                printf("offset too large!\n");
                (*p_err)++;
        }
}
Example #2
0
/* not static: needed by APM */
unsigned long get_cmos_time(void)
{
	unsigned long retval;
	unsigned long flags;

	spin_lock_irqsave(&rtc_lock, flags);

	if (use_kvm_time)
		retval = kvm_get_wallclock();
	else if (efi_enabled)
		retval = efi_get_time();
	else
		retval = mach_get_cmos_time();

	spin_unlock_irqrestore(&rtc_lock, flags);

	return retval;
}
Example #3
0
static int wallclock_test(long sec, long threshold)
{
        long ksec, offset;
        struct timespec ts;

        printf("Wallclock test, threshold %ld\n", threshold);
        kvm_get_wallclock(&ts);
        ksec = ts.tv_sec;

        offset = ksec - sec;
        printf("Seconds get from host:     %ld\n", sec);
        printf("Seconds get from kvmclock: %ld\n", ksec);
        printf("Offset:                    %ld\n", offset);

        if (offset > threshold || offset < -threshold) {
                printf("offset too large!\n");
                return 1;
        }

        return 0;
}