• M
    ipc/sem.c: add a printk_once for semctl(GETNCNT/GETZCNT) · 9b44ee2e
    Manfred Spraul 提交于
    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: NManfred Spraul <manfred@colorfullife.com>
    Acked-by: NDavidlohr Bueso <davidlohr@hp.com>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    9b44ee2e
sem.c 55.0 KB