linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* SLUB: Use ilog2 instead of series of constant comparisons.
@ 2007-05-21 19:51 Christoph Lameter
  2007-05-22  8:45 ` Pekka Enberg
  2007-06-06 17:08 ` Andrew Morton
  0 siblings, 2 replies; 19+ messages in thread
From: Christoph Lameter @ 2007-05-21 19:51 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, Pekka Enberg

I finally found a way to get rid of the nasty list of comparisions in
slub_def.h. ilog2 seems to work right for constants.

Also update comments

Drop the generation of an unresolved symbol for the case that the size is
too big. A simple BUG_ON sufficies now that we can alloc up to MAX_ORDER
size slab objects.

Signed-off-by: Christoph Lameter <clameter@sgi.com>

---
 include/linux/slub_def.h |   66 ++++++++++++++---------------------------------
 1 file changed, 20 insertions(+), 46 deletions(-)

Index: slub/include/linux/slub_def.h
===================================================================
--- slub.orig/include/linux/slub_def.h	2007-05-21 11:38:19.000000000 -0700
+++ slub/include/linux/slub_def.h	2007-05-21 11:58:16.000000000 -0700
@@ -10,6 +10,7 @@
 #include <linux/gfp.h>
 #include <linux/workqueue.h>
 #include <linux/kobject.h>
+#include <linux/log2.h>
 
 struct kmem_cache_node {
 	spinlock_t list_lock;	/* Protect partial list and nr_partial */
@@ -58,6 +59,8 @@ struct kmem_cache {
  */
 #define KMALLOC_SHIFT_LOW 3
 
+#define KMALLOC_MIN_SIZE (1UL << KMALLOC_SHIFT_LOW)
+
 /*
  * We keep the general caches in an array of slab caches that are used for
  * 2^x bytes of allocations.
@@ -65,56 +68,36 @@ struct kmem_cache {
 extern struct kmem_cache kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
 
 /*
- * Sorry that the following has to be that ugly but some versions of GCC
- * have trouble with constant propagation and loops.
+ * Determine the kmalloc array index given the object size.
+ *
+ * Return -1 if the object size is not supported.
  */
 static inline int kmalloc_index(size_t size)
 {
 	/*
-	 * We should return 0 if size == 0 but we use the smallest object
-	 * here for SLAB legacy reasons.
+	 * We should return 0 if size == 0 (which would result in the
+	 * kmalloc caller to get NULL) but we use the smallest object
+	 * here for legacy reasons. Just issue a warning so that
+	 * we can discover locations where we do 0 sized allocations.
 	 */
 	WARN_ON_ONCE(size == 0);
 
 	if (size > KMALLOC_MAX_SIZE)
 		return -1;
 
+	if (size <= KMALLOC_MIN_SIZE)
+		return KMALLOC_SHIFT_LOW;
+
+	/*
+	 * We map the non power of two slabs to the unused
+	 * log2 values in the kmalloc array.
+	 */
 	if (size > 64 && size <= 96)
 		return 1;
 	if (size > 128 && size <= 192)
 		return 2;
-	if (size <=          8) return 3;
-	if (size <=         16) return 4;
-	if (size <=         32) return 5;
-	if (size <=         64) return 6;
-	if (size <=        128) return 7;
-	if (size <=        256) return 8;
-	if (size <=        512) return 9;
-	if (size <=       1024) return 10;
-	if (size <=   2 * 1024) return 11;
-	if (size <=   4 * 1024) return 12;
-	if (size <=   8 * 1024) return 13;
-	if (size <=  16 * 1024) return 14;
-	if (size <=  32 * 1024) return 15;
-	if (size <=  64 * 1024) return 16;
-	if (size <= 128 * 1024) return 17;
-	if (size <= 256 * 1024) return 18;
-	if (size <=  512 * 1024) return 19;
-	if (size <= 1024 * 1024) return 20;
-	if (size <=  2 * 1024 * 1024) return 21;
-	if (size <=  4 * 1024 * 1024) return 22;
-	if (size <=  8 * 1024 * 1024) return 23;
-	if (size <= 16 * 1024 * 1024) return 24;
-	if (size <= 32 * 1024 * 1024) return 25;
-	return -1;
 
-/*
- * What we really wanted to do and cannot do because of compiler issues is:
- *	int i;
- *	for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++)
- *		if (size <= (1 << i))
- *			return i;
- */
+	return ilog2(size - 1) + 1;
 }
 
 /*
@@ -131,18 +114,9 @@ static inline struct kmem_cache *kmalloc
 		return NULL;
 
 	/*
-	 * This function only gets expanded if __builtin_constant_p(size), so
-	 * testing it here shouldn't be needed.  But some versions of gcc need
-	 * help.
+	 * If this triggers then the amount of memory requested was too large.
 	 */
-	if (__builtin_constant_p(size) && index < 0) {
-		/*
-		 * Generate a link failure. Would be great if we could
-		 * do something to stop the compile here.
-		 */
-		extern void __kmalloc_size_too_large(void);
-		__kmalloc_size_too_large();
-	}
+	BUG_ON(index < 0);
 	return &kmalloc_caches[index];
 }
 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-05-21 19:51 SLUB: Use ilog2 instead of series of constant comparisons Christoph Lameter
@ 2007-05-22  8:45 ` Pekka Enberg
  2007-06-06 17:08 ` Andrew Morton
  1 sibling, 0 replies; 19+ messages in thread
From: Pekka Enberg @ 2007-05-22  8:45 UTC (permalink / raw)
  To: Christoph Lameter; +Cc: akpm, linux-mm

On 5/21/07, Christoph Lameter <clameter@sgi.com> wrote:
> I finally found a way to get rid of the nasty list of comparisions in
> slub_def.h. ilog2 seems to work right for constants.

Nice cleanup Christoph! Looks good to me.

Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-05-21 19:51 SLUB: Use ilog2 instead of series of constant comparisons Christoph Lameter
  2007-05-22  8:45 ` Pekka Enberg
@ 2007-06-06 17:08 ` Andrew Morton
  2007-06-06 18:36   ` Christoph Lameter
  1 sibling, 1 reply; 19+ messages in thread
From: Andrew Morton @ 2007-06-06 17:08 UTC (permalink / raw)
  To: Christoph Lameter; +Cc: linux-mm, Pekka Enberg

On Mon, 21 May 2007 12:51:47 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:

> I finally found a way to get rid of the nasty list of comparisions in
> slub_def.h. ilog2 seems to work right for constants.

This caused test.kernel.org's power4 build to blow up:

http://test.kernel.org/abat/93315/debug/test.log.0

fs/built-in.o(.text+0x148420): In function `.CalcNTLMv2_partial_mac_key':
: undefined reference to `.____ilog2_NaN'

it doesn't happen on my power4 toolchain so I expect it's some artifact
due to test.k.o's tendency to use crufty old toolchains.

arguably it's a bug in ilog2, dunno.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 17:08 ` Andrew Morton
@ 2007-06-06 18:36   ` Christoph Lameter
  2007-06-06 20:11     ` Andrew Morton
  0 siblings, 1 reply; 19+ messages in thread
From: Christoph Lameter @ 2007-06-06 18:36 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm, Pekka Enberg

On Wed, 6 Jun 2007, Andrew Morton wrote:

> This caused test.kernel.org's power4 build to blow up:
> 
> http://test.kernel.org/abat/93315/debug/test.log.0
> 
> fs/built-in.o(.text+0x148420): In function `.CalcNTLMv2_partial_mac_key':
> : undefined reference to `.____ilog2_NaN'

Hmmm... Weird message that does not allow too much analysis.
The __ilog2_NaN comes about if 0 or a negative number is passed to ilog. 
There is no way for that to happen since we check for KMALLOC_MIN_SIZE 
and KMALLOC_MAX_SIZE in kmalloc_index() and an unsigned value is used.

There is also nothing special in CalcNTLMv2_partial_mac_key(). Two 
kmallocs of 33 bytes and 132 bytes each.

Buggy compiler (too much stress on constant folding)? Or hardware? Can we 
rerun the test?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 18:36   ` Christoph Lameter
@ 2007-06-06 20:11     ` Andrew Morton
  2007-06-06 20:28       ` Christoph Lameter
  2007-06-06 20:29       ` Nish Aravamudan
  0 siblings, 2 replies; 19+ messages in thread
From: Andrew Morton @ 2007-06-06 20:11 UTC (permalink / raw)
  To: Christoph Lameter; +Cc: linux-mm, Pekka Enberg, Andy Whitcroft, Martin Bligh

On Wed, 6 Jun 2007 11:36:07 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:

> On Wed, 6 Jun 2007, Andrew Morton wrote:
> 
> > This caused test.kernel.org's power4 build to blow up:
> > 
> > http://test.kernel.org/abat/93315/debug/test.log.0
> > 
> > fs/built-in.o(.text+0x148420): In function `.CalcNTLMv2_partial_mac_key':
> > : undefined reference to `.____ilog2_NaN'
> 
> Hmmm... Weird message that does not allow too much analysis.
> The __ilog2_NaN comes about if 0 or a negative number is passed to ilog. 
> There is no way for that to happen since we check for KMALLOC_MIN_SIZE 
> and KMALLOC_MAX_SIZE in kmalloc_index() and an unsigned value is used.
> 
> There is also nothing special in CalcNTLMv2_partial_mac_key(). Two 
> kmallocs of 33 bytes and 132 bytes each.

Yes, the code all looks OK.  I suspect this is another case of the compiler
failing to remove unreachable stuff.

> Buggy compiler (too much stress on constant folding)? Or hardware? Can we 
> rerun the test?

It happened multiple times:
http://test.kernel.org/functional/pSeries-101_2.html

I'm sure there's a way of extracting the compiler version out of
test.kernel.org but I can't see it there.  Andy, maybe we should toss a gcc
--version in there or something?


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:11     ` Andrew Morton
@ 2007-06-06 20:28       ` Christoph Lameter
  2007-06-06 20:34         ` Andrew Morton
  2007-06-06 20:29       ` Nish Aravamudan
  1 sibling, 1 reply; 19+ messages in thread
From: Christoph Lameter @ 2007-06-06 20:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm, Pekka Enberg, Andy Whitcroft, Martin Bligh

On Wed, 6 Jun 2007, Andrew Morton wrote:

> > There is also nothing special in CalcNTLMv2_partial_mac_key(). Two 
> > kmallocs of 33 bytes and 132 bytes each.
> 
> Yes, the code all looks OK.  I suspect this is another case of the compiler
> failing to remove unreachable stuff.

Sigh.

The patch was already in 2.6.22-rc3-mm1. Why did the patch pass the 
testing during that release cycle?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:11     ` Andrew Morton
  2007-06-06 20:28       ` Christoph Lameter
@ 2007-06-06 20:29       ` Nish Aravamudan
  2007-06-07  7:48         ` Andy Whitcroft
  1 sibling, 1 reply; 19+ messages in thread
From: Nish Aravamudan @ 2007-06-06 20:29 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Christoph Lameter, linux-mm, Pekka Enberg, Andy Whitcroft, Martin Bligh

On 6/6/07, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Wed, 6 Jun 2007 11:36:07 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:
>
> > On Wed, 6 Jun 2007, Andrew Morton wrote:
> >
> > > This caused test.kernel.org's power4 build to blow up:
> > >
> > > http://test.kernel.org/abat/93315/debug/test.log.0
> > >
> > > fs/built-in.o(.text+0x148420): In function `.CalcNTLMv2_partial_mac_key':
> > > : undefined reference to `.____ilog2_NaN'
> >
> > Hmmm... Weird message that does not allow too much analysis.
> > The __ilog2_NaN comes about if 0 or a negative number is passed to ilog.
> > There is no way for that to happen since we check for KMALLOC_MIN_SIZE
> > and KMALLOC_MAX_SIZE in kmalloc_index() and an unsigned value is used.
> >
> > There is also nothing special in CalcNTLMv2_partial_mac_key(). Two
> > kmallocs of 33 bytes and 132 bytes each.
>
> Yes, the code all looks OK.  I suspect this is another case of the compiler
> failing to remove unreachable stuff.
>
> > Buggy compiler (too much stress on constant folding)? Or hardware? Can we
> > rerun the test?
>
> It happened multiple times:
> http://test.kernel.org/functional/pSeries-101_2.html
>
> I'm sure there's a way of extracting the compiler version out of
> test.kernel.org but I can't see it there.  Andy, maybe we should toss a gcc
> --version in there or something?

I went and looked at one of the GOOD jobs and acc'g to that, the gcc is

gcc version 3.3.3 (SuSE Linux)

(http://test.kernel.org/abat/93029/summary)

I agree, seems like it would be handy to spit that out somewhere nicer
and easier to get to. Maybe the machine links at the top should point
to a summary page which has a link to the .config, machine info, etc?
(more indirection, but may be ok).

Thanks,
Nish

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:28       ` Christoph Lameter
@ 2007-06-06 20:34         ` Andrew Morton
  2007-06-06 20:41           ` Martin Bligh
  2007-06-06 20:43           ` Christoph Lameter
  0 siblings, 2 replies; 19+ messages in thread
From: Andrew Morton @ 2007-06-06 20:34 UTC (permalink / raw)
  To: Christoph Lameter; +Cc: linux-mm, Pekka Enberg, Andy Whitcroft, Martin Bligh

On Wed, 6 Jun 2007 13:28:40 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:

> On Wed, 6 Jun 2007, Andrew Morton wrote:
> 
> > > There is also nothing special in CalcNTLMv2_partial_mac_key(). Two 
> > > kmallocs of 33 bytes and 132 bytes each.
> > 
> > Yes, the code all looks OK.  I suspect this is another case of the compiler
> > failing to remove unreachable stuff.
> 
> Sigh.
> 
> The patch was already in 2.6.22-rc3-mm1. Why did the patch pass the 
> testing during that release cycle?

Good question - don't know, sorry.

I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
fails to compile gcc-3.3.3?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:34         ` Andrew Morton
@ 2007-06-06 20:41           ` Martin Bligh
  2007-06-06 20:52             ` Christoph Lameter
                               ` (2 more replies)
  2007-06-06 20:43           ` Christoph Lameter
  1 sibling, 3 replies; 19+ messages in thread
From: Martin Bligh @ 2007-06-06 20:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Christoph Lameter, linux-mm, Pekka Enberg, Andy Whitcroft

Andrew Morton wrote:
> On Wed, 6 Jun 2007 13:28:40 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:
> 
>> On Wed, 6 Jun 2007, Andrew Morton wrote:
>>
>>>> There is also nothing special in CalcNTLMv2_partial_mac_key(). Two 
>>>> kmallocs of 33 bytes and 132 bytes each.
>>> Yes, the code all looks OK.  I suspect this is another case of the compiler
>>> failing to remove unreachable stuff.
>> Sigh.
>>
>> The patch was already in 2.6.22-rc3-mm1. Why did the patch pass the 
>> testing during that release cycle?
> 
> Good question - don't know, sorry.
> 
> I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
> fails to compile gcc-3.3.3?

IIRC, the SUSE ones were customized anyway, so not sure that'd help you.
Might do though.

There should be a sysinfo directory that lists stuff like gcc version,
maybe it's not getting replicated to TKO though ... Nish or Andy,
any chance you can take a look at the original copy of one of those
jobs on the ABAT server?

I just fixed autotest, but I can't fix the old IBM code from here ;-)
Anything else that'd be particularly handy to dump all the time?
You can see what we're currently doing in the context of the diff
below.

Index: sysinfo.py
===================================================================
--- sysinfo.py  (revision 527)
+++ sysinfo.py  (working copy)
@@ -8,7 +8,7 @@
  files = ['/proc/pci', '/proc/meminfo', '/proc/slabinfo', '/proc/version',
         '/proc/cpuinfo', '/proc/cmdline']
  # commands = ['lshw']        # this causes problems triggering CDROM 
drives
-commands = ['uname -a', 'lspci -vvn']
+commands = ['uname -a', 'lspci -vvn', 'gcc --version']
  path = ['/usr/bin', '/bin']

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:34         ` Andrew Morton
  2007-06-06 20:41           ` Martin Bligh
@ 2007-06-06 20:43           ` Christoph Lameter
  1 sibling, 0 replies; 19+ messages in thread
From: Christoph Lameter @ 2007-06-06 20:43 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm, Pekka Enberg, Andy Whitcroft, Martin Bligh

On Wed, 6 Jun 2007, Andrew Morton wrote:

> I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
> fails to compile gcc-3.3.3?

Yes I tried building a gcc compiler for a special config a while back. 
After a few days I came to the firm conclusion that its not worth the 
time. Fortunately I found a group of guys that do it all for me and I get 
daily updates of their work.

clameter@schroedinger:~$ apt-cache search gcc
cpp - The GNU C preprocessor (cpp)
cpp-2.95 - The GNU C preprocessor
cpp-2.95-doc - Documentation for the GNU C preprocessor (cpp)
cpp-3.3 - The GNU C preprocessor
cpp-3.4 - The GNU C preprocessor
cpp-4.1 - The GNU C preprocessor
cpp-4.2 - The GNU C preprocessor
cpphs - Simplified cpp-a-like preprocessor for Haskell
emdebian-tools - emdebian crossbuilding tool set
g++-2.95 - The GNU C++ compiler
g++-3.4 - The GNU C++ compiler
g77 - The GNU Fortran 77 compiler
g77-2.95 - The GNU Fortran 77 compiler
g77-2.95-doc - Documentation for the GNU Fortran compiler (g77)
g77-3.4 - The GNU Fortran 77 compiler
gcc - The GNU C compiler
gcc-2.95 - The GNU C compiler
gcc-2.95-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-3.3 - The GNU C compiler
gcc-3.3-base - The GNU Compiler Collection (base package)
gcc-3.4 - The GNU C compiler
gcc-3.4-base - The GNU Compiler Collection (base package)
gcc-4.1 - The GNU C compiler
gcc-4.1-base - The GNU Compiler Collection (base package)
gcc-4.1-locales - The GNU C compiler (native language support files)
gcc-4.1-source - Source of the GNU Compiler Collection
gcc-4.2 - The GNU C compiler
gcc-4.2-base - The GNU Compiler Collection (base package)
gcc-4.2-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-4.2-locales - The GNU C compiler (native language support files)
gcc-4.2-multilib - The GNU C compiler (multilib files)
gcc-4.2-source - Source of the GNU Compiler Collection
gcc-avr - The GNU C compiler (cross compiler for avr)
gcc-m68hc1x - GNU C compiler for the Motorola 68HC11/12 processors
gcc272 - The GNU C compiler.
gcc272-docs - Documentation for the gcc compiler (gcc272).
gccxml - XML output extension to GCC
gcj - The GNU Java compiler
gcj-4.1 - The GNU compiler for Java(TM)
gcj-4.1-base - The GNU Compiler Collection (gcj base package)
gfortran - The GNU Fortran 95 compiler
gfortran-4.1 - The GNU Fortran 95 compiler
gfortran-4.2 - The GNU Fortran 95 compiler
gfortran-4.2-multilib - The GNU Fortran 95 compiler (multilib files)
ggcov - Graphical tool for displaying gcov test coverage data
gnat-4.1 - The GNU Ada compiler
gnat-4.1-base - The GNU Compiler Collection (gnat base package)
gobjc - The GNU Objective-C compiler
gobjc++ - The GNU Objective-C++ compiler
gobjc++-4.1 - The GNU Objective-C++ compiler
gobjc++-4.2 - The GNU Objective-C++ compiler
gobjc++-4.2-multilib - The GNU Objective-C++ compiler (multilib files)
gobjc-2.95 - The GNU Objective-C compiler
gobjc-4.1 - The GNU Objective-C compiler
gobjc-4.2 - The GNU Objective-C compiler
gobjc-4.2-multilib - The GNU Objective-C compiler (multilib files)
gpc - The GNU Pascal compiler
gpc-2.1-3.4 - The GNU Pascal compiler
gpc-2.1-3.4-doc - Documentation for the GNU Pascal compiler (gpc)
gpc-2.95 - The GNU Pascal compiler
gpc-2.95-doc - Documentation for the GNU Pascal compiler (gpc)
cpp-3.3-arm-linux-gnu - The GNU C preprocessor
cpp-3.3-ia64-linux-gnu - The GNU C preprocessor
cpp-3.3-m68k-linux-gnu - The GNU C preprocessor
cpp-3.3-mips-linux-gnu - The GNU C preprocessor
cpp-3.3-mipsel-linux-gnu - The GNU C preprocessor
cpp-3.3-powerpc-linux-gnu - The GNU C preprocessor
cpp-3.3-sparc-linux-gnu - The GNU C preprocessor
cpp-3.4-alpha-linux-gnu - The GNU C preprocessor
cpp-3.4-arm-linux-gnu - The GNU C preprocessor
cpp-3.4-ia64-linux-gnu - The GNU C preprocessor
cpp-3.4-m68k-linux-gnu - The GNU C preprocessor
cpp-3.4-mips-linux-gnu - The GNU C preprocessor
cpp-3.4-mipsel-linux-gnu - The GNU C preprocessor
cpp-3.4-powerpc-linux-gnu - The GNU C preprocessor
cpp-3.4-sparc-linux-gnu - The GNU C preprocessor
cpp-4.0-arm-linux-gnu - The GNU C preprocessor
cpp-4.0-ia64-linux-gnu - The GNU C preprocessor
cpp-4.0-mips-linux-gnu - The GNU C preprocessor
cpp-4.0-mipsel-linux-gnu - The GNU C preprocessor
cpp-4.0-powerpc-linux-gnu - The GNU C preprocessor
cpp-4.0-sparc-linux-gnu - The GNU C preprocessor
cpp-4.1-alpha-linux-gnu - The GNU C preprocessor
cpp-4.1-arm-linux-gnu - The GNU C preprocessor
cpp-4.1-ia64-linux-gnu - The GNU C preprocessor
cpp-4.1-m68k-linux-gnu - The GNU C preprocessor
cpp-4.1-mips-linux-gnu - The GNU C preprocessor
cpp-4.1-mipsel-linux-gnu - The GNU C preprocessor
cpp-4.1-powerpc-linux-gnu - The GNU C preprocessor
cpp-4.1-s390-linux-gnu - The GNU C preprocessor
cpp-4.1-sparc-linux-gnu - The GNU C preprocessor
g++-3.4-alpha-linux-gnu - The GNU C++ compiler
g++-3.4-arm-linux-gnu - The GNU C++ compiler
g++-3.4-ia64-linux-gnu - The GNU C++ compiler
g++-3.4-m68k-linux-gnu - The GNU C++ compiler
g++-3.4-mips-linux-gnu - The GNU C++ compiler
g++-3.4-mipsel-linux-gnu - The GNU C++ compiler
g++-3.4-powerpc-linux-gnu - The GNU C++ compiler
g++-3.4-sparc-linux-gnu - The GNU C++ compiler
gcc-3.3-alpha-linux-gnu - The GNU C compiler
gcc-3.3-arm-linux-gnu - The GNU C compiler
gcc-3.3-ia64-linux-gnu - The GNU C compiler
gcc-3.3-m68k-linux-gnu - The GNU C compiler
gcc-3.3-mips-linux-gnu - The GNU C compiler
gcc-3.3-mipsel-linux-gnu - The GNU C compiler
gcc-3.3-powerpc-linux-gnu - The GNU C compiler
gcc-3.3-sparc-linux-gnu - The GNU C compiler
gcc-3.4-alpha-linux-gnu - The GNU C compiler
gcc-3.4-arm-linux-gnu - The GNU C compiler
gcc-3.4-ia64-linux-gnu - The GNU C compiler
gcc-3.4-m68k-linux-gnu - The GNU C compiler
gcc-3.4-mips-linux-gnu - The GNU C compiler
gcc-3.4-mipsel-linux-gnu - The GNU C compiler
gcc-3.4-powerpc-linux-gnu - The GNU C compiler
gcc-3.4-sparc-linux-gnu - The GNU C compiler
gcc-4.0-arm-linux-gnu - The GNU C compiler
gcc-4.0-arm-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.0-ia64-linux-gnu - The GNU C compiler
gcc-4.0-ia64-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.0-m68k-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.0-mips-linux-gnu - The GNU C compiler
gcc-4.0-mips-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.0-mipsel-linux-gnu - The GNU C compiler
gcc-4.0-mipsel-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.0-powerpc-linux-gnu - The GNU C compiler
gcc-4.0-powerpc-linux-gnu-base - The GNU Compiler Collection (base 
package)
gcc-4.0-sparc-linux-gnu - The GNU C compiler
gcc-4.0-sparc-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-alpha-linux-gnu - The GNU C compiler
gcc-4.1-alpha-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-arm-linux-gnu - The GNU C compiler
gcc-4.1-arm-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-ia64-linux-gnu - The GNU C compiler
gcc-4.1-ia64-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-m68k-linux-gnu - The GNU C compiler
gcc-4.1-m68k-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-mips-linux-gnu - The GNU C compiler
gcc-4.1-mips-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-mipsel-linux-gnu - The GNU C compiler
gcc-4.1-mipsel-linux-gnu-base - The GNU Compiler Collection (base package)
gcc-4.1-powerpc-linux-gnu - The GNU C compiler
gcc-4.1-powerpc-linux-gnu-base - The GNU Compiler Collection (base 
package)
gcc-4.1-s390-linux-gnu - The GNU C compiler
gcc-4.1-sparc-linux-gnu - The GNU C compiler
gcc-4.1-sparc-linux-gnu-base - The GNU Compiler Collection (base package)
lib64gcc1-powerpc-cross - GCC support library (64bit)
lib64gcc1-s390-cross - GCC support library (64bit)
lib64gcc1-sparc-cross - GCC support library (64bit)
libgcc1-alpha-cross - GCC support library
libgcc1-arm-cross - GCC support library
libgcc1-ia64-cross - GCC support library
libgcc1-m68k-cross - GCC support library
libgcc1-mips-cross - GCC support library
libgcc1-mipsel-cross - GCC support library
libgcc1-powerpc-cross - GCC support library
libgcc1-s390-cross - GCC support library
libgcc1-sparc-cross - GCC support library
libgcc2-m68k-cross - GCC support library
libgcc4-hppa-cross - GCC support library (for cross-compiling)
cpp-4.0 - The GNU C preprocessor
libgcj6-common - Java runtime library for use with gcj (jar files)
gcc-4.0 - The GNU C compiler
libgcj6 - Java runtime library for use with gcj
gcc-4.0-base - The GNU Compiler Collection (base package)
gcj-4.0-base - The GNU Compiler Collection (gcj base package)
toolchain-source - The GNU binutils and gcc source code


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:41           ` Martin Bligh
@ 2007-06-06 20:52             ` Christoph Lameter
  2007-06-06 23:19               ` Andrew Morton
  2007-06-06 23:31             ` Nish Aravamudan
  2007-06-07  7:40             ` Andy Whitcroft
  2 siblings, 1 reply; 19+ messages in thread
From: Christoph Lameter @ 2007-06-06 20:52 UTC (permalink / raw)
  To: Martin Bligh; +Cc: Andrew Morton, linux-mm, Pekka Enberg, Andy Whitcroft

On Wed, 6 Jun 2007, Martin Bligh wrote:

> > I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
> > fails to compile gcc-3.3.3?
> 
> IIRC, the SUSE ones were customized anyway, so not sure that'd help you.
> Might do though.

Tried building with gcc-3.3

clameter@schroedinger:~/software/slub$ powerpc-linux-gnu-gcc --version
powerpc-linux-gnu-gcc (GCC) 3.3.6 (Debian 1:3.3.6-15)

but cell_defconfig and pseries_defconfig fail to build straight out.
This is what happens with pseries_defconfig:

  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      arch/powerpc/kernel/asm-offsets.s
In file included from include/asm/mmu.h:7,
                 from include/asm/lppaca.h:32,
                 from include/asm/paca.h:20,
                 from include/asm/hw_irq.h:17,
                 from include/asm/system.h:9,
                 from include/linux/list.h:9,
                 from include/linux/signal.h:8,
                 from arch/powerpc/kernel/asm-offsets.c:16:
include/asm/mmu-hash64.h: In function `hpte_encode_r':
include/asm/mmu-hash64.h:216: warning: integer constant is too large for 
"unsigned long" type
include/asm/mmu-hash64.h: In function `hpt_hash':
include/asm/mmu-hash64.h:231: warning: integer constant is too large for 
"unsigned long" type
include/asm/mmu-hash64.h: In function `vsid_scramble':
include/asm/mmu-hash64.h:387: warning: right shift count >= width of type
include/asm/mmu-hash64.h:387: warning: left shift count >= width of type
include/asm/mmu-hash64.h:388: warning: right shift count >= width of type
include/asm/mmu-hash64.h:388: warning: left shift count >= width of type
include/asm/mmu-hash64.h: In function `get_kernel_vsid':
include/asm/mmu-hash64.h:395: error: `SID_SHIFT' undeclared (first use in 
this function)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:52             ` Christoph Lameter
@ 2007-06-06 23:19               ` Andrew Morton
  2007-06-06 23:50                 ` Christoph Lameter
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Morton @ 2007-06-06 23:19 UTC (permalink / raw)
  To: Christoph Lameter; +Cc: Martin Bligh, linux-mm, Pekka Enberg, Andy Whitcroft

On Wed, 6 Jun 2007 13:52:01 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:

> On Wed, 6 Jun 2007, Martin Bligh wrote:
> 
> > > I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
> > > fails to compile gcc-3.3.3?
> > 
> > IIRC, the SUSE ones were customized anyway, so not sure that'd help you.
> > Might do though.
> 
> Tried building with gcc-3.3
> 
> clameter@schroedinger:~/software/slub$ powerpc-linux-gnu-gcc --version
> powerpc-linux-gnu-gcc (GCC) 3.3.6 (Debian 1:3.3.6-15)
> 
> but cell_defconfig and pseries_defconfig fail to build straight out.
> This is what happens with pseries_defconfig:
> 
>   CHK     include/linux/version.h
>   CHK     include/linux/utsrelease.h
>   CC      arch/powerpc/kernel/asm-offsets.s
> In file included from include/asm/mmu.h:7,
>                  from include/asm/lppaca.h:32,
>                  from include/asm/paca.h:20,
>                  from include/asm/hw_irq.h:17,
>                  from include/asm/system.h:9,
>                  from include/linux/list.h:9,
>                  from include/linux/signal.h:8,
>                  from arch/powerpc/kernel/asm-offsets.c:16:
> include/asm/mmu-hash64.h: In function `hpte_encode_r':
> include/asm/mmu-hash64.h:216: warning: integer constant is too large for 
> "unsigned long" type
> include/asm/mmu-hash64.h: In function `hpt_hash':
> include/asm/mmu-hash64.h:231: warning: integer constant is too large for 
> "unsigned long" type
> include/asm/mmu-hash64.h: In function `vsid_scramble':
> include/asm/mmu-hash64.h:387: warning: right shift count >= width of type
> include/asm/mmu-hash64.h:387: warning: left shift count >= width of type
> include/asm/mmu-hash64.h:388: warning: right shift count >= width of type
> include/asm/mmu-hash64.h:388: warning: left shift count >= width of type
> include/asm/mmu-hash64.h: In function `get_kernel_vsid':
> include/asm/mmu-hash64.h:395: error: `SID_SHIFT' undeclared (first use in 
> this function)

<recovers from three-hour outage, caused by both ends of ethernet cable
plugged into the same switch, two switches away.  Offspring suspected.>

Did you try starting from the test.kernel.org config? 
http://test.kernel.org/abat/93412/build/dotconfig

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:41           ` Martin Bligh
  2007-06-06 20:52             ` Christoph Lameter
@ 2007-06-06 23:31             ` Nish Aravamudan
  2007-06-07  7:40             ` Andy Whitcroft
  2 siblings, 0 replies; 19+ messages in thread
From: Nish Aravamudan @ 2007-06-06 23:31 UTC (permalink / raw)
  To: Martin Bligh
  Cc: Andrew Morton, Christoph Lameter, linux-mm, Pekka Enberg, Andy Whitcroft

On 6/6/07, Martin Bligh <mbligh@mbligh.org> wrote:
> Andrew Morton wrote:
> > On Wed, 6 Jun 2007 13:28:40 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote:
> >
> >> On Wed, 6 Jun 2007, Andrew Morton wrote:
> >>
> >>>> There is also nothing special in CalcNTLMv2_partial_mac_key(). Two
> >>>> kmallocs of 33 bytes and 132 bytes each.
> >>> Yes, the code all looks OK.  I suspect this is another case of the compiler
> >>> failing to remove unreachable stuff.
> >> Sigh.
> >>
> >> The patch was already in 2.6.22-rc3-mm1. Why did the patch pass the
> >> testing during that release cycle?
> >
> > Good question - don't know, sorry.
> >
> > I tried to build gcc-3.3.3 the other day.  Would you believe that gcc-4.1.0
> > fails to compile gcc-3.3.3?
>
> IIRC, the SUSE ones were customized anyway, so not sure that'd help you.
> Might do though.
>
> There should be a sysinfo directory that lists stuff like gcc version,
> maybe it's not getting replicated to TKO though ... Nish or Andy,
> any chance you can take a look at the original copy of one of those
> jobs on the ABAT server?

Looked at this one --  I could have sworn there was a sysinfo
directory at some point too. But I don't see it on the ABAT job. There
is a compiler.ver, and it contains what I pasted before essentially:

Reading specs from /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada
--disable-checking --libdir=/usr/lib --enable-libgcj
--with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib
--with-system-zlib --enable-shared --enable-__cxa_atexit
--host=powerpc-suse-linux --build=powerpc-suse-linux
--target=powerpc-suse-linux --enable-targets=powerpc64-suse-linux
--enable-biarch
Thread model: posix
gcc version 3.3.3 (SuSE Linux)

Thanks,
Nish

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 23:19               ` Andrew Morton
@ 2007-06-06 23:50                 ` Christoph Lameter
  2007-06-07  0:01                   ` Nish Aravamudan
  0 siblings, 1 reply; 19+ messages in thread
From: Christoph Lameter @ 2007-06-06 23:50 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Martin Bligh, linux-mm, Pekka Enberg, Andy Whitcroft

On Wed, 6 Jun 2007, Andrew Morton wrote:

> Did you try starting from the test.kernel.org config? 
> http://test.kernel.org/abat/93412/build/dotconfig

Ok used that one but same result.

There must be something trivial that I do not do right. The compile does 
not get that this is a 64 bit compile. Maybe I cannot do a 64 bit compile 
on a 32 bit system (this is i386)?

clameter@schroedinger:~/software/slub$ cat /usr/local/bin/make_powerpc
make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- $*

clameter@schroedinger:~/software/slub$ make_powerpc all
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      arch/powerpc/kernel/asm-offsets.s
In file included from include/asm/mmu.h:7,
                 from include/asm/lppaca.h:32,
                 from include/asm/paca.h:20,
                 from include/asm/hw_irq.h:17,
                 from include/asm/system.h:9,
                 from include/linux/list.h:9,
                 from include/linux/signal.h:8,
                 from arch/powerpc/kernel/asm-offsets.c:16:
include/asm/mmu-hash64.h: In function `hpte_encode_r':
include/asm/mmu-hash64.h:216: warning: integer constant is too large for 
"unsigned long" type
include/asm/mmu-hash64.h: In function `hpt_hash':
include/asm/mmu-hash64.h:231: warning: integer constant is too large for 
"unsign

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 23:50                 ` Christoph Lameter
@ 2007-06-07  0:01                   ` Nish Aravamudan
  2007-06-07  3:49                     ` Christoph Lameter
  0 siblings, 1 reply; 19+ messages in thread
