qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc] [PATCH for-2.2] spapr: add host Linux versio


From: Alexander Graf
Subject: Re: [Qemu-devel] [Qemu-ppc] [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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]