[LTP] [PATCH v2 1/1] lib/tst_virt: support IBM/Z LPAR and z/VM virtualization environments
Alexander Egorenkov
egorenar@linux.ibm.com
Mon Nov 9 16:11:31 CET 2020
Cyril Hrubis <chrubis@suse.cz> writes:
> Hi!
> Actually we can simplify the code like this:
>
> +static int is_ibmz(int virt_type)
> +{
> + FILE *sysinfo;
> + char line[64];
> + int found_lpar, found_zvm;
> +
> + if (virt_type != VIRT_IBMZ_LPAR && virt_type != VIRT_IBMZ_ZVM)
> + return 0;
> +
> + if (access("/proc/sysinfo", F_OK) != 0)
> + return 0;
> +
> + sysinfo = SAFE_FOPEN(NULL, "/proc/sysinfo", "r");
> + found_lpar = 0;
> + found_zvm = 0;
> + while (fgets(line, sizeof(line), sysinfo) != NULL) {
> + if (strstr(line, "LPAR"))
> + found_lpar = 1;
> + else if (strstr(line, "z/VM"))
> + found_zvm = 1;
> + }
> +
> + SAFE_FCLOSE(NULL, sysinfo);
> +
> + switch (virt_type) {
> + case VIRT_IBMZ:
> + return found_lpar;
> + case VIRT_IBMZ_LPAR:
> + return found_lpar && !found_zvm;
> + case VIRT_IBMZ_ZVM:
> + return found_lpar && found_zvm;
> + default:
> + return 0;
> + }
> +}
> +
> static int try_systemd_detect_virt(void)
> {
> FILE *f;
> @@ -102,6 +138,9 @@ static int try_systemd_detect_virt(void)
> if (!strncmp("xen", virt_type, 3))
> return VIRT_XEN;
>
> + if (!strncmp("zvm", virt_type, 3))
> + return VIRT_IBMZ_ZVM;
> +
> return VIRT_OTHER;
> }
>
> @@ -118,11 +157,15 @@ int tst_is_virt(int virt_type)
>
> switch (virt_type) {
> case VIRT_ANY:
> - return is_xen() || is_kvm();
> + return is_xen() || is_kvm() || is_ibmz(VIRT_IBMZ);
> case VIRT_XEN:
> return is_xen();
> case VIRT_KVM:
> return is_kvm();
> + case VIRT_IBMZ:
> + case VIRT_IBMZ_LPAR:
> + case VIRT_IBMZ_ZVM:
> + return is_ibmz(virt_type);
> case VIRT_OTHER:
> return 0;
> }
>
>
> Do you agree with these changes?
>
> --
> Cyril Hrubis
> chrubis@suse.cz
Hi, perfect.
Thanks
Regards
Alex
More information about the ltp
mailing list