qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] rcu: do not create thread in pthread_atfork cal


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] rcu: do not create thread in pthread_atfork callback
Date: Tue, 31 Mar 2015 14:55:47 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0


On 31/03/2015 13:41, Peter Maydell wrote:
>> >  static void __attribute__((__constructor__)) rcu_init(void)
>> >  {
>> >  #ifdef CONFIG_POSIX
>> > -    pthread_atfork(rcu_init_lock, rcu_init_unlock, rcu_init_child);
>> > +    pthread_atfork(rcu_init_lock, rcu_init_unlock, rcu_init_unlock);
>> >  #endif
>> >      rcu_init_complete();
>> >  }
> So this is changing the linux-user behaviour so we no
> longer do any init after fork; is that a problem?

Currently linux-user is not using RCU at all, so no.  Should I add an
rcu_after_fork there too?

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 4bd9543..1622ad6 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4572,6 +4572,7 @@ static int do_fork(CPUArchState *env, unsigned int flags, 
abi_ulong newsp,
         ret = fork();
         if (ret == 0) {
             /* Child Process.  */
+            rcu_after_fork();
             cpu_clone_regs(env, newsp);
             fork_end(1);
             /* There is a race condition here.  The parent process could

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]