All of lore.kernel.org
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Doug Ledford <dledford@redhat.com>,
	linux-kernel@vger.kernel.org, kosaki.motohiro@gmail.com
Subject: Re: [Patch 2/8] ipc/mqueue: switch back to using non-max values on create
Date: Tue, 17 Apr 2012 18:32:25 -0400	[thread overview]
Message-ID: <4F8DEF79.409@gmail.com> (raw)
In-Reply-To: <20120417151729.e255188c.akpm@linux-foundation.org>

(4/17/12 6:17 PM), Andrew Morton wrote:
> On Tue, 17 Apr 2012 11:46:19 -0400
> Doug Ledford<dledford@redhat.com>  wrote:
>
>> Commit b231cca4381ee15ec99afbfb244fbc0324869927 changed
>> how we create a queue that does not include an attr
>> struct passed to open so that it creates the queue
>> with whatever the maximum values are.  However, if the
>> admin has set the maximums to allow flexibility in
>> creating a queue (aka, both a large size and large queue
>> are allowed, but combined they create a queue too large
>> for the RLIMIT_MSGQUEUE of the user), then attempts to
>> create a queue without an attr struct will fail.  Switch
>> back to using acceptable defaults regardless of what
>> the maximums are.
>>
>> Note: so far, we only know of a few applications that rely
>> on this behavior (specifically, set the maximums in /proc,
>> then run the application which calls mq_open() without
>> passing in an attr struct, and the application expects the
>> newly created message queue to have the maximum sizes that
>> were set in /proc used on the mq_open() call, and all of
>> those applications that we know of are actually part of
>> regression test suites that were coded to do something
>> like this:
>>
>> for size in 4096 65536 $((1024 * 1024)) $((16 * 1024 * 1024)); do
>> 	echo $size>  /proc/sys/fs/mqueue/msgsize_max
>> 	mq_open || echo "Error opening mq with size $size"
>> done
>>
>> These test suites that depend on any behavior like this are
>> broken.  The concept that programs should rely upon the
>> system wide maximum in order to get their desired results
>> instead of simply using a attr struct to specify what they
>> want is fundamentally unfriendly programming practice for
>> any multi-tasking OS.
>>
>> Fixing this will break those few apps that we know of (and
>> those app authors recognize the brokenness of their code
>> and the need to fix it).  However, a future patch will allow
>> a workaround in the form of new knobs for the default
>> msg queue creation parameters for any software out there that
>> we don't already know about that might rely on this behavior
>> at the moment.
>
> Here the "future patch" is "mqueue: separate mqueue default value from
> maximum value v2" in this series, yes?
>
> So people who have applications which are broken by this patch will
> need to manually set /proc/sys/fs/mqueue/msg_default and/or
> /proc/sys/fs/mqueue/msgsize_default to get those apps working again?
>

Yes, it works.



  reply	other threads:[~2012-04-17 22:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-17 15:46 [Patch 0/8] Fix POSIX mqueue open issue Doug Ledford
2012-04-17 15:46 ` [Patch 1/8] ipc/mqueue: cleanup definition names and locations Doug Ledford
2012-04-17 17:03   ` KOSAKI Motohiro
2012-04-18  3:14   ` Serge E. Hallyn
2012-04-17 15:46 ` [Patch 2/8] ipc/mqueue: switch back to using non-max values on create Doug Ledford
2012-04-17 22:17   ` Andrew Morton
2012-04-17 22:32     ` KOSAKI Motohiro [this message]
2012-04-17 23:00       ` Andrew Morton
2012-04-18 14:22         ` Doug Ledford
2012-04-17 15:46 ` [Patch 3/8] ipc/mqueue: enforce hard limits Doug Ledford
2012-04-17 15:46 ` [Patch 4/8] ipc/mqueue: update maximums for the mqueue subsystem Doug Ledford
2012-04-17 15:46 ` [Patch 5/8] mqueue: revert bump up DFLT_*MAX Doug Ledford
2012-04-18  3:22   ` Serge E. Hallyn
2012-04-18  3:37     ` KOSAKI Motohiro
2012-04-18 14:25     ` Doug Ledford
2012-04-18 15:33       ` Serge E. Hallyn
2012-04-17 15:46 ` [Patch 6/8] mqueue: don't use kmalloc with KMALLOC_MAX_SIZE Doug Ledford
2012-04-18  3:24   ` Serge E. Hallyn
2012-04-17 15:46 ` [Patch 7/8] mqueue: separate mqueue default value from maximum value v2 Doug Ledford
2012-04-18  3:30   ` Serge E. Hallyn
2012-04-17 15:46 ` [Patch 8/8] selftests: add mq_open_tests Doug Ledford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F8DEF79.409@gmail.com \
    --to=kosaki.motohiro@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=dledford@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.