All of lore.kernel.org
 help / color / mirror / Atom feed
* PATCH: Use name instead of pid in QEMU logs
@ 2007-06-01  0:55 Daniel P. Berrange
  2007-06-01  1:00 ` Mark Williamson
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Daniel P. Berrange @ 2007-06-01  0:55 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 777 bytes --]

The attached patch changes the logfile name generated by qemu-dm to use the
pattern  qemu-dm-[NAME].log instead of qemu-dm-[PID].log. This makes it
easier for the adminsitrator to figure out which log corresponds to which
guest (particularly after a crash where you no long know what PID the
qemu-dm process for your guest had). It also prevents the number of log
files from growing unbounded.

   Signed-off-by: Daniel P. Berrange <berrange@redhat.com>

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

[-- Attachment #2: xen-qemu-logs.patch --]
[-- Type: text/plain, Size: 2933 bytes --]

diff -r 089696e0c603 tools/ioemu/target-i386-dm/exec-dm.c
--- a/tools/ioemu/target-i386-dm/exec-dm.c	Thu May 17 11:42:46 2007 +0100
+++ b/tools/ioemu/target-i386-dm/exec-dm.c	Thu May 31 20:50:51 2007 -0400
@@ -124,7 +124,6 @@ static int io_mem_nb = 1;
 static int io_mem_nb = 1;
 
 /* log support */
-char *logfilename = "/tmp/qemu.log";
 FILE *logfile;
 int loglevel;
 
@@ -166,29 +165,28 @@ void cpu_set_log(int log_flags)
 void cpu_set_log(int log_flags)
 {
     loglevel = log_flags;
+    if (!logfile)
+      logfile = stderr;
+}
+
+void cpu_set_log_filename(const char *filename)
+{
+    logfile = fopen(filename, "w");
     if (!logfile) {
-        logfile = fopen(logfilename, "w");
-        if (!logfile) {
-            perror(logfilename);
-            _exit(1);
-        }
+        perror(filename);
+	_exit(1);
+    }
 #if !defined(CONFIG_SOFTMMU)
-        /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
-        {
-            static uint8_t logfile_buf[4096];
-            setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf));
-        }
+    /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
+    {
+        static uint8_t logfile_buf[4096];
+	setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf));
+    }
 #else
-        setvbuf(logfile, NULL, _IOLBF, 0);
-#endif
-        stdout = logfile;
-        stderr = logfile;
-    }
-}
-
-void cpu_set_log_filename(const char *filename)
-{
-    logfilename = strdup(filename);
+    setvbuf(logfile, NULL, _IOLBF, 0);
+#endif
+    stdout = logfile;
+    stderr = logfile;
 }
 
 /* mask must never be zero, except for A20 change call */
diff -r 089696e0c603 tools/ioemu/vl.c
--- a/tools/ioemu/vl.c	Thu May 17 11:42:46 2007 +0100
+++ b/tools/ioemu/vl.c	Thu May 31 20:51:20 2007 -0400
@@ -7144,9 +7144,7 @@ int main(int argc, char **argv)
     nb_nics = 0;
     /* default mac address of the first network interface */
     
-    /* init debug */
-    sprintf(qemu_dm_logfilename, "/var/log/xen/qemu-dm.%ld.log", (long)getpid());
-    cpu_set_log_filename(qemu_dm_logfilename);
+    /* Init logs to stderr to start with */
     cpu_set_log(0);
     
     optind = 1;
@@ -7525,7 +7523,7 @@ int main(int argc, char **argv)
                 semihosting_enabled = 1;
                 break;
             case QEMU_OPTION_domainname:
-                strncat(domain_name, optarg, sizeof(domain_name) - 20);
+                strncpy(domain_name, optarg, sizeof(domain_name) - 1);
                 break;
             case QEMU_OPTION_d:
                 domid = atoi(optarg);
@@ -7547,6 +7545,10 @@ int main(int argc, char **argv)
             }
         }
     }
+
+    /* Now send logs to our named config */
+    sprintf(qemu_dm_logfilename, "/var/log/xen/qemu-dm-%s.log", domain_name);
+    cpu_set_log_filename(qemu_dm_logfilename);
 
 #ifndef _WIN32
     if (daemonize && !nographic && vnc_display == NULL && vncunused == 0) {

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PATCH: Use name instead of pid in QEMU logs
  2007-06-01  0:55 PATCH: Use name instead of pid in QEMU logs Daniel P. Berrange
@ 2007-06-01  1:00 ` Mark Williamson
  2007-06-01  8:39 ` Petersson, Mats
  2007-06-12 14:59 ` Daniel P. Berrange
  2 siblings, 0 replies; 7+ messages in thread
