Re: blkfront: barrier: empty write op failed

Luca Lesinigo
Thu, 01 Dec 2011 12:12:12 -0000

Il giorno 01/dic/2011, alle ore 11:41, Fantu ha scritto:
> Dom0 blkback on upstream kernel have barrier support only start from 3.2,
set barrier=0 on fstab for not show error with kernel 3.0 or 3.1
Thanks for the tip. It pointed me in the right direction to find out something
more.

Now, this problem seems to be connected with the issues discussed in this
thread:
http://old-list-archives.xen.org/archives/html/xen-devel/2011-09/msg00385.html

If I understood correctly the whole issue is:
- my dom0 (2.6.38.x derived from Suse) does not advertise/support flush-cache,
does advertise feature-barrier="1" (checked with xenstore-ls), but
does not actually have the WRITE_BARRIER functionality
- the domU (3.0.x) sees the feature-barrier and tries to use them but then fails
because dom0 doesn''t actually implement them
- turning barriers off in ext3 makes the log line disappear unless you use
something else that triggers the usage of barriers (eg mkfs.ext3/.ext4, or
anything WRITE_ODIRECT)
- but then you''re running with no barrier or similar functionality so
that will expose the system to corruption during hard crashes or power outages

If I update my dom0 kernels to newer ones they should advertise
feature-flush-cache="1" (should be in linux >= 3.0 afaik) and my
domU will stop trying to use barriers and use flush-cache instead. Problem
solved there.

But what about older domU systems, like Ubuntu 10.xx linux-xen kernels, or HVM
Windows guests with GPLPV drivers? Will they work correctly on newer dom0 with
flush-cache and without barriers? I seem to understand that there isn''t
any dom0 kernel available which actually implements both barriers (for older
domU systems) and flush-cache (for newer ones)?

What if I turn back to an older dom0 kernel which implements barriers? (should
be kernels before 2.6.37 afaik)
Would that make any ''generation'' of dom0 systems happily use
barriers and prevent the above mentioned corruption risks?

Thanks.