WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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