Re: [PATCH] s390: Hypervisor File System

From: Greg KH
Date: Sat Apr 29 2006 - 03:54:35 EST


On Fri, Apr 28, 2006 at 11:22:25AM +0200, Michael Holzheu wrote:
> On zSeries machines there exists an interface which allows the operating
> system to retrieve LPAR hypervisor accounting data. For example, it is
> possible to get usage data for physical and virtual cpus. In order to
> provide this information to user space programs, I implemented a new
> virtual Linux file system named 'hypfs' using the Linux 2.6 libfs
> framework. The name 'hypfs' stands for 'Hypervisor Filesystem'. All the
> accounting information is put into different virtual files which can be
> accessed from user space. All data is represented as ASCII strings.
>
> When the file system is mounted the accounting information is retrieved
> and a file system tree is created with the attribute files containing
> the cpu information. The content of the files remains unchanged until a
> new update is made. An update can be triggered from user space through
> writing 'something' into a special purpose update file.
>
> We create the following directory structure:
>
> <mount-point>/
> update
> cpus/
> <cpu-id>
> type
> mgmtime
> <cpu-id>
> ...
> hyp/
> type
> systems/
> <lpar-name>
> cpus/
> <cpu-id>
> type
> mgmtime
> cputime
> onlinetime
> <cpu-id>
> ...
> <lpar-name>
> cpus/
> ...
>
> - update: File to trigger update
> - cpus/: Directory for all physical cpus
> - cpus/<cpu-id>/: Directory for one physical cpu.
> - cpus/<cpu-id>/type: Type name of physical zSeries cpu.
> - cpus/<cpu-id>/mgmtime: Physical-LPAR-management time in microseconds.
> - hyp/: Directory for hypervisor information
> - hyp/type: Typ of hypervisor (currently only 'LPAR Hypervisor')
> - systems/: Directory for all LPARs
> - systems/<lpar-name>/: Directory for one LPAR.
> - systems/<lpar-name>/cpus/<cpu-id>/: Directory for the virtual cpus
> - systems/<lpar-name>/cpus/<cpu-id>/type: Typ of cpu.
> - systems/<lpar-name>/cpus/<cpu-id>/mgmtime:
> Accumulated number of microseconds during which a physical
> CPU was assigned to the logical cpu and the cpu time was
> consumed by the hypervisor and was not provided to
> the LPAR (LPAR overhead).
>
> - systems/<lpar-name>/cpus/<cpu-id>/cputime:
> Accumulated number of microseconds during which a physical CPU
> was assigned to the logical cpu and the cpu time was consumed
> by the LPAR.
>
> - systems/<lpar-name>/cpus/<cpu-id>/onlinetime:
> Accumulated number of microseconds during which the logical CPU
> has been online.
>
> As mount point for the filesystem /sys/hypervisor is created.
>
> The update process is triggered when writing 'something' into the
> 'update' file at the top level hypfs directory. You can do this e.g.
> with 'echo 1 > update'. During the update the whole directory structure
> is deleted and built up again.

This sounds a lot like configfs. Why not use that instead?

Is there a reason that sysfs can't be used for a lot of these things
too?

We already have the different cpus in sysfs, why put things in a
different location than that?

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/