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

Re: [Xen-devel] [PATCH 10/16] xen: arm: enable synchronous console while starting secondary CPUs



On Wed, 2013-11-20 at 17:31 +0000, Julien Grall wrote:
> On 11/20/2013 02:48 PM, Ian Campbell wrote:
> > If CONFIG_EARLY_PRINTK is in use then this gets all interleaved with the
> > standard logging otherwise.
> > 
> 
> Before the discussion IRL, it was not clear to me that you want to
> directly "flush" the console buffer when prinkt is called. Can you
> improve your commit message?

Sure. How about:

        xen: arm: enable synchronous console while starting secondary
        CPUs
        
        Setting synchronous console ensures that any printk hits the
        buffer immediately and that any outstanding queued log messages
        are flushed. This ensures that such log messages are not being
        printed while the secondary CPU may be using early_printk during
        early bringup.
        
        Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>


> > ---
> >  xen/arch/arm/smpboot.c |    5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> > index ce832ae..9b58345 100644
> > --- a/xen/arch/arm/smpboot.c
> > +++ b/xen/arch/arm/smpboot.c
> > @@ -28,6 +28,7 @@
> >  #include <xen/softirq.h>
> >  #include <xen/timer.h>
> >  #include <xen/irq.h>
> > +#include <xen/console.h>
> >  #include <asm/gic.h>
> >  
> >  cpumask_t cpu_online_map;
> > @@ -349,6 +350,8 @@ int __cpu_up(unsigned int cpu)
> >      if ( rc < 0 )
> >          return rc;
> >  
> > +    console_start_sync(); /* Secondary may use early_printk */
> > +
> 
> If it's only for early printk, can you surround console_*_sync by #ifdef
> CONFIG_EARLY_PRINTK?
> 
> >      /* Tell the remote CPU which stack to boot on. */
> >      init_data.stack = idle_vcpu[cpu]->arch.stack;
> >  
> > @@ -361,6 +364,8 @@ int __cpu_up(unsigned int cpu)
> >  
> >      rc = arch_cpu_up(cpu);
> >  
> > +    console_end_sync();
> > +
> >      if ( rc < 0 )
> >      {
> >          printk("Failed to bring up CPU%d\n", cpu);
> > 
> 



_______________________________________________
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®.