From a58feaee8b6f7391cf53e61b1d14431ec51f58d0 Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Sun, 9 Aug 2015 13:17:14 +0200 Subject: [PATCH] mq_overview.7: Document QSIZE bug that appeared in 3.5 and was fixed in 4.2 Reported-by: Arto Bendiken Signed-off-by: Michael Kerrisk --- man7/mq_overview.7 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/man7/mq_overview.7 b/man7/mq_overview.7 index 943a559f6..663dbb462 100644 --- a/man7/mq_overview.7 +++ b/man7/mq_overview.7 @@ -315,7 +315,7 @@ QSIZE:129 NOTIFY:2 SIGNO:0 NOTIFY_PID:8260 These fields are as follows: .TP .B QSIZE -Number of bytes of data in all messages in the queue. +Number of bytes of data in all messages in the queue (but see BUGS). .TP .B NOTIFY_PID If this is nonzero, then the process with this PID has used @@ -373,6 +373,20 @@ limit could be raised, and the ceiling was enforced even for privileged processes. This ceiling value was removed in Linux 3.14, and patches to stable kernels 3.5.x to 3.13.x also removed the ceiling. + +As originally implemented (and documented), +the QSIZE field displayed the total number of (user-supplied) +bytes in all messages in the message queue. +Some changes in Linux 3.5 +.\" commit d6629859b36d +inadvertently changed the behavior, +so that this field also included a count of kernel overhead bytes +used to store the messages in the queue. +This behavioral regression was rectified in Linux 4.2 +.\" commit de54b9ac253787c366bbfb28d901a31954eb3511 +(and earlier stable kernel series), +so that the count once more included just the bytes of user data +in messages in the queue. .SH SEE ALSO .BR getrlimit (2), .BR mq_getsetattr (2),