|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC v1 31/74] x86: read wallclock from Xen running in pvh mode
>>> On 04.01.18 at 14:05, <wei.liu2@xxxxxxxxxx> wrote:
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
with a suggestion on code structure:
> --- a/xen/arch/x86/time.c
> +++ b/xen/arch/x86/time.c
> @@ -969,6 +969,36 @@ static unsigned long get_cmos_time(void)
> return mktime(rtc.year, rtc.mon, rtc.day, rtc.hour, rtc.min, rtc.sec);
> }
>
> +static unsigned long noinline get_xen_wallclock_time(void)
> +{
> +#ifdef CONFIG_XEN_GUEST
> + struct shared_info *sh_info = XEN_shared_info;
> + uint32_t wc_version;
> + uint64_t wc_sec;
> +
> + do {
> + wc_version = sh_info->wc_version & ~1;
> + smp_rmb();
> +
> + wc_sec = sh_info->wc_sec;
> + smp_rmb();
> + } while ( wc_version != sh_info->wc_version );
> +
> + return wc_sec + read_xen_timer() / 1000000000;
Why not move all of this ...
> +#else
> + ASSERT_UNREACHABLE();
> + return 0;
> +#endif
> +}
> +
> +static unsigned long get_wallclock_time(void)
> +{
... here:
#ifdef CONFIG_XEN_GUEST
if ( xen_guest )
{
...
return wc_sec + read_xen_timer() / 1000000000;
}
#endif
return get_cmos_time();
}
avoiding one of these not very nice ASSERT_UNREACHABLE()?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |