[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v8 10/11] viridian: add implementation of synthetic timers



>>> On 18.03.19 at 16:46, <Paul.Durrant@xxxxxxxxxx> wrote:
>> > > +    {
>> > > +        expiration = vs->count;
>> > > +        if ( expiration - now <= 0 )
>> > > +        {
>> > > +            vs->expiration = expiration;
>> > > +            stimer_expire(vs);
>> >
>> > Aren't you introducing a risk for races by calling the timer function
>> > directly from here? start_timer(), after all, gets called from quite a
>> > few places.
>> 
>> In practice I don't think there should be any problematic race, but I'll 
>> check again.
> 
> I think the 'periodic' name might be confusing things... The Xen timers are 
> all single-shot, it's just that start_stimer() is re-called after a 
> successful poll if the viridian timer is configured to be periodic. So I 
> don't think there is case where the underlying Xen timer could actually be 
> running when we enter start_stimer().

One of the callers of the function is the WRMSR handler. Why would
it be guaranteed that the timer isn't active when such a WRMSR
occurs? Of course, this alone is not enough for there to be a problem,
as we're fine as long as the guest can only harm itself. But I don't
think it goes without saying that there's no issue here; having looked
a 2nd time just now, I think I agree though that there's no risk for our
own health here.

Jan



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.