[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