possible deadlock in pipes

Olaf Hering olh at suse.de
Thu Aug 28 21:08:29 EST 2003


 On Fri, Aug 22, Anton Blanchard wrote:

>
> Hi Olaf,
>
> > I see random dead locks in pipe_wait() on power4 (p630, p650).
> > I dont have a simple testcase to trigger it. The userland code its
> > either 32bit or 64bit, new or (very) old.
> > It happens with 2.4.19 and with 2.4.21.
> >
> > This patch seems to fix it, maybe it is only a workaround. Is the 2.4
> > pipe code supposed to work on power4 (enough sync accross cpus etc.)?
>
> How hard is it to hit? I think we should be using set_task_state()
> which includes a memory barrier. I also updated the other open coded
> statements to use __set_task_state. Finally I got rid of some redundant
> wmb()s and added unlikely() to force the slow path out of line

I'm running with this patch since a while, no problems.
It happens after a while, hours, sometimes days. But I do not have a
simple testcase.
Thanks for the patch.


--
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list