From: Nish Aravamudan @ 2007-06-07  0:01 UTC (permalink / raw)
  To: Christoph Lameter
  Cc: Andrew Morton, Martin Bligh, linux-mm, Pekka Enberg, Andy Whitcroft

On 6/6/07, Christoph Lameter <clameter@sgi.com> wrote:
> On Wed, 6 Jun 2007, Andrew Morton wrote:
>
> > Did you try starting from the test.kernel.org config?
> > http://test.kernel.org/abat/93412/build/dotconfig
>
> Ok used that one but same result.
>
> There must be something trivial that I do not do right. The compile does
> not get that this is a 64 bit compile. Maybe I cannot do a 64 bit compile
> on a 32 bit system (this is i386)?
>
> clameter@schroedinger:~/software/slub$ cat /usr/local/bin/make_powerpc
> make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- $*

Hrm, what does V=1 say? Perhaps you need to somehow pass in -m64 or
something, if it's a biarch compiler (ppc32 and ppc64)?

Thanks,
Nish

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-07  0:01                   ` Nish Aravamudan
@ 2007-06-07  3:49                     ` Christoph Lameter
  0 siblings, 0 replies; 19+ messages in thread
From: Christoph Lameter @ 2007-06-07  3:49 UTC (permalink / raw)
  To: Nish Aravamudan
  Cc: Andrew Morton, Martin Bligh, linux-mm, Pekka Enberg, Andy Whitcroft

