While stracing, I noticed that Roon was creating a few threads over 10 seconds, is that expected?
Stracing for 10 seconds yields ~40 MB of text… It’s mostly variations of this for roon process
1523316 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 sched_yield() = 0
1523316 rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
1523316 write(3, "\214\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0"..., 64) = 64
1523316 read(4, "\3\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
1523316 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
With some instances of this in between:
1523316 futex(0x7d2dfc78, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
1523383 <... futex resumed>) = 0
1523316 <... futex resumed>) = 1
1523383 futex(0x7d2dfc28, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
1523316 futex(0x7d2dfc28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
1523383 <... futex resumed>) = -1 EAGAIN (Resource temporarily unavailable)
1523316 <... futex resumed>) = 0
1523383 futex(0x7d2dfc28, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
1523316 getpid( <unfinished ...>
1523383 <... futex resumed>) = 0
1523316 <... getpid resumed>) = 1523316
1523316 futex(0x7d2e9b9c, FUTEX_WAIT_BITSET, 2, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
1523383 futex(0x7d0e5e68, FUTEX_WAKE_PRIVATE, 1) = 1
1523363 <... futex resumed>) = 0
1523383 futex(0x7d2e9b9c, FUTEX_WAKE, 2147483647 <unfinished ...>
1523363 futex(0x7d0e5e18, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
1523383 <... futex resumed>) = 1
1523363 <... futex resumed>) = 0
1523316 <... futex resumed>) = 0
1523383 futex(0x7d2dfc7c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
1523363 ioctl(113, DRM_IOCTL_AMDGPU_CS <unfinished ...>
1523316 futex(0x7d2aefcc, FUTEX_WAIT_BITSET, 2, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
1523363 <... ioctl resumed>, 0x7f9c5902cac0) = 0
1523363 futex(0x7d2aefcc, FUTEX_WAKE, 2147483647) = 1
1523316 <... futex resumed>) = 0
1523363 futex(0x7d0e5e6c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 poll([{fd=21, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=21, revents=POLLOUT}])
1523316 writev(21, [{iov_base="\224\1\22\0\v\2@\2 \2@\2\31\275\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=72}], 1) = 72
1523316 getpid() = 1523316
1523316 poll([{fd=21, events=POLLIN}], 1, -1) = 1 ([{fd=21, revents=POLLIN}])
1523316 recvmsg(21, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="#\224\246\245\0\0\0\0\2\0\0\0\37\2@\2\v\2@\2\31\275\6\0 \2@\2!\2@\2"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 72
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
1523316 write(3, "\214\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0"..., 64) = 64
1523316 read(4, "\3\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
1523316 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 recvmsg(109, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 poll([{fd=21, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=21, revents=POLLOUT}])
1523316 writev(21, [{iov_base=">\3\7\0\v\2@\2\3\0\340\2^\7@\2\0\0\0\0\0\0\0\0\376\0162\10", iov_len=28}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 28
1523316 recvmsg(21, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable)
1523316 sched_yield() = 0
1523316 rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
And the following for wine process:
947418 read(26, "\214\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0"..., 64) = 64
947418 write(27, "\3\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
947418 epoll_wait(10, [{EPOLLIN, {u32=412, u64=412}}], 128, 55) = 1
947418 read(26, "\214\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0"..., 64) = 64
947418 write(27, "\3\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
947418 epoll_wait(10, [{EPOLLIN, {u32=412, u64=412}}], 128, 55) = 1
I’d be curious to find what a non-affected roon-on-wine process looks like. You can try with strace -fp $ROON_PID -o roon.log
and Control-C after about 5 to 10 seconds.
I have MESA 21.3.5 (Debian Sid), you can look at the detailed versions there: PrivateBin (it’s a bit verbose).
My laptop has the same versions of everything, but a single non-4K screen at 1920x1200 and integrated Intel GPU.