git: d90df8ac1324 - main - linux(4): Add a comment about wait/requeue pi operations.

Dmitry Chagin dchagin at FreeBSD.org
Thu Jul 29 09:59:02 UTC 2021


The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=d90df8ac1324d731f8423b5501158ee870fbd5ba

commit d90df8ac1324d731f8423b5501158ee870fbd5ba
Author:     Dmitry Chagin <dchagin at FreeBSD.org>
AuthorDate: 2021-07-29 09:55:59 +0000
Commit:     Dmitry Chagin <dchagin at FreeBSD.org>
CommitDate: 2021-07-29 09:55:59 +0000

    linux(4): Add a comment about wait/requeue pi operations.
    
    MFC after:              2 weeks
---
 sys/compat/linux/linux_futex.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c
index 5f18c93b0988..edf059f74272 100644
--- a/sys/compat/linux/linux_futex.c
+++ b/sys/compat/linux/linux_futex.c
@@ -314,6 +314,18 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
 
 		return (linux_futex_lock_pi(td, true, args));
 
+	/*
+	 * Current implementation of FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI
+	 * can't be used anymore to implement conditional variables.
+	 * A detailed explanation can be found here:
+	 *
+	 * https://sourceware.org/bugzilla/show_bug.cgi?id=13165
+	 * and here http://austingroupbugs.net/view.php?id=609
+	 *
+	 * And since commit
+	 * https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ed19993b5b0d05d62cc883571519a67dae481a14
+	 * glibc does not uses it.
+	 */
 	case LINUX_FUTEX_WAIT_REQUEUE_PI:
 		/* not yet implemented */
 		pem = pem_find(td->td_proc);


More information about the dev-commits-src-main mailing list