linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.5.69-mm3
@ 2003-05-08  8:39 Andrew Morton
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Andrew Morton @ 2003-05-08  8:39 UTC (permalink / raw)
  To: linux-kernel, linux-mm


http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz

  Will appear sometime at

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/


Small things.  Mainly a resync for various people...




Changes since 2.5.69-mm2:


 linus.patch

 Latest from Linus

-generic-subarch.patch
-altinstruction-linkage-fix.patch
-cpia-section-fix.patch
-opl3sa2-compile-fix.patch
-alloc_skb-remove-debug-check.patch
-misc.patch
-mwave-build-fix.patch
-drm-timer-init-fix.patch
-slab-init-fixes.patch
-sysrq-fs-cleanups.patch
-UPDATE_ATIME-update_atime.patch
-irqreturn-pcmcia_cs.patch
-printscreen-fix.patch
-disk_name-no-devfs.patch
-devfs-01-api-change.patch
-remove-partition_name.patch
-switch-to-devfs_mk_bdev.patch
-386-access_ok-race-fix.patch
-swapfile-hold-i_sem.patch
-dont-set-kernel-pgd-on-PAE.patch
-nobody-listens-to-wli.patch
-shrink_slab-accounting.patch
-slab-debugging-improvement.patch
-fget-speedup.patch
-fget_light-fix.patch
-i8042-share-irqs.patch
-select-speedup.patch
-security_d_instantiate-movement.patch
-ext3-security-xattr.patch
-ext2-security-xattr.patch
-lsm-setxattr-changes.patch
-sunrpc-gcc-bug-workaround.patch

 Merged

+ppc64-xics-irq-fix.patch

 ppc64 IRQ return fix

+hrtimers-fix-signone.patch

 High-res timers fix

+netfilter-skbuff-fix.patch

 Might fix a netfilter oops

+ext3-quota-reservation-fix.patch

 Fix possible BUG with ext3+quotas

+quota-reference-drop-fix.patch

 Quota fix

+visws-logo-fix.patch

 visws fbcon logo fix

-dcache_lock-vs-tasklist_lock-take-2.patch

 Dropped for now - Manfred is redoing it.

+vmalloc-race-fix.patch

 Fix nasty race in vmalloc/vfree.  Seems to only happen on preempt.  This
 will fix the select()-related oops whch Felix von Leitner reported.  Kudos
 to Mister Irwin.

+as-small-hashes.patch

 Reduce anticipatory scheduler memory footprint

+tty-64-bit-dev_t-warning-fix.patch

 Warning fix

+security-process-attribute-api.patch

 Security API work

+thread-info-in-task_struct.patch

 Infrastructure for supporting ia64 oddness

-T25-cciss-C69.patch
-T26-cpqarray-C69.patch
-T27-kobject-C69.patch
-T28-tty-C69.patch
-T29-kobj_map-C69.patch
-T30-cdev-C69.patch
-T31-i_cdev-C69.patch

 The tty changes broke these.




All 104 patches:


linus.patch

mm.patch
  add -mmN to EXTRAVERSION

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)

ipmi-warning-fixes.patch

irqreturn-uml.patch
  UML updates for the new IRQ API

irqreturn-aic79xx.patch
  Fix aic79xx for new IRQ API

irqreturn-drivers-net.patch

slab-magazine-layer.patch
  magazine layer for slab

config_spinline.patch
  uninline spinlocks for profiling accuracy.

ppc64-ioctl-pci-update.patch
  From: Anton Blanchard <anton@samba.org>
  Subject: ppc64 stuff

ppc64-reloc_hide.patch

ppc64-aio-32bit-emulation.patch
  32/64bit emulation for aio

ppc64-scruffiness.patch
  Fix some PPC64 compile warnings

ppc64-xics-irq-fix.patch
  PPC64 irq return fix

sym-do-160.patch
  make the SYM driver do 160 MB/sec

hrtimers-fix-signone.patch
  hrtimers: fix timer_create(2) && SIGEV_NONE

netfilter-skbuff-fix.patch
  netfilter skbuff BUGfix

irqreturn-snd-via-fix.patch
  via sound irqreturn fix

irq_cpustat-cleanup.patch
  irq_cpustat cleanup

config-PAGE_OFFSET.patch
  Configurable kenrel/user memory split

fat-speedup.patch
  fat cluster search speedup

irq-check-rate-limit.patch
  IRQs: handle bad return values from handlers

irq_desc-others.patch
  Fix up irq_desc initialisation for non-ia32

ext3-quota-reservation-fix.patch
  Quota write transaction size fix

quota-reference-drop-fix.patch
  dquot_transfer() fix

buffer-debug.patch
  buffer.c debugging

ext3-truncate-ordered-pages.patch
  ext3: explicitly free truncated pages

3c59x-irq-fix.patch

VM_RESERVED-check.patch
  VM_RESERVED check

exit_mmap-TASK_SIZE.patch
  exit_mmap() TASK_SIZE fix

semop-race-fix-2.patch
  semop race fix #2

nfs-writeback-tweak.patch
  Tweak to NFS memory management for writes...

reiserfs_file_write-5.patch

visws-logo-fix.patch
  visws: fix penguin with sgi logo

clustered-io_apic-fix.patch
  Subject: [RFC][PATCH] fix for clusterd io_apics

rcu-stats.patch
  RCU statistics reporting

ext3-journalled-data-assertion-fix.patch
  Remove incorrect assertion from ext3

ide_setting_sem-fix.patch

reslabify-pgds-and-pmds.patch
  re-slabify i386 pgd's and pmd's

nfs-speedup.patch

nfs-oom-fix.patch
  nfs oom fix

sk-allocation.patch
  Subject: Re: nfs oom

nfs-more-oom-fix.patch

rpciod-atomic-allocations.patch
  Make rcpiod use atomic allocations

linux-isp.patch

isp-update-1.patch

clone-retval-fix.patch
  copy_process return value fix

de_thread-fix.patch
  de_thread memory corruption fix

list_del-debug.patch
  list_del debug check

airo-schedule-fix.patch
  airo.c: don't sleep in atomic regions

synaptics-mouse-support.patch
  Add Synaptics touchpad tweaking to psmouse driver

vmalloc-race-fix.patch
  vmalloc race fix

rq-dyn-works.patch
  rq-dyn, dynamic request allocation

kblockd.patch
  Create `kblockd' workqueue

cfq-infrastructure.patch

elevator-completion-api.patch
  elevator completion API

as-iosched.patch
  anticipatory I/O scheduler

as-use-completion.patch
  AS use completion notifier

as-remove-debug-checks.patch
  AS: remove debug checks

as-iosched-dyn.patch
  AS: update to dynamic request allocation API

as-monitor-seek-distance.patch
  AS: monitor seek distance

as-div64-fix.patch
  as: don't do 64-bit divides

as-small-hashes.patch
  AS: smaller hashes

unplug-use-kblockd.patch
  Use kblockd for running request queues

cfq-2.patch
  CFQ scheduler, #2

cfq-iosched-dyn.patch
  CFQ: update to rq-dyn API

unmap-page-debugging.patch
  unmap unused pages for debugging

fremap-all-mappings.patch
  Make all executable mappings be nonlinear

sched-2.5.68-B2.patch
  HT scheduler, sched-2.5.68-B2

sched-numa-warning-fix.patch
  scheduler warning fix for NUMA

sched_idle-typo-fix.patch
  fix sched_idle typo

kgdb-ga-idle-fix.patch

acpi-irq-ret-fix.patch
  acpi irq return value fix

sound-irq-hack.patch

oprofile-build-fix.patch
  Fix arch/i386/oprofile/init.c build error

sched-2.5.64-D3.patch
  sched-2.5.64-D3, more interactivity changes

sched_best_cpu-fix.patch
  sched_best_cpu does not pick best cpu

sched_best_cpu-fix-2.patch
  sched_best_cpu does not pick best cpu (2/2)

generic_hweight64-fix.patch

show_task-free-stack-fix.patch
  show_task() fix and cleanup

htree-nfs-fix.patch
  Fix ext3 htree / NFS compatibility problems

htree-nfs-fix-2.patch
  htree nfs fix

htree-leak-fix.patch
  ext3: htree memory leak fix

put_task_struct-debug.patch

ia32-mknod64.patch
  mknod64 for ia32

ext2-64-bit-special-inodes.patch
  ext2: support for 64-bit device nodes

ext3-64-bit-special-inodes.patch
  ext3: support for 64-bit device nodes

64-bit-dev_t-kdev_t.patch
  64-bit dev_t and kdev_t

tty-64-bit-dev_t-warning-fix.patch
  tty layer 64-bit dev_t printk warning fix

oops-dump-preceding-code.patch
  i386 oops output: dump preceding code

lockmeter.patch

security-process-attribute-api.patch
  Process Attribute API for Security Modules

thread-info-in-task_struct.patch
  allow thread_info to be allocated as part of task_struct

ext3-no-bkl.patch

journal_dirty_metadata-speedup.patch

journal_get_write_access-speedup.patch

ext3-concurrent-block-inode-allocation.patch
  Subject: [PATCH] concurrent block/inode allocation for EXT3

ext3-orlov-approx-counter-fix.patch
  Fix orlov allocator boundary case

ext3-concurrent-block-allocation-fix-1.patch

ext3-concurrent-block-allocation-hashed.patch
  Subject: Re: [PATCH] concurrent block/inode allocation for EXT3

pcmcia-deadlock-fix-2.patch
  Fix PCMCIA deadlock (rev. 2)

pcmcia-fix.patch

kexec.patch
  kexec

fbdev-updates.patch
  Fbdev update patch




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

* Re: 2.5.69-mm3
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
@ 2003-05-09 14:10 ` Dipankar Sarma
  2003-05-09 19:49   ` 2.5.69-mm3 Martin J. Bligh
                     ` (2 more replies)
  2003-05-09 14:53 ` 2.5.69-mm3 William Lee Irwin III
                   ` (4 subsequent siblings)
  5 siblings, 3 replies; 12+ messages in thread
From: Dipankar Sarma @ 2003-05-09 14:10 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Thu, May 08, 2003 at 08:41:12AM +0000, Andrew Morton wrote:
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz
> 
>   Will appear sometime at
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/
> 
> 
> Small things.  Mainly a resync for various people...
> 
> rcu-stats.patch
>   RCU statistics reporting

I am wondering what we should do with this patch. The RCU stats display
the #s of RCU requests and actual updates on each CPU. On a normal system
they don't mean much to a sysadmin, so I am not sure if it is the right
thing to include this feature. OTOH, it is extremely useful to detect
potential memory leaks happening due to, say a CPU looping in
kernel (and RCU not happening consequently). Will a CONFIG_RCU_DEBUG
make it more palatable for mainline ?

Thanks
Dipankar

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

* Re: 2.5.69-mm3
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
@ 2003-05-09 14:53 ` William Lee Irwin III
  2003-05-09 15:37 ` 2.5.69-mm3 William Lee Irwin III
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 14:53 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Thu, May 08, 2003 at 01:39:58AM -0700, Andrew Morton wrote:
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz
>   Will appear sometime at
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/

This comment looks stale; AIUI the behavior coded is what's desired.
This came up in a discussion with some implementors of a language
runtime about the cause of failures to open large files.

-- wli

diff -prauN linux-2.5.69-1/fs/open.c open-2.5.69-1/fs/open.c
--- linux-2.5.69-1/fs/open.c	Wed Apr  9 06:42:36 2003
+++ open-2.5.69-1/fs/open.c	Fri May  9 07:19:25 2003
@@ -902,7 +902,7 @@
 
 /*
  * Called when an inode is about to be open.
- * We use this to disallow opening RW large files on 32bit systems if
+ * We use this to disallow opening large files on 32bit systems if
  * the caller didn't specify O_LARGEFILE.  On 64bit systems we force
  * on this flag in sys_open.
  */

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

* Re: 2.5.69-mm3
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
  2003-05-09 14:53 ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-09 15:37 ` William Lee Irwin III
  2003-05-09 17:55 ` 2.5.69-mm3 William Lee Irwin III
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 15:37 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Thu, May 08, 2003 at 01:39:58AM -0700, Andrew Morton wrote:
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz
>   Will appear sometime at
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/

I was just looking over this and noticed 2.4.x makes u64 dma_addr_t
conditional on CONFIG_HIGHMEM64G where 2.5.x uses CONFIG_HIGHMEM. It's
clearly not necessary on CONFIG_HIGHMEM4G, hence this obvious (but
untested) patch:

-- wli


diff -prauN linux-2.5.69-1/include/asm-i386/types.h types-2.5.69-1/include/asm-i386/types.h
--- linux-2.5.69-1/include/asm-i386/types.h	Mon Dec 30 20:14:21 2002
+++ types-2.5.69-1/include/asm-i386/types.h	Fri May  9 08:29:57 2003
@@ -51,7 +51,7 @@
 
 /* DMA addresses come in generic and 64-bit flavours.  */
 
-#ifdef CONFIG_HIGHMEM
+#ifdef CONFIG_HIGHMEM64G
 typedef u64 dma_addr_t;
 #else
 typedef u32 dma_addr_t;

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

* Re: 2.5.69-mm3
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
                   ` (2 preceding siblings ...)
  2003-05-09 15:37 ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-09 17:55 ` William Lee Irwin III
  2003-05-09 18:12 ` 2.5.69-mm3 William Lee Irwin III
  2003-05-13 18:21 ` 2.5.69-mm3 bug Szonyi Calin
  5 siblings, 0 replies; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 17:55 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Thu, May 08, 2003 at 01:39:58AM -0700, Andrew Morton wrote:
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz
>   Will appear sometime at
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/

Microscopic hugetlb cleanup: some variables static to hugetlbpage.c are
later declared as extern within a function in the same file. This patch
removes their declaration.


-- wli

diff -urpN mm3-2.5.69-1/arch/i386/mm/hugetlbpage.c mm3-2.5.69-2/arch/i386/mm/hugetlbpage.c
--- mm3-2.5.69-1/arch/i386/mm/hugetlbpage.c	2003-05-04 16:53:41.000000000 -0700
+++ mm3-2.5.69-2/arch/i386/mm/hugetlbpage.c	2003-05-09 10:27:57.000000000 -0700
@@ -20,8 +20,6 @@
 #include <asm/tlb.h>
 #include <asm/tlbflush.h>
 
-#include <linux/sysctl.h>
-
 static long    htlbpagemem;
 int     htlbpage_max;
 static long    htlbzone_pages;
@@ -398,8 +396,6 @@ int set_hugetlb_mem_size(int count)
 {
 	int lcount;
 	struct page *page;
-	extern long htlbzone_pages;
-	extern struct list_head htlbpage_freelist;
 
 	if (count < 0)
 		lcount = count;

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

* Re: 2.5.69-mm3
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
                   ` (3 preceding siblings ...)
  2003-05-09 17:55 ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-09 18:12 ` William Lee Irwin III
  2003-05-09 18:15   ` 2.5.69-mm3 William Lee Irwin III
  2003-05-13 18:21 ` 2.5.69-mm3 bug Szonyi Calin
  5 siblings, 1 reply; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 18:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Thu, May 08, 2003 at 01:39:58AM -0700, Andrew Morton wrote:
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.69-mm3.gz
>   Will appear sometime at
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.69/2.5.69-mm3/

topology.h has a syntactic hygiene issue where it has a for () loop with
an if () in the body defined as a macro:

#define foo(...) for (...) if (...)

This patch prepares some of the bitop definitions used for the loop
mechanics to be usable in headers where BITS_PER_LONG is not guaranteed
to be defined for some reason. It removes the #ifdef on BITS_PER_LONG
in favor of if (sizeof(...) == ...) tests so hweight_long() will be
defined even when BITS_PER_LONG is not. unsigned long is also used for
some variables and/or return types that changed size with BITS_PER_LONG.
The 32-bit generic_hweight64() also changed its argument from a pointer
to a u64, which actually makes for a consistent interface in both cases.

The follow-up will make use of this to clean up the hygiene issue above
and correct a compilation error in topology.h


-- wli


diff -urpN mm3-2.5.69-1/include/linux/bitops.h mm3-2.5.69-2/include/linux/bitops.h
--- mm3-2.5.69-1/include/linux/bitops.h	2003-05-09 09:22:16.000000000 -0700
+++ mm3-2.5.69-2/include/linux/bitops.h	2003-05-09 10:27:57.000000000 -0700
@@ -1,5 +1,6 @@
 #ifndef _LINUX_BITOPS_H
 #define _LINUX_BITOPS_H
+#include <asm/types.h>
 #include <asm/bitops.h>
 
 /*
@@ -107,11 +108,14 @@ static inline unsigned int generic_hweig
         return (res & 0x0F) + ((res >> 4) & 0x0F);
 }
 
-#if (BITS_PER_LONG == 64)
-
-static inline u64 generic_hweight64(u64 w)
+static inline unsigned long generic_hweight64(u64 w)
 {
-        u64 res = (w & 0x5555555555555555) + ((w >> 1) & 0x5555555555555555);
+	u64 res;
+	if (sizeof(unsigned long) == 4)
+		return generic_hweight32((unsigned long)(w >> 32)) +
+					generic_hweight32((unsigned long)w);
+
+	res = (w & 0x5555555555555555) + ((w >> 1) & 0x5555555555555555);
         res = (res & 0x3333333333333333) + ((res >> 2) & 0x3333333333333333);
         res = (res & 0x0F0F0F0F0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F0F0F0F0F);
         res = (res & 0x00FF00FF00FF00FF) + ((res >> 8) & 0x00FF00FF00FF00FF);
@@ -119,22 +123,9 @@ static inline u64 generic_hweight64(u64 
         return (res & 0x00000000FFFFFFFF) + ((res >> 32) & 0x00000000FFFFFFFF);
 }
 
-#define hweight_long(w)	generic_hweight64(w)
-
-#endif /* BITS_PER_LONG == 64 */
-
-#if (BITS_PER_LONG == 32)
-
-static inline unsigned int generic_hweight64(unsigned int *w)
+static inline unsigned long hweight_long(unsigned long x)
 {
-	return generic_hweight32(w[0]) + generic_hweight32(w[1]);
+	return sizeof(x) == 4 ? generic_hweight32(x) : generic_hweight64(x);
 }
 
-#define hweight_long(w)	generic_hweight32(w)
-
-#endif /* BITS_PER_LONG == 32 */
-
-#include <asm/bitops.h>
-
-
 #endif

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

* Re: 2.5.69-mm3
  2003-05-09 18:12 ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-09 18:15   ` William Lee Irwin III
  2003-05-09 18:54     ` 2.5.69-mm3 William Lee Irwin III
  0 siblings, 1 reply; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 18:15 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, linux-mm

On Fri, May 09, 2003 at 11:12:57AM -0700, William Lee Irwin III wrote:
> topology.h has a syntactic hygiene issue where it has a for () loop with
> an if () in the body defined as a macro:
> #define foo(...) for (...) if (...)
> This patch prepares some of the bitop definitions used for the loop
> mechanics to be usable in headers where BITS_PER_LONG is not guaranteed
> to be defined for some reason. It removes the #ifdef on BITS_PER_LONG
> in favor of if (sizeof(...) == ...) tests so hweight_long() will be
> defined even when BITS_PER_LONG is not. unsigned long is also used for
> some variables and/or return types that changed size with BITS_PER_LONG.
> The 32-bit generic_hweight64() also changed its argument from a pointer
> to a u64, which actually makes for a consistent interface in both cases.
> The follow-up will make use of this to clean up the hygiene issue above
> and correct a compilation error in topology.h


diff -urpN mm3-2.5.69-1/include/linux/topology.h mm3-2.5.69-2/include/linux/topology.h
--- mm3-2.5.69-1/include/linux/topology.h	2003-05-09 09:22:16.000000000 -0700
+++ mm3-2.5.69-2/include/linux/topology.h	2003-05-09 10:29:08.000000000 -0700
@@ -32,8 +32,15 @@
 
 #define nr_cpus_node(node)	(hweight_long(node_to_cpumask(node)))
 
+static inline int __next_node_with_cpus(int node)
+{
+	do
+		++node;
+	while (!nr_cpus_node(node) && node < numnodes);
+	return node;
+}
+
 #define for_each_node_with_cpus(node) \
-	for (node = 0; node < numnodes; node++) \
-		if (nr_cpus_node(node)
+	for (node = 0; node < numnodes; node = __next_node_with_cpus(node))
 
 #endif /* _LINUX_TOPOLOGY_H */

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

* Re: 2.5.69-mm3
  2003-05-09 18:15   ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-09 18:54     ` William Lee Irwin III
  0 siblings, 0 replies; 12+ messages in thread
From: William Lee Irwin III @ 2003-05-09 18:54 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel, linux-mm

On Fri, May 09, 2003 at 11:15:35AM -0700, William Lee Irwin III wrote:
+static inline int __next_node_with_cpus(int node)
+{
+	do
+		++node;
+	while (!nr_cpus_node(node) && node < numnodes);
+	return node;
+}

GRRR, neither seems to hurt my booting it or cause warnings but there
are two mistakes:

(1) not checking node < numnodes before !nr_cpus_node()
(2) casting the arg of generic_hweight32() to unsigned long is wrong

Fixed patch(es) below.


-- wli


diff -urpN mm3-2.5.69-1/include/linux/bitops.h mm3-2.5.69-2/include/linux/bitops.h
--- mm3-2.5.69-1/include/linux/bitops.h	2003-05-09 09:22:16.000000000 -0700
+++ mm3-2.5.69-2/include/linux/bitops.h	2003-05-09 11:30:09.000000000 -0700
@@ -1,5 +1,6 @@
 #ifndef _LINUX_BITOPS_H
 #define _LINUX_BITOPS_H
+#include <asm/types.h>
 #include <asm/bitops.h>
 
 /*
@@ -107,11 +108,14 @@ static inline unsigned int generic_hweig
         return (res & 0x0F) + ((res >> 4) & 0x0F);
 }
 
-#if (BITS_PER_LONG == 64)
-
-static inline u64 generic_hweight64(u64 w)
+static inline unsigned long generic_hweight64(u64 w)
 {
-        u64 res = (w & 0x5555555555555555) + ((w >> 1) & 0x5555555555555555);
+	u64 res;
+	if (sizeof(unsigned long) == 4)
+		return generic_hweight32((unsigned int)(w >> 32)) +
+					generic_hweight32((unsigned int)w);
+
+	res = (w & 0x5555555555555555) + ((w >> 1) & 0x5555555555555555);
         res = (res & 0x3333333333333333) + ((res >> 2) & 0x3333333333333333);
         res = (res & 0x0F0F0F0F0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F0F0F0F0F);
         res = (res & 0x00FF00FF00FF00FF) + ((res >> 8) & 0x00FF00FF00FF00FF);
@@ -119,22 +123,9 @@ static inline u64 generic_hweight64(u64 
         return (res & 0x00000000FFFFFFFF) + ((res >> 32) & 0x00000000FFFFFFFF);
 }
 
-#define hweight_long(w)	generic_hweight64(w)
-
-#endif /* BITS_PER_LONG == 64 */
-
-#if (BITS_PER_LONG == 32)
-
-static inline unsigned int generic_hweight64(unsigned int *w)
+static inline unsigned long hweight_long(unsigned long x)
 {
-	return generic_hweight32(w[0]) + generic_hweight32(w[1]);
+	return sizeof(x) == 4 ? generic_hweight32(x) : generic_hweight64(x);
 }
 
-#define hweight_long(w)	generic_hweight32(w)
-
-#endif /* BITS_PER_LONG == 32 */
-
-#include <asm/bitops.h>
-
-
 #endif
diff -urpN mm3-2.5.69-1/include/linux/topology.h mm3-2.5.69-2/include/linux/topology.h
--- mm3-2.5.69-1/include/linux/topology.h	2003-05-09 09:22:16.000000000 -0700
+++ mm3-2.5.69-2/include/linux/topology.h	2003-05-09 11:29:52.000000000 -0700
@@ -32,8 +32,15 @@
 
 #define nr_cpus_node(node)	(hweight_long(node_to_cpumask(node)))
 
+static inline int __next_node_with_cpus(int node)
+{
+	do
+		++node;
+	while (node < numnodes && !nr_cpus_node(node));
+	return node;
+}
+
 #define for_each_node_with_cpus(node) \
-	for (node = 0; node < numnodes; node++) \
-		if (nr_cpus_node(node)
+	for (node = 0; node < numnodes; node = __next_node_with_cpus(node))
 
 #endif /* _LINUX_TOPOLOGY_H */

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

* Re: 2.5.69-mm3
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
@ 2003-05-09 19:49   ` Martin J. Bligh
  2003-05-09 21:18   ` 2.5.69-mm3 Andrew Morton
  2003-05-13 20:13   ` 2.5.69-mm3 Bill Davidsen
  2 siblings, 0 replies; 12+ messages in thread
From: Martin J. Bligh @ 2003-05-09 19:49 UTC (permalink / raw)
  To: dipankar, Andrew Morton; +Cc: linux-kernel, linux-mm

> I am wondering what we should do with this patch. The RCU stats display
> the #s of RCU requests and actual updates on each CPU. On a normal system
> they don't mean much to a sysadmin, so I am not sure if it is the right
> thing to include this feature. OTOH, it is extremely useful to detect
> potential memory leaks happening due to, say a CPU looping in
> kernel (and RCU not happening consequently). Will a CONFIG_RCU_DEBUG
> make it more palatable for mainline ?

I'd find that useful - if it has a measurable overhead. If not, just leave
it on all the time ;-)

M.


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

* Re: 2.5.69-mm3
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
  2003-05-09 19:49   ` 2.5.69-mm3 Martin J. Bligh
@ 2003-05-09 21:18   ` Andrew Morton
  2003-05-13 20:13   ` 2.5.69-mm3 Bill Davidsen
  2 siblings, 0 replies; 12+ messages in thread
From: Andrew Morton @ 2003-05-09 21:18 UTC (permalink / raw)
  To: dipankar; +Cc: linux-kernel, linux-mm

Dipankar Sarma <dipankar@in.ibm.com> wrote:
>
> > rcu-stats.patch
> >   RCU statistics reporting
> 
> I am wondering what we should do with this patch.

How about we just keep it floating about in the experimental kernels?
Can't say that I use it for anything, really.


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

* 2.5.69-mm3 bug
  2003-05-08  8:39 2.5.69-mm3 Andrew Morton
                   ` (4 preceding siblings ...)
  2003-05-09 18:12 ` 2.5.69-mm3 William Lee Irwin III
@ 2003-05-13 18:21 ` Szonyi Calin
  5 siblings, 0 replies; 12+ messages in thread
From: Szonyi Calin @ 2003-05-13 18:21 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 650 bytes --]

Hello

With 2.5.69-mm3
<0> Kernel panic: Fatal exception in interrupt.In interrupt handler - not
syncing.

I couldn't put the hole message because it's bigger than the screen size.

This happens when running killall5 in the shutdown (rc.6) script

I'll try to boot with console lp0 and see if I can get it on printer

Config and programs version attached. Kernel compiled with gcc-3.2.3
but happens even when compiled with gcc-2.95.3



-- 
# fortune
fortune: write error on /dev/null --- please empty the bit bucket


-----------------------------------------
This email was sent using SquirrelMail.
   "Webmail for nuts!"
http://squirrelmail.org/


[-- Attachment #2: config --]
[-- Type: application/octet-stream, Size: 6247 bytes --]

CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y

CONFIG_EXPERIMENTAL=y

CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14

CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_KMOD=y

CONFIG_X86_PC=y
CONFIG_MK7=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_PREEMPT=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_X86_CPUID=y
CONFIG_NOHIGHMEM=y
CONFIG_1GB=y
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y

CONFIG_PM=y

CONFIG_APM=y
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_RTC_IS_GMT=y


CONFIG_PCI=y
CONFIG_PCI_GODIRECT=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y

CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y


CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_1284=y

CONFIG_PNP=y
CONFIG_PNP_NAMES=y
CONFIG_PNP_DEBUG=y

CONFIG_ISAPNP=y
CONFIG_PNPBIOS=y

CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_LOOP=y

CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y

CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_IDEDMA_AUTO=y
CONFIG_IDEDMA_IVB=y
CONFIG_BLK_DEV_IDE_MODES=y







CONFIG_NET=y

CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK_DEV=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_DEBUG=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y

CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_FTP=y
CONFIG_IP_NF_IRC=y
CONFIG_IP_NF_TFTP=y
CONFIG_IP_NF_AMANDA=y
CONFIG_IP_NF_QUEUE=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_PKTTYPE=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_DSCP=y
CONFIG_IP_NF_MATCH_AH_ESP=y
CONFIG_IP_NF_MATCH_LENGTH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_HELPER=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_CONNTRACK=y
CONFIG_IP_NF_MATCH_UNCLEAN=y
CONFIG_IP_NF_MATCH_OWNER=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_MIRROR=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_NAT_LOCAL=y
CONFIG_IP_NF_NAT_SNMP_BASIC=y
CONFIG_IP_NF_NAT_IRC=y
CONFIG_IP_NF_NAT_FTP=y
CONFIG_IP_NF_NAT_TFTP=y
CONFIG_IP_NF_NAT_AMANDA=y
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_DSCP=y
CONFIG_IP_NF_TARGET_MARK=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y

CONFIG_IPV6_SCTP__=y
CONFIG_VLAN_8021Q=y
CONFIG_BRIDGE=y

CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=y
CONFIG_NET_SCH_HTB=y
CONFIG_NET_SCH_CSZ=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_RED=y
CONFIG_NET_SCH_SFQ=y
CONFIG_NET_SCH_TEQL=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_GRED=y
CONFIG_NET_SCH_DSMARK=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=y
CONFIG_NET_CLS_ROUTE4=y
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=y
CONFIG_NET_CLS_U32=y
CONFIG_NET_CLS_RSVP=y
CONFIG_NET_CLS_RSVP6=y
CONFIG_NET_CLS_POLICE=y

CONFIG_NETDEVICES=y


CONFIG_NET_ETHERNET=y
CONFIG_MII=y

CONFIG_NET_PCI=y
CONFIG_8139TOO=y




CONFIG_SHAPER=y






CONFIG_INPUT=y

CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y

CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y

CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y

CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_DETECT_IRQ=y

CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=512
CONFIG_PRINTER=y
CONFIG_LP_CONSOLE=y






CONFIG_NVRAM=y
CONFIG_RTC=y

CONFIG_AGP=y
CONFIG_AGP_VIA=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y



CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_JBD=y
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=y
CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y

CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
CONFIG_UDF_FS=y

CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y

CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y

CONFIG_UFS_FS=y

CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
CONFIG_SMB_FS=y

CONFIG_PARTITION_ADVANCED=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_SMB_NLS=y
CONFIG_NLS=y

CONFIG_NLS_DEFAULT="iso8859-2"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_CODEPAGE_1250=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_UTF8=y

CONFIG_VIDEO_SELECT=y

CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y

CONFIG_SOUND=y


CONFIG_SOUND_PRIME=y
CONFIG_SOUND_OSS=y
CONFIG_SOUND_TRACEINIT=y
CONFIG_SOUND_DMAP=y
CONFIG_SOUND_CS4232=y




CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_IOVIRT=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_PAGEALLOC=y
CONFIG_KALLSYMS=y
CONFIG_DEBUG_INFO=y
CONFIG_X86_EXTRA_IRQS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y



CONFIG_ZLIB_INFLATE=y
CONFIG_X86_BIOS_REBOOT=y

[-- Attachment #3: verlinux --]
[-- Type: application/octet-stream, Size: 647 bytes --]

If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
 
Linux grinch 2.5.69-mm3 #23 Fri May 9 00:17:47 EEST 2003 i686 unknown
 
Gnu C                  3.2.3
Gnu make               3.79.1
util-linux             2.11u
mount                  2.11u
module-init-tools      implemented
e2fsprogs              1.32
jfsutils               1.1.2
reiserfsprogs          3.x.1b
xfsprogs               2.0.3
Dynamic linker (ldd)   2.2.4
Procps                 3.1.0
Net-tools              1.60
Kbd                    1.08
Sh-utils               2.0
Modules Loaded         

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

* Re: 2.5.69-mm3
  2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
  2003-05-09 19:49   ` 2.5.69-mm3 Martin J. Bligh
  2003-05-09 21:18   ` 2.5.69-mm3 Andrew Morton
@ 2003-05-13 20:13   ` Bill Davidsen
  2 siblings, 0 replies; 12+ messages in thread
From: Bill Davidsen @ 2003-05-13 20:13 UTC (permalink / raw)
  To: Dipankar Sarma; +Cc: Andrew Morton, linux-kernel, linux-mm

On Fri, 9 May 2003, Dipankar Sarma wrote:

> I am wondering what we should do with this patch. The RCU stats display
> the #s of RCU requests and actual updates on each CPU. On a normal system
> they don't mean much to a sysadmin, so I am not sure if it is the right
> thing to include this feature. OTOH, it is extremely useful to detect
> potential memory leaks happening due to, say a CPU looping in
> kernel (and RCU not happening consequently). Will a CONFIG_RCU_DEBUG
> make it more palatable for mainline ?

Are there similar things, inplace or in patches? Perhaps a menu section
for kernel metrics and a nice little niche in /proc to display them?
Things like this are helpful when tuning a kernel, but perhaps not wanted
for the minimalist (like embedded) configs.

-- 
bill davidsen <davidsen@tmr.com>
  CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.


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

end of thread, other threads:[~2003-05-13 20:07 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-08  8:39 2.5.69-mm3 Andrew Morton
2003-05-09 14:10 ` 2.5.69-mm3 Dipankar Sarma
2003-05-09 19:49   ` 2.5.69-mm3 Martin J. Bligh
2003-05-09 21:18   ` 2.5.69-mm3 Andrew Morton
2003-05-13 20:13   ` 2.5.69-mm3 Bill Davidsen
2003-05-09 14:53 ` 2.5.69-mm3 William Lee Irwin III
2003-05-09 15:37 ` 2.5.69-mm3 William Lee Irwin III
2003-05-09 17:55 ` 2.5.69-mm3 William Lee Irwin III
2003-05-09 18:12 ` 2.5.69-mm3 William Lee Irwin III
2003-05-09 18:15   ` 2.5.69-mm3 William Lee Irwin III
2003-05-09 18:54     ` 2.5.69-mm3 William Lee Irwin III
2003-05-13 18:21 ` 2.5.69-mm3 bug Szonyi Calin

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