[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 18/01/17 21:14, Boris Ostrovsky wrote: > 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? That's a valid question. I'll change it. The reason to have the larger loop body isn't existing any longer. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |