From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sun, 29 Jun 2008 17:32:51 -0700 From: Anthony Martin To: 9fans@9fans.net Message-ID: <20080630003250.GA8819@dinah> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [9fans] 9vx fork problem Topicbox-Message-UUID: cbf7e340-ead3-11e9-9d60-3106f5b1d025 On 9vx, iostats suicides: term% iostats echo iostats 128: suicide: sys: trap: page fault pc=0x0000b21c Apparently, after a fork, a child retains it's parent's pid in _tos->pid. It isn't updated until the next syscall finishes with kexit. This is a problem if the child's first function call is malloc. When malloc locks it's pool, it stores the pid from _tos in a private area. After the kernel returns from the brk, _tos->pid has been corrected by the call to kexit. Punlock then fails because the pids don't match. I'm not sure of the best way to go about fixing this. Anthony