From: Mark Williamson @ 2007-06-01  1:00 UTC (permalink / raw)
  To: xen-devel, Daniel P. Berrange

Hurrah!  Sounds like a brilliant idea to me (shuddering as remember the 
hundreds of qemu dm log files sitting around on my system).

Cheers,
Mark

On Friday 01 June 2007, Daniel P. Berrange wrote:
> The attached patch changes the logfile name generated by qemu-dm to use the
> pattern  qemu-dm-[NAME].log instead of qemu-dm-[PID].log. This makes it
> easier for the adminsitrator to figure out which log corresponds to which
> guest (particularly after a crash where you no long know what PID the
> qemu-dm process for your guest had). It also prevents the number of log
> files from growing unbounded.
>
>    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
>
> Dan.



-- 
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: PATCH: Use name instead of pid in QEMU logs
  2007-06-01  0:55 PATCH: Use name instead of pid in QEMU logs Daniel P. Berrange
  2007-06-01  1:00 ` Mark Williamson
@ 2007-06-01  8:39 ` Petersson, Mats
  2007-06-12 14:59 ` Daniel P. Berrange
  2 siblings, 0 replies; 7+ messages in thread
From: Petersson, Mats @ 2007-06-01  8:39 UTC (permalink / raw)
  To: Daniel P. Berrange, xen-devel

> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com 
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of 
> Daniel P. Berrange
> Sent: 01 June 2007 01:56
> To: xen-devel@lists.xensource.com
> Subject: [Xen-devel] PATCH: Use name instead of pid in QEMU logs
> 
> The attached patch changes the logfile name generated by 
> qemu-dm to use the
> pattern  qemu-dm-[NAME].log instead of qemu-dm-[PID].log. 
> This makes it
> easier for the adminsitrator to figure out which log 
> corresponds to which
> guest (particularly after a crash where you no long know what PID the
> qemu-dm process for your guest had). It also prevents the 
> number of log
> files from growing unbounded.

Great stuff. I'll buy you a beer (or alternative beverage of your
choice) next time we're in the same place... 

--
Mats
> 
>    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> 
> Dan.
> -- 
> |=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 
> 978 392 2496 -=|
> |=-           Perl modules: http://search.cpan.org/~danberr/  
>             -=|
> |=-               Projects: http://freshmeat.net/~danielpb/   
>             -=|
> |=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF 
> F742 7D3B 9505  -=| 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PATCH: Use name instead of pid in QEMU logs
  2007-06-01  0:55 PATCH: Use name instead of pid in QEMU logs Daniel P. Berrange
  2007-06-01  1:00 ` Mark Williamson
  2007-06-01  8:39 ` Petersson, Mats
@ 2007-06-12 14:59 ` Daniel P. Berrange
  2007-06-12 15:44   ` Mark Williamson
  2007-06-12 16:04   ` Keir Fraser
  2 siblings, 2 replies; 7+ messages in thread
From: Daniel P. Berrange @ 2007-06-12 14:59 UTC (permalink / raw)
  To: xen-devel

On Fri, Jun 01, 2007 at 01:55:30AM +0100, Daniel P. Berrange wrote:
> The attached patch changes the logfile name generated by qemu-dm to use the
> pattern  qemu-dm-[NAME].log instead of qemu-dm-[PID].log. This makes it
> easier for the adminsitrator to figure out which log corresponds to which
> guest (particularly after a crash where you no long know what PID the
> qemu-dm process for your guest had). It also prevents the number of log
> files from growing unbounded.
> 
>    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>


I've just seen that this patch having been included in 15212:fc8e40692690
was then effectively reverted in 15219:f45c84dd5f41 by switching QEMU to
use Domain ID in log files. 

This causes just as much pain for support purposes as the original naming 
based on PID.  Now when a user reports problems with domain 'foo' crashing, 
instead of just asking them to send /var/log/xen/qemu-foo.log we're back to
having users to dig around in /var/log/xen/xend.log to try and figure out 
what domain ID their guest was running with before it crashed and then 
find the qemu-[DOMAIN ID].log file that matches.


  changeset:   15219:f45c84dd5f41
  user:        kfraser@localhost.localdomain
  date:        Tue Jun 05 09:59:34 2007 +0100
  files:       tools/ioemu/vl.c
  description:
  qemu: Use domid in qemu log name. Can be related back to domain name
  or uuid via xend logs, less unique than pids to prevent excessive
  number of log files hanging around, yet not immediately reused (unlike
  e.g., after domain crash or reboot) where previous log file is
  immediately overwritten. Not using domain names in logs avoids and
  chance of unprintable charcatres becoming embedded in filenames.
  Signed-off-by: Keir Fraser <keir@xensource.com>

All domain names should be validated by XenD to contain printable characters 
only - they are displayed & used all over the place in numerous tools where 
having non-printale characters will cause plenty of trouble.

As for overwriting the log file with a domain autorestart after a crash, the
logfile ought to be opened in append mode (w+ instead of w) - logrotate
scripts can handle cleanup of logfiles

I am happy to submit further patches to validate domain names in XenD and
switch to opening the file in append mode, if changeset 15219 were to be
reverted.

Regards,
Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PATCH: Use name instead of pid in QEMU logs
  2007-06-12 14:59 ` Daniel P. Berrange
@ 2007-06-12 15:44   ` Mark Williamson
  2007-06-12 16:04   ` Keir Fraser
  1 sibling, 0 replies; 7+ messages in thread
From: Mark Williamson @ 2007-06-12 15:44 UTC (permalink / raw)
  To: xen-devel, Daniel P. Berrange

> This causes just as much pain for support purposes as the original naming
> based on PID.  Now when a user reports problems with domain 'foo' crashing,
> instead of just asking them to send /var/log/xen/qemu-foo.log we're back to
> having users to dig around in /var/log/xen/xend.log to try and figure out
> what domain ID their guest was running with before it crashed and then
> find the qemu-[DOMAIN ID].log file that matches.

+1 to that

> As for overwriting the log file with a domain autorestart after a crash,
> the logfile ought to be opened in append mode (w+ instead of w) - logrotate
> scripts can handle cleanup of logfiles

Or just rename on restart e.g. mydomain.log -> mydomain.log.old or 
mydomain.log.1 etc.

> I am happy to submit further patches to validate domain names in XenD and
> switch to opening the file in append mode, if changeset 15219 were to be
> reverted.

I think this is a better solution for users, plus I'd find it handy during 
debugging.  Sure, I'm more than qualified to poke in the xend.log file to 
figure out the domain ID, but it'd be nice to not need to bother.

Cheers,
Mark

-- 
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PATCH: Use name instead of pid in QEMU logs
  2007-06-12 14:59 ` Daniel P. Berrange
  2007-06-12 15:44   ` Mark Williamson
@ 2007-06-12 16:04   ` Keir Fraser
  2007-06-12 16:36     ` Keir Fraser
  1 sibling, 1 reply; 7+ messages in thread
From: Keir Fraser @ 2007-06-12 16:04 UTC (permalink / raw)
  To: Daniel P. Berrange, xen-devel

On 12/6/07 15:59, "Daniel P. Berrange" <berrange@redhat.com> wrote:

> All domain names should be validated by XenD to contain printable characters
> only - they are displayed & used all over the place in numerous tools where
> having non-printale characters will cause plenty of trouble.
> 
> As for overwriting the log file with a domain autorestart after a crash, the
> logfile ought to be opened in append mode (w+ instead of w) - logrotate
> scripts can handle cleanup of logfiles
> 
> I am happy to submit further patches to validate domain names in XenD and
> switch to opening the file in append mode, if changeset 15219 were to be
> reverted.

Personally I don't much care either way. Christian didn't like the names in
log filenames, and he maintains the qemu patchset. :-)

 -- Keir

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PATCH: Use name instead of pid in QEMU logs
  2007-06-12 16:04   ` Keir Fraser
@ 2007-06-12 16:36     ` Keir Fraser
  0 siblings, 0 replies; 7+ messages in thread
From: Keir Fraser @ 2007-06-12 16:36 UTC (permalink / raw)
  To: Keir Fraser, Daniel P. Berrange, xen-devel

On 12/6/07 17:04, "Keir Fraser" <Keir.Fraser@cl.cam.ac.uk> wrote:

>> I am happy to submit further patches to validate domain names in XenD and
>> switch to opening the file in append mode, if changeset 15219 were to be
>> reverted.
> 
> Personally I don't much care either way. Christian didn't like the names in
> log filenames, and he maintains the qemu patchset. :-)

I'll elaborate a bit: imo the qemu logs are second only to xend-debug.log
for uselessness, particularly for ordinary users. I would support sending
the few lines of output that usually get written there to /dev/null instead
by default.

 -- Keir

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-06-12 16:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-01  0:55 PATCH: Use name instead of pid in QEMU logs Daniel P. Berrange
2007-06-01  1:00 ` Mark Williamson
2007-06-01  8:39 ` Petersson, Mats
2007-06-12 14:59 ` Daniel P. Berrange
2007-06-12 15:44   ` Mark Williamson
2007-06-12 16:04   ` Keir Fraser
2007-06-12 16:36     ` Keir Fraser

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.