Currently qemu auto fallback to aio=threads if cache=none|directsync
It's better to handle that correctly
see:
https://bugzilla.redhat.com/show_bug.cgi?id=
1086704
http://wiki.qemu.org/ChangeLog/2.3
Future incompatible changes:
Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
$opts .= ",$o=" . int($v*1024*1024) if $v;
}
- # use linux-aio by default (qemu default is threads)
- $opts .= ",aio=native" if !$drive->{aio};
+ # aio native works only with O_DIRECT
+ if (!$drive->{aio}) {
+ if(!$drive->{cache} || $drive->{cache} eq 'none' || $drive->{cache} eq 'directsync') {
+ $opts .= ",aio=native";
+ } else {
+ $opts .= ",aio=threads";
+ }
+ }
+
my $path;
my $volid = $drive->{file};