Ack, with a lol and a nit. > On 13 Sep 2017, at 10:52, Frediano Ziglio <fziglio@xxxxxxxxxx> wrote: > > Simple usage improvement. > If only one process using spice is present allow to call > reds_stat not passing any pid. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > tools/reds_stat.c | 32 +++++++++++++++++++++++++++++--- > 1 file changed, 29 insertions(+), 3 deletions(-) > > diff --git a/tools/reds_stat.c b/tools/reds_stat.c > index 69260bf86..10016fdb8 100644 > --- a/tools/reds_stat.c > +++ b/tools/reds_stat.c > @@ -25,6 +25,7 @@ > #include <string.h> > #include <unistd.h> > #include <inttypes.h> > +#include <glob.h> > #include <sys/stat.h> > #include <spice/stats.h> > #include <common/verify.h> > @@ -60,10 +61,29 @@ static void print_stat_tree(int32_t node_index, int depth) > } > } > > +// look for a single file /dev/shm/spice.XXX and extract XXX pid > +static pid_t search_pid(void) > +{ > + pid_t pid = 0; > + glob_t globbuf; > + > + if (glob("/dev/shm/spice.*", 0, NULL, &globbuf)) { For consistency, I would add a #define for the search pattern in stats.h, next to where SPICE_STAT_SHM_NAME is defined. > + return pid; > + } > + if (globbuf.gl_pathc == 1) { > + const char *p = strchr(globbuf.gl_pathv[0], '.'); > + if (p) { > + pid = atoi(p+1); > + } > + } > + globfree(&globbuf); > + return pid; > +} > + > int main(int argc, char **argv) > { > char *shm_name; > - pid_t kvm_pid; > + pid_t kvm_pid = 0; > uint32_t num_of_nodes = 0; > size_t shm_size; > size_t shm_old_size; > @@ -74,11 +94,17 @@ int main(int argc, char **argv) > unsigned header_size = sizeof(SpiceStat); > SpiceStat *reds_stat = (SpiceStat *)MAP_FAILED; > > - if (argc != 2 || !(kvm_pid = atoi(argv[1]))) { > + if (argc == 2) { > + kvm_pid = atoi(argv[1]); > + } else if (argc == 1) { > + kvm_pid = search_pid(); > + } > + > + if (argc > 2 || !kvm_pid) { > printf("usage: reds_stat [qemu_pid] (e.g. `pgrep qemu`)\n"); > return -1; > } > - shm_name_len = strlen(SPICE_STAT_SHM_NAME) + strlen(argv[1]); > + shm_name_len = strlen(SPICE_STAT_SHM_NAME) + 64; > if (!(shm_name = (char *)malloc(shm_name_len))) { > perror("malloc"); > return -1; > -- > 2.13.5 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel