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