From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAIsI-0008Li-AB for qemu-devel@nongnu.org; Thu, 24 Jul 2014 09:16:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XAIs9-0003bL-Ls for qemu-devel@nongnu.org; Thu, 24 Jul 2014 09:15:58 -0400 Message-ID: <53D10703.40505@suse.de> Date: Thu, 24 Jul 2014 15:15:47 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1405657877-12353-1-git-send-email-cyrilbur@gmail.com> In-Reply-To: <1405657877-12353-1-git-send-email-cyrilbur@gmail.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH for-2.2] spapr: add host Linux version information to device tree List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: cyrilbur@gmail.com, qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, Cyril Bur On 18.07.14 06:31, cyrilbur@gmail.com 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 > --- > 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? > + 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? 2) I'm not sure KVM is the right decision maker on whether we want this exposed or not. After all, the files you read here are available on an x86 host just as well 3) Use glib functions to read files Alex