lkml.org 
[lkml]   [2008]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/1] Only output msgmni value at boot time
Luck, Tony wrote:
>>In http://lkml.org/lkml/2008/4/29/575 Tony Luck complained that this message
>>references an ipc namespace address that is useless.
>>
>>I first thought of using an audit_log instead of a printk, as suggested by
>>Serge Hallyn. But unfortunately, we do not have any other information than
>>the namespace address to provide here too.
>>So I chose to move the message and output it only at boot time, removing the
>>reference to the namespace.
>
>
> Diffing my before/after dmesg(8) output:
> < msgmni has been set to 7964 for ipc namespace a000000100a1ad58
> ---
>
>>msgmni has been set to 7964
>
>
> Much prettier. Thank you.
>
> I'll leave it to SGI to ponder whether it is correct to compute
> msgmni based on a linear function of lowmem (their big systems can
> have terabytes of memory, all of which is counted as lowmem).

Sure that if the formula can be enhanced, that would be great.
But don't forget 2 things:
. msgmni cannot become higher than IPCMNI: i.e. starting from 16Gb of
lowmem, and based on a value of 16K for msgmnb, msgmni won't increase.
(if I'm not wrong in my computation).
. there is no memory pre-allocation done based upon msgmni value: by
increasing its value we are just making the DoS (for too many msg
queues) come later.
. there is still the possibility of lowering the value "by hand" (via
procfs) if ever it is found to be too high.

Regards,
Nadia

>
>
>>This patch applies to 2.6.26-rc2-mm1.
>
>
> Acked-by: Tony Luck <tony.luck@intel.com>
>
> Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net>
>
> ---
> ipc/msg.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> Index: linux-2.6.26-rc2-mm1/ipc/msg.c
> ===================================================================
> --- linux-2.6.26-rc2-mm1.orig/ipc/msg.c 2008-05-26 12:25:37.000000000 +0200
> +++ linux-2.6.26-rc2-mm1/ipc/msg.c 2008-05-27 10:59:34.000000000 +0200
> @@ -98,20 +98,15 @@ void recompute_msgmni(struct ipc_namespa
>
> if (allowed < MSGMNI) {
> ns->msg_ctlmni = MSGMNI;
> - goto out_callback;
> + return;
> }
>
> if (allowed > IPCMNI / nb_ns) {
> ns->msg_ctlmni = IPCMNI / nb_ns;
> - goto out_callback;
> + return;
> }
>
> ns->msg_ctlmni = allowed;
> -
> -out_callback:
> -
> - printk(KERN_INFO "msgmni has been set to %d for ipc namespace %p\n",
> - ns->msg_ctlmni, ns);
> }
>
> void msg_init_ns(struct ipc_namespace *ns)
> @@ -136,6 +131,10 @@ void msg_exit_ns(struct ipc_namespace *n
> void __init msg_init(void)
> {
> msg_init_ns(&init_ipc_ns);
> +
> + printk(KERN_INFO "msgmni has been set to %d\n",
> + init_ipc_ns.msg_ctlmni);
> +
> ipc_init_proc_interface("sysvipc/msg",
> " key msqid perms cbytes qnum lspid lrpid uid gid cuid cgid stime rtime ctime\n",
> IPC_MSG_IDS, sysvipc_msg_proc_show);
>






\
 
 \ /
  Last update: 2008-05-29 11:45    [W:0.066 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site