Re: [PATCH v3 0/7] Statsfs: a new ram-based file system for Linux kernel statistics

Emanuele Giuseppe Esposito
2020-05-27T13:14:51Z

>>
>> The file system is mounted on /sys/kernel/stats and would be already used
>> by kvm. Statsfs was initially introduced by Paolo Bonzini [1].
>
> What's the direct motivation for this work? Moving KVM stats out of
> debugfs?

There's many reasons: one of these is not using debugfs for statistics,
but also (and mainly) to try and have a single tool that automatically
takes care and displays them, instead of leaving each subsystem "on its
own".

Sure, everyone gathers and processes stats in different ways, and the
aim of this tool is to hopefully be extensible enough to cover all needs.
> In my experience stats belong in the API used for creating/enumerating
> objects, statsfs sounds like going in the exact opposite direction -
> creating a parallel structure / hierarchy for exposing stats.

I know
> nothing about KVM but are you sure all the info that has to be exposed
> will be stats?I don't understand, what do you mean here?

>
> In case of networking we have the basic stats in sysfs, under the
> netdevice's kobject. But since we're not using sysfs much any more
> for config, new stats are added in netlink APIs. Again - same APIs
> used for enumeration and config.

I don't really know a lot about the networking subsystem, and as it was
pointed out in another email on patch 7 by Andrew, networking needs to
atomically gather and display statistics in order to make them
consistent, and currently this is not supported by stats_fs but could be
added in future.

In addition, right now it won't work properly if the networking
namespaces are enabled. That is another issue to take into
consideration. That's also why I marked patch 7 as "not for merge"

Regarding the config, as I said the idea is to gather multiple
subsystems' statistics, therefore there wouldn't be a single
configuration method like in netlink.
For example in kvm there are file descriptors for configuration, and
creating them requires no privilege, contrary to the network interfaces.

Thank you,
Emanuele