http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.53/2.5.53-mm3/
. 2.5.53-mm2 was a bit sick in the timekeeping and slab department. That
should be fixed here.
. The idea of using the slab head arrays for object preallocation has been
abandoned. It involved too many slab changes, and slab just explodes in
your face when touched. So I've used a custom reservation pool in the
radix-tree code instead.
. I've spent two days chasing the memory leak which Con has reported and
have thus far not been able to reproduce it (managed to collaterally
discover a swapoff lockup and an htree leak though). It's probably an
ext3/VM interaction. Please keep an eye out for this.
Changes since 2.5.53-mm2:
-aic-bounce.patch
-ga2.patch
-reduce-random-context-switch-rate.patch
-file-nr-doc-fix.patch
-remove-memshared.patch
-bin2bcd.patch
-semtimedop-update.patch
-drain_local_pages.patch
-kmalloc_percpu.patch
-dont-aligns-vmas.patch
-remove-swappable.patch
-remove-hugetlb-syscalls.patch
Merged
-slab-preallocation.patch
-slab-export-tuning.patch
-rat-preallocation.patch
Dropped
+rat-preload.patch
Do the preallocation as a custom radix-tree thing, not generically.
+i_shared_sem.patch
Turn i_shared_lock into a semaphore. Will be needed for scheduling latency
reasons. Is needed to avoid a shared pagetable deadlock.
+cond_resched_lock-rework.patch
Tidy up a couple of low-latency things
+mempool_resize-fix.patch
Fix a problem in mempool_resize()
+slab-redzone-cleanup.patch
Clean up the slab redzoning debug code, add useful messages.
+shrink-kmap-space.patch
Save some wasted kernel virtual address space
+setuid-exec-no-lock_kernel.patch
Locking cleanup
+fix-ethernet-hash.patch
Fix for the ethernet crc function
+route-cache-kmalloc-per-cpu.patch
Use kmalloc_per_cpu for the route cache stats
-config_page_offset.patch
-config_hz.patch
Dropped. Not to Linus' taste.
+page-walk-api-2.5.53-mm2-update.patch
New stuff from Ingo
-page-walk-api-update.patch
-gup-check-valid.patch
Folded into other patches
+page-walk-scsi-2.5.53-mm2.patch
More from Ingo
All 64 patches:
linus.patch
cset-1.911.4.10-to-1.932.txt.gz
kgdb.patch
log_buf_size.patch
move LOG_BUF_SIZE to header/config
rcf.patch
run-child-first after fork
devfs-fix.patch
dio-return-partial-result.patch
aio-direct-io-infrastructure.patch
AIO support for raw/O_DIRECT
deferred-bio-dirtying.patch
bio dirtying infrastructure
aio-direct-io.patch
AIO support for raw/O_DIRECT
aio-dio-debug.patch
dio-reduce-context-switch-rate.patch
Reduced wakeup rate in direct-io code
cputimes_stat.patch
Retore per-cpu time accounting, with a config option
misc.patch
misc fixes
inlines-net.patch
rbtree-iosched.patch
rbtree-based IO scheduler
deadsched-fix.patch
deadline scheduler fix
quota-smp-locks.patch
Subject: Quota SMP locks
copy_page_range-cleanup.patch
copy_page_range: minor cleanup
pte_chain_alloc-fix.patch
page_add_rmap-rework.patch
rat-preload.patch
use-rat-preallocation.patch
i_shared_sem.patch
turn i_shared_lock into a semaphore
cond_resched_lock-rework.patch
simplify and generalise cond_resched_lock
shpte-ng.patch
pagetable sharing for ia32
teeny-mem-limits.patch
smaller-head-arrays.patch
mempool_resize-fix.patch
mempool_resize fix
slab-redzone-cleanup.patch
slab: redzoning cleanup
shrink-kmap-space.patch
shrink the amount of vmalloc space reserved for kmap
setuid-exec-no-lock_kernel.patch
remove lock_kernel() from exec of setuid apps
fix-ethernet-hash.patch
fix ethernet hash function
ptrace-flush.patch
Subject: [PATCH] ptrace on 2.5.44
buffer-debug.patch
buffer.c debugging
warn-null-wakeup.patch
pentium-II.patch
Pentium-II support bits
rcu-stats.patch
RCU statistics reporting
auto-unplug.patch
self-unplugging request queues
less-unplugging.patch
Remove most of the blk_run_queues() calls
ext3-fsync-speedup.patch
Clean up ext3_sync_file()
lockless-current_kernel_time.patch
Lockless current_kernel_timer()
scheduler-tunables.patch
scheduler tunables
dio-always-kmalloc.patch
direct-io: dynamically allocate struct dio
set_page_dirty_lock.patch
fix set_page_dirty vs truncate&free races
htlb-2.patch
hugetlb: fix MAP_FIXED handling
route-cache-kmalloc-per-cpu.patch
use kmalloc-per-cpu for the routecache stats
wli-01_numaq_io.patch
(undescribed patch)
wli-02_do_sak.patch
(undescribed patch)
wli-03_proc_super.patch
(undescribed patch)
wli-06_uml_get_task.patch
(undescribed patch)
wli-07_numaq_mem_map.patch
(undescribed patch)
wli-08_numaq_pgdat.patch
(undescribed patch)
wli-09_has_stopped_jobs.patch
(undescribed patch)
wli-10_inode_wait.patch
(undescribed patch)
wli-11_pgd_ctor.patch
(undescribed patch)
wli-12_pidhash_size.patch
Dynamically size the pidhash hash table.
wli-13_rmap_nrpte.patch
(undescribed patch)
dcache_rcu-2.patch
dcache_rcu-2-2.5.51.patch
dcache_rcu-3.patch
dcache_rcu-3-2.5.51.patch
page-walk-api.patch
page-walk-api-2.5.53-mm2-update.patch
pagewalk API update
page-walk-scsi.patch
page-walk-scsi-2.5.53-mm2.patch
pagewalk scsi update
Andrew Morton wrote:
>
> http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.53/2.5.53-mm3/
>
2.5.54-mm1 is at
http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.54/2.5.54-mm1/
it is identical to 2.5.53-mm3.
Failed while booting up.
It executed mem_init()
Then during execution of kmem_cache_sizes_init(),
It created generic caches.
After that following error came,
Invalid operand: 0000
...
Unable to handle kernel paging request at virtual address b08e3fef
eip 00000000
>-----Original Message-----
>From: Andrew Morton [mailto:[email protected]]
>Sent: Thursday, January 02, 2003 7:44 AM
>To: lkml; [email protected]
>Subject: 2.5.53-mm3
>
>
>
>http://www.zip.com.au/~akpm/linux/patches/2.5/2.5.53/2.5.53-mm3/
>
>. 2.5.53-mm2 was a bit sick in the timekeeping and slab
>department. That
> should be fixed here.
>
>. The idea of using the slab head arrays for object
>preallocation has been
> abandoned. It involved too many slab changes, and slab just
>explodes in
> your face when touched. So I've used a custom reservation
>pool in the
> radix-tree code instead.
>
>. I've spent two days chasing the memory leak which Con has
>reported and
> have thus far not been able to reproduce it (managed to collaterally
> discover a swapoff lockup and an htree leak though). It's
>probably an
> ext3/VM interaction. Please keep an eye out for this.
>
>
>
>Changes since 2.5.53-mm2:
>
>
>-aic-bounce.patch
>-ga2.patch
>-reduce-random-context-switch-rate.patch
>-file-nr-doc-fix.patch
>-remove-memshared.patch
>-bin2bcd.patch
>-semtimedop-update.patch
>-drain_local_pages.patch
>-kmalloc_percpu.patch
>-dont-aligns-vmas.patch
>-remove-swappable.patch
>-remove-hugetlb-syscalls.patch
>
> Merged
>
>-slab-preallocation.patch
>-slab-export-tuning.patch
>-rat-preallocation.patch
>
> Dropped
>
>+rat-preload.patch
>
> Do the preallocation as a custom radix-tree thing, not generically.
>
>+i_shared_sem.patch
>
> Turn i_shared_lock into a semaphore. Will be needed for
>scheduling latency reasons. Is needed to avoid a shared
>pagetable deadlock.
>
>+cond_resched_lock-rework.patch
>
> Tidy up a couple of low-latency things
>
>+mempool_resize-fix.patch
>
> Fix a problem in mempool_resize()
>
>+slab-redzone-cleanup.patch
>
> Clean up the slab redzoning debug code, add useful messages.
>
>+shrink-kmap-space.patch
>
> Save some wasted kernel virtual address space
>
>+setuid-exec-no-lock_kernel.patch
>
> Locking cleanup
>
>+fix-ethernet-hash.patch
>
> Fix for the ethernet crc function
>
>+route-cache-kmalloc-per-cpu.patch
>
> Use kmalloc_per_cpu for the route cache stats
>
>-config_page_offset.patch
>-config_hz.patch
>
> Dropped. Not to Linus' taste.
>
>+page-walk-api-2.5.53-mm2-update.patch
>
> New stuff from Ingo
>
>-page-walk-api-update.patch
>-gup-check-valid.patch
>
> Folded into other patches
>
>+page-walk-scsi-2.5.53-mm2.patch
>
> More from Ingo
>
>
>
>
>All 64 patches:
>
>
>linus.patch
> cset-1.911.4.10-to-1.932.txt.gz
>
>kgdb.patch
>
>log_buf_size.patch
> move LOG_BUF_SIZE to header/config
>
>rcf.patch
> run-child-first after fork
>
>devfs-fix.patch
>
>dio-return-partial-result.patch
>
>aio-direct-io-infrastructure.patch
> AIO support for raw/O_DIRECT
>
>deferred-bio-dirtying.patch
> bio dirtying infrastructure
>
>aio-direct-io.patch
> AIO support for raw/O_DIRECT
>
>aio-dio-debug.patch
>
>dio-reduce-context-switch-rate.patch
> Reduced wakeup rate in direct-io code
>
>cputimes_stat.patch
> Retore per-cpu time accounting, with a config option
>
>misc.patch
> misc fixes
>
>inlines-net.patch
>
>rbtree-iosched.patch
> rbtree-based IO scheduler
>
>deadsched-fix.patch
> deadline scheduler fix
>
>quota-smp-locks.patch
> Subject: Quota SMP locks
>
>copy_page_range-cleanup.patch
> copy_page_range: minor cleanup
>
>pte_chain_alloc-fix.patch
>
>page_add_rmap-rework.patch
>
>rat-preload.patch
>
>use-rat-preallocation.patch
>
>i_shared_sem.patch
> turn i_shared_lock into a semaphore
>
>cond_resched_lock-rework.patch
> simplify and generalise cond_resched_lock
>
>shpte-ng.patch
> pagetable sharing for ia32
>
>teeny-mem-limits.patch
>
>smaller-head-arrays.patch
>
>mempool_resize-fix.patch
> mempool_resize fix
>
>slab-redzone-cleanup.patch
> slab: redzoning cleanup
>
>shrink-kmap-space.patch
> shrink the amount of vmalloc space reserved for kmap
>
>setuid-exec-no-lock_kernel.patch
> remove lock_kernel() from exec of setuid apps
>
>fix-ethernet-hash.patch
> fix ethernet hash function
>
>ptrace-flush.patch
> Subject: [PATCH] ptrace on 2.5.44
>
>buffer-debug.patch
> buffer.c debugging
>
>warn-null-wakeup.patch
>
>pentium-II.patch
> Pentium-II support bits
>
>rcu-stats.patch
> RCU statistics reporting
>
>auto-unplug.patch
> self-unplugging request queues
>
>less-unplugging.patch
> Remove most of the blk_run_queues() calls
>
>ext3-fsync-speedup.patch
> Clean up ext3_sync_file()
>
>lockless-current_kernel_time.patch
> Lockless current_kernel_timer()
>
>scheduler-tunables.patch
> scheduler tunables
>
>dio-always-kmalloc.patch
> direct-io: dynamically allocate struct dio
>
>set_page_dirty_lock.patch
> fix set_page_dirty vs truncate&free races
>
>htlb-2.patch
> hugetlb: fix MAP_FIXED handling
>
>route-cache-kmalloc-per-cpu.patch
> use kmalloc-per-cpu for the routecache stats
>
>wli-01_numaq_io.patch
> (undescribed patch)
>
>wli-02_do_sak.patch
> (undescribed patch)
>
>wli-03_proc_super.patch
> (undescribed patch)
>
>wli-06_uml_get_task.patch
> (undescribed patch)
>
>wli-07_numaq_mem_map.patch
> (undescribed patch)
>
>wli-08_numaq_pgdat.patch
> (undescribed patch)
>
>wli-09_has_stopped_jobs.patch
> (undescribed patch)
>
>wli-10_inode_wait.patch
> (undescribed patch)
>
>wli-11_pgd_ctor.patch
> (undescribed patch)
>
>wli-12_pidhash_size.patch
> Dynamically size the pidhash hash table.
>
>wli-13_rmap_nrpte.patch
> (undescribed patch)
>
>dcache_rcu-2.patch
> dcache_rcu-2-2.5.51.patch
>
>dcache_rcu-3.patch
> dcache_rcu-3-2.5.51.patch
>
>page-walk-api.patch
>
>page-walk-api-2.5.53-mm2-update.patch
> pagewalk API update
>
>page-walk-scsi.patch
>
>page-walk-scsi-2.5.53-mm2.patch
> pagewalk scsi update
>-
>To unsubscribe from this list: send the line "unsubscribe
>linux-kernel" in the body of a message to
>[email protected] More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Aniruddha M Marathe wrote:
>
> Failed while booting up.
> It executed mem_init()
> Then during execution of kmem_cache_sizes_init(),
> It created generic caches.
> After that following error came,
> Invalid operand: 0000
> ...
> Unable to handle kernel paging request at virtual address b08e3fef
> eip 00000000
>
Please enable "Load all symbols for debugging/kksymoops" in
the "Kernel hacking" menu and send a full report.
kksymoops is a bit broken in 2.5.54. You may need this patch:
--- 25/fs/proc/base.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/fs/proc/base.c Wed Jan 1 22:30:17 2003
@@ -259,11 +259,10 @@ static int proc_pid_wchan(struct task_st
char *modname;
const char *sym_name;
unsigned long wchan, size, offset;
- char namebuf[128];
wchan = get_wchan(task);
- sym_name = kallsyms_lookup(wchan, &size, &offset, &modname, namebuf);
+ sym_name = kallsyms_lookup(wchan, &size, &offset, &modname);
if (sym_name)
return sprintf(buffer, "%s", sym_name);
return sprintf(buffer, "%lu", wchan);
--- 25/include/linux/kallsyms.h~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/include/linux/kallsyms.h Wed Jan 1 22:30:17 2003
@@ -12,7 +12,7 @@
const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf);
+ char **modname);
/* Replace "%s" in format with address, if found */
extern void __print_symbol(const char *fmt, unsigned long address);
@@ -22,7 +22,7 @@ extern void __print_symbol(const char *f
static inline const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf)
+ char **modname)
{
return NULL;
}
--- 25/kernel/kallsyms.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/kernel/kallsyms.c Wed Jan 1 22:30:17 2003
@@ -4,7 +4,6 @@
* Rewritten and vastly simplified by Rusty Russell for in-kernel
* module loader:
* Copyright 2002 Rusty Russell <[email protected]> IBM Corporation
- * Stem compression by Andi Kleen.
*/
#include <linux/kallsyms.h>
#include <linux/module.h>
@@ -23,7 +22,7 @@ extern char _stext[], _etext[];
const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
- char **modname, char *namebuf)
+ char **modname)
{
unsigned long i, best = 0;
@@ -31,8 +30,6 @@ const char *kallsyms_lookup(unsigned lon
if ((void *)kallsyms_addresses == &kallsyms_dummy)
BUG();
- namebuf[127] = 0;
-
if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) {
unsigned long symbol_end;
char *name = kallsyms_names;
@@ -45,11 +42,8 @@ const char *kallsyms_lookup(unsigned lon
}
/* Grab name */
- for (i = 0; i < best; i++) {
- ++name;
- strncpy(namebuf + name[-1], name, 127);
+ for (i = 0; i < best; i++)
name += strlen(name)+1;
- }
/* Base symbol size on next symbol. */
if (best + 1 < kallsyms_num_syms)
@@ -60,7 +54,7 @@ const char *kallsyms_lookup(unsigned lon
*symbolsize = symbol_end - kallsyms_addresses[best];
*modname = NULL;
*offset = addr - kallsyms_addresses[best];
- return namebuf;
+ return name;
}
return module_address_lookup(addr, symbolsize, offset, modname);
@@ -72,9 +66,8 @@ void __print_symbol(const char *fmt, uns
char *modname;
const char *name;
unsigned long offset, size;
- char namebuf[128];
- name = kallsyms_lookup(address, &size, &offset, &modname, namebuf);
+ name = kallsyms_lookup(address, &size, &offset, &modname);
if (!name) {
char addrstr[sizeof("0x%lx") + (BITS_PER_LONG*3/10)];
--- 25/scripts/kallsyms.c~no-stem-compression Wed Jan 1 22:30:17 2003
+++ 25-akpm/scripts/kallsyms.c Wed Jan 1 22:30:17 2003
@@ -93,7 +93,6 @@ write_src(void)
{
unsigned long long last_addr;
int i, valid = 0;
- char *prev;
printf("#include <asm/types.h>\n");
printf("#if BITS_PER_LONG == 64\n");
@@ -131,22 +130,15 @@ write_src(void)
printf(".globl kallsyms_names\n");
printf("\tALGN\n");
printf("kallsyms_names:\n");
- prev = "";
for (i = 0, last_addr = 0; i < cnt; i++) {
- int k;
-
if (!symbol_valid(&table[i]))
continue;
if (table[i].addr == last_addr)
continue;
- for (k = 0; table[i].sym[k] && table[i].sym[k] == prev[k]; ++k)
- ;
-
- printf("\t.asciz\t\"\\x%02x%s\"\n", k, table[i].sym + k);
+ printf("\t.string\t\"%s\"\n", table[i].sym);
last_addr = table[i].addr;
- prev = table[i].sym;
}
printf("\n");
}
_