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

Re: [Xen-devel] blkfront problem in pvops kernel when barriers enabled



>>> On 07.09.11 at 03:47, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> wrote:
> On Tue, Sep 06, 2011 at 07:16:34PM +0200, Marek Marczykowski wrote:
>> On 06.09.2011 18:32, Konrad Rzeszutek Wilk wrote:
>> > On Sun, Sep 04, 2011 at 12:49:42PM +0200, Marek Marczykowski wrote:
>> >> Hello,
>> >>
>> >> Pvops block frontend (tested vanilla 3.0.3, 3.1rc2, Konrad's testing
>> >> branch) produces a lot of I/O errors when barriers are enabled but
>> >> cannot be used.
>> >>
>> >> On xenlinux I've got message:
>> >> [   15.036921] blkfront: xvdb: empty write barrier op failed
>> >> [   15.036936] blkfront: xvdb: barriers disabled
>> >>
>> >> and after that, everything works fine. On pvops - I/O errors.
>> >> As backend I've used 2.6.38.3 xenlinux (based on SUSE package) and
>> >> 3.1rc2 with same result.
>> > 
>> > Hm, and the 'feature-barrier' was enabled on in those backends?
>> > That is really bizzare considering that those backends don't actually
>> > support WRITE_BARRIER anymore.
>> 
>> At least in 2.6.38.3 xenlinux  (SUSE). Now I'm not sure if 3.1rc2 also
>> needed this modification (can't find it now).
>> 
>> >> When I disable barriers (patching blkbackend to set feature-barrier=0)
>> >> everything works fine with all above versions.
>> > 
>> > Ok, and the patch you sent "[PATCH] Initialize vars in blkfront_connect"
>> > as well?
>> 
>> Yes.
>> I've noticed now that this patch was needed only on your testing branch
>> (not vanilla kernel).
> 
> Oooo. Let me check what went wrong. Perhaps the fix is already applied in
> my local tree.
>> 
>> >> My setup is xen-4.1.1 (if it matters), backends: phy from device-mapper
>> >> device and phy from loop device; frontends covered by device-mapper
>> >> snapshot, which is set up in domU initramfs.
>> >>
>> >> It looks like some race condition, because when I setup device-mapper in
>> >> domU and mount it manually (which cause some delays between steps), it
>> >> works fine...
>> >>
>> >> Have you idea why it happens? What additional data can I provide debug it?
>> >>
>> >> In addition it should be possible to disable barrier without patching
>> >> module... Perhaps some pciback module parameter? Or leave feature-*
>> > 
>> > Not sure why you would touch pciback.. 
>> 
>> I mean blkback of course.
>> 
>> > But the barrier should _not_
>> > be enabled in those backends. The 'feature-flush-cache' should be.
>> 
>> (on 3.1rc2) Looking to xenstore now there is 'feature-flush-cache=1' and
>> no 'feature-barrier'. So it is ok.
> 
> <scratches head>
> 
> I can only think of 2.6.38-3 XenOLinux doing it - and it is a bug
> to do it. It really ought to _not_ advertise 'feature-barrier' and
> instead advertise 'feature-flush-cache'.

Indeed, I see that I added feature-flush-cache support to the frontend
back then, but neglected to do so for the backend. Partly perhaps
because I'm not much of a (block, network, ...) driver person...

However, what I'm not understanding with dropping feature-barrier
support from the backend - how do you deal with old frontends
wanting to use barriers? I'm currently converting them into
WRITE_FLUSH_FUA operations in the backend as a (hopefully) best
effort approach.

Jan


_______________________________________________
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®.