From: Arvind Kandhare <arvind.kan@wipro.com>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: "indou.takao" <indou.takao@jp.fujitsu.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Dave Jones <davej@suse.de>,
Manfred Spraul <manfred@colorfullife.com>
Subject: Re: [RFC][PATCH 2.5.70] Static tunable semvmx and semaem
Date: Fri, 06 Jun 2003 14:31:35 +0530 [thread overview]
Message-ID: <3EE0586F.9060108@wipro.com> (raw)
In-Reply-To: 20030606065023.GB8978@holomorphy.com
William Lee Irwin III wrote:
>
> Your MUA ate the whitespace in the patch.
Please user --ignore-whitespace for patching. I use Mozilla for email activities and
can not change to pine etc. Sorry for the inconvenience caused.
>
> Also, I'm not convinced it's useful to pollute init/main.c here.
> Something under /proc/sys/kernel/ with the other shm bits should do.
>
As we have discussed earlier, making it dynamic can cause some race conditions in the system
(Please refer thread "Changing SEMVMX to a tunable parameter" on 28 May 2003).
> I might look deeper into whether the audit for signedness and other
> size issues is complete once those are dealt with.
>
I am not very clear about this. Is there a standard procedure for the audit?
I reviewed the code and did not find any issues related to signedness / boundary conditions.
Can you please explain more about it ??
Thanks and regards,
Arvind ..
P.S. Please find the patch with the implementation as dynamic tunable parameter,
but I've some reservations about it.Making it dynamic will be ideal solution but it may
lead to unavoidable races.
diff -Naur linux-2.5.70/include/linux/sysctl.h linux-2.5.70.n/include/linux/sysctl.h
--- linux-2.5.70/include/linux/sysctl.h Tue May 27 06:30:40 2003
+++ linux-2.5.70.n/include/linux/sysctl.h Fri Jun 6 13:42:54 2003
@@ -130,6 +130,8 @@
KERN_PIDMAX=55,
/* int: PID # limit */
KERN_CORE_PATTERN=56, /* string: pattern for core-file names */
KERN_PANIC_ON_OOPS=57, /* int: whether we will panic on an oops */
+
KERN_SEMVMX=58, /* int: maximum limit on semval */
+
KERN_SEMAEM=59,
/* int: maximun limit on semaem */
};
diff -Naur linux-2.5.70/ipc/sem.c linux-2.5.70.n/ipc/sem.c
--- linux-2.5.70/ipc/sem.c Tue May 27 06:30:38 2003
+++ linux-2.5.70.n/ipc/sem.c Fri Jun 6 13:42:54 2003
@@ -102,6 +102,9 @@
#define sc_semopm (sem_ctls[2])
#define sc_semmni (sem_ctls[3])
+unsigned int semvmx=32767;
+int semaem=16384;
+
static int used_sems;
void __init sem_init (void)
@@ -280,7 +283,7 @@
/*
* Exceeding the undo range is an error.
*/
-
if (undo < (-SEMAEM - 1) || undo > SEMAEM)
+
if (undo < (-semaem - 1) || undo > semaem)
{
/* Don't undo the undo */
sop->sem_flg &= ~SEM_UNDO;
@@ -290,7 +293,7 @@
}
if (curr->semval < 0)
goto would_block;
-
if (curr->semval > SEMVMX)
+
if (curr->semval > semvmx)
goto out_of_range;
}
@@ -482,7 +485,7 @@
seminfo.semmns = sc_semmns;
seminfo.semmsl = sc_semmsl;
seminfo.semopm = sc_semopm;
-
seminfo.semvmx = SEMVMX;
+
seminfo.semvmx = semvmx;
seminfo.semmnu = SEMMNU;
seminfo.semmap = SEMMAP;
seminfo.semume = SEMUME;
@@ -492,7 +495,7 @@
seminfo.semaem = used_sems;
} else {
seminfo.semusz = SEMUSZ;
-
seminfo.semaem = SEMAEM;
+
seminfo.semaem = semaem;
}
max_id = sem_ids.max_id;
up(&sem_ids.sem);
@@ -613,7 +616,7 @@
}
for (i = 0; i < nsems; i++) {
-
if (sem_io[i] > SEMVMX) {
+
if (sem_io[i] > semvmx) {
err = -ERANGE;
goto out_free;
}
@@ -672,7 +675,7 @@
int val = arg.val;
struct sem_undo *un;
err = -ERANGE;
-
if (val > SEMVMX || val < 0)
+
if (val > semvmx || val < 0)
goto out_unlock;
for (un = sma->undo; un; un = un->id_next)
diff -Naur linux-2.5.70/kernel/sysctl.c linux-2.5.70.n/kernel/sysctl.c
--- linux-2.5.70/kernel/sysctl.c Tue May 27 06:30:23 2003
+++ linux-2.5.70.n/kernel/sysctl.c Fri Jun 6 13:47:46 2003
@@ -79,6 +79,8 @@
extern int msg_ctlmnb;
extern int msg_ctlmni;
extern int sem_ctls[];
+extern unsigned int semvmx;
+extern int semaem;
#endif
#ifdef __sparc__
@@ -146,6 +148,14 @@
static void unregister_proc_table(ctl_table *, struct proc_dir_entry *);
#endif
+/* Constants for minimum and maximum testing in vm_table.
+ * We use these as one-element integer vectors. */
+static int zero = 0;
+static int one = 1;
+static int one_hundred = 100;
+static int signed_short_max=32767;
+
+
/* The default sysctl tables: */
static ctl_table root_table[] = {
@@ -237,6 +247,10 @@
0644, NULL, &proc_dointvec},
{KERN_SEM, "sem", &sem_ctls, 4*sizeof (int),
0644, NULL, &proc_dointvec},
+
{KERN_SEMVMX, "semvmx", &semvmx, sizeof (int),
+
0644, NULL, &proc_dointvec_minmax,NULL,NULL,&zero,NULL},
+
{KERN_SEMAEM, "semaem", &semaem, sizeof (int),
+
0644, NULL, &proc_dointvec,NULL,NULL,&zero,&signed_short_max},
#endif
#ifdef CONFIG_MAGIC_SYSRQ
{KERN_SYSRQ, "sysrq", &sysrq_enabled, sizeof (int),
@@ -268,12 +282,6 @@
{0}
};
-/* Constants for minimum and maximum testing in vm_table.
- We use these as one-element integer vectors. */
-static int zero = 0;
-static int one = 1;
-static int one_hundred = 100;
-
static ctl_table vm_table[] = {
{VM_OVERCOMMIT_MEMORY, "overcommit_memory", &sysctl_overcommit_memory,
next prev parent reply other threads:[~2003-06-06 8:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-06 5:53 [RFC][PATCH 2.5.70] Static tunable semvmx and semaem Arvind Kandhare
2003-06-06 6:50 ` William Lee Irwin III
2003-06-06 9:01 ` Arvind Kandhare [this message]
2003-06-06 13:12 ` William Lee Irwin III
2003-06-06 16:52 ` Manfred Spraul
-- strict thread matches above, loose matches on Subject: below --
2003-06-06 15:02 Arvind Kandhare
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=3EE0586F.9060108@wipro.com \
--to=arvind.kan@wipro.com \
--cc=davej@suse.de \
--cc=indou.takao@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=manfred@colorfullife.com \
--cc=wli@holomorphy.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox