linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.0-test11-wli-1
@ 2003-12-04 20:01 William Lee Irwin III
  2003-12-04 21:01 ` 2.6.0-test11-wli-1 William Lee Irwin III
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-04 20:01 UTC (permalink / raw)
  To: linux-kernel

Successfully tested on a Thinkpad T21. Any feedback regarding
performance would be very helpful. Desktop users should notice top(1)
is faster, kernel hackers that kernel compiles are faster, and highmem
users should see much less per-process lowmem overhead.

This release is vastly cleaned up compared to the test8 release, and
features the wchan and major/minor fault accounting fixes. I still
need to fold the anobjrmap fixes into the original patches and find
some alternative way for smbfs and ncpfs to do whatever d_validate()
was doing for them. I also need to find a coherent way to incorporate
the cleanups for pte caching suggested by akpm without bloating the
pte cache on lowmem boxen (but nothing radical like 4/4 or pgcl).

It's also worth noting that the patches "originally due" to someone
were just plucked off of the list by me (in some cases, they just first
implemented of the idea), so be sure to ascribe all the credit to
them, and all the bugs to me. I wasn't sure of a complete (or even
partial) list of those to credit for top-down vma allocation, hence
"various", though it was jejb who described the glibc workaround.

Available from:
ftp://ftp.kernel.org/pub/linux/kernel/people/wli/kernels/2.6.0-test11/


-- wli

 1:	highpmd
		-- originally due to aa as part of pte-highmem
		-- from scratch implementation based on 2.6 highpte
 2:	O(1) buffered_rmqueue()
 3:	i386 pte caching
 4:	O(lg(n)) proc_pid_readdir()/proc_task_readdir()
 5:	O(1) proc_pid_statm()
		-- originally due to bcrl
 6:	kmap_atomic() microoptimizations
 7:	compile-time mapping->page_lock type selection
 8:	4KB i386 stacks
		-- originally due to bcrl
 9:	objrmap
		-- originally due to dmc/mbligh
10:	RCU mapping->i_shared_lock
11:	anobjrmap, phase 1
		-- originally due to hugh
12:	anobjrmap, phase 2
		-- originally due to hugh
13:	anobjrmap, phase 3
		-- originally due to hugh
14:	anobjrmap, phase 4
		-- originally due to hugh
15:	anobjrmap, phase 5
		-- originally due to hugh
16:	RCU anon->lock
17:	convert copy_strings() to use kmap_atomic() instead of kmap()
18:	increase page allocator batch counts
19:	node-local i386 per_cpu areas
20:	CONFIG_MMAP_TOPDOWN, top-down vma allocation
		-- various prior implementations
21:	anobjrmap fixes
22:	increase static vfs hashtable and VM array sizes
23:	intermezzo 4KB stack fixes
		-- due to muli
24:	/proc/ BKL gunk plus page wait hashtable sizing adjustment
25:	invalidate_inodes() speedup
		-- originally due to Kirill Korotaev
26:	fix the anobjrmap fix and adjust page_alloc.c inlining
27:	remove ->valid_addr_bitmap, kern_addr_valid(), and d_validate()
28:	fix wchan accounting
29:	fix major/minor fault accounting
30:	remove mm->swap_address

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-04 21:01 ` William Lee Irwin III
  2003-12-04 22:58 ` 2.6.0-test11-wli-1 Muli Ben-Yehuda
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-04 21:01 UTC (permalink / raw)
  To: linux-kernel

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
> was doing for them. I also need to find a coherent way to incorporate
> the cleanups for pte caching suggested by akpm without bloating the
> pte cache on lowmem boxen


Maybe the pte caching cleanups should go something like this:


diff -prauN wli-2.6.0-test11-30/arch/i386/mm/pgtable.c wli-2.6.0-test11-31/arch/i386/mm/pgtable.c
--- wli-2.6.0-test11-30/arch/i386/mm/pgtable.c	2003-12-04 07:36:00.000000000 -0800
+++ wli-2.6.0-test11-31/arch/i386/mm/pgtable.c	2003-12-04 12:57:16.000000000 -0800
@@ -1,5 +1,6 @@
 /*
  *  linux/arch/i386/mm/pgtable.c
+ *  highpte-compatible pte caching, William Irwin, IBM, June 2003
  */
 
 #include <linux/config.h>
@@ -13,6 +14,7 @@
 #include <linux/slab.h>
 #include <linux/pagemap.h>
 #include <linux/spinlock.h>
+#include <linux/init.h>
 
 #include <asm/system.h>
 #include <asm/pgtable.h>
@@ -176,7 +178,7 @@ static inline struct page *pte_alloc_rea
 	unsigned long flags;
 	struct page *page = NULL;
 
-	smp_local_irq_save(flags);
+	local_irq_save(flags);
 	if (tlb->nr_pte_ready) {
 		int z;
 		for (z = MAX_ZONE_ID - 1; z >= 0; --z) {
@@ -193,7 +195,7 @@ static inline struct page *pte_alloc_rea
 		tlb->ready_count[z]--;
 		tlb->nr_pte_ready--;
 	}
-	smp_local_irq_restore(flags);
+	local_irq_restore(flags);
 	put_cpu();
 	return page;
 }
@@ -305,7 +307,7 @@ static void shrink_cpu_pagetable_cache(v
 	high = !!(gfp_mask & __GFP_HIGHMEM);
 	cpu = get_cpu();
 	tlb = &per_cpu(mmu_gathers, cpu);
-	smp_local_irq_save(flags);
+	local_irq_save(flags);
 
 	if (tlb->nr_pte_active || tlb->nr_nonpte)
 		tlb_flush(tlb);
@@ -342,11 +344,11 @@ static void shrink_cpu_pagetable_cache(v
 		free_pages_bulk(zone_table[zone], head, 0);
 	}
 
-	smp_local_irq_restore(flags);
+	local_irq_restore(flags);
 	put_cpu();
 }
 
-void shrink_pagetable_cache(int gfp_mask)
+static int shrink_pagetable_cache(int nr_to_scan, unsigned int gfp_mask)
 {
 	BUG_ON(irqs_disabled());
 
@@ -357,8 +359,17 @@ void shrink_pagetable_cache(int gfp_mask
 
 	smp_call_function(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1);
 	preempt_enable();
+	return 1;
 }
 
+static __init int init_pagetable_cache_shrinker(void)
+{
+	set_shrinker(1, shrink_pagetable_cache);
+	return 0;
+}
+
+__initcall(init_pagetable_cache_shrinker);
+
 #define GLIBC_BUFFER	(32*1024*1024)
 
 /*
diff -prauN wli-2.6.0-test11-30/fs/dcache.c wli-2.6.0-test11-31/fs/dcache.c
--- wli-2.6.0-test11-30/fs/dcache.c	2003-12-04 08:30:37.000000000 -0800
+++ wli-2.6.0-test11-31/fs/dcache.c	2003-12-04 12:39:07.000000000 -0800
@@ -657,6 +657,9 @@ static int shrink_dcache_memory(int nr, 
 	int nr_unused;
 	const int unused_ratio = 1;
 
+	if (gfp_mask & __GFP_HIGHMEM)
+		return 0;
+
 	if (nr) {
 		/*
 		 * Nasty deadlock avoidance.
diff -prauN wli-2.6.0-test11-30/fs/dquot.c wli-2.6.0-test11-31/fs/dquot.c
--- wli-2.6.0-test11-30/fs/dquot.c	2003-11-26 12:44:45.000000000 -0800
+++ wli-2.6.0-test11-31/fs/dquot.c	2003-12-04 12:39:42.000000000 -0800
@@ -386,6 +386,9 @@ static int shrink_dqcache_memory(int nr,
 {
 	int ret;
 
+	if (gfp_mask & __GFP_HIGHMEM)
+		return 0;
+
 	spin_lock(&dq_list_lock);
 	if (nr)
 		prune_dqcache(nr);
diff -prauN wli-2.6.0-test11-30/fs/inode.c wli-2.6.0-test11-31/fs/inode.c
--- wli-2.6.0-test11-30/fs/inode.c	2003-12-04 08:20:27.000000000 -0800
+++ wli-2.6.0-test11-31/fs/inode.c	2003-12-04 12:41:30.000000000 -0800
@@ -467,6 +467,9 @@ static void prune_icache(int nr_to_scan)
  */
 static int shrink_icache_memory(int nr, unsigned int gfp_mask)
 {
+	if (gfp_mask & __GFP_HIGHMEM)
+		return 0;
+
 	if (nr) {
 		/*
 		 * Nasty deadlock avoidance.  We may hold various FS locks,
diff -prauN wli-2.6.0-test11-30/fs/mbcache.c wli-2.6.0-test11-31/fs/mbcache.c
--- wli-2.6.0-test11-30/fs/mbcache.c	2003-11-26 12:45:49.000000000 -0800
+++ wli-2.6.0-test11-31/fs/mbcache.c	2003-12-04 12:40:57.000000000 -0800
@@ -176,6 +176,9 @@ mb_cache_shrink_fn(int nr_to_scan, unsig
 	struct list_head *l, *ltmp;
 	int count = 0;
 
+	if (gfp_mask & __GFP_HIGHMEM)
+		return 0;
+
 	spin_lock(&mb_cache_spinlock);
 	list_for_each(l, &mb_cache_list) {
 		struct mb_cache *cache =
diff -prauN wli-2.6.0-test11-30/fs/xfs/quota/xfs_qm.c wli-2.6.0-test11-31/fs/xfs/quota/xfs_qm.c
--- wli-2.6.0-test11-30/fs/xfs/quota/xfs_qm.c	2003-11-26 12:42:54.000000000 -0800
+++ wli-2.6.0-test11-31/fs/xfs/quota/xfs_qm.c	2003-12-04 12:38:37.000000000 -0800
@@ -2206,6 +2206,8 @@ xfs_qm_shake(int nr_to_scan, unsigned in
 {
 	int	ndqused, nfree, n;
 
+	if (gfp_mask & __GFP_HIGHMEM)
+		return 0;
 	if (!(gfp_mask & __GFP_WAIT))
 		return 0;
 	if (!xfs_Gqm)
diff -prauN wli-2.6.0-test11-30/include/asm-i386/pgtable.h wli-2.6.0-test11-31/include/asm-i386/pgtable.h
--- wli-2.6.0-test11-30/include/asm-i386/pgtable.h	2003-12-04 08:30:37.000000000 -0800
+++ wli-2.6.0-test11-31/include/asm-i386/pgtable.h	2003-12-04 12:52:58.000000000 -0800
@@ -45,9 +45,6 @@ void pgd_dtor(void *, kmem_cache_t *, un
 void pgtable_cache_init(void);
 void paging_init(void);
 
-#define HAVE_ARCH_PAGETABLE_CACHE
-void shrink_pagetable_cache(int gfp_mask);
-
 #endif /* !__ASSEMBLY__ */
 
 /*
diff -prauN wli-2.6.0-test11-30/include/asm-i386/system.h wli-2.6.0-test11-31/include/asm-i386/system.h
--- wli-2.6.0-test11-30/include/asm-i386/system.h	2003-12-03 18:30:38.000000000 -0800
+++ wli-2.6.0-test11-31/include/asm-i386/system.h	2003-12-04 12:50:45.000000000 -0800
@@ -461,18 +461,6 @@ struct alt_instr { 
 /* For spinlocks etc */
 #define local_irq_save(x)	__asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (x): /* no input */ :"memory")
 
-#ifdef CONFIG_SMP
-#define smp_local_irq_save(x)		local_irq_save(x)
-#define smp_local_irq_restore(x)	local_irq_restore(x)
-#define smp_local_irq_disable()		local_irq_disable()
-#define smp_local_irq_enable()		local_irq_enable()
-#else
-#define smp_local_irq_save(x)		do { (void)(x); } while (0)
-#define smp_local_irq_restore(x)	do { (void)(x); } while (0)
-#define smp_local_irq_disable()		do { } while (0)
-#define smp_local_irq_enable()		do { } while (0)
-#endif /* CONFIG_SMP */
-
 /*
  * disable hlt during certain critical i/o operations
  */
diff -prauN wli-2.6.0-test11-30/include/asm-i386/tlb.h wli-2.6.0-test11-31/include/asm-i386/tlb.h
--- wli-2.6.0-test11-30/include/asm-i386/tlb.h	2003-12-03 18:30:38.000000000 -0800
+++ wli-2.6.0-test11-31/include/asm-i386/tlb.h	2003-12-04 12:50:45.000000000 -0800
@@ -115,7 +115,7 @@ void tlb_flush_mmu(struct mmu_gather *tl
 	tlb->need_flush = 0;
 	tlb_flush(tlb);
 
-	smp_local_irq_save(flags);
+	local_irq_save(flags);
 
 	if (tlb->nr_nonpte) {
 		free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte);
@@ -135,7 +135,7 @@ void tlb_flush_mmu(struct mmu_gather *tl
 	if (tlb->nr_pte_ready >= NR_PTE)
 		tlb_flush_ready(tlb);
 
-	smp_local_irq_restore(flags);
+	local_irq_restore(flags);
 }
 
 static inline
@@ -172,13 +172,13 @@ void tlb_remove_page(struct mmu_gather *
 {
 	unsigned long flags;
 
-	smp_local_irq_save(flags);
+	local_irq_save(flags);
 	tlb->need_flush = 1;
 	if (PagePTE(page))
 		tlb_remove_pte_page(tlb, page);
 	else
 		tlb_remove_nonpte_page(tlb, page);
-	smp_local_irq_restore(flags);
+	local_irq_restore(flags);
 }
 
 #endif /* _I386_TLB_H */
diff -prauN wli-2.6.0-test11-30/mm/vmscan.c wli-2.6.0-test11-31/mm/vmscan.c
--- wli-2.6.0-test11-30/mm/vmscan.c	2003-12-04 07:13:42.000000000 -0800
+++ wli-2.6.0-test11-31/mm/vmscan.c	2003-12-04 12:52:58.000000000 -0800
@@ -845,10 +845,6 @@ shrink_caches(struct zone *classzone, in
 	return ret;
 }
 
-#ifndef HAVE_ARCH_PAGETABLE_CACHE
-#define shrink_pagetable_cache(gfp_mask)		do { } while (0)
-#endif
- 
 /*
  * This is the main entry point to direct page reclaim.
  *
@@ -901,17 +897,12 @@ int try_to_free_pages(struct zone *cz,
 		 */
 		wakeup_bdflush(total_scanned);
 
-		/* shoot down some pagetable caches before napping */
-		shrink_pagetable_cache(gfp_mask);
-
 		/* Take a nap, wait for some writeback to complete */
 		blk_congestion_wait(WRITE, HZ/10);
-		if (cz - cz->zone_pgdat->node_zones < ZONE_HIGHMEM) {
-			shrink_slab(total_scanned, gfp_mask);
-			if (reclaim_state) {
-				nr_reclaimed += reclaim_state->reclaimed_slab;
-				reclaim_state->reclaimed_slab = 0;
-			}
+		shrink_slab(total_scanned, gfp_mask);
+		if (reclaim_state) {
+			nr_reclaimed += reclaim_state->reclaimed_slab;
+			reclaim_state->reclaimed_slab = 0;
 		}
 	}
 	if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY))
@@ -958,11 +949,12 @@ static int balance_pgdat(pg_data_t *pgda
 	for (priority = DEF_PRIORITY; priority; priority--) {
 		int all_zones_ok = 1;
 
-		for (i = 0; i < pgdat->nr_zones; i++) {
+		for (i = pgdat->nr_zones - 1; i >= 0; i--) {
 			struct zone *zone = pgdat->node_zones + i;
 			int nr_mapped = 0;
 			int max_scan;
 			int to_reclaim;
+			int gfp_mask;
 
 			if (zone->all_unreclaimable && priority != DEF_PRIORITY)
 				continue;
@@ -981,13 +973,20 @@ static int balance_pgdat(pg_data_t *pgda
 				max_scan = to_reclaim * 2;
 			if (max_scan < SWAP_CLUSTER_MAX)
 				max_scan = SWAP_CLUSTER_MAX;
-			to_free -= shrink_zone(zone, max_scan, GFP_KERNEL,
+
+			if (i < ZONE_HIGHMEM)
+				gfp_mask = GFP_KERNEL;
+			else
+				gfp_mask = GFP_HIGHUSER;
+
+
+			to_free -= shrink_zone(zone, max_scan, gfp_mask,
 					to_reclaim, &nr_mapped, ps, priority);
-			if (i < ZONE_HIGHMEM) {
-				reclaim_state->reclaimed_slab = 0;
-				shrink_slab(max_scan + nr_mapped, GFP_KERNEL);
-				to_free -= reclaim_state->reclaimed_slab;
-			}
+
+			reclaim_state->reclaimed_slab = 0;
+			shrink_slab(max_scan + nr_mapped, gfp_mask);
+			to_free -= reclaim_state->reclaimed_slab;
+
 			if (zone->all_unreclaimable)
 				continue;
 			if (zone->pages_scanned > zone->present_pages * 2)
@@ -995,10 +994,8 @@ static int balance_pgdat(pg_data_t *pgda
 		}
 		if (all_zones_ok)
 			break;
-		if (to_free > 0) {
-			shrink_pagetable_cache(GFP_HIGHUSER);
+		if (to_free > 0)
 			blk_congestion_wait(WRITE, HZ/10);
-		}
 	}
 
 	for (i = 0; i < pgdat->nr_zones; i++) {

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-04 21:01 ` 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-04 22:58 ` Muli Ben-Yehuda
  2003-12-04 23:21   ` 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-05  8:14 ` 2.6.0-test11-wli-1 Hugang
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Muli Ben-Yehuda @ 2003-12-04 22:58 UTC (permalink / raw)
  To: William Lee Irwin III, linux-kernel

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

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:

> Successfully tested on a Thinkpad T21. Any feedback regarding
> performance would be very helpful. Desktop users should notice top(1)
> is faster, kernel hackers that kernel compiles are faster, and highmem
> users should see much less per-process lowmem overhead.

Compiles and boots fine with a minimal .config on my thinkpad R30
sacrificial machine. 

Cheers, 
Muli 
-- 
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/

"the nucleus of linux oscillates my world" - gccbot@#offtopic


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 22:58 ` 2.6.0-test11-wli-1 Muli Ben-Yehuda
@ 2003-12-04 23:21   ` William Lee Irwin III
  0 siblings, 0 replies; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-04 23:21 UTC (permalink / raw)
  To: Muli Ben-Yehuda; +Cc: linux-kernel

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
>> Successfully tested on a Thinkpad T21. Any feedback regarding
>> performance would be very helpful. Desktop users should notice top(1)
>> is faster, kernel hackers that kernel compiles are faster, and highmem
>> users should see much less per-process lowmem overhead.

On Fri, Dec 05, 2003 at 12:58:29AM +0200, Muli Ben-Yehuda wrote:
> Compiles and boots fine with a minimal .config on my thinkpad R30
> sacrificial machine. 

Good to hear; I hope the various performance improvements (as they're
intended to be, at least) do something for the R30.


-- wli

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-04 21:01 ` 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-04 22:58 ` 2.6.0-test11-wli-1 Muli Ben-Yehuda
@ 2003-12-05  8:14 ` Hugang
  2003-12-05  9:10   ` 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-08 13:57 ` 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-09 23:35 ` 2.6.0-test11-wli-1 William Lee Irwin III
  4 siblings, 1 reply; 13+ messages in thread
From: Hugang @ 2003-12-05  8:14 UTC (permalink / raw)
  To: William Lee Irwin III, linux-kernel

On Thu, 4 Dec 2003 12:01:20 -0800
William Lee Irwin III <wli@holomorphy.com> wrote:

> Successfully tested on a Thinkpad T21. Any feedback regarding
> performance would be very helpful. Desktop users should notice top(1)
> is faster, kernel hackers that kernel compiles are faster, and highmem
> users should see much less per-process lowmem overhead.

I got this in ppc.
fs/built-in.o: In function `proc_task_readdir':
fs/built-in.o(.text+0x2ff44): undefined reference to `__cmpdi2'
fs/built-in.o(.text+0x2ff44): relocation truncated to fit: R_PPC_REL24 __cmpdi2
fs/built-in.o(.text+0x2ff6c): undefined reference to `__cmpdi2'
fs/built-in.o(.text+0x2ff6c): relocation truncated to fit: R_PPC_REL24 __cmpdi2
make: *** [.tmp_vmlinux1] Error 1