On Wed, 6 Jun 2007, Nish Aravamudan wrote:

> > clameter@schroedinger:~/software/slub$ cat /usr/local/bin/make_powerpc
> > make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- $*
> 
> Hrm, what does V=1 say? Perhaps you need to somehow pass in -m64 or
> something, if it's a biarch compiler (ppc32 and ppc64)?

No idea if that is the case but should the kernel not automagically adjust 
to that?

V=1 does not add additional output.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:41           ` Martin Bligh
  2007-06-06 20:52             ` Christoph Lameter
  2007-06-06 23:31             ` Nish Aravamudan
@ 2007-06-07  7:40             ` Andy Whitcroft
  2 siblings, 0 replies; 19+ messages in thread
From: Andy Whitcroft @ 2007-06-07  7:40 UTC (permalink / raw)
  To: Martin Bligh; +Cc: Andrew Morton, Christoph Lameter, linux-mm, Pekka Enberg

Martin Bligh wrote:
> Andrew Morton wrote:
>> On Wed, 6 Jun 2007 13:28:40 -0700 (PDT) Christoph Lameter
>> <clameter@sgi.com> wrote:
>>
>>> On Wed, 6 Jun 2007, Andrew Morton wrote:
>>>
>>>>> There is also nothing special in CalcNTLMv2_partial_mac_key(). Two
>>>>> kmallocs of 33 bytes and 132 bytes each.
>>>> Yes, the code all looks OK.  I suspect this is another case of the
>>>> compiler
>>>> failing to remove unreachable stuff.
>>> Sigh.
>>>
>>> The patch was already in 2.6.22-rc3-mm1. Why did the patch pass the
>>> testing during that release cycle?
>>
>> Good question - don't know, sorry.
>>
>> I tried to build gcc-3.3.3 the other day.  Would you believe that
>> gcc-4.1.0
>> fails to compile gcc-3.3.3?
> 
> IIRC, the SUSE ones were customized anyway, so not sure that'd help you.
> Might do though.
> 
> There should be a sysinfo directory that lists stuff like gcc version,
> maybe it's not getting replicated to TKO though ... Nish or Andy,
> any chance you can take a look at the original copy of one of those
> jobs on the ABAT server?
> 
> I just fixed autotest, but I can't fix the old IBM code from here ;-)
> Anything else that'd be particularly handy to dump all the time?
> You can see what we're currently doing in the context of the diff
> below.
> 
> Index: sysinfo.py
> ===================================================================
> --- sysinfo.py  (revision 527)
> +++ sysinfo.py  (working copy)
> @@ -8,7 +8,7 @@
>  files = ['/proc/pci', '/proc/meminfo', '/proc/slabinfo', '/proc/version',
>         '/proc/cpuinfo', '/proc/cmdline']
>  # commands = ['lshw']        # this causes problems triggering CDROM
> drives
> -commands = ['uname -a', 'lspci -vvn']
> +commands = ['uname -a', 'lspci -vvn', 'gcc --version']
>  path = ['/usr/bin', '/bin']


