[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] new knob to tweak caching mode for backends

On Wed, 28 May 2014, Olaf Hering wrote:
> On Tue, May 27, Stefano Stabellini wrote:
> > So I think that as long as we keep the default behaviour sane, we can
> > expose whatever advanced options we like.
> Its not about changing defaults, but rather provide knobs for the new
> features. Now that the backend is qdisk (no idea when this became the
> default) qemu is in charge. qemu offers a cache= option, and backends
> may honour the value.
> libvirt seems to have a 1:1 mapping for the qemu backend, I have to
> check if libvirt does any processing or if it passes cache= as is.
> Now from libirt->libxl->qemu there is no way to pass cache= because
> libxl got no cache= knob while qdisk became the default. Again, I have
> to check what the libxl driver in libvirt does if cache= specified, if
> its ignored or handled as error.
> So with this in mind, will a patch be accepted to add some sort of
> "char *cache" member to struct libxl_disk_device?

We need to come up with a decent interface at the libxl level, so at the
very least I would use an enum cache instead of a char*.

> Should it accept all
> values libvirt and qemu knows about, or just the few values qdisk can
> actually handle (nocache|write-back|directsync)?

I would only do the ones that qdisk can handle.

> In addition to that: the direct-io-safe knob does not only enable AIO it
> also changes from write-back to directsync. Qemu has a knob aio=native
> and cache= for directsync. Looks like direct-io-safe merges both. Is
> that intentional?

Yes, because aio=native doesn't actually do anything unless
cache=directsync is also set.  See for example

> If libxl gets a cache= option, should it be possible
> to specify "direct-io-safe,cache=write-back"?

In practice if you do, you loose the advantage of passing
direct-io-safe. directio is only used when both BDRV_O_NATIVE_AIO and
BDRV_O_NOCACHE are specified. It really doesn't make sense to pass
direct-io-safe with cache, unless cache=directsync is used but then it
would be superfluous.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.