]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lscpu: show dispatching mode
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 10 Aug 2011 08:34:32 +0000 (10:34 +0200)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Sun, 14 Aug 2011 15:34:30 +0000 (17:34 +0200)
A virtual guest my run in either "horiziontal" or "vertical" mode
which is the mode in which the underlying hypervisor schedules the
guest cpu.
Since this is of interest print this in the readable output.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
sys-utils/lscpu.c

index 9e4e1c0572766b976841de31b153b9b917d94bf2..aba7ab8bf35354da1d79981bca6385650f9e82ed 100644 (file)
@@ -97,6 +97,17 @@ struct cpu_cache {
        cpu_set_t       **sharedmaps;
 };
 
+/* dispatching modes */
+enum {
+       DISP_HORIZONTAL = 0,
+       DISP_VERTICAL   = 1
+};
+
+const char *disp_modes[] = {
+       [DISP_HORIZONTAL]       = N_("horizontal"),
+       [DISP_VERTICAL]         = N_("vertical")
+};
+
 /* global description */
 struct lscpu_desc {
        char    *arch;
@@ -110,6 +121,7 @@ struct lscpu_desc {
        char    *stepping;
        char    *bogomips;
        char    *flags;
+       int     dispatching;    /* none, horizontal or vertical */
        int     mode;           /* rm, lm or/and tm */
 
        int             ncpus;          /* number of CPUs */
@@ -478,6 +490,12 @@ read_basicinfo(struct lscpu_desc *desc)
                desc->online = path_cpulist(_PATH_SYS_SYSTEM "/cpu/online");
                desc->nthreads = CPU_COUNT_S(setsize, desc->online);
        }
+
+       /* get dispatching mode */
+       if (path_exist(_PATH_SYS_SYSTEM "/cpu/dispatching"))
+               desc->dispatching = path_getnum(_PATH_SYS_SYSTEM "/cpu/dispatching");
+       else
+               desc->dispatching = -1;
 }
 
 static int
@@ -1065,6 +1083,8 @@ print_readable(struct lscpu_desc *desc, int hex)
                print_s(_("Hypervisor vendor:"), hv_vendors[desc->hyper]);
                print_s(_("Virtualization type:"), virt_types[desc->virtype]);
        }
+       if (desc->dispatching >= 0)
+               print_s(_("Dispatching mode:"), disp_modes[desc->dispatching]);
        if (desc->ncaches) {
                char buf[512];
                int i;