Re: L4Re: region mapper/manager concurrency considerations and resource limits

Paul Boddie <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <6778536.MoipNETZX6@jason>
On Monday, 8 February 2021 09:54:08 CET Christian Ludwig wrote:
> 
> On Sunday, 07.02.2021, 01:54 +0100 Paul Boddie wrote:
> 
> > What considerations need to be given to concurrency with regard to
> > the use of the l4re_rm_attach function and similar functionality? Is
> > access to the region mapper/manager from different threads in the same
> > task advisable, are there thread safety issues, and if so, can these be
> > sensibly worked around?
> 
> Calls to the region manager are IPC calls and are synchronized by a
> wait-queue in the kernel. The region manager thread only serves one
> client at a time. In fact if you use multiple threads in a task it
> serves all page-faults for all threads already. It's thread-safe by
> design.

OK. I wasn't really sure about the concurrency aspects of the region manager 
itself. Some frustrating experience with my own code led me to question this 
rather than just take it for granted.

> However, the capability slot allocator (l4re_util_cap_alloc) is not
> thread-safe. You need to introduce some synchronization if you use it
> from multiple threads.

This is very useful to know. I imagine that thread safety is regarded as 
unnecessary for many use-cases, but it does surprise me that it has to be 
introduced to make the allocator usable in a multithreaded program. Then 
again, I might be doing things that are not particularly normal for L4Re 
programs.

(There do not seem to be many systems based on L4Re out there for public 
perusal, nor is there much discussion around architectural patterns.)

> Hope that helps.

Possibly more than you realise, but certainly more than I might have realised. 
:-)

Thanks for following up,

Paul
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.