LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* Re: [patch 2/9] Store max number of objects in the page struct.
[not found] ` <Pine.LNX.4.64.0803191049450.29173@schroedinger.engr.sgi.com>
@ 2008-03-20 3:32 ` Zhang, Yanmin
2008-03-20 21:05 ` Christoph Lameter
2008-03-21 22:24 ` Andrew Morton
0 siblings, 2 replies; 5+ messages in thread
From: Zhang, Yanmin @ 2008-03-20 3:32 UTC (permalink / raw)
To: Christoph Lameter, LKML; +Cc: Pekka Enberg, Mel Gorman, Matt Mackall, linux-mm
On Wed, 2008-03-19 at 10:49 -0700, Christoph Lameter wrote:
> On Wed, 19 Mar 2008, Zhang, Yanmin wrote:
>
> > > + if ((PAGE_SIZE << min_order) / size > 65535)
> > > + return get_order(size * 65535) - 1;
> > Is it better to define something like USHORT_MAX to replace 65535?
>
> Yes. Do we have something like that?
I couldn't find such definition in include/linux/kernel.h.
But glibc defines USHRT_MAX file include/limits.h:
/* Minimum and maximum values a `signed short int' can hold. */
# define SHRT_MIN (-32768)
# define SHRT_MAX 32767
/* Maximum value an `unsigned short int' can hold. (Minimum is 0.) */
# define USHRT_MAX 65535
How about below patch against 2.6.25-rc6?
---
Add definitions of USHRT_MAX and others into kernel. ipc uses it and
slub implementation might also use it.
The patch is against 2.6.25-rc6.
Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
---
--- linux-2.6.25-rc6/include/linux/kernel.h 2008-03-20 04:25:46.000000000 +0800
+++ linux-2.6.25-rc6_work/include/linux/kernel.h 2008-03-20 04:17:45.000000000 +0800
@@ -20,6 +20,9 @@
extern const char linux_banner[];
extern const char linux_proc_banner[];
+#define USHRT_MAX ((u16)(~0U))
+#define SHRT_MAX ((s16)(USHRT_MAX>>1))
+#define SHRT_MIN (-SHRT_MAX - 1)
#define INT_MAX ((int)(~0U>>1))
#define INT_MIN (-INT_MAX - 1)
#define UINT_MAX (~0U)
--- linux-2.6.25-rc6/ipc/util.h 2008-03-20 04:25:46.000000000 +0800
+++ linux-2.6.25-rc6_work/ipc/util.h 2008-03-20 04:22:07.000000000 +0800
@@ -12,7 +12,6 @@
#include <linux/err.h>
-#define USHRT_MAX 0xffff
#define SEQ_MULTIPLIER (IPCMNI)
void sem_init (void);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 2/9] Store max number of objects in the page struct.
2008-03-20 3:32 ` [patch 2/9] Store max number of objects in the page struct Zhang, Yanmin
@ 2008-03-20 21:05 ` Christoph Lameter
2008-03-21 22:24 ` Andrew Morton
1 sibling, 0 replies; 5+ messages in thread
From: Christoph Lameter @ 2008-03-20 21:05 UTC (permalink / raw)
To: akpm, yanmin_zhang; +Cc: LKML, Pekka Enberg, Mel Gorman, Matt Mackall, linux-mm
Reviewed-by: Christoph Lameter <clameter@sgi.com>
On Thu, 20 Mar 2008, Zhang, Yanmin wrote:
> On Wed, 2008-03-19 at 10:49 -0700, Christoph Lameter wrote:
> > On Wed, 19 Mar 2008, Zhang, Yanmin wrote:
> >
> > > > + if ((PAGE_SIZE << min_order) / size > 65535)
> > > > + return get_order(size * 65535) - 1;
> > > Is it better to define something like USHORT_MAX to replace 65535?
> >
> > Yes. Do we have something like that?
>
> I couldn't find such definition in include/linux/kernel.h.
>
>
> But glibc defines USHRT_MAX file include/limits.h:
>
> /* Minimum and maximum values a `signed short int' can hold. */
> # define SHRT_MIN (-32768)
> # define SHRT_MAX 32767
>
> /* Maximum value an `unsigned short int' can hold. (Minimum is 0.) */
> # define USHRT_MAX 65535
>
>
> How about below patch against 2.6.25-rc6?
>
> ---
>
> Add definitions of USHRT_MAX and others into kernel. ipc uses it and
> slub implementation might also use it.
>
> The patch is against 2.6.25-rc6.
>
> Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
>
> ---
>
> --- linux-2.6.25-rc6/include/linux/kernel.h 2008-03-20 04:25:46.000000000 +0800
> +++ linux-2.6.25-rc6_work/include/linux/kernel.h 2008-03-20 04:17:45.000000000 +0800
> @@ -20,6 +20,9 @@
> extern const char linux_banner[];
> extern const char linux_proc_banner[];
>
> +#define USHRT_MAX ((u16)(~0U))
> +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
> +#define SHRT_MIN (-SHRT_MAX - 1)
> #define INT_MAX ((int)(~0U>>1))
> #define INT_MIN (-INT_MAX - 1)
> #define UINT_MAX (~0U)
> --- linux-2.6.25-rc6/ipc/util.h 2008-03-20 04:25:46.000000000 +0800
> +++ linux-2.6.25-rc6_work/ipc/util.h 2008-03-20 04:22:07.000000000 +0800
> @@ -12,7 +12,6 @@
>
> #include <linux/err.h>
>
> -#define USHRT_MAX 0xffff
> #define SEQ_MULTIPLIER (IPCMNI)
>
> void sem_init (void);
>
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 2/9] Store max number of objects in the page struct.
2008-03-20 3:32 ` [patch 2/9] Store max number of objects in the page struct Zhang, Yanmin
2008-03-20 21:05 ` Christoph Lameter
@ 2008-03-21 22:24 ` Andrew Morton
2008-03-22 3:27 ` Ben Pfaff
2008-03-24 1:22 ` [PATCH] Add definitions of USHORT_MAX and others Zhang, Yanmin
1 sibling, 2 replies; 5+ messages in thread
From: Andrew Morton @ 2008-03-21 22:24 UTC (permalink / raw)
To: Zhang, Yanmin; +Cc: clameter, linux-kernel, penberg, mel, mpm, linux-mm
On Thu, 20 Mar 2008 11:32:17 +0800
"Zhang, Yanmin" <yanmin_zhang@linux.intel.com> wrote:
> Add definitions of USHRT_MAX and others into kernel. ipc uses it and
> slub implementation might also use it.
>
> The patch is against 2.6.25-rc6.
>
> Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
>
> ---
>
> --- linux-2.6.25-rc6/include/linux/kernel.h 2008-03-20 04:25:46.000000000 +0800
> +++ linux-2.6.25-rc6_work/include/linux/kernel.h 2008-03-20 04:17:45.000000000 +0800
> @@ -20,6 +20,9 @@
> extern const char linux_banner[];
> extern const char linux_proc_banner[];
>
> +#define USHRT_MAX ((u16)(~0U))
> +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
> +#define SHRT_MIN (-SHRT_MAX - 1)
We have UINT_MAX and ULONG_MAX and ULLONG_MAX. If these were actually
UNT_MAX, ULNG_MAX and ULLNG_MAX then USHRT_MAX would make sense.
But they aren't, so it doesn't ;)
Please, let's call them USHORT_MAX, SHORT_MAX and SHORT_MIN.
> --- linux-2.6.25-rc6/ipc/util.h 2008-03-20 04:25:46.000000000 +0800
> +++ linux-2.6.25-rc6_work/ipc/util.h 2008-03-20 04:22:07.000000000 +0800
> @@ -12,7 +12,6 @@
>
> #include <linux/err.h>
>
> -#define USHRT_MAX 0xffff
> #define SEQ_MULTIPLIER (IPCMNI)
>
> void sem_init (void);
And then convert IPC to use them?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch 2/9] Store max number of objects in the page struct.
2008-03-21 22:24 ` Andrew Morton
@ 2008-03-22 3:27 ` Ben Pfaff
2008-03-24 1:22 ` [PATCH] Add definitions of USHORT_MAX and others Zhang, Yanmin
1 sibling, 0 replies; 5+ messages in thread
From: Ben Pfaff @ 2008-03-22 3:27 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-mm
Andrew Morton <akpm@linux-foundation.org> writes:
>> +#define USHRT_MAX ((u16)(~0U))
>> +#define SHRT_MAX ((s16)(USHRT_MAX>>1))
>> +#define SHRT_MIN (-SHRT_MAX - 1)
>
> We have UINT_MAX and ULONG_MAX and ULLONG_MAX. If these were actually
> UNT_MAX, ULNG_MAX and ULLNG_MAX then USHRT_MAX would make sense.
>
> But they aren't, so it doesn't ;)
>
> Please, let's call them USHORT_MAX, SHORT_MAX and SHORT_MIN.
SHRT_MIN, SHRT_MAX, and USHRT_MAX are the spellings used by
<limits.h> required in ISO-conforming C implementations. That
doesn't mean that the kernel has to use those spellings, but it
does mean that those names are widely understood by C
programmers.
--
Ben Pfaff
http://benpfaff.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] Add definitions of USHORT_MAX and others
2008-03-21 22:24 ` Andrew Morton
2008-03-22 3:27 ` Ben Pfaff
@ 2008-03-24 1:22 ` Zhang, Yanmin
1 sibling, 0 replies; 5+ messages in thread
From: Zhang, Yanmin @ 2008-03-24 1:22 UTC (permalink / raw)
To: Andrew Morton; +Cc: clameter, linux-kernel, penberg, mel, mpm, linux-mm
Below is the new patch. Thanks for the comments.
---
Add definitions of USHORT_MAX and others into kernel. ipc uses it and
slub implementation might also use it.
The patch is against 2.6.25-rc6.
Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
---
diff -Nraup linux-2.6.25-rc6/include/linux/kernel.h linux-2.6.25-rc6_maxshort/include/linux/kernel.h
--- linux-2.6.25-rc6/include/linux/kernel.h 2008-03-24 02:05:25.000000000 +0800
+++ linux-2.6.25-rc6_maxshort/include/linux/kernel.h 2008-03-24 02:07:27.000000000 +0800
@@ -20,6 +20,9 @@
extern const char linux_banner[];
extern const char linux_proc_banner[];
+#define USHORT_MAX ((u16)(~0U))
+#define SHORT_MAX ((s16)(USHORT_MAX>>1))
+#define SHORT_MIN (-SHORT_MAX - 1)
#define INT_MAX ((int)(~0U>>1))
#define INT_MIN (-INT_MAX - 1)
#define UINT_MAX (~0U)
diff -Nraup linux-2.6.25-rc6/ipc/msg.c linux-2.6.25-rc6_maxshort/ipc/msg.c
--- linux-2.6.25-rc6/ipc/msg.c 2008-03-24 02:05:25.000000000 +0800
+++ linux-2.6.25-rc6_maxshort/ipc/msg.c 2008-03-24 02:07:27.000000000 +0800
@@ -324,19 +324,19 @@ copy_msqid_to_user(void __user *buf, str
out.msg_rtime = in->msg_rtime;
out.msg_ctime = in->msg_ctime;
- if (in->msg_cbytes > USHRT_MAX)
- out.msg_cbytes = USHRT_MAX;
+ if (in->msg_cbytes > USHORT_MAX)
+ out.msg_cbytes = USHORT_MAX;
else
out.msg_cbytes = in->msg_cbytes;
out.msg_lcbytes = in->msg_cbytes;
- if (in->msg_qnum > USHRT_MAX)
- out.msg_qnum = USHRT_MAX;
+ if (in->msg_qnum > USHORT_MAX)
+ out.msg_qnum = USHORT_MAX;
else
out.msg_qnum = in->msg_qnum;
- if (in->msg_qbytes > USHRT_MAX)
- out.msg_qbytes = USHRT_MAX;
+ if (in->msg_qbytes > USHORT_MAX)
+ out.msg_qbytes = USHORT_MAX;
else
out.msg_qbytes = in->msg_qbytes;
out.msg_lqbytes = in->msg_qbytes;
diff -Nraup linux-2.6.25-rc6/ipc/util.c linux-2.6.25-rc6_maxshort/ipc/util.c
--- linux-2.6.25-rc6/ipc/util.c 2008-03-24 02:05:25.000000000 +0800
+++ linux-2.6.25-rc6_maxshort/ipc/util.c 2008-03-24 02:07:27.000000000 +0800
@@ -84,8 +84,8 @@ void ipc_init_ids(struct ipc_ids *ids)
ids->seq = 0;
{
int seq_limit = INT_MAX/SEQ_MULTIPLIER;
- if(seq_limit > USHRT_MAX)
- ids->seq_max = USHRT_MAX;
+ if(seq_limit > USHORT_MAX)
+ ids->seq_max = USHORT_MAX;
else
ids->seq_max = seq_limit;
}
diff -Nraup linux-2.6.25-rc6/ipc/util.h linux-2.6.25-rc6_maxshort/ipc/util.h
--- linux-2.6.25-rc6/ipc/util.h 2008-03-24 02:05:25.000000000 +0800
+++ linux-2.6.25-rc6_maxshort/ipc/util.h 2008-03-24 02:07:27.000000000 +0800
@@ -12,7 +12,6 @@
#include <linux/err.h>
-#define USHRT_MAX 0xffff
#define SEQ_MULTIPLIER (IPCMNI)
void sem_init (void);
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-03-24 1:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20080317230516.078358225@sgi.com>
[not found] ` <20080317230528.279983034@sgi.com>
[not found] ` <1205917757.10318.1.camel@ymzhang>
[not found] ` <Pine.LNX.4.64.0803191049450.29173@schroedinger.engr.sgi.com>
2008-03-20 3:32 ` [patch 2/9] Store max number of objects in the page struct Zhang, Yanmin
2008-03-20 21:05 ` Christoph Lameter
2008-03-21 22:24 ` Andrew Morton
2008-03-22 3:27 ` Ben Pfaff
2008-03-24 1:22 ` [PATCH] Add definitions of USHORT_MAX and others Zhang, Yanmin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).