[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH for-2.2] spapr: add host Linux versio
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH for-2.2] spapr: add host Linux version information to device tree |
Date: |
Mon, 28 Jul 2014 09:50:56 +0200 |
> Am 28.07.2014 um 08:47 schrieb Alexey Kardashevskiy <address@hidden>:
>
>> On 07/24/2014 11:15 PM, Alexander Graf wrote:
>>
>>> On 18.07.14 06:31, address@hidden wrote:
>>> It may prove useful know which Linux distribution version the host machine
>>> is running when an issue in the guest arises but a user cannot access
>>> the host.
>>>
>>> Signed-off-by: Cyril Bur <address@hidden>
>>> ---
>>> hw/ppc/spapr.c | 8 +++++++
>>> target-ppc/kvm.c | 62
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> target-ppc/kvm_ppc.h | 6 +++++
>>> 3 files changed, 76 insertions(+)
>>>
>>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
>>> index 6b48a26..391d47a 100644
>>> --- a/hw/ppc/spapr.c
>>> +++ b/hw/ppc/spapr.c
>>> @@ -375,6 +375,14 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base,
>>> _FDT((fdt_property_string(fdt, "vm,uuid", buf)));
>>> g_free(buf);
>>> + /*
>>> + * Add info to the guest FDT to tell it what linux the host is
>>> + */
>>> + if (kvmppc_get_linux_host(&buf)) {
>>> + _FDT((fdt_property_string(fdt, "linux,host", buf)));
>>
>> Is this even specified in sPAPR?
>
>
> PAPR does not know about any "linux,xxx" properties.
>
>>
>>> + g_free(buf);
>>> + }
>>> +
>>> _FDT((fdt_property_cell(fdt, "#address-cells", 0x2)));
>>> _FDT((fdt_property_cell(fdt, "#size-cells", 0x2)));
>>> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
>>> index 8c9e79c..95e0970 100644
>>> --- a/target-ppc/kvm.c
>>> +++ b/target-ppc/kvm.c
>>> @@ -1415,6 +1415,68 @@ bool kvmppc_get_host_model(char **value)
>>> return g_file_get_contents("/proc/device-tree/model", value, NULL,
>>> NULL);
>>> }
>>> +bool kvmppc_get_linux_host(char **value)
>>> +{
>>> + FILE *f;
>>> + int i;
>>> + char line[512];
>>> + const char *names[] = {"NAME", "VERSION", "BUILD_ID"};
>>> + bool names_found[ARRAY_SIZE(names)] = { 0 };
>>> + GString *output = NULL;
>>> + f = fopen("/etc/os-release", "r");
>>
>> A few comments:
>>
>> 1) Why would anyone care?
>
>
> Useful debug info when the host is not reachable.
>
>
>> 2) I'm not sure KVM is the right decision maker on whether we want this
>> exposed or not.
>
> Good point, there is no reason not to show this info in TCG.
>
>> After all, the files you read here are available on an x86
>> host just as well
>
> Does qemu-x86 has any way to pass information like this to the guest?
Yes and no. It has fw_cfg where we could put it and it has DSST generation
where we could also put it I guess. Just like here, there's no standardized way
to expose it though.
Alex
>
>
>> 3) Use glib functions to read files
>>
>>
>> Alex
>
>
> --
> Alexey