• Manfred Spraul's avatar
    ipc/sem.c: add a printk_once for semctl(GETNCNT/GETZCNT) · 9b44ee2e
    Manfred Spraul authored
    The actual Linux implementation for semctl(GETNCNT) and semctl(GETZCNT)
    always (since 0.99.10) reported a thread as sleeping on all semaphores
    that are listed in the semop() call.
    
    The documented behavior (both in the Linux man page and in the Single
    Unix Specification) is that a task should be reported on exactly one
    semaphore: The semaphore that caused the thread to got to sleep.
    
    This patch adds a pr_info_once() that is triggered if a thread hits the
    relevant case.
    
    The code triggers slightly too often, otherwise it would be necessary to
    replicate the old code.  As there are no known users of GETNCNT or
    GETZCNT, this is done to prevent unnecessary bloat.
    
    The task that triggered is reported with name (tsk->comm) and pid.
    Signed-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
    Acked-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9b44ee2e
sem.c 55 KB