On 2016-08-28 14:39, Ralf Ramsauer wrote: > Directories in /sys/devices/jailhouse/cells/ formerly represented cell names. > > This patch changes this structure. From now on, /sys/devices/jailhouse/cells/ > will contain cell ids. The name of a specific cell got moved to > /sys/devices/jailhouse/cells/<id>/name. > > This makes the sysfs interface easier to be parsed by applications. > > Also align documentation, jailhouse-cell-list and > jailhouse-completion.bash to the changes. > > Signed-off-by: Ralf Ramsauer <[email protected]> > --- > Documentation/sysfs-entries.txt | 4 ++-- > driver/sysfs.c | 14 +++++++------- > tools/jailhouse-cell-list | 4 ++-- > tools/jailhouse-completion.bash | 14 +++++--------- > 4 files changed, 16 insertions(+), 20 deletions(-) > > diff --git a/Documentation/sysfs-entries.txt b/Documentation/sysfs-entries.txt > index 2845220..0fc315a 100644 > --- a/Documentation/sysfs-entries.txt > +++ b/Documentation/sysfs-entries.txt > @@ -11,8 +11,8 @@ can be used for monitoring the state of the hypervisor and > its cells. > |- remap_pool_size - number of pages in hypervisor remapping > pool > |- remap_pool_used - used pages of hypervisor remapping pool > `- cells > - |- <name of cell> > - | |- id - unique numerical ID > + |- <id> - unique numerical ID > + | |- name - cell name > | |- state - "running", "running/locked", "shut down", > or > | | "failed" > | |- cpus_assigned - bitmask of assigned logical CPUs > diff --git a/driver/sysfs.c b/driver/sysfs.c > index a18c2b9..8c2a11f 100644 > --- a/driver/sysfs.c > +++ b/driver/sysfs.c > @@ -139,12 +139,12 @@ static struct attribute_group stats_attr_group = { > .name = "statistics" > }; > > -static ssize_t id_show(struct kobject *kobj, struct kobj_attribute *attr, > - char *buffer) > +static ssize_t name_show(struct kobject *kobj, struct kobj_attribute *attr, > + char *buffer) > { > struct cell *cell = container_of(kobj, struct cell, kobj); > > - return sprintf(buffer, "%u\n", cell->id); > + return sprintf(buffer, "%s\n", cell->name); > } > > static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr, > @@ -212,14 +212,14 @@ static ssize_t cpus_failed_show(struct kobject *kobj, > return written; > } > > -static struct kobj_attribute cell_id_attr = __ATTR_RO(id); > +static struct kobj_attribute cell_name_attr = __ATTR_RO(name); > static struct kobj_attribute cell_state_attr = __ATTR_RO(state); > static struct kobj_attribute cell_cpus_assigned_attr = > __ATTR_RO(cpus_assigned); > static struct kobj_attribute cell_cpus_failed_attr = __ATTR_RO(cpus_failed); > > static struct attribute *cell_attrs[] = { > - &cell_id_attr.attr, > + &cell_name_attr.attr, > &cell_state_attr.attr, > &cell_cpus_assigned_attr.attr, > &cell_cpus_failed_attr.attr, > @@ -236,8 +236,8 @@ int jailhouse_sysfs_cell_create(struct cell *cell) > { > int err; > > - err = kobject_init_and_add(&cell->kobj, &cell_type, cells_dir, "%s", > - cell->name); > + err = kobject_init_and_add(&cell->kobj, &cell_type, cells_dir, "%d", > + cell->id); > if (err) { > jailhouse_cell_kobj_release(&cell->kobj); > return err; > diff --git a/tools/jailhouse-cell-list b/tools/jailhouse-cell-list > index 3b5bc20..d4123f6 100755 > --- a/tools/jailhouse-cell-list > +++ b/tools/jailhouse-cell-list > @@ -54,8 +54,8 @@ if len(sys.argv) > 1: > cells = [] > for cell_path in glob.glob('/sys/devices/jailhouse/cells/*'): > cells.append({ > - 'name': os.path.basename(cell_path), > - 'id': open(cell_path + "/id").readline().strip(), > + 'id': os.path.basename(cell_path), > + 'name': open(cell_path + "/name").readline().strip(), > 'state': open(cell_path + "/state").readline().strip(), > 'cpus_assigned': read_cpus(cell_path + "/cpus_assigned"), > 'cpus_failed': read_cpus(cell_path + "/cpus_failed") > diff --git a/tools/jailhouse-completion.bash b/tools/jailhouse-completion.bash > index a20ea3c..2e4b379 100644 > --- a/tools/jailhouse-completion.bash > +++ b/tools/jailhouse-completion.bash > @@ -66,12 +66,9 @@ function _jailhouse_get_id() { > > # get possible ids and names > if [ -d /sys/devices/jailhouse/cells ]; then > - for i in /sys/devices/jailhouse/cells/*/id; do > - ids="${ids} $(cat "${i}" | tr '\n' ' ')" > - done > - for n in /sys/devices/jailhouse/cells/*; do > - _quote_readline_by_ref "${n##*/}" quoted > - names="${names} ${quoted}" > + for i in /sys/devices/jailhouse/cells/*; do > + ids="${ids} ${i##*/}" > + names="${names} $(<${i}/name)" > done > fi > > @@ -85,9 +82,8 @@ function _jailhouse_get_id() { > > # get possible names > if [ -d /sys/devices/jailhouse/cells ]; then > - for n in /sys/devices/jailhouse/cells/*; do > - _quote_readline_by_ref "${n##*/}" quoted > - names="${names} ${quoted}" > + for n in /sys/devices/jailhouse/cells/*/name; do > + names="${names} $(<${n})" > done > fi > >
We are getting closer: Could you also convert jailhouse-cell-stats? That should be the last case, I hope. I don't have other findings so far, still testing. Thanks, Jan -- Siemens AG, Corporate Technology, CT RDA ITP SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
