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

Re: [Xen-devel] [PATCH v2 3/3] xen: optimize xenbus driver for multiple concurrent xenstore accesses



On 01/16/2017 09:15 AM, Juergen Gross wrote:
> +
> +static uint32_t xs_request_enter(struct xb_req_data *req)
> +{
> +     uint32_t rq_id;
> +
> +     req->type = req->msg.type;
> +
> +     spin_lock(&xs_state_lock);
> +     for (;;) {
> +             if (req->msg.tx_id != 0)
> +                     break;
> +             if (xs_suspend_active) {
> +                     spin_unlock(&xs_state_lock);
> +                     wait_event(xs_state_enter_wq, xs_suspend_active == 0);
> +                     spin_lock(&xs_state_lock);
> +                     continue;
> +             }
> +             if (req->type == XS_TRANSACTION_START)
> +                     xs_state_users++;
> +             break;
> +     }
> +     xs_state_users++;
> +     rq_id = xs_request_id++;
> +     spin_unlock(&xs_state_lock);
> +
> +     return rq_id;
> +}

I should have noticed this last time but I've been looking at this code
again and I don't think I understand why you are incrementing count for
XS_TRANSACTION_START inside the loop.

In fact, why not just 'while(xs_suspend_active) {}' loop?

-boris


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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