[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/6] x86/time: refactor init_platform_time()
On 04/05/2016 11:09 AM, Jan Beulich wrote: >>>> On 29.03.16 at 15:44, <joao.m.martins@xxxxxxxxxx> wrote: >> --- a/xen/arch/x86/time.c >> +++ b/xen/arch/x86/time.c >> @@ -533,6 +533,30 @@ static void resume_platform_timer(void) >> plt_stamp = plt_src.read_counter(); >> } >> >> +static int __init try_platform_timer(struct platform_timesource *pts) >> +{ >> + int rc = -1; > > Pointless initializer. In fact ... > >> + rc = pts->init(pts); > > ... this could be the initializer. > Ah yes. Will fix it. >> + if ( rc <= 0 ) >> + return rc; >> + >> + plt_mask = (u64)~0ull >> (64 - pts->counter_bits); >> + >> + set_time_scale(&plt_scale, pts->frequency); >> + >> + plt_overflow_period = scale_delta( >> + 1ull << (pts->counter_bits - 1), &plt_scale); >> + init_timer(&plt_overflow_timer, plt_overflow, NULL, 0); >> + plt_src = *pts; >> + plt_overflow(NULL); >> + >> + platform_timer_stamp = plt_stamp64; >> + stime_platform_stamp = NOW(); >> + >> + return rc; >> +} > > Moving here all this setting up of static/global data makes me > wonder how you mean to consistently re-use this function for > your new purpose. My purpose is to reuse this initialization part for the case of switching from from one clocksource to TSC at a later point (which is done in a different place i.e. verify_tsc_reliability). Though this static/global data part in particular is done if the clocksource initialization succeeds so I merged that in a single helper hence the name "try_platform_timer". It also looks cleaner, and we would leave opt_clocksource checking with plt_timers in init_platform_time. Joao _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |