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

Re: [Xen-devel] [PATCH linux-2.6.18-xen] fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()



>>> On 13.05.11 at 10:15, "Jan Beulich" <JBeulich@xxxxxxxxxx> wrote:
>>>> On 12.05.11 at 12:24, Laszlo Ersek <lersek@xxxxxxxxxx> wrote:
>> fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()
>> 
>> vbd_resize() up_read()'s xs_state.suspend_mutex twice in a row via double
>> xenbus_transaction_end() calls. The next down_read() in
>> xenbus_transaction_start() (at eg. the next resize attempt) hangs.
>> 
>> See RHBZ#618317.
>> 
>> Thanks for considering.
>> 
>> Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx>
> 
> Acked-by: Jan Beulich <jbeulich@xxxxxxxxxx>
> 
> (I wonder how this ever passed any testing.)

Hmm, I think if this really wasn't *that* bad. In particular I'm finding
that neither pv-ops nor the legacy tree has anything called
suspend_mutex in drivers/xen/xenbus/xenbus_xs.c, nor is there any
other mutex being up_read()-ed in transaction_end().

What got corrupted by the double call was transaction_count, which
would have had a negative effect at the next transaction_suspend()
(but not at any subsequent transaction_start()).

Jan

> The same would be needed for pv-ops too afaics.
> 
> Jan
> 
>> ---
>>  drivers/xen/blkback/vbd.c |    1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/drivers/xen/blkback/vbd.c b/drivers/xen/blkback/vbd.c
>> --- a/drivers/xen/blkback/vbd.c
>> +++ b/drivers/xen/blkback/vbd.c
>> @@ -156,6 +156,7 @@
>>              goto again;
>>      if (err)
>>              printk(KERN_WARNING "Error ending transaction");
>> +    return;
>>  abort:
>>      xenbus_transaction_end(xbt, 1);
>>  }
>> 
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx 
>> http://lists.xensource.com/xen-devel 
> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx 
> http://lists.xensource.com/xen-devel 




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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