apply the patch should fix it.

Index: fs/proc/base.c
===================================================================
--- fs/proc/base.c	(revision 3)
+++ fs/proc/base.c	(working copy)
@@ -1673,12 +1673,13 @@
 	struct inode *inode = dentry->d_inode;
 	int retval = -ENOENT;
 	ino_t ino;
+	unsigned long pos = filp->f_pos;  /* avoiding "long long" filp->f_pos */
 
 	if (!pid_alive(proc_task(inode)))
 		goto out;
 	retval = 0;
 
-	switch (filp->f_pos) {
+	switch (pos) {
 	case 0:
 		ino = inode->i_ino;
 		if (filldir(dirent, ".", 1, filp->f_pos, ino, DT_DIR) < 0)


-- 
Hu Gang / Steve
Email         : hugang@soulinfo.com, steve@soulinfo.com
GPG FinePrint : 4099 3F1D AE01 1817 68F7  D499 A6C2 C418 86C8 610E
GPG Public Key: http://soulinfo.com/~hugang/HuGang.asc
MSN#          : huganglinux@hotmail.com [9:00AM - 5:30PM +8:00]
RLU#          : 204016 [1999] (Register Linux User)

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

* Re: 2.6.0-test11-wli-1
  2003-12-05  8:14 ` 2.6.0-test11-wli-1 Hugang
@ 2003-12-05  9:10   ` William Lee Irwin III
  0 siblings, 0 replies; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-05  9:10 UTC (permalink / raw)
  To: Hugang; +Cc: linux-kernel

On Thu, 4 Dec 2003 12:01:20 -0800 William Lee Irwin III <wli@holomorphy.com> wrote:
>> Successfully tested on a Thinkpad T21. Any feedback regarding
>> performance would be very helpful. Desktop users should notice top(1)
>> is faster, kernel hackers that kernel compiles are faster, and highmem
>> users should see much less per-process lowmem overhead.

On Fri, Dec 05, 2003 at 04:14:51PM +0800, Hugang wrote:
> I got this in ppc.
> fs/built-in.o: In function `proc_task_readdir':
> fs/built-in.o(.text+0x2ff44): undefined reference to `__cmpdi2'
> fs/built-in.o(.text+0x2ff44): relocation truncated to fit: R_PPC_REL24 __cmpdi2
> fs/built-in.o(.text+0x2ff6c): undefined reference to `__cmpdi2'
> fs/built-in.o(.text+0x2ff6c): relocation truncated to fit: R_PPC_REL24 __cmpdi2
> make: *** [.tmp_vmlinux1] Error 1

Thanks, I'll pick that up.


-- wli

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
                   ` (2 preceding siblings ...)
  2003-12-05  8:14 ` 2.6.0-test11-wli-1 Hugang
@ 2003-12-08 13:57 ` William Lee Irwin III
  2003-12-08 14:03   ` 2.6.0-test11-wli-1 William Lee Irwin III
  2003-12-09 23:35 ` 2.6.0-test11-wli-1 William Lee Irwin III
  4 siblings, 1 reply; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-08 13:57 UTC (permalink / raw)
  To: linux-kernel

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
> Successfully tested on a Thinkpad T21. Any feedback regarding
> performance would be very helpful. Desktop users should notice top(1)
> is faster, kernel hackers that kernel compiles are faster, and highmem
> users should see much less per-process lowmem overhead.

Woops, I missed the target by a few bytes. Probably a bit overwrought:


-- wli


diff -prauN wli-2.6.0-test11-36/include/asm-i386/processor.h wli-2.6.0-test11-37/include/asm-i386/processor.h
--- wli-2.6.0-test11-36/include/asm-i386/processor.h	2003-12-03 19:40:24.000000000 -0800
+++ wli-2.6.0-test11-37/include/asm-i386/processor.h	2003-12-07 06:36:51.000000000 -0800
@@ -497,11 +497,19 @@ void show_trace(struct task_struct *task
 unsigned long get_wchan(struct task_struct *task);
 
 #define THREAD_SIZE_LONGS	(THREAD_SIZE/sizeof(unsigned long))
+#define KSTK_TOP(info)							\
+({									\
+	unsigned long *__ptr = (unsigned long *)(info);			\
+	(unsigned long)(&__ptr[THREAD_SIZE_LONGS]);			\
+})
+
 #define task_pt_regs(task)						\
 ({									\
-	unsigned long *__ptr = (unsigned long *)(task)->thread_info;	\
-	(struct pt_regs *)(&__ptr[THREAD_SIZE_LONGS-1]);		\
+	struct pt_regs *__regs__;					\
+	__regs__ = (struct pt_regs *)KSTK_TOP((task)->thread_info);	\
+	__regs__ - 1;							\
 })
+
 #define KSTK_EIP(task)	(task_pt_regs(task)->eip)
 #define KSTK_ESP(task)	(task_pt_regs(task)->esp)
 

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

* Re: 2.6.0-test11-wli-1
  2003-12-08 13:57 ` 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-08 14:03   ` William Lee Irwin III
  0 siblings, 0 replies; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-08 14:03 UTC (permalink / raw)
  To: linux-kernel

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
>> Successfully tested on a Thinkpad T21. Any feedback regarding
>> performance would be very helpful. Desktop users should notice top(1)
>> is faster, kernel hackers that kernel compiles are faster, and highmem
>> users should see much less per-process lowmem overhead.

On Mon, Dec 08, 2003 at 05:57:37AM -0800, William Lee Irwin III wrote:
> Woops, I missed the target by a few bytes. Probably a bit overwrought:

These THREAD_SIZE bits are cropping up all over.


-- wli

--- wli-2.6.0-test11-37/arch/i386/kernel/traps.c	2003-11-26 12:43:09.000000000 -0800
+++ wli-2.6.0-test11-38/arch/i386/kernel/traps.c	2003-12-08 04:58:08.000000000 -0800
@@ -119,7 +119,7 @@ void show_trace_task(struct task_struct 
 	unsigned long esp = tsk->thread.esp;
 
 	/* User space on another CPU? */
-	if ((esp ^ (unsigned long)tsk->thread_info) & (PAGE_MASK<<1))
+	if ((esp ^ (unsigned long)tsk->thread_info) & ~(THREAD_SIZE - 1))
 		return;
 	show_trace(tsk, (unsigned long *)esp);
 }

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

* Re: 2.6.0-test11-wli-1
  2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
                   ` (3 preceding siblings ...)
  2003-12-08 13:57 ` 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-09 23:35 ` William Lee Irwin III
  2003-12-09 23:59   ` 2.6.0-test11-wli-1 Zwane Mwaikambo
  4 siblings, 1 reply; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-09 23:35 UTC (permalink / raw)
  To: linux-kernel

On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
> Successfully tested on a Thinkpad T21. Any feedback regarding
> performance would be very helpful. Desktop users should notice top(1)
> is faster, kernel hackers that kernel compiles are faster, and highmem
> users should see much less per-process lowmem overhead.

Bill Davidsen reported an issue where compiled kernel images aren't
properly distinguished from mainline kernels' by installation scripts.

The following patch should resolve this:


-- wli



diff -prauN wli-2.6.0-test11-37/Makefile wli-2.6.0-test11-38/Makefile
--- wli-2.6.0-test11-37/Makefile	2003-11-26 12:44:43.000000000 -0800
+++ wli-2.6.0-test11-38/Makefile	2003-12-09 15:32:53.000000000 -0800
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 0
-EXTRAVERSION = -test11
+EXTRAVERSION = -test11-wli-1
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"

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

* Re: 2.6.0-test11-wli-1
  2003-12-09 23:35 ` 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-09 23:59   ` Zwane Mwaikambo
  2003-12-11  1:42     ` 2.6.0-test11-wli-1 bill davidsen
  0 siblings, 1 reply; 13+ messages in thread
From: Zwane Mwaikambo @ 2003-12-09 23:59 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: linux-kernel

On Tue, 9 Dec 2003, William Lee Irwin III wrote:

> On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
> > Successfully tested on a Thinkpad T21. Any feedback regarding
> > performance would be very helpful. Desktop users should notice top(1)
> > is faster, kernel hackers that kernel compiles are faster, and highmem
> > users should see much less per-process lowmem overhead.
>
> Bill Davidsen reported an issue where compiled kernel images aren't
> properly distinguished from mainline kernels' by installation scripts.
>
> The following patch should resolve this:

Argh, i've been screaming about this for ages...

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

* Re: 2.6.0-test11-wli-1
  2003-12-09 23:59   ` 2.6.0-test11-wli-1 Zwane Mwaikambo
@ 2003-12-11  1:42     ` bill davidsen
  2003-12-11  2:10       ` 2.6.0-test11-wli-1 William Lee Irwin III
  0 siblings, 1 reply; 13+ messages in thread
From: bill davidsen @ 2003-12-11  1:42 UTC (permalink / raw)
  To: linux-kernel

In article <Pine.LNX.4.58.0312091859330.2313@montezuma.fsmlabs.com>,
Zwane Mwaikambo  <zwane@arm.linux.org.uk> wrote:
| On Tue, 9 Dec 2003, William Lee Irwin III wrote:
| 
| > On Thu, Dec 04, 2003 at 12:01:20PM -0800, William Lee Irwin III wrote:
| > > Successfully tested on a Thinkpad T21. Any feedback regarding
| > > performance would be very helpful. Desktop users should notice top(1)
| > > is faster, kernel hackers that kernel compiles are faster, and highmem
| > > users should see much less per-process lowmem overhead.
| >
| > Bill Davidsen reported an issue where compiled kernel images aren't
| > properly distinguished from mainline kernels' by installation scripts.
| >
| > The following patch should resolve this:
| 
| Argh, i've been screaming about this for ages...

Look, I'm a big boy now, I should be smart enough to *check* this,
because every once in a while other people (you know who you are) do it
too. My fault, I just noted it because other people may not be backed up
as well as I am and shoot their only working kernel.


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

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

* Re: 2.6.0-test11-wli-1
  2003-12-11  1:42     ` 2.6.0-test11-wli-1 bill davidsen
@ 2003-12-11  2:10       ` William Lee Irwin III
  2003-12-11  2:30         ` 2.6.0-test11-wli-1 Mike Fedyk
  0 siblings, 1 reply; 13+ messages in thread
From: William Lee Irwin III @ 2003-12-11  2:10 UTC (permalink / raw)
  To: bill davidsen; +Cc: linux-kernel

On Tue, 9 Dec 2003, William Lee Irwin III wrote:
>|> Bill Davidsen reported an issue where compiled kernel images aren't
>|> properly distinguished from mainline kernels' by installation scripts.
>|> The following patch should resolve this:

Zwane Mwaikambo  <zwane@arm.linux.org.uk> wrote:
>| Argh, i've been screaming about this for ages...

On Thu, Dec 11, 2003 at 01:42:00AM +0000, bill davidsen wrote:
> Look, I'm a big boy now, I should be smart enough to *check* this,
> because every once in a while other people (you know who you are) do it
> too. My fault, I just noted it because other people may not be backed up
> as well as I am and shoot their only working kernel.

You don't have to run into it to report it. =) At any rate, I hope it does
prevent confusion elsewhere.


-- wli

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

* Re: 2.6.0-test11-wli-1
  2003-12-11  2:10       ` 2.6.0-test11-wli-1 William Lee Irwin III
@ 2003-12-11  2:30         ` Mike Fedyk
  0 siblings, 0 replies; 13+ messages in thread
From: Mike Fedyk @ 2003-12-11  2:30 UTC (permalink / raw)
  To: William Lee Irwin III, bill davidsen, linux-kernel

On Wed, Dec 10, 2003 at 06:10:31PM -0800, William Lee Irwin III wrote:
> You don't have to run into it to report it. =) At any rate, I hope it does
> prevent confusion elsewhere.

Especially if there is a wli-2 or 3. :)

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

end of thread, other threads:[~2003-12-11  2:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-04 20:01 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-04 21:01 ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-04 22:58 ` 2.6.0-test11-wli-1 Muli Ben-Yehuda
2003-12-04 23:21   ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-05  8:14 ` 2.6.0-test11-wli-1 Hugang
2003-12-05  9:10   ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-08 13:57 ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-08 14:03   ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-09 23:35 ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-09 23:59   ` 2.6.0-test11-wli-1 Zwane Mwaikambo
2003-12-11  1:42     ` 2.6.0-test11-wli-1 bill davidsen
2003-12-11  2:10       ` 2.6.0-test11-wli-1 William Lee Irwin III
2003-12-11  2:30         ` 2.6.0-test11-wli-1 Mike Fedyk

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