![]() |
|
Message-ID: <f154d9c9bb516f83309e9eb2f31674a8865111d0.camel@gmail.com> Date: Mon, 03 Feb 2025 14:54:01 +0100 From: Daniele Personal <d.dario76@...il.com> To: Markus Wichmann <nullplan@....net>, musl@...ts.openwall.com Subject: Re: pthread_mutex_t shared between processes with different pid namespaces On Fri, 2025-01-31 at 21:30 +0100, Markus Wichmann wrote: > Am Fri, Jan 31, 2025 at 10:31:46AM +0100 schrieb Daniele Personal: > > IIUC, if it is not locked, the __pthread_mutex_timedlock will > > acquire > > it and return 0 (don't understand if with the first check or with > > the > > __pthread_mutex_trylock) and everything works. > > > > If instead it is locked the problem arises only inside the > > container. > > If it was a pthread_mutex_lock it waits forever, if it was a timed > > lock > > it exits after the timeout and you can retry. > > > > Is this correct? > > > > Essentially yes. If uncontended, kernel space never gets involved at > all > and everything just works, but if contended, futex wait and futex > wake > do not meet each other if issued from different PID namespaces. Thus > they end up waiting until the timeout expires. Unless there is no > timeout, then they wait until the user gets bored and kills the > process. > > Ciao, > Markus Thanks for the explanation. So there's no way to have pthread_mutexes mapped on shared memory shared between host and container working when the container is created with its own pid namespece? Daniele.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.