* 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
all inboxes | Powered by JetHome®