From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: [PATCH] kvm tools: Enable earlyprintk=serial by default Date: Sun, 8 May 2011 09:39:34 +0200 Message-ID: <20110508073934.GA28049@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: KVM devel mailing list To: Pekka Enberg Return-path: Received: from mx2.mail.elte.hu ([157.181.151.9]:42443 "EHLO mx2.mail.elte.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750911Ab1EHHjj (ORCPT ); Sun, 8 May 2011 03:39:39 -0400 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: Enable the earlyprintk console to the serial port, to allow the debugging of very early hangs/crashes. Since we already enable the serial console by default, this is a natural extension of it. I have tested that it indeed works, by provoking an early hang that triggers after the early console is enabled by before the real console is registered. In that case before the patch we get: $ ./kvm run --cpus 2 [ silent hang ] With this patch applied i got the early output: $ ./kvm run --cpus 60 [ 0.000000] console [earlyser0] enabled [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.39-rc6-tip-02944-g87b0bcf-dirty (mingo@aldebaran) (gcc version 4.6.0 20110419 (Red Hat 4.6.0-5) (GCC) ) #84 SMP Mon May 9 02:34:26 CEST 2011 [ 0.000000] Command line: notsc noapic noacpi pci=conf1 console=ttyS0 earlyprintk=serialroot=/dev/vda1 rw [ 0.000000] locking up the box! Signed-off-by: Ingo Molnar --- tools/kvm/kvm-run.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index 764a242..eb50b6a 100644 --- a/tools/kvm/kvm-run.c +++ b/tools/kvm/kvm-run.c @@ -409,7 +409,7 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) kvm->nrcpus = nrcpus; memset(real_cmdline, 0, sizeof(real_cmdline)); - strcpy(real_cmdline, "notsc noapic noacpi pci=conf1 console=ttyS0 "); + strcpy(real_cmdline, "notsc noapic noacpi pci=conf1 console=ttyS0 earlyprintk=serial"); if (kernel_cmdline) strlcat(real_cmdline, kernel_cmdline, sizeof(real_cmdline));