On Wed, 31 May 2017 18:51:06 +0200
Claudio Imbrenda <imbre...@linux.vnet.ibm.com> wrote:
[...]
> > > 
> > > This is strange. cpu_index() is defined as:
> > > 
> > > static inline int cpu_index(CPUState *cpu)
> > > {
> > > #if defined(CONFIG_USER_ONLY)
> > >     return cpu->host_tid;
> > > #else
> > >     return cpu->cpu_index + 1;
> > > #endif
> > > }
> > > 
> > > therefore it shouldn't return 0 under any circumstance, and    
> > 
> > I think it is 0 for first_cpu in user mode.  
> 
> in linux-user/syscall.c:
> 
> info->tid = gettid();
> cpu->host_tid = info->tid;
> 
> kernel thread-ids are system-wide unique and can't be 0
>  

This is correct but these lines are in clone_func(). This gets called for
all threads but the "main" thread which I believe to be associated to
first_cpu.

Attachment: pgpBv9VyG8ggF.pgp
Description: OpenPGP digital signature

Reply via email to