xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* How to display dom0 kernel printk on hvc0
@ 2014-08-07  8:23 manish jaggi
  2014-08-07 12:44 ` Stefano Stabellini
  2014-08-07 14:05 ` Julien Grall
  0 siblings, 2 replies; 8+ messages in thread
From: manish jaggi @ 2014-08-07  8:23 UTC (permalink / raw)
  To: stefano.stabellini, xen-devel, Vijay Kilari, manish.jaggi


[-- Attachment #1.1: Type: text/plain, Size: 470 bytes --]

Hi Stefano,

I am debugging a kernel crash when I start xencommons. If I add prints in
kernel the prints are only visible in dmesg and not on dom0 console. This
makes it difficult to view kernel printks at the time of crash.

I tried xen_raw_printks but the print only comes when you press a key, so
while a crash is happening you cannot press a key.

Is there a way to enable printks on hvc0
OR
is there a way to dump __logbuf of linux from xen shell.

-Regards
Manish

[-- Attachment #1.2: Type: text/html, Size: 639 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07  8:23 How to display dom0 kernel printk on hvc0 manish jaggi
@ 2014-08-07 12:44 ` Stefano Stabellini
  2014-08-07 13:01   ` manish jaggi
  2014-08-07 14:05 ` Julien Grall
  1 sibling, 1 reply; 8+ messages in thread
From: Stefano Stabellini @ 2014-08-07 12:44 UTC (permalink / raw)
  To: manish jaggi; +Cc: xen-devel, manish.jaggi, stefano.stabellini, Vijay Kilari

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

On Thu, 7 Aug 2014, manish jaggi wrote:
> Hi Stefano,
> 
> I am debugging a kernel crash when I start xencommons. If I add prints in kernel the prints are only visible in
> dmesg and not on dom0 console. This makes it difficult to view kernel printks at the time of crash.
> 
> I tried xen_raw_printks but the print only comes when you press a key, so while a crash is happening you cannot
> press a key.
> 
> Is there a way to enable printks on hvc0 
> OR
> is there a way to dump __logbuf of linux from xen shell.

You can hack printk and/or early_printk so that everything will go via
the Xen console, see below. Of course this is very hacky, don't tell
anybody that I wrote this patch ;-)


diff --git a/arch/arm64/kernel/early_printk.c b/arch/arm64/kernel/early_printk.c
index 2dc36d0..38bcf29 100644
--- a/arch/arm64/kernel/early_printk.c
+++ b/arch/arm64/kernel/early_printk.c
@@ -31,16 +31,16 @@
 static void __iomem *early_base;
 static void (*printch)(char ch);
 
+void xen_raw_console_write(const char *str);
 /*
  * PL011 single character TX.
  */
 static void pl011_printch(char ch)
 {
-	while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_TXFF)
-		;
-	writeb_relaxed(ch, early_base + UART01x_DR);
-	while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_BUSY)
-		;
+	char buf[2];
+	buf[0] = ch;
+	buf[1] = '\0';
+	xen_raw_console_write(buf);
 }
 
 /*
diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index 2dc2831..1f586b3 100644
--- a/drivers/tty/hvc/hvc_xen.c
+++ b/drivers/tty/hvc/hvc_xen.c
@@ -630,7 +630,7 @@ void xen_raw_console_write(const char *str)
 	ssize_t len = strlen(str);
 	int rc = 0;
 
-	if (xen_domain()) {
+	if (1||xen_domain()) {
 		rc = dom0_write_console(0, str, len);
 #ifdef CONFIG_X86
 		if (rc == -ENOSYS && xen_hvm_domain())
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 7228258..e035871 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1674,24 +1674,18 @@ EXPORT_SYMBOL(printk_emit);
  *
  * See the vsnprintf() documentation for format string extensions over C99.
  */
+void xen_raw_console_write(const char *str);
 asmlinkage __visible int printk(const char *fmt, ...)
 {
 	va_list args;
-	int r;
+	static char buf[512];
 
-#ifdef CONFIG_KGDB_KDB
-	if (unlikely(kdb_trap_printk)) {
-		va_start(args, fmt);
-		r = vkdb_printf(fmt, args);
-		va_end(args);
-		return r;
-	}
-#endif
 	va_start(args, fmt);
-	r = vprintk_emit(0, -1, NULL, 0, fmt, args);
+	vsnprintf(buf, sizeof(buf), fmt, args);
 	va_end(args);
 
-	return r;
+	xen_raw_console_write(buf);
+	return 1;
 }
 EXPORT_SYMBOL(printk);
 

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07 12:44 ` Stefano Stabellini
@ 2014-08-07 13:01   ` manish jaggi
  2014-08-07 14:36     ` Stefano Stabellini
  0 siblings, 1 reply; 8+ messages in thread
From: manish jaggi @ 2014-08-07 13:01 UTC (permalink / raw)
  To: Stefano Stabellini
  Cc: xen-devel, manish.jaggi, stefano.stabellini, Vijay Kilari


[-- Attachment #1.1: Type: text/plain, Size: 3957 bytes --]

Thanks,
I manged to do something similar in the meantime. I am seeing a crash after
I do /etc/init.d/xencommns start

[<ffffffc00038fee4>] clear_bit+0x14/0x30
[<ffffffc0003d9ca4>] ack_dynirq+0x44/0x58
[<ffffffc0000e6a34>] handle_edge_irq+0x74/0x178
[<ffffffc0003dc0e8>] evtchn_fifo_handle_events+0x280/0x288
[<ffffffc0003d8f50>] __xen_evtchn_do_upcall+0x68/0xd0
[<ffffffc0003d8fc0>] xen_hvm_evtchn_do_upcall+0x8/0x18
[<ffffffc00009271c>] xen_arm_callback+0x4c/0x68
[<ffffffc0000e7560>] handle_percpu_devid_irq+0x88/0x120
[<ffffffc0000e38b4>] generic_handle_irq+0x24/0x40
[<ffffffc000084890>] handle_IRQ+0x40/0xa8
[<ffffffc000081348>] gic_handle_irq+0x50/0xa0

I found that consume_one_event calls handle_irq_for_port which gets IRQ=7
in case of a crash.
What is the use of IRQ 7 ?
IRQ1 is UART which i saw in cat /proc/interrupts

-Regards
Manish


On 7 August 2014 18:14, Stefano Stabellini <stefano.stabellini@eu.citrix.com
> wrote:

> On Thu, 7 Aug 2014, manish jaggi wrote:
> > Hi Stefano,
> >
> > I am debugging a kernel crash when I start xencommons. If I add prints
> in kernel the prints are only visible in
> > dmesg and not on dom0 console. This makes it difficult to view kernel
> printks at the time of crash.
> >
> > I tried xen_raw_printks but the print only comes when you press a key,
> so while a crash is happening you cannot
> > press a key.
> >
> > Is there a way to enable printks on hvc0
> > OR
> > is there a way to dump __logbuf of linux from xen shell.
>
> You can hack printk and/or early_printk so that everything will go via
> the Xen console, see below. Of course this is very hacky, don't tell
> anybody that I wrote this patch ;-)
>
>
> diff --git a/arch/arm64/kernel/early_printk.c
> b/arch/arm64/kernel/early_printk.c
> index 2dc36d0..38bcf29 100644
> --- a/arch/arm64/kernel/early_printk.c
> +++ b/arch/arm64/kernel/early_printk.c
> @@ -31,16 +31,16 @@
>  static void __iomem *early_base;
>  static void (*printch)(char ch);
>
> +void xen_raw_console_write(const char *str);
>  /*
>   * PL011 single character TX.
>   */
>  static void pl011_printch(char ch)
>  {
> -       while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_TXFF)
> -               ;
> -       writeb_relaxed(ch, early_base + UART01x_DR);
> -       while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_BUSY)
> -               ;
> +       char buf[2];
> +       buf[0] = ch;
> +       buf[1] = '\0';
> +       xen_raw_console_write(buf);
>  }
>
>  /*
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index 2dc2831..1f586b3 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -630,7 +630,7 @@ void xen_raw_console_write(const char *str)
>         ssize_t len = strlen(str);
>         int rc = 0;
>
> -       if (xen_domain()) {
> +       if (1||xen_domain()) {
>                 rc = dom0_write_console(0, str, len);
>  #ifdef CONFIG_X86
>                 if (rc == -ENOSYS && xen_hvm_domain())
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 7228258..e035871 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -1674,24 +1674,18 @@ EXPORT_SYMBOL(printk_emit);
>   *
>   * See the vsnprintf() documentation for format string extensions over
> C99.
>   */
> +void xen_raw_console_write(const char *str);
>  asmlinkage __visible int printk(const char *fmt, ...)
>  {
>         va_list args;
> -       int r;
> +       static char buf[512];
>
> -#ifdef CONFIG_KGDB_KDB
> -       if (unlikely(kdb_trap_printk)) {
> -               va_start(args, fmt);
> -               r = vkdb_printf(fmt, args);
> -               va_end(args);
> -               return r;
> -       }
> -#endif
>         va_start(args, fmt);
> -       r = vprintk_emit(0, -1, NULL, 0, fmt, args);
> +       vsnprintf(buf, sizeof(buf), fmt, args);
>         va_end(args);
>
> -       return r;
> +       xen_raw_console_write(buf);
> +       return 1;
>  }
>  EXPORT_SYMBOL(printk);
>

