Skip to content
  • Michael Holzheu's avatar
    [PATCH] s390_hypfs filesystem · 24bbb1fa
    Michael Holzheu authored
    
    
    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 's390_hypfs' using the Linux 2.6 libfs
    framework.  The name 's390_hypfs' stands for 'S390 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/s390 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.
    
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Cc: Ingo Oeser <ioe-lkml@rameria.de>
    Cc: Joern Engel <joern@wohnheim.fh-wedel.de>
    Acked-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarMichael Holzheu <holzheu@de.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    24bbb1fa