Re: [PATCH] KVM: introduce vm's max_halt_poll_ns to debugfs

cheng.lin130
2024-05-11T02:34:51Z

> > > > > From: seanjc <seanjc@google.com>
> > > > > > From: Cheng Lin <cheng.lin130@zte.com.cn>
> > > > > >
> > > > > > Introduce vm's max_halt_poll_ns and override_halt_poll_ns to
> > > > > > debugfs. Provide a way to check and modify them.
> > > > > Why?
> > > > If a vm's max_halt_poll_ns has been set using KVM_CAP_HALT_POLL,
> > > > the module parameter kvm.halt_poll.ns will no longer indicate the maximum
> > > > halt pooling interval for that vm. After introducing these two attributes into
> > > > debugfs, it can be used to check whether the individual configuration of the
> > > > vm is enabled and the working value.
> > > But why is max_halt_poll_ns special enough to warrant debugfs entries? There is
> > > a _lot_ of state in KVM that is configurable per-VM, it simply isn't feasible to
> > > dump everything into debugfs.
> > If we want to provide a directly modification interface under /sys for per-vm
> > max_halt_poll_ns, like module parameter /sys/module/kvm/parameters/halt_poll_ns,
> > using debugfs may be worth.
> Yes, but _why_? I know _what_ a debugs knob allows, but you have yet to explain
> why this
I think that if such an interface is provided, it can be used to check the source of
vm's max_halt_poll_ns, general module parameter or per-vm configuration.
When configured through per-vm, such an interface can be used to monitor this
configuration. If there is an error in the setting through KVMCAP_HALL_POLL, such
an interface can be used to fix or reset it dynamicly.
> General speaking, functionality of any kind should not be routed through debugfs,
> it really is meant for debug. E.g. it's typically root-only, is not guaranteed
> to exist, its population is best-effort, etc.
> > Further, if the override_halt_poll_ns under debugfs is set to be writable, it can even
> > achieve the setting of per-vm max_halt_poll_ns, as the KVM_CAP_HALL_POLL interface
> > does.
> > > I do think it would be reasonable to capture the max allowed polling time in
> > > the existing tracepoint though, e.g.
> > Yes, I agree it.
> > It is sufficient to get per-vm max_halt_poll_ns through tracepoint if KVP_CAP_HALL_POLL
> > is used as the unique setting interface.
> >
> > Do you consider it is worth to provide a setting interface other than KVP_CAP_HALL_POLL?