NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/50603: Playing audio with Linux pulseaudio apps fails on NetBSD/amd64
The following reply was made to PR port-amd64/50603; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-amd64/50603: Playing audio with Linux pulseaudio apps fails
on NetBSD/amd64
Date: Thu, 28 Mar 2019 23:45:37 +0900
On the Linux pulseaudio failure, a debug kernel with DEBUG_LINUX_FUTEX
shows the following message:
---
Feb 17 05:55:17 optiplex760 /netbsd: linux_do_futex: unknown op 6
Feb 17 05:55:17 optiplex760 /netbsd: linux_do_futex: unknown op 7
---
This comes from sys/compat/linux/common/linux_futex.c
https://nxr.netbsd.org/xref/src/sys/compat/linux/common/linux_futex.c?r=1.37#145
---
145 linux_do_futex(struct lwp *l, const struct linux_sys_futex_args *uap,
146 struct timespec *ts, register_t *retval)
147 {
148 /* {
149 syscallarg(int *) uaddr;
150 syscallarg(int) op;
151 syscallarg(int) val;
152 syscallarg(const struct linux_timespec *) timeout;
153 syscallarg(int *) uaddr2;
154 syscallarg(int) val3;
155 } */
:
394 default:
395 FUTEXPRINTF(("%s: unknown op %d\n", __func__, cmd));
396 return ENOSYS;
397 }
398 return 0;
399 }
---
LINUX_FUTEX ops are defined in sys/compat/linux/common/linux_futex.h:
https://nxr.netbsd.org/xref/src/sys/compat/linux/common/linux_futex.h
---
37 #define LINUX_FUTEX_WAIT 0
38 #define LINUX_FUTEX_WAKE 1
39 #define LINUX_FUTEX_FD 2
40 #define LINUX_FUTEX_REQUEUE 3
41 #define LINUX_FUTEX_CMP_REQUEUE 4
42 #define LINUX_FUTEX_WAKE_OP 5
43 #define LINUX_FUTEX_LOCK_PI 6
44 #define LINUX_FUTEX_UNLOCK_PI 7
45 #define LINUX_FUTEX_TRYLOCK_PI 8
46 #define LINUX_FUTEX_WAIT_BITSET 9
47 #define LINUX_FUTEX_WAKE_BITSET 10
48 #define LINUX_FUTEX_WAIT_REQUEUE_PI 11
49 #define LINUX_FUTEX_CMP_REQUEUE_PI 12
---
So this problem was caused by unimplemented LINUX_FUTEX_LOCK_PI
and LINUX_FUTEX_UNLOCK_PI for Linux futex(2). (Maybe "wontfix"?)
Locally built pulseaudio suse rpm binary with disabled mutex assert(3)s
works as dirty kludge.
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index