On Thu, May 22, 2014 at 01:06:22PM +0200, Hans Petter Selasky wrote: > Hi, > > When using the Linux Skype client under FreeBSD I sometimes see that the > Audio disappears in the one direction. When I check "ps auxw" I see > skype is stuck on a so-called Futex. I looked into the Linux futex code > and see that wakeup_one() is used instead of wakeup(). Maybe others can > test too and verify if replacing wakeup_one() by wakeup() makes any > difference in for Linux applications using Futexes. >
is it fixes the problem for you? as the author of it I should to look back to find the reason of using wakeup_one(). and check this patch on nptl tests. > --HPS > > > > diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c > > index 9b4c92f..e893bf4 100644 > > --- a/sys/compat/linux/linux_futex.c > > +++ b/sys/compat/linux/linux_futex.c > > @@ -498,7 +498,7 @@ futex_wake(struct futex *f, int n, uint32_t bitset) > > wp->wp_flags |= FUTEX_WP_REMOVED; > > TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); > > LIN_SDT_PROBE1(futex, futex_wake, wakeup, wp); > > - wakeup_one(wp); > > + wakeup(wp); > > if (++count == n) > > break; > > } > > @@ -525,7 +525,7 @@ futex_requeue(struct futex *f, int n, struct futex *f2, > > int n2) > > wp->wp_flags |= FUTEX_WP_REMOVED; > > TAILQ_REMOVE(&f->f_waiting_proc, wp, wp_list); > > LIN_SDT_PROBE1(futex, futex_requeue, wakeup, wp); > > - wakeup_one(wp); > > + wakeup(wp); > > } else { > > LIN_SDT_PROBE3(futex, futex_requeue, requeue, > > f->f_uaddr, wp, f2->f_uaddr); > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org" -- Have fun! chd
pgpaP_dny5N5D.pgp
Description: PGP signature