[-- Attachment #1.2: Type: text/html, Size: 4990 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07  8:23 How to display dom0 kernel printk on hvc0 manish jaggi
  2014-08-07 12:44 ` Stefano Stabellini
@ 2014-08-07 14:05 ` Julien Grall
  1 sibling, 0 replies; 8+ messages in thread
From: Julien Grall @ 2014-08-07 14:05 UTC (permalink / raw)
  To: manish jaggi, stefano.stabellini, xen-devel, Vijay Kilari,
	manish.jaggi

Hello,

On 08/07/2014 09:23 AM, manish jaggi wrote:
> I am debugging a kernel crash when I start xencommons. If I add prints
> in kernel the prints are only visible in dmesg and not on dom0 console.
> This makes it difficult to view kernel printks at the time of crash.
> 
> I tried xen_raw_printks but the print only comes when you press a key,
> so while a crash is happening you cannot press a key.
> 
> Is there a way to enable printks on hvc0 

every printk in the kernel should be printed in hvc if you pass
console=hvc0 on the kernel command line.

You may also have to add ignore_loglevel

Regards,

-- 
Julien Grall

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07 13:01   ` manish jaggi
@ 2014-08-07 14:36     ` Stefano Stabellini
  2014-08-07 14:52       ` Julien Grall
  2014-08-07 15:01       ` David Vrabel
  0 siblings, 2 replies; 8+ messages in thread
From: Stefano Stabellini @ 2014-08-07 14:36 UTC (permalink / raw)
  To: manish jaggi
  Cc: Ian Campbell, Vijay Kilari, Stefano Stabellini, manish.jaggi,
	Julien Grall, stefano.stabellini, David Vrabel, xen-devel

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

On Thu, 7 Aug 2014, manish jaggi wrote:
> Thanks,
> I manged to do something similar in the meantime. I am seeing a crash after I do /etc/init.d/xencommns start
> 
> [<ffffffc00038fee4>] clear_bit+0x14/0x30
> [<ffffffc0003d9ca4>] ack_dynirq+0x44/0x58
> [<ffffffc0000e6a34>] handle_edge_irq+0x74/0x178
> [<ffffffc0003dc0e8>] evtchn_fifo_handle_events+0x280/0x288
> [<ffffffc0003d8f50>] __xen_evtchn_do_upcall+0x68/0xd0
> [<ffffffc0003d8fc0>] xen_hvm_evtchn_do_upcall+0x8/0x18
> [<ffffffc00009271c>] xen_arm_callback+0x4c/0x68
> [<ffffffc0000e7560>] handle_percpu_devid_irq+0x88/0x120
> [<ffffffc0000e38b4>] generic_handle_irq+0x24/0x40
> [<ffffffc000084890>] handle_IRQ+0x40/0xa8
> [<ffffffc000081348>] gic_handle_irq+0x50/0xa0
> 
> I found that consume_one_event calls handle_irq_for_port which gets IRQ=7 in case of a crash.
> What is the use of IRQ 7 ?
> IRQ1 is UART which i saw in cat /proc/interrupts

What kernel version are you using?

It looks like the FIFO event channel is not properly initialized.
You could try switching to the old style 2-level ABI:

diff --git a/drivers/xen/events/events_fifo.c b/drivers/xen/events/events_fifo.c
index 84b4bfb..4a23e08 100644
--- a/drivers/xen/events/events_fifo.c
+++ b/drivers/xen/events/events_fifo.c
@@ -428,6 +428,8 @@ int __init xen_evtchn_fifo_init(void)
 	int cpu = get_cpu();
 	int ret;
 
+	return -1;
+
 	ret = evtchn_fifo_init_control_block(cpu);
 	if (ret < 0)
 		goto out;

You should then see this message at boot:

xen:events: Using 2-level ABI



> -Regards
> Manish
> 
> 
> On 7 August 2014 18:14, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
>       On Thu, 7 Aug 2014, manish jaggi wrote:
>       > Hi Stefano,
>       >
>       > I am debugging a kernel crash when I start xencommons. If I add prints in kernel the prints are
>       only visible in
>       > dmesg and not on dom0 console. This makes it difficult to view kernel printks at the time of
>       crash.
>       >
>       > I tried xen_raw_printks but the print only comes when you press a key, so while a crash is
>       happening you cannot
>       > press a key.
>       >
>       > Is there a way to enable printks on hvc0 
>       > OR
>       > is there a way to dump __logbuf of linux from xen shell.
> 
> You can hack printk and/or early_printk so that everything will go via
> the Xen console, see below. Of course this is very hacky, don't tell
> anybody that I wrote this patch ;-)
> 
> 
> diff --git a/arch/arm64/kernel/early_printk.c b/arch/arm64/kernel/early_printk.c
> index 2dc36d0..38bcf29 100644
> --- a/arch/arm64/kernel/early_printk.c
> +++ b/arch/arm64/kernel/early_printk.c
> @@ -31,16 +31,16 @@
>  static void __iomem *early_base;
>  static void (*printch)(char ch);
> 
> +void xen_raw_console_write(const char *str);
>  /*
>   * PL011 single character TX.
>   */
>  static void pl011_printch(char ch)
>  {
> -       while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_TXFF)
> -               ;
> -       writeb_relaxed(ch, early_base + UART01x_DR);
> -       while (readl_relaxed(early_base + UART01x_FR) & UART01x_FR_BUSY)
> -               ;
> +       char buf[2];
> +       buf[0] = ch;
> +       buf[1] = '\0';
> +       xen_raw_console_write(buf);
>  }
> 
>  /*
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index 2dc2831..1f586b3 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -630,7 +630,7 @@ void xen_raw_console_write(const char *str)
>         ssize_t len = strlen(str);
>         int rc = 0;
> 
> -       if (xen_domain()) {
> +       if (1||xen_domain()) {
>                 rc = dom0_write_console(0, str, len);
>  #ifdef CONFIG_X86
>                 if (rc == -ENOSYS && xen_hvm_domain())
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 7228258..e035871 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -1674,24 +1674,18 @@ EXPORT_SYMBOL(printk_emit);
>   *
>   * See the vsnprintf() documentation for format string extensions over C99.
>   */
> +void xen_raw_console_write(const char *str);
>  asmlinkage __visible int printk(const char *fmt, ...)
>  {
>         va_list args;
> -       int r;
> +       static char buf[512];
> 
> -#ifdef CONFIG_KGDB_KDB
> -       if (unlikely(kdb_trap_printk)) {
> -               va_start(args, fmt);
> -               r = vkdb_printf(fmt, args);
> -               va_end(args);
> -               return r;
> -       }
> -#endif
>         va_start(args, fmt);
> -       r = vprintk_emit(0, -1, NULL, 0, fmt, args);
> +       vsnprintf(buf, sizeof(buf), fmt, args);
>         va_end(args);
> 
> -       return r;
> +       xen_raw_console_write(buf);
> +       return 1;
>  }
>  EXPORT_SYMBOL(printk);
>  
> 
> 
> 
> 

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07 14:36     ` Stefano Stabellini
@ 2014-08-07 14:52       ` Julien Grall
  2014-08-07 15:01       ` David Vrabel
  1 sibling, 0 replies; 8+ messages in thread
From: Julien Grall @ 2014-08-07 14:52 UTC (permalink / raw)
  To: Stefano Stabellini, manish jaggi
  Cc: Ian Campbell, Vijay Kilari, manish.jaggi, Julien Grall,
	stefano.stabellini, David Vrabel, xen-devel

On 08/07/2014 03:36 PM, Stefano Stabellini wrote:
> On Thu, 7 Aug 2014, manish jaggi wrote:
>> Thanks,
>> I manged to do something similar in the meantime. I am seeing a crash after I do /etc/init.d/xencommns start
>>
>> [<ffffffc00038fee4>] clear_bit+0x14/0x30
>> [<ffffffc0003d9ca4>] ack_dynirq+0x44/0x58
>> [<ffffffc0000e6a34>] handle_edge_irq+0x74/0x178
>> [<ffffffc0003dc0e8>] evtchn_fifo_handle_events+0x280/0x288
>> [<ffffffc0003d8f50>] __xen_evtchn_do_upcall+0x68/0xd0
>> [<ffffffc0003d8fc0>] xen_hvm_evtchn_do_upcall+0x8/0x18
>> [<ffffffc00009271c>] xen_arm_callback+0x4c/0x68
>> [<ffffffc0000e7560>] handle_percpu_devid_irq+0x88/0x120
>> [<ffffffc0000e38b4>] generic_handle_irq+0x24/0x40
>> [<ffffffc000084890>] handle_IRQ+0x40/0xa8
>> [<ffffffc000081348>] gic_handle_irq+0x50/0xa0
>>
>> I found that consume_one_event calls handle_irq_for_port which gets IRQ=7 in case of a crash.
>> What is the use of IRQ 7 ?
>> IRQ1 is UART which i saw in cat /proc/interrupts
> 
> What kernel version are you using?
> 
> It looks like the FIFO event channel is not properly initialized.
> You could try switching to the old style 2-level ABI:
> 
> diff --git a/drivers/xen/events/events_fifo.c b/drivers/xen/events/events_fifo.c
> index 84b4bfb..4a23e08 100644
> --- a/drivers/xen/events/events_fifo.c
> +++ b/drivers/xen/events/events_fifo.c
> @@ -428,6 +428,8 @@ int __init xen_evtchn_fifo_init(void)
>  	int cpu = get_cpu();
>  	int ret;
>  
> +	return -1;
> +
>  	ret = evtchn_fifo_init_control_block(cpu);
>  	if (ret < 0)
>  		goto out;

You don't need to recompile the kernel.

xen.fifo_events=0 in the command line will choose the 2-level ABI.

Regards,

-- 
Julien Grall

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07 14:36     ` Stefano Stabellini
  2014-08-07 14:52       ` Julien Grall
@ 2014-08-07 15:01       ` David Vrabel
  2014-08-07 15:43         ` manish jaggi
  1 sibling, 1 reply; 8+ messages in thread
From: David Vrabel @ 2014-08-07 15:01 UTC (permalink / raw)
  To: Stefano Stabellini, manish jaggi
  Cc: Ian Campbell, Vijay Kilari, manish.jaggi, Julien Grall,
	stefano.stabellini, xen-devel

On 07/08/14 15:36, Stefano Stabellini wrote:
> On Thu, 7 Aug 2014, manish jaggi wrote:
>> Thanks,
>> I manged to do something similar in the meantime. I am seeing a crash after I do /etc/init.d/xencommns start
>>
>> [<ffffffc00038fee4>] clear_bit+0x14/0x30
>> [<ffffffc0003d9ca4>] ack_dynirq+0x44/0x58
>> [<ffffffc0000e6a34>] handle_edge_irq+0x74/0x178
>> [<ffffffc0003dc0e8>] evtchn_fifo_handle_events+0x280/0x288
>> [<ffffffc0003d8f50>] __xen_evtchn_do_upcall+0x68/0xd0
>> [<ffffffc0003d8fc0>] xen_hvm_evtchn_do_upcall+0x8/0x18
>> [<ffffffc00009271c>] xen_arm_callback+0x4c/0x68
>> [<ffffffc0000e7560>] handle_percpu_devid_irq+0x88/0x120
>> [<ffffffc0000e38b4>] generic_handle_irq+0x24/0x40
>> [<ffffffc000084890>] handle_IRQ+0x40/0xa8
>> [<ffffffc000081348>] gic_handle_irq+0x50/0xa0
>>
>> I found that consume_one_event calls handle_irq_for_port which gets IRQ=7 in case of a crash.
>> What is the use of IRQ 7 ?
>> IRQ1 is UART which i saw in cat /proc/interrupts
> 
> What kernel version are you using?

On arm64, 3.14 was buggy.  This was fixed in 3.15-rc6.

> 
> It looks like the FIFO event channel is not properly initialized.
> You could try switching to the old style 2-level ABI:

There's a kernel command line options for this:  xen.fifo_events=0

David

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

* Re: How to display dom0 kernel printk on hvc0
  2014-08-07 15:01       ` David Vrabel
