[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 2/2] xen/conring: Write to console ring even if console lock is busted.



On Wed, Jul 31, 2013 at 03:22:52PM +0100, Andrew Cooper wrote:
> console_lock_busted gets set when an NMI/MCE/Double Fault handler decides to
> bring Xen down in an emergency.  conring_puts() cannot block and does
> not have problematic interactions with the console_lock.
> 
> Therefore, choosing to not put the string into the console ring simply means
> that the kexec environment cant find any panic() message caused by an IST
> interrupt, which is unhelpful for debugging purposes.
> 
> In the case that two pcpus fight with console_force_unlock(), having slightly
> garbled strings in the console ring is far more useful than having nothing at
> all.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Acked-by: Matt Wilson <msw@xxxxxxxxxx>

> CC: Keir Fraser <keir@xxxxxxx>
> CC: Jan Beulich <jbeulich@xxxxxxxx>
> CC: Tim Deegan <tim@xxxxxxx>
> ---
>  xen/drivers/char/console.c |    5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 45b81b3..8ac32e4 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -465,11 +465,10 @@ static void __putstr(const char *str)
>      sercon_puts(str);
>      video_puts(str);
>  
> +    conring_puts(str);
> +
>      if ( !console_locks_busted )
> -    {
> -        conring_puts(str);
>          tasklet_schedule(&notify_dom0_con_ring_tasklet);
> -    }
>  }
>  
>  static int printk_prefix_check(char *p, char **pp)

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.