diff --git a/man7/mq_overview.7 b/man7/mq_overview.7 index 855930d96..c6a02a535 100644 --- a/man7/mq_overview.7 +++ b/man7/mq_overview.7 @@ -151,15 +151,12 @@ is specified as NULL. The default value for this file is 10. The minimum and maximum are as for .IR /proc/sys/fs/mqueue/msg_max . -If -.IR msg_default -exceeds -.IR msg_max , -a new queue's default +A new queue's default .I mq_maxmsg -value is capped to the -.I msg_max -limit. +value will be the smaller of +.IR msg_default +and +.IR msg_max . Up until Linux 2.6.28, the default .I mq_maxmsg was 10; @@ -212,7 +209,7 @@ setting when the queue is created with a call to where .I attr is specified as NULL. -The default value for this file is 8192. +The default value for this file is 8192 (bytes). The minimum and maximum are as for .IR /proc/sys/fs/mqueue/msgsize_max . If @@ -270,36 +267,11 @@ number of message queues that can be created. The default value for .I queues_max is 256. -The semantics of this limit have changed across kernel versions as follows: -.RS -.IP * 3 -Before Linux 3.5, -this limit could be changed to any value in the range 0 to -.RB INT_MAX , -but privileged processes -.RB ( CAP_SYS_RESOURCE ) -can exceed the limit. -.IP * 3 -Since Linux 3.5, there is a ceiling for this limit of 1024 -.RB ( HARD_QUEUESMAX ). -Privileged processes -.RB ( CAP_SYS_RESOURCE ) -can exceed the +No ceiling is imposed on the .I queues_max -limit, but the -.BR HARD_QUEUESMAX -limit is enforced even for privileged processes. -.IP * -Starting with Linux 3.14, -.\" commit f3713fd9cff733d9df83116422d8e4af6e86b2bb -the -.B HARD_QUEUESMAX -ceiling is removed: no ceiling is imposed on the -.IR queues_max -limit, and privileged processes +limit; privileged processes .RB ( CAP_SYS_RESOURCE ) -can exceed the limit. -.RE +can exceed the limit (but see BUGS). .SS Resource limit The .B RLIMIT_MSGQUEUE @@ -394,6 +366,15 @@ lists (ACLs) for POSIX message queues. .SH EXAMPLE An example of the use of various message queue functions is shown in .BR mq_notify (3). +.SH BUGS +In Linux versions 3.5 to 3.14, the kernel imposed a ceiling of 1024 +.RB ( HARD_QUEUESMAX ) +on the value to which the +.I queues_max +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. .SH SEE ALSO .BR getrlimit (2), .BR mq_getsetattr (2),