Re: [PATCH] xen-blkback: add a parameter for disabling of persistent grants

From: Roger Pau Monné
Date: Thu Sep 24 2020 - 06:47:34 EST


On Thu, Sep 24, 2020 at 12:27:14PM +0200, SeongJae Park wrote:
> On Thu, 24 Sep 2020 12:13:44 +0200 "Roger Pau Monné" <roger.pau@xxxxxxxxxx> wrote:
>
> > On Wed, Sep 23, 2020 at 04:09:30PM -0400, Konrad Rzeszutek Wilk wrote:
> > > On Tue, Sep 22, 2020 at 09:01:25AM +0200, SeongJae Park wrote:
> > > > From: SeongJae Park <sjpark@xxxxxxxxx>
> > > >
> > > > Persistent grants feature provides high scalability. On some small
> > > > systems, however, it could incur data copy overhead[1] and thus it is
> > > > required to be disabled. But, there is no option to disable it. For
> > > > the reason, this commit adds a module parameter for disabling of the
> > > > feature.
> > >
> > > Would it be better suited to have it per guest?
> >
> > I think having a per-backend policy that could be specified at the
> > toolstack level would be nice, but I see that as a further
> > improvement.
>
> Agreed.
>
> >
> > Having a global backend domain policy of whether persistent grants are
> > enabled or not seems desirable, and if someone wants even more fine
> > grained control this change is AFAICT not incompatible with a
> > per-backend option anyway.
>
> I think we could extend this design by receiving list of exceptional domains.
> For example, if 'feature_persistent' is True and exceptions list has '123,
> 456', domains of domid 123 and 456 will not use persistent grants, and vice
> versa.

I think that would be quite fragile IMO, I wouldn't recommend relying
on domain IDs.

What I would do instead is add a new attribute to
xl-disk-configuration [0] that allows setting the persistent grants
usage on a per-disk basis, and that should be passed to blkback in a
xenstore node.

> I could implement this, but... to be honest, I don't really understand the
> needs of the fine-grained control. AFAIU, the problem is 'scalability' vs
> 'data copy overhead'. So, only small systems would want to turn persistent
> grants off. In such a small system, why would we need fine-grained control?
> I'm worrying if I would implement and maintain a feature without real use case.
>
> For the reason, I'd like to suggest to keep this as is for now and expand it
> with the 'exceptions list' idea or something better, if a real use case comes
> out later.

I agree. I'm happy to take patches to implement more fine grained
control, but that shouldn't prevent us from having a global policy if
that's useful to users.

Roger.

[0] https://xenbits.xen.org/docs/unstable/man/xl-disk-configuration.5.html