Yep this is something we keep in the job, but apparently something we
don't push out to you.

Reading specs from /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada
--disable-checking --libdir=/usr/lib --enable-libgcj
--with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib
--with-system-zlib --enable-shared --enable-__cxa_atexit
--host=powerpc-suse-linux --build=powerpc-suse-linux
--target=powerpc-suse-linux --enable-targets=powerpc64-suse-linux
--enable-biarch
Thread model: posix
gcc version 3.3.3 (SuSE Linux)

-apw

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-06 20:29       ` Nish Aravamudan
@ 2007-06-07  7:48         ` Andy Whitcroft
  2007-06-07  7:58           ` Andy Whitcroft
  0 siblings, 1 reply; 19+ messages in thread
From: Andy Whitcroft @ 2007-06-07  7:48 UTC (permalink / raw)
  To: Nish Aravamudan
  Cc: Andrew Morton, Christoph Lameter, linux-mm, Pekka Enberg, Martin Bligh

Nish Aravamudan wrote:
> On 6/6/07, Andrew Morton <akpm@linux-foundation.org> wrote:
>> On Wed, 6 Jun 2007 11:36:07 -0700 (PDT) Christoph Lameter
>> <clameter@sgi.com> wrote:
>>
>> > On Wed, 6 Jun 2007, Andrew Morton wrote:
>> >
>> > > This caused test.kernel.org's power4 build to blow up:
>> > >
>> > > http://test.kernel.org/abat/93315/debug/test.log.0
>> > >
>> > > fs/built-in.o(.text+0x148420): In function
>> `.CalcNTLMv2_partial_mac_key':
>> > > : undefined reference to `.____ilog2_NaN'
>> >
>> > Hmmm... Weird message that does not allow too much analysis.
>> > The __ilog2_NaN comes about if 0 or a negative number is passed to
>> ilog.
>> > There is no way for that to happen since we check for KMALLOC_MIN_SIZE
>> > and KMALLOC_MAX_SIZE in kmalloc_index() and an unsigned value is used.
>> >
>> > There is also nothing special in CalcNTLMv2_partial_mac_key(). Two
>> > kmallocs of 33 bytes and 132 bytes each.
>>
>> Yes, the code all looks OK.  I suspect this is another case of the
>> compiler
>> failing to remove unreachable stuff.
>>
>> > Buggy compiler (too much stress on constant folding)? Or hardware?
>> Can we
>> > rerun the test?
>>
>> It happened multiple times:
>> http://test.kernel.org/functional/pSeries-101_2.html
>>
>> I'm sure there's a way of extracting the compiler version out of
>> test.kernel.org but I can't see it there.  Andy, maybe we should toss
>> a gcc
>> --version in there or something?
> 
> I went and looked at one of the GOOD jobs and acc'g to that, the gcc is
> 
> gcc version 3.3.3 (SuSE Linux)
> 
> (http://test.kernel.org/abat/93029/summary)
> 
> I agree, seems like it would be handy to spit that out somewhere nicer
> and easier to get to. Maybe the machine links at the top should point
> to a summary page which has a link to the .config, machine info, etc?
> (more indirection, but may be ok).

They probably should be replicated with the job as the machine may
change compiler at some time in its life.  If for no other reason that
there should be a break in the kernbench graph if it does ... :)

-apw

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: SLUB: Use ilog2 instead of series of constant comparisons.
  2007-06-07  7:48         ` Andy Whitcroft
