[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 11:50, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
>>>> 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.

Also I notice you're using WRITE_ODIRECT - what's the background
of that?

Thanks, 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®.