| wake_up_bit(9) - phpMan
WAKE_UP_BIT(9) Driver Basics WAKE_UP_BIT(9)
NAME
wake_up_bit - wake up a waiter on a bit
SYNOPSIS
void wake_up_bit(void * word, int bit);
ARGUMENTS
word
the word being waited on, a kernel virtual address
bit
the bit of the word being waited on
DESCRIPTION
There is a standard hashed waitqueue table for generic use. This is the part of the
hashtable's accessor API that wakes up waiters on a bit. For instance, if one were to have
waiters on a bitflag, one would call wake_up_bit after clearing the bit.
In order for this to function properly, as it uses waitqueue_active internally, some kind
of memory barrier must be done prior to calling this. Typically, this will be
smp_mb__after_atomic, but in some cases where bitflags are manipulated non-atomically
under a lock, one may need to use a less regular barrier, such fs/inode.c's smp_mb,
because spin_unlock does not guarantee a memory barrier.
COPYRIGHT
Kernel Hackers Manual 4.8. January 2017 WAKE_UP_BIT(9)
|