@ 2014-08-07 15:43         ` manish jaggi
  0 siblings, 0 replies; 8+ messages in thread
From: manish jaggi @ 2014-08-07 15:43 UTC (permalink / raw)
  To: David Vrabel
  Cc: Ian Campbell, Vijay Kilari, Stefano Stabellini, manish.jaggi,
	Julien Grall, stefano.stabellini, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 1474 bytes --]

On 7 August 2014 20:31, David Vrabel <david.vrabel@citrix.com> wrote:

> On 07/08/14 15:36, Stefano Stabellini wrote:
> > On Thu, 7 Aug 2014, manish jaggi wrote:
> >> Thanks,
> >> I manged to do something similar in the meantime. I am seeing a crash
> after I do /etc/init.d/xencommns start
> >>
> >> [<ffffffc00038fee4>] clear_bit+0x14/0x30
> >> [<ffffffc0003d9ca4>] ack_dynirq+0x44/0x58
> >> [<ffffffc0000e6a34>] handle_edge_irq+0x74/0x178
> >> [<ffffffc0003dc0e8>] evtchn_fifo_handle_events+0x280/0x288
> >> [<ffffffc0003d8f50>] __xen_evtchn_do_upcall+0x68/0xd0
> >> [<ffffffc0003d8fc0>] xen_hvm_evtchn_do_upcall+0x8/0x18
> >> [<ffffffc00009271c>] xen_arm_callback+0x4c/0x68
> >> [<ffffffc0000e7560>] handle_percpu_devid_irq+0x88/0x120
> >> [<ffffffc0000e38b4>] generic_handle_irq+0x24/0x40
> >> [<ffffffc000084890>] handle_IRQ+0x40/0xa8
> >> [<ffffffc000081348>] gic_handle_irq+0x50/0xa0
> >>
> >> I found that consume_one_event calls handle_irq_for_port which gets
> IRQ=7 in case of a crash.
> >> What is the use of IRQ 7 ?
> >> IRQ1 is UART which i saw in cat /proc/interrupts
> >
> > What kernel version are you using?
>
> On arm64, 3.14 was buggy.  This was fixed in 3.15-rc6.
>
Can you please elaborate your observations, it will help in my case

>
> >
> > It looks like the FIFO event channel is not properly initialized.
> > You could try switching to the old style 2-level ABI:
>
> There's a kernel command line options for this:  xen.fifo_events=0
>
> David
>

[-- Attachment #1.2: Type: text/html, Size: 2322 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

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

end of thread, other threads:[~2014-08-07 15:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-07  8:23 How to display dom0 kernel printk on hvc0 manish jaggi
2014-08-07 12:44 ` Stefano Stabellini
2014-08-07 13:01   ` manish jaggi
2014-08-07 14:36     ` Stefano Stabellini
2014-08-07 14:52       ` Julien Grall
2014-08-07 15:01       ` David Vrabel
2014-08-07 15:43         ` manish jaggi
2014-08-07 14:05 ` Julien Grall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).