Re: [patch 2/9] Store max number of objects in the page struct.

From: Zhang, Yanmin
Date: Wed Mar 19 2008 - 23:37:29 EST


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@xxxxxxxxx>

---

--- 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);






--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/