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

Re: [PATCH v2 1/2] xen/events: access last_priority and last_vcpu_id together

On 20/10/2020 10:34, Jan Beulich wrote:
On 20.10.2020 11:25, Julien Grall wrote:
Given that evtchn->last_vcpu_id and evtchn->last_priority can only be
modified in evtchn_fifo_set_pending(), this suggests that it is expected
for the function to multiple called concurrently on the same event channel.

I'm unconvinced it was really considered
whether racing sending on the same channel is also safe this way.

How would you explain the 3 try in lock_old_queue then?

Queue changes (as said by the gprintk()) can't result from sending
alone, but require re-binding to a different vCPU or altering the

I agree with that. However, this doesn't change the fact that update to evtchn->last_priority and evtchn->last_vcpu can only happen when calling evtchn_fifo_set_pending().

If evtchn_fifo_set_pending() cannot be called concurrently for the same event, then there is *no* way for evtchn->last_{priority, vcpu} to be updated concurrently.

I'm simply unconvinced that the code indeed fully reflects
the original intentions.

Do you mind (re-)sharing what was the original intentions?


Julien Grall



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