|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3] xen/common: Properly reference count DOMCTL_{, un}pausedomain hypercalls
On 02/07/14 17:06, Jan Beulich wrote:
>>>> On 02.07.14 at 17:41, <andrew.cooper3@xxxxxxxxxx> wrote:
>> On 02/07/14 16:29, Jan Beulich wrote:
>>>>>> On 02.07.14 at 17:03, <andrew.cooper3@xxxxxxxxxx> wrote:
>>>> --- a/xen/include/xen/sched.h
>>>> +++ b/xen/include/xen/sched.h
>>>> @@ -366,7 +366,7 @@ struct domain
>>>> /* Is this guest dying (i.e., a zombie)? */
>>>> enum { DOMDYING_alive, DOMDYING_dying, DOMDYING_dead } is_dying;
>>>> /* Domain is paused by controller software? */
>>>> - bool_t is_paused_by_controller;
>>>> + atomic_t controller_pause_count;
>>>> /* Domain's VCPUs are pinned 1:1 to physical CPUs? */
>>>> bool_t is_pinned;
>>>>
>>> Now why did you leave this be an atomic_t, sitting between two
>>> bool_t-s?
>> It is not sitting between two bool_t's. It is sitting next to an enum
>> which has the same natural width and alignment.
> Oh, right, the first one is being replaced.
>
> But you didn't say why it need to be an atomic_t, while in v1 it was a
> plain scalar.
>
> Jan
>
v1 was a plain scalar because of the spinlock. v2 was an atomic_t
because of atomic_{inc,dec}_bounded()
But given the hand rolled loops with cmpxchg(), this can indeed be a
plan scalar.
v4 on its way.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |