[prev in list] [next in list] [prev in thread] [next in thread]
List: netbsd-bugs
Subject: Re: port-amd64/50603: Playing audio with Linux pulseaudio apps fails on NetBSD/amd64
From: Izumi Tsutsui <tsutsui () ceres ! dti ! ne ! jp>
Date: 2019-03-28 14:50:01
Message-ID: 20190328145001.C7B0A7A1D0 () mollari ! NetBSD ! org
[Download RAW message or body]
The following reply was made to PR port-amd64/50603; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gnats-bugs@NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic