From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: blkfront problem in pvops kernel when barriers enabled Date: Tue, 6 Sep 2011 12:55:22 -0400 Message-ID: <20110906165522.GD28971@dumpdata.com> References: <4E6357C6.6050101@mimuw.edu.pl> <20110906163213.GC5264@dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20110906163213.GC5264@dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Marek Marczykowski , JBeulich@novell.com Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On Tue, Sep 06, 2011 at 12:32:13PM -0400, 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. To be exact: http://lwn.net/Articles/399715/ so in 2.6.37-era ish the WRITE_BARRIER functionality got ripped out. And the LFS summit in 2010 had more details: http://lwn.net/Articles/399148/ "That led, eventually, to one of the clearest decisions in the first day of the summit: barriers, as such, will be no more." And WRITE_BARRIER != WRITE_FLUSH so if the SuSE backend is using it as so - then there is a bug in there. In the 3.1-rc2 upstream kernel there should be absolutly no hint of 'feature-barrier' in the _backend_ code (it is OK for it to be in the frontend code). Can you confirm where you got your sources? P.S. There should be a backwards compatible way of implementing the 'feature-barrier' in the block backend of 3.0 and further kernels.. but nobody has stepped up in implementing it. Also, one more thing - are you sure you are using the block backend? You might be using the QEMU qdisk?