@ 2007-06-07  7:58           ` Andy Whitcroft
  0 siblings, 0 replies; 19+ messages in thread
From: Andy Whitcroft @ 2007-06-07  7:58 UTC (permalink / raw)
  To: Andy Whitcroft
  Cc: Nish Aravamudan, Andrew Morton, Christoph Lameter, linux-mm,
	Pekka Enberg, Martin Bligh

Andy Whitcroft wrote:
> Nish Aravamudan wrote:
>> On 6/6/07, Andrew Morton <akpm@linux-foundation.org> wrote:
>>> On Wed, 6 Jun 2007 11:36:07 -0700 (PDT) Christoph Lameter
>>> <clameter@sgi.com> wrote:
>>>
>>>> On Wed, 6 Jun 2007, Andrew Morton wrote:
>>>>
>>>>> This caused test.kernel.org's power4 build to blow up:
>>>>>
>>>>> http://test.kernel.org/abat/93315/debug/test.log.0
>>>>>
>>>>> fs/built-in.o(.text+0x148420): In function
>>> `.CalcNTLMv2_partial_mac_key':
>>>>> : undefined reference to `.____ilog2_NaN'
>>>> Hmmm... Weird message that does not allow too much analysis.
>>>> The __ilog2_NaN comes about if 0 or a negative number is passed to
>>> ilog.
>>>> There is no way for that to happen since we check for KMALLOC_MIN_SIZE
>>>> and KMALLOC_MAX_SIZE in kmalloc_index() and an unsigned value is used.
>>>>
>>>> There is also nothing special in CalcNTLMv2_partial_mac_key(). Two
>>>> kmallocs of 33 bytes and 132 bytes each.
>>> Yes, the code all looks OK.  I suspect this is another case of the
>>> compiler
>>> failing to remove unreachable stuff.
>>>
>>>> Buggy compiler (too much stress on constant folding)? Or hardware?
>>> Can we
>>>> rerun the test?
>>> It happened multiple times:
>>> http://test.kernel.org/functional/pSeries-101_2.html
>>>
>>> I'm sure there's a way of extracting the compiler version out of
>>> test.kernel.org but I can't see it there.  Andy, maybe we should toss
>>> a gcc
>>> --version in there or something?
>> I went and looked at one of the GOOD jobs and acc'g to that, the gcc is
>>
>> gcc version 3.3.3 (SuSE Linux)
>>
>> (http://test.kernel.org/abat/93029/summary)
>>
>> I agree, seems like it would be handy to spit that out somewhere nicer
>> and easier to get to. Maybe the machine links at the top should point
>> to a summary page which has a link to the .config, machine info, etc?
>> (more indirection, but may be ok).
> 
> They probably should be replicated with the job as the machine may
> change compiler at some time in its life.  If for no other reason that
> there should be a break in the kernbench graph if it does ... :)

Ok, the compiler.ver file should be replicated out with new jobs now and
can be found with the dotconfig file in the build directory.

-apw

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2007-06-07  7:58 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-21 19:51 SLUB: Use ilog2 instead of series of constant comparisons Christoph Lameter
2007-05-22  8:45 ` Pekka Enberg
2007-06-06 17:08 ` Andrew Morton
2007-06-06 18:36   ` Christoph Lameter
2007-06-06 20:11     ` Andrew Morton
2007-06-06 20:28       ` Christoph Lameter
2007-06-06 20:34         ` Andrew Morton
2007-06-06 20:41           ` Martin Bligh
2007-06-06 20:52             ` Christoph Lameter
2007-06-06 23:19               ` Andrew Morton
2007-06-06 23:50                 ` Christoph Lameter
2007-06-07  0:01                   ` Nish Aravamudan
2007-06-07  3:49                     ` Christoph Lameter
2007-06-06 23:31             ` Nish Aravamudan
2007-06-07  7:40             ` Andy Whitcroft
2007-06-06 20:43           ` Christoph Lameter
2007-06-06 20:29       ` Nish Aravamudan
2007-06-07  7:48         ` Andy Whitcroft
2007-06-07  7:58           ` Andy Whitcroft

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox