Skip to content
  • Doug Ledford's avatar
    ipc/mqueue: update maximums for the mqueue subsystem · 5b5c4d1a
    Doug Ledford authored
    Commit b231cca4 ("message queues: increase range limits") changed the
    maximum size of a message in a message queue from INT_MAX to 8192*128.
    Unfortunately, we had customers that relied on a size much larger than
    8192*128 on their production systems.  After reviewing POSIX, we found
    that it is silent on the maximum message size.  We did find a couple other
    areas in which it was not silent.  Fix up the mqueue maximums so that the
    customer's system can continue to work, and document both the POSIX and
    real world requirements in ipc_namespace.h so that we don't have this
    issue crop back up.
    
    Also, commit 9cf18e1d
    
     ("ipc: HARD_MSGMAX should be higher not lower
    on 64bit") fiddled with HARD_MSGMAX without realizing that the number was
    intentionally in place to limit the msg queue depth to one that was small
    enough to kmalloc an array of pointers (hence why we divided 128k by
    sizeof(long)).  If we wish to meet POSIX requirements, we have no choice
    but to change our allocation to a vmalloc instead (at least for the large
    queue size case).  With that, it's possible to increase our allowed
    maximum to the POSIX requirements (or more if we choose).
    
    [sfr@canb.auug.org.au: using vmalloc requires including vmalloc.h]
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    Cc: Serge E. Hallyn <serue@us.ibm.com>
    Cc: Amerigo Wang <amwang@redhat.com>
    Cc: Joe Korty <joe.korty@ccur.com>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5b5c4d1a