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).
This patch applies to 2.6.26-rc2-mm1.
Acked-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Nadia Derbey <Nadia.Derbey@xxxxxxxx>
---
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);