From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: Re: [PATCH] kvm tools: Change method of retrieving process name Date: Tue, 09 Aug 2011 18:02:02 +0300 Message-ID: <1312902122.2518.7.camel@sasha> References: <1312885059-842-1-git-send-email-levinsasha928@gmail.com> <20110809145331.GC28228@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Ingo Molnar , psuriset@linux.vnet.ibm.com, asias.hejun@gmail.com, prasadjoshi124@gmail.com, gorcunov@gmail.com, kvm@vger.kernel.org To: Pekka Enberg Return-path: Received: from mail-ww0-f44.google.com ([74.125.82.44]:35306 "EHLO mail-ww0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752911Ab1HIPCP (ORCPT ); Tue, 9 Aug 2011 11:02:15 -0400 Received: by wwf5 with SMTP id 5so79489wwf.1 for ; Tue, 09 Aug 2011 08:02:14 -0700 (PDT) In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On Tue, 2011-08-09 at 17:56 +0300, Pekka Enberg wrote: > On Tue, Aug 9, 2011 at 5:53 PM, Ingo Molnar wrote: > > > > * Sasha Levin wrote: > > > >> This patch changes './kvm list' to retrieve process name from > >> '/proc//stat' instead of '/proc//comm' as it appears the latter > >> does not exist by default on several systems. > >> > >> Reported-by: pradeep > >> Signed-off-by: Sasha Levin > >> --- > >> tools/kvm/builtin-list.c | 21 ++++++++++++++------- > >> 1 files changed, 14 insertions(+), 7 deletions(-) > >> > >> diff --git a/tools/kvm/builtin-list.c b/tools/kvm/builtin-list.c > >> index 2d37ecb..89a0465 100644 > >> --- a/tools/kvm/builtin-list.c > >> +++ b/tools/kvm/builtin-list.c > >> @@ -13,25 +13,32 @@ > >> static void print_guest(const char *name, int pid) > >> { > >> char proc_name[PATH_MAX]; > >> - char comm[sizeof(PROCESS_NAME)]; > >> - int fd; > >> + char *comm = NULL; > >> + FILE *fd; > >> > >> - sprintf(proc_name, "/proc/%d/comm", pid); > >> - fd = open(proc_name, O_RDONLY); > >> - if (fd <= 0) > >> + sprintf(proc_name, "/proc/%d/stat", pid); > >> + fd = fopen(proc_name, "r"); > >> + if (fd == NULL) > >> goto cleanup; > > > > No, instead we should fall back to 'stat' if the 'comm' access fails. > > The 'stat' field contains a lot more data and is thus slower - while > > 'comm' only outputs the comm. > > Doh. I already merged the patch. Sasha, can you please send an > incremental one to fix it up? Does it matter when running './kvm list'? The speed difference isn't really noticeable and it's not something that runs all the time. -- Sasha.