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

Re: The perl 5.10.0 headache



I haven't had an opportunity to run the test yet (my laptop currently grinding away building the new release of GCC for m68k) but threads on Linux when using linuxthreads to my knowledge are almost completely in userland; linuxthreads uses clone() to create them. If it requires real-time signals on kFreeBSD, then won't it in theory require a realtime Linux kernel to get the same effect?
Michael

On Mon, Jul 7, 2008 at 2:46 PM, Petr Salinger <Petr.Salinger@seznam.cz> wrote:
Hi from GNU/kFreeBSD porter.


After talking it over with stephen and arranging perl 5.10 to be built on
real metal vs aranym, we are pleased to report that perl passes its test
suite with the exception of one test, a threading stress test which launchs multiple threads, and then tries to make sure that they close in order.

It appears its caused by the antique version of glibc we use, and the fact that we are using the old linuxthreads package vs. nptl.

The test passes even under linuxthreads, but real-time variant of
signals have to be used, i.e. they should properly queue in kernel.
I know it, because on GNU/kFreeBSD it needs 7.x kernel.

You can use attached code to perform the same test in C.
Problem would be rather missing memory barier, or non-atomic operation.
This should be fixable even with 2.5 glibc and linuxthreads.

Petr


Reply to: