:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
 
futex_wait_requeue_pi(9) - phpMan

Command: man perldoc info search(apropos)  


FUTEX_WAIT_REQUEUE_P(9)                Futex API reference                FUTEX_WAIT_REQUEUE_P(9)



NAME
       futex_wait_requeue_pi - Wait on uaddr and take uaddr2

SYNOPSIS
       int futex_wait_requeue_pi(u32 __user * uaddr, unsigned int flags, u32 val,
                                 ktime_t * abs_time, u32 bitset, u32 __user * uaddr2);

ARGUMENTS
       uaddr
           the futex we initially wait on (non-pi)

       flags
           futex flags (FLAGS_SHARED, FLAGS_CLOCKRT, etc.), they must be the same type, no
           requeueing from private to shared, etc.

       val
           the expected value of uaddr

       abs_time
           absolute timeout

       bitset
           32 bit wakeup bitset set by userspace, defaults to all

       uaddr2
           the pi futex we will take prior to returning to user-space

DESCRIPTION
       The caller will wait on uaddr and will be requeued by futex_requeue to uaddr2 which must
       be PI aware and unique from uaddr. Normal wakeup will wake on uaddr2 and complete the
       acquisition of the rt_mutex prior to returning to userspace. This ensures the rt_mutex
       maintains an owner when it has waiters; without one, the pi logic would not know which
       task to boost/deboost, if there was a need to.

       We call schedule in futex_wait_queue_me when we enqueue and return there via the
       following-- 1) wakeup on uaddr2 after an atomic lock acquisition by futex_requeue 2)
       wakeup on uaddr2 after a requeue 3) signal 4) timeout

       If 3, cleanup and return -ERESTARTNOINTR.

       If 2, we may then block on trying to take the rt_mutex and return via: 5) successful lock
       6) signal 7) timeout 8) other lock acquisition failure

       If 6, return -EWOULDBLOCK (restarting the syscall would do the same).

       If 4 or 7, we cleanup and return with -ETIMEDOUT.

RETURN
       0 - On success; <0 - On error

AUTHOR
       Rusty Russell <rusty AT rustcorp.au>
           Author.

COPYRIGHT
Kernel Hackers Manual 4.8.                 January 2017                   FUTEX_WAIT_REQUEUE_P(9)


/man
rootr.net - man pages