mirror of https://gitee.com/openkylin/linux.git
s390/dump_stack: use control program identification string
If running within a level 3 hypervisor, the hypervisor provides a SYSIB block which contains a control program indentifier string. Use this string instead of the simple KVM and z/VM strings only. In case of z/VM this provides addtional information: the z/VM version. The new string looks similar to this: Hardware name: IBM 2964 N96 702 (z/VM 6.4.0) Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
d2f0397425
commit
2f8876f984
|
@ -252,7 +252,8 @@ static inline void strim_all(char *str)
|
|||
static noinline __init void setup_arch_string(void)
|
||||
{
|
||||
struct sysinfo_1_1_1 *mach = (struct sysinfo_1_1_1 *)&sysinfo_page;
|
||||
char mstr[80];
|
||||
struct sysinfo_3_2_2 *vm = (struct sysinfo_3_2_2 *)&sysinfo_page;
|
||||
char mstr[80], hvstr[17];
|
||||
|
||||
if (stsi(mach, 1, 1, 1))
|
||||
return;
|
||||
|
@ -264,10 +265,17 @@ static noinline __init void setup_arch_string(void)
|
|||
mach->manufacturer, mach->type,
|
||||
mach->model, mach->model_capacity);
|
||||
strim_all(mstr);
|
||||
dump_stack_set_arch_desc("%s (%s)", mstr,
|
||||
MACHINE_IS_LPAR ? "LPAR" :
|
||||
MACHINE_IS_VM ? "z/VM" :
|
||||
MACHINE_IS_KVM ? "KVM" : "unknown");
|
||||
if (stsi(vm, 3, 2, 2) == 0 && vm->count) {
|
||||
EBCASC(vm->vm[0].cpi, sizeof(vm->vm[0].cpi));
|
||||
sprintf(hvstr, "%-16.16s", vm->vm[0].cpi);
|
||||
strim_all(hvstr);
|
||||
} else {
|
||||
sprintf(hvstr, "%s",
|
||||
MACHINE_IS_LPAR ? "LPAR" :
|
||||
MACHINE_IS_VM ? "z/VM" :
|
||||
MACHINE_IS_KVM ? "KVM" : "unknown");
|
||||
}
|
||||
dump_stack_set_arch_desc("%s (%s)", mstr, hvstr);
|
||||
}
|
||||
|
||||
static __init void setup_topology(void)
|
||||
|
|
Loading…
Reference in New Issue