Re: uClibc and pthreads

Pascal Scholz <[email protected]> Thu, 25 Jan 2024 12:59:18 +0100
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi Marcus,

thank you very much for you fast and detailed answer! Overall this 
should be really helpful for reconstructing what changes need to be done.

> I would be very interested in the results of your measurements! Do you 
> already have other libpthread implementations in mind that you want to 
> look at? As noted in the BENCHMARKING file in l4re 
> (https://github.com/kernkonzept/mk/blob/master/BENCHMARKING) a heads 
> up to [email protected] on any measurements before 
> they are published would be highly appreciated so that we can 
> sanity-check them and if they match our experience with the 
> performance we see. 

I already read this file before and will do so. If I got some results, 
or any questions for that matter, I'll respond to this thread again 
(regarding results more likely after sending them 
to [email protected] first).

Thanks again!

Best regards

Pascal


On 1/24/24 20:54, Marcus Hähnel wrote:
> Hi Pascal,
>
> On 2024-01-24 12:53, Pascal Scholz wrote:
>> 1) Is there a technical reason for L4Re still using the Linuxthreads
>> implementation and not some kind of NPTL port or other
>> implementations?
>
> The libpthread implementation used in L4Re is based on the 
> linuxthreads (formerly named linuxthreads.old) implementation from 
> uClibc. There is no particular reason why one was chosen over the 
> other that I am aware of. In the end it doesn't matter that much, 
> since the "backend" is highly L4 specific anyways. I guess the 
> linuxthreads implementation was easier to port.
>
>
>> 2) What uClibc is used exactly? Do you manage your own fork of uClibc
>> and back port relevant patches of uClibc-ng? Or do you use a uClibc-ng
>> with additional L4 patches? Or some completely other version? It seems
>> that the uClibc version used diverged in 2014 from the original. This
>> seems relevant to me as I wanted to check, which changes were done to
>> make the uClibc work with L4 (in an attempt to generate some kind of a
>> diff), so I might port them to another libc implementation.
>
> Originally uClibc was used and adapted to L4Re. When uClibc was no 
> longer actively maintained we implemented some of the things we needed 
> ourselves or ported them from other C libraries. After uclibc-ng 
> gained traction we started first porting fixes and improvements from 
> them when we needed them. More recently we started to synchronize 
> uClibc with the current upstream uClibc-ng state and also already 
> contributed some of our changes back where this made sense to us. This 
> is not yet done but a work in progress and you will likely see more 
> changes to our uClibc during the next months.
>
>> In my project I would like to replace Linuxthreads with some other
>> pthreads implementation and measure the performance impacts of these
>> changes, so the aforementioned questions seem relevant to me.
>
> The best start is probably to to look at the libpthread implementation 
> you find in l4re-core/uclibc/lib/libpthread and compare this to the 
> upstream/uclibc-ng version of these files. Though the upstream might 
> have diverged in the meantime. We only imported changes when they were 
> known to be performance critical or bug fixes but otherwise kept our 
> implementation stable so far. This might as well change once we caught 
> up with upstream uclibc-ng.
>
> I would be very interested in the results of your measurements! Do you 
> already have other libpthread implementations in mind that you want to 
> look at? As noted in the BENCHMARKING file in l4re 
> (https://github.com/kernkonzept/mk/blob/master/BENCHMARKING) a heads 
> up to [email protected] on any measurements before 
> they are published would be highly appreciated so that we can 
> sanity-check them and if they match our experience with the 
> performance we see.
>
> If you have any questions while looking at the code don't hesitate to 
> ask.
>
> Best regards and happy hacking!
>
> - Marcus
>
>> Thanks in advance for you time!
>>
>> Kind regards,
>>
>> Pascal
>>
>> _______________________________________________
>> l4-hackers mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
_______________________________________________
l4-hackers mailing list -- [email protected]
To unsubscribe send an email to [email protected]