* Re: 2.6.0-test9-mm4
2003-11-19 6:51 2.6.0-test9-mm4 Andrew Morton
@ 2003-11-19 9:02 ` William Lee Irwin III
2003-11-19 9:19 ` 2.6.0-test9-mm4 Andrew Morton
2003-11-19 11:13 ` 2.6.0-test9-mm4 Gene Heskett
2003-11-21 8:29 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2 siblings, 1 reply; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-19 9:02 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
On Tue, Nov 18, 2003 at 10:51:20PM -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test9/2.6.0-test9-mm4/
> . Several fixes against patches which are only in -mm at present.
> . Minor fixes which we'll queue for post-2.6.0.
> . The interactivity problems which the ACPI PM timer patch showed up
> should be fixed here - please sing out if not.
I'm not sure if this is within the scope of current efforts, but I
gave it a shot just to see how bad untangling it from highpmd and
O(1) buffered_rmqueue() was. It turns out it wasn't that hard.
The codebase (so to speak) has been in regular use since June, though
the port to -mm only lightly tested (basically testbooted on a laptop).
There is some minor core impact.
--
This patch utilizes the tlb.h hooks to perform highpte-compatible pte
cacheing. The a priori benefits are cache conservation, and the motive
(of course) redressing an apparent regression in functionality and/or
performance vs. 2.4.
vs. 2.6.0-test9-mm4
-- wli
diff -prauN mm4-2.6.0-test9-1/arch/i386/mm/init.c mm4-2.6.0-test9-2/arch/i386/mm/init.c
--- mm4-2.6.0-test9-1/arch/i386/mm/init.c 2003-11-19 00:07:03.000000000 -0800
+++ mm4-2.6.0-test9-2/arch/i386/mm/init.c 2003-11-19 00:09:43.000000000 -0800
@@ -465,7 +465,7 @@ void __init mem_init(void)
/* this will put all low memory onto the freelists */
totalram_pages += __free_all_bootmem();
-
+ tlb_init();
reservedpages = 0;
for (tmp = 0; tmp < max_low_pfn; tmp++)
/*
diff -prauN mm4-2.6.0-test9-1/arch/i386/mm/pgtable.c mm4-2.6.0-test9-2/arch/i386/mm/pgtable.c
--- mm4-2.6.0-test9-1/arch/i386/mm/pgtable.c 2003-11-19 00:07:03.000000000 -0800
+++ mm4-2.6.0-test9-2/arch/i386/mm/pgtable.c 2003-11-19 00:22:54.000000000 -0800
@@ -139,18 +139,70 @@ pte_t *pte_alloc_one_kernel(struct mm_st
return pte;
}
-struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+void tlb_init(void)
{
- struct page *pte;
+ int cpu;
+ for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+ int zone;
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, cpu);
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ INIT_LIST_HEAD(&tlb->active_list[zone]);
+ INIT_LIST_HEAD(&tlb->ready_list[zone]);
+ }
+ }
+}
-#ifdef CONFIG_HIGHPTE
- pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0);
-#else
- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
-#endif
- if (pte)
- clear_highpage(pte);
- return pte;
+static inline struct page *pte_alloc_fresh(int gfp_mask)
+{
+ struct page *page = alloc_page(gfp_mask);
+ if (page) {
+ clear_highpage(page);
+ if (TestSetPagePTE(page))
+ BUG();
+ }
+ return page;
+}
+
+static inline int zone_high(struct zone *zone)
+{
+ if (!zone)
+ return 1;
+ else
+ return zone - zone->zone_pgdat->node_zones >= ZONE_HIGHMEM;
+}
+
+static inline struct page *pte_alloc_ready(int gfp_flags)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ unsigned long flags;
+ struct page *page = NULL;
+
+ smp_local_irq_save(flags);
+ if (tlb->nr_pte_ready) {
+ int z;
+ for (z = MAX_ZONE_ID - 1; z >= 0; --z) {
+ struct zone *zone = zone_table[z];
+ if (!(gfp_flags & __GFP_HIGHMEM) && zone_high(zone))
+ continue;
+ if (!list_empty(&tlb->ready_list[z]))
+ break;
+ }
+ page = list_entry(tlb->ready_list[z].next, struct page, list);
+ if (TestSetPagePTE(page))
+ BUG();
+ list_del(&page->list);
+ tlb->ready_count[z]--;
+ tlb->nr_pte_ready--;
+ }
+ smp_local_irq_restore(flags);
+ put_cpu();
+ return page;
+}
+
+struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+{
+ struct page *page = pte_alloc_ready(GFP_PTE);
+ return page ? page : pte_alloc_fresh(GFP_PTE);
}
void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags)
@@ -320,3 +372,64 @@ out_free:
kmem_cache_free(pgd_cache, pgd);
}
+static void shrink_cpu_pagetable_cache(void *__gfp_mask)
+{
+ int cpu, zone, high, gfp_mask = (int)gfp_mask;
+ unsigned long flags;
+ struct mmu_gather *tlb;
+
+ high = !!(gfp_mask & __GFP_HIGHMEM);
+ cpu = get_cpu();
+ tlb = &per_cpu(mmu_gathers, cpu);
+ smp_local_irq_save(flags);
+
+ if (tlb->nr_pte_active)
+ tlb_flush(tlb);
+
+ /* Can't flush nonpte from interrupt context */
+
+ if (tlb->nr_pte_active) {
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!high && zone_high(zone_table[zone]))
+ continue;
+ if (!tlb->active_count[zone])
+ continue;
+
+ list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]);
+ tlb->ready_count[zone] += tlb->active_count[zone];
+ tlb->active_count[zone] = 0;
+ }
+ tlb->nr_pte_ready += tlb->nr_pte_active;
+ tlb->nr_pte_active = 0;
+ }
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (list_empty(&tlb->ready_list[zone]))
+ continue;
+ if (!high && zone_high(zone_table[zone]))
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ tlb->ready_count[zone] = 0;
+ }
+
+ smp_local_irq_restore(flags);
+ put_cpu();
+}
+
+void shrink_pagetable_cache(int gfp_mask)
+{
+ BUG_ON(irqs_disabled());
+
+ preempt_disable();
+
+ /* disables interrupts appropriately internally */
+ shrink_cpu_pagetable_cache((void *)gfp_mask);
+
+ smp_call_function(shrink_cpu_pagetable_cache, (void *)gfp_mask, 1, 1);
+ preempt_enable();
+}
diff -prauN mm4-2.6.0-test9-1/include/asm-i386/pgalloc.h mm4-2.6.0-test9-2/include/asm-i386/pgalloc.h
--- mm4-2.6.0-test9-1/include/asm-i386/pgalloc.h 2003-10-25 11:42:51.000000000 -0700
+++ mm4-2.6.0-test9-2/include/asm-i386/pgalloc.h 2003-11-19 00:26:00.000000000 -0800
@@ -31,14 +31,6 @@ static inline void pte_free_kernel(pte_t
free_page((unsigned long)pte);
}
-static inline void pte_free(struct page *pte)
-{
- __free_page(pte);
-}
-
-
-#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
-
/*
* allocating and freeing a pmd is trivial: the 1-entry pmd is
* inside the pgd, so has no extra memory associated with it.
@@ -47,9 +39,26 @@ static inline void pte_free(struct page
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
#define pmd_free(x) do { } while (0)
-#define __pmd_free_tlb(tlb,x) do { } while (0)
#define pgd_populate(mm, pmd, pte) BUG()
#define check_pgt_cache() do { } while (0)
+#include <asm/tlb.h>
+
+static inline void pte_free(struct page *page)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb_remove_page(tlb, page);
+ put_cpu();
+}
+
+static inline void pte_free_tlb(struct mmu_gather *tlb, struct page *page)
+{
+ tlb_remove_page(tlb, page);
+}
+
+static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
+{
+}
+
#endif /* _I386_PGALLOC_H */
diff -prauN mm4-2.6.0-test9-1/include/asm-i386/pgtable.h mm4-2.6.0-test9-2/include/asm-i386/pgtable.h
--- mm4-2.6.0-test9-1/include/asm-i386/pgtable.h 2003-11-19 00:07:12.000000000 -0800
+++ mm4-2.6.0-test9-2/include/asm-i386/pgtable.h 2003-11-19 00:09:43.000000000 -0800
@@ -44,6 +44,9 @@ void pgtable_cache_init(void);
void paging_init(void);
void setup_identity_mappings(pgd_t *pgd_base, unsigned long start, unsigned long end);
+#define HAVE_ARCH_PAGETABLE_CACHE
+void shrink_pagetable_cache(int gfp_mask);
+
#endif /* !__ASSEMBLY__ */
/*
diff -prauN mm4-2.6.0-test9-1/include/asm-i386/system.h mm4-2.6.0-test9-2/include/asm-i386/system.h
--- mm4-2.6.0-test9-1/include/asm-i386/system.h 2003-10-25 11:42:45.000000000 -0700
+++ mm4-2.6.0-test9-2/include/asm-i386/system.h 2003-11-19 00:09:43.000000000 -0800
@@ -461,6 +461,18 @@ 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 mm4-2.6.0-test9-1/include/asm-i386/tlb.h mm4-2.6.0-test9-2/include/asm-i386/tlb.h
--- mm4-2.6.0-test9-1/include/asm-i386/tlb.h 2003-10-25 11:43:17.000000000 -0700
+++ mm4-2.6.0-test9-2/include/asm-i386/tlb.h 2003-11-19 00:23:35.000000000 -0800
@@ -1,10 +1,52 @@
#ifndef _I386_TLB_H
#define _I386_TLB_H
+/*
+ * include/asm-i386/tlb.h
+ * (C) June 2003 William Irwin, IBM
+ * Routines for pagetable cacheing and release.
+ */
+
+#include <linux/config.h>
+#include <linux/mm.h>
+#include <linux/swap.h>
+#include <linux/gfp.h>
+#include <linux/list.h>
+#include <linux/percpu.h>
+#include <asm/tlbflush.h>
+
+#ifdef CONFIG_HIGHPTE
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT|__GFP_HIGHMEM)
+#else
+#define GFP_PTE (GFP_KERNEL|__GFP_REPEAT)
+#endif
+
+#define PG_PTE PG_arch_1
+#define NR_PTE 128
+#define FREE_PTE_NR NR_PTE
+#define NR_NONPTE 512
+#define MAX_ZONE_ID (MAX_NUMNODES * MAX_NR_ZONES)
+
+#define PagePTE(page) test_bit(PG_PTE, &(page)->flags)
+#define SetPagePTE(page) set_bit(PG_PTE, &(page)->flags)
+#define ClearPagePTE(page) clear_bit(PG_PTE, &(page)->flags)
+#define TestSetPagePTE(page) test_and_set_bit(PG_PTE, &(page)->flags)
+#define TestClearPagePTE(page) test_and_clear_bit(PG_PTE, &(page)->flags)
+#define PageZoneID(page) ((page)->flags >> ZONE_SHIFT)
/*
- * x86 doesn't need any special per-pte or
- * per-vma handling..
+ * vmscan.c does smp_call_function() to shoot down cached pagetables under
+ * memory pressure.
*/
+struct mmu_gather {
+ struct mm_struct *mm;
+ int nr_pte_active, nr_pte_ready, nr_nonpte, need_flush, fullmm, freed;
+ struct list_head active_list[MAX_ZONE_ID], ready_list[MAX_ZONE_ID];
+ int active_count[MAX_ZONE_ID], ready_count[MAX_ZONE_ID];
+ struct page *nonpte[NR_NONPTE];
+};
+
+DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
+
#define tlb_start_vma(tlb, vma) do { } while (0)
#define tlb_end_vma(tlb, vma) do { } while (0)
#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
@@ -15,6 +57,119 @@
*/
#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
-#include <asm-generic/tlb.h>
+void tlb_init(void);
-#endif
+static inline
+struct mmu_gather *tlb_gather_mmu(struct mm_struct *mm, unsigned int flush)
+{
+ struct mmu_gather *tlb = &per_cpu(mmu_gathers, get_cpu());
+ tlb->mm = mm;
+ tlb->fullmm = flush;
+ tlb->freed = 0;
+ put_cpu();
+ return tlb;
+}
+
+static inline
+void tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *pte, unsigned long addr)
+{
+ tlb->need_flush = 1;
+}
+
+static inline
+void tlb_flush_ready(struct mmu_gather *tlb)
+{
+ int zone;
+
+ for (zone = 0; tlb->nr_pte_ready >= NR_PTE && zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->ready_count[zone])
+ continue;
+
+ free_pages_bulk(zone_table[zone],
+ tlb->ready_count[zone],
+ &tlb->ready_list[zone],
+ 0);
+ tlb->nr_pte_ready -= tlb->ready_count[zone];
+ tlb->ready_count[zone] = 0;
+ }
+}
+
+static inline
+void tlb_flush_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ int zone;
+ unsigned long flags;
+
+ if (!tlb->need_flush && tlb->nr_nonpte < NR_NONPTE)
+ return;
+
+ tlb->need_flush = 0;
+ tlb_flush(tlb);
+
+ smp_local_irq_save(flags);
+
+ if (tlb->nr_nonpte) {
+ free_pages_and_swap_cache(tlb->nonpte, tlb->nr_nonpte);
+ tlb->nr_nonpte = 0;
+ }
+
+ for (zone = 0; zone < MAX_ZONE_ID; ++zone) {
+ if (!tlb->active_count[zone])
+ continue;
+
+ list_splice_init(&tlb->active_list[zone], &tlb->ready_list[zone]);
+ tlb->ready_count[zone] += tlb->active_count[zone];
+ tlb->active_count[zone] = 0;
+ }
+ tlb->nr_pte_ready += tlb->nr_pte_active;
+ tlb->nr_pte_active = 0;
+ if (tlb->nr_pte_ready >= NR_PTE)
+ tlb_flush_ready(tlb);
+
+ smp_local_irq_restore(flags);
+}
+
+static inline
+void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+{
+ if (tlb->mm->rss >= tlb->freed)
+ tlb->mm->rss -= tlb->freed;
+ else
+ tlb->mm->rss = 0;
+ tlb_flush_mmu(tlb, start, end);
+}
+
+static inline
+void tlb_remove_nonpte_page(struct mmu_gather *tlb, struct page *page)
+{
+ tlb->nonpte[tlb->nr_nonpte] = page;
+ tlb->nr_nonpte++;
+ if (tlb->nr_nonpte >= NR_NONPTE)
+ tlb_flush_mmu(tlb, 0, 0);
+}
+
+static inline
+void tlb_remove_pte_page(struct mmu_gather *tlb, struct page *page)
+{
+ int zone = PageZoneID(page);
+ ClearPagePTE(page);
+ tlb->nr_pte_active++;
+ tlb->active_count[zone]++;
+ list_add(&page->list, &tlb->active_list[zone]);
+}
+
+static inline
+void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
+{
+ unsigned long flags;
+
+ smp_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);
+}
+
+#endif /* _I386_TLB_H */
diff -prauN mm4-2.6.0-test9-1/include/linux/gfp.h mm4-2.6.0-test9-2/include/linux/gfp.h
--- mm4-2.6.0-test9-1/include/linux/gfp.h 2003-10-25 11:43:12.000000000 -0700
+++ mm4-2.6.0-test9-2/include/linux/gfp.h 2003-11-19 00:14:24.000000000 -0800
@@ -79,6 +79,7 @@ static inline struct page * alloc_pages_
extern unsigned long FASTCALL(__get_free_pages(unsigned int gfp_mask, unsigned int order));
extern unsigned long FASTCALL(get_zeroed_page(unsigned int gfp_mask));
+int free_pages_bulk(struct zone *zone, int count, struct list_head *list, unsigned int order);
#define __get_free_page(gfp_mask) \
__get_free_pages((gfp_mask),0)
diff -prauN mm4-2.6.0-test9-1/mm/page_alloc.c mm4-2.6.0-test9-2/mm/page_alloc.c
--- mm4-2.6.0-test9-1/mm/page_alloc.c 2003-11-19 00:07:15.000000000 -0800
+++ mm4-2.6.0-test9-2/mm/page_alloc.c 2003-11-19 00:13:11.000000000 -0800
@@ -238,8 +238,7 @@ static inline void free_pages_check(cons
* And clear the zone's pages_scanned counter, to hold off the "all pages are
* pinned" detection logic.
*/
-static int
-free_pages_bulk(struct zone *zone, int count,
+int free_pages_bulk(struct zone *zone, int count,
struct list_head *list, unsigned int order)
{
unsigned long mask, flags;
diff -prauN mm4-2.6.0-test9-1/mm/vmscan.c mm4-2.6.0-test9-2/mm/vmscan.c
--- mm4-2.6.0-test9-1/mm/vmscan.c 2003-11-19 00:07:15.000000000 -0800
+++ mm4-2.6.0-test9-2/mm/vmscan.c 2003-11-19 00:09:43.000000000 -0800
@@ -837,6 +837,10 @@ 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.
@@ -890,6 +894,9 @@ 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) {
@@ -981,8 +988,10 @@ static int balance_pgdat(pg_data_t *pgda
}
if (all_zones_ok)
break;
- if (to_free > 0)
+ if (to_free > 0) {
+ shrink_pagetable_cache(GFP_HIGHUSER);
blk_congestion_wait(WRITE, HZ/10);
+ }
}
for (i = 0; i < pgdat->nr_zones; i++) {
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-19 9:02 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-19 9:19 ` Andrew Morton
2003-11-19 9:33 ` 2.6.0-test9-mm4 William Lee Irwin III
0 siblings, 1 reply; 18+ messages in thread
From: Andrew Morton @ 2003-11-19 9:19 UTC (permalink / raw)
To: William Lee Irwin III; +Cc: linux-kernel, linux-mm
William Lee Irwin III <wli@holomorphy.com> wrote:
>
> On Tue, Nov 18, 2003 at 10:51:20PM -0800, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test9/2.6.0-test9-mm4/
> > . Several fixes against patches which are only in -mm at present.
> > . Minor fixes which we'll queue for post-2.6.0.
> > . The interactivity problems which the ACPI PM timer patch showed up
> > should be fixed here - please sing out if not.
>
> I'm not sure if this is within the scope of current efforts, but I
> gave it a shot just to see how bad untangling it from highpmd and
> O(1) buffered_rmqueue() was. It turns out it wasn't that hard.
>
> The codebase (so to speak) has been in regular use since June, though
> the port to -mm only lightly tested (basically testbooted on a laptop).
Any performance numbers?
> There is some minor core impact.
hm, big.
> +#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 */
Interesting.
> @@ -890,6 +894,9 @@ int try_to_free_pages(struct zone *cz,
> */
> wakeup_bdflush(total_scanned);
>
> + /* shoot down some pagetable caches before napping */
> + shrink_pagetable_cache(gfp_mask);
Maybe this could hook into the shrink_slab() mechanism? There's actually
nothing slab-specific about shrink_slab().
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-19 9:19 ` 2.6.0-test9-mm4 Andrew Morton
@ 2003-11-19 9:33 ` William Lee Irwin III
2003-11-19 10:13 ` 2.6.0-test9-mm4 William Lee Irwin III
0 siblings, 1 reply; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-19 9:33 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-mm
William Lee Irwin III <wli@holomorphy.com> wrote:
>> I'm not sure if this is within the scope of current efforts, but I
>> gave it a shot just to see how bad untangling it from highpmd and
>> O(1) buffered_rmqueue() was. It turns out it wasn't that hard.
>> The codebase (so to speak) has been in regular use since June, though
>> the port to -mm only lightly tested (basically testbooted on a laptop).
On Wed, Nov 19, 2003 at 01:19:51AM -0800, Andrew Morton wrote:
> Any performance numbers?
I've not done rigorous benchmarking of this, no. Presumably
microbenchmarks that utilize the pte cache without thrashing it would
save themselves one page zeroing per pagetable page after the first
iteration unless there's a bug in the cache flushing logic.
William Lee Irwin III <wli@holomorphy.com> wrote:
>> +#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 */
On Wed, Nov 19, 2003 at 01:19:51AM -0800, Andrew Morton wrote:
> Interesting.
This was a micro-optimization for UP; the SMP case needs to protect
against reentry via interrupts due to smp_call_function(). UP can
just disable preemption. In principle, the two cases could be made
uniform at the cost of disabling interrupts unnecessarily on UP.
William Lee Irwin III <wli@holomorphy.com> wrote:
>> @@ -890,6 +894,9 @@ int try_to_free_pages(struct zone *cz,
>> */
>> wakeup_bdflush(total_scanned);
>>
>> + /* shoot down some pagetable caches before napping */
>> + shrink_pagetable_cache(gfp_mask);
On Wed, Nov 19, 2003 at 01:19:51AM -0800, Andrew Morton wrote:
> Maybe this could hook into the shrink_slab() mechanism? There's actually
> nothing slab-specific about shrink_slab().
There are some bootstrap ordering issues, but they're tractable. One
oddity is that in the highpte case, shrink_slab() will be skipped, but
the pagetable cache highmem-allocated. I'm not sure whether that's
important or not, but I erred on the side of caution.
Maybe I should slap a copyright down on arch/i386/mm/pgtable.c; I
appear to have written a substantial chunk of the code in there, too.
-- wli
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-19 9:33 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-19 10:13 ` William Lee Irwin III
2003-11-19 10:34 ` 2.6.0-test9-mm4 William Lee Irwin III
0 siblings, 1 reply; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-19 10:13 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
William Lee Irwin III <wli@holomorphy.com> wrote:
>>> +#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
[...]
On Wed, Nov 19, 2003 at 01:19:51AM -0800, Andrew Morton wrote:
>> Interesting.
On Wed, Nov 19, 2003 at 01:33:40AM -0800, William Lee Irwin III wrote:
> This was a micro-optimization for UP; the SMP case needs to protect
> against reentry via interrupts due to smp_call_function(). UP can
> just disable preemption. In principle, the two cases could be made
> uniform at the cost of disabling interrupts unnecessarily on UP.
The following, incremental atop the first, removes the smp_local_irq_*()
macros.
-- wli
diff -prauN mm4-2.6.0-test9-2/arch/i386/mm/pgtable.c mm4-2.6.0-test9-3/arch/i386/mm/pgtable.c
--- mm4-2.6.0-test9-2/arch/i386/mm/pgtable.c 2003-11-19 00:22:54.000000000 -0800
+++ mm4-2.6.0-test9-3/arch/i386/mm/pgtable.c 2003-11-19 02:07:13.000000000 -0800
@@ -177,7 +177,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) {
@@ -194,7 +194,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;
}
@@ -381,7 +381,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_flush(tlb);
@@ -417,7 +417,7 @@ static void shrink_cpu_pagetable_cache(v
tlb->ready_count[zone] = 0;
}
- smp_local_irq_restore(flags);
+ local_irq_restore(flags);
put_cpu();
}
diff -prauN mm4-2.6.0-test9-2/include/asm-i386/system.h mm4-2.6.0-test9-3/include/asm-i386/system.h
--- mm4-2.6.0-test9-2/include/asm-i386/system.h 2003-11-19 00:09:43.000000000 -0800
+++ mm4-2.6.0-test9-3/include/asm-i386/system.h 2003-11-19 02:06:11.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 mm4-2.6.0-test9-2/include/asm-i386/tlb.h mm4-2.6.0-test9-3/include/asm-i386/tlb.h
--- mm4-2.6.0-test9-2/include/asm-i386/tlb.h 2003-11-19 00:23:35.000000000 -0800
+++ mm4-2.6.0-test9-3/include/asm-i386/tlb.h 2003-11-19 02:06:58.000000000 -0800
@@ -106,7 +106,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);
@@ -126,7 +126,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
@@ -163,13 +163,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 */
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-19 10:13 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-19 10:34 ` William Lee Irwin III
2003-11-19 10:50 ` 2.6.0-test9-mm4 William Lee Irwin III
0 siblings, 1 reply; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-19 10:34 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
On Wed, Nov 19, 2003 at 01:33:40AM -0800, William Lee Irwin III wrote:
>> This was a micro-optimization for UP; the SMP case needs to protect
>> against reentry via interrupts due to smp_call_function(). UP can
>> just disable preemption. In principle, the two cases could be made
>> uniform at the cost of disabling interrupts unnecessarily on UP.
On Wed, Nov 19, 2003 at 02:13:22AM -0800, William Lee Irwin III wrote:
> The following, incremental atop the first, removes the smp_local_irq_*()
> macros.
The following, incremental atop the smp_local_irq_*() removal, turns
shrink_pagetable_cache() into a set_shrinker()-registered shrinker_t.
I'm not entirely sure how good an idea this is given my prior remarks
about the vmscan.c code skipping shrink_slab() under highmem pressure.
Maybe the proper solution is teaching true slab shrinkers to honor
the gfp_mask argument?
This is also untested (apart from compiletesting).
-- wli
diff -prauN mm4-2.6.0-test9-3/arch/i386/mm/pgtable.c mm4-2.6.0-test9-4/arch/i386/mm/pgtable.c
--- mm4-2.6.0-test9-3/arch/i386/mm/pgtable.c 2003-11-19 02:07:13.000000000 -0800
+++ mm4-2.6.0-test9-4/arch/i386/mm/pgtable.c 2003-11-19 02:26:04.000000000 -0800
@@ -13,6 +13,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>
@@ -421,7 +422,7 @@ static void shrink_cpu_pagetable_cache(v
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());
@@ -432,4 +433,13 @@ 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);
diff -prauN mm4-2.6.0-test9-3/include/asm-i386/pgtable.h mm4-2.6.0-test9-4/include/asm-i386/pgtable.h
--- mm4-2.6.0-test9-3/include/asm-i386/pgtable.h 2003-11-19 00:09:43.000000000 -0800
+++ mm4-2.6.0-test9-4/include/asm-i386/pgtable.h 2003-11-19 02:24:14.000000000 -0800
@@ -44,9 +44,6 @@ void pgtable_cache_init(void);
void paging_init(void);
void setup_identity_mappings(pgd_t *pgd_base, unsigned long start, unsigned long end);
-#define HAVE_ARCH_PAGETABLE_CACHE
-void shrink_pagetable_cache(int gfp_mask);
-
#endif /* !__ASSEMBLY__ */
/*
diff -prauN mm4-2.6.0-test9-3/mm/vmscan.c mm4-2.6.0-test9-4/mm/vmscan.c
--- mm4-2.6.0-test9-3/mm/vmscan.c 2003-11-19 00:09:43.000000000 -0800
+++ mm4-2.6.0-test9-4/mm/vmscan.c 2003-11-19 02:15:43.000000000 -0800
@@ -838,10 +838,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.
*
@@ -894,9 +890,6 @@ 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) {
@@ -988,10 +981,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] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-19 10:34 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-19 10:50 ` William Lee Irwin III
0 siblings, 0 replies; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-19 10:50 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
On Wed, Nov 19, 2003 at 02:34:19AM -0800, William Lee Irwin III wrote:
> The following, incremental atop the smp_local_irq_*() removal, turns
> shrink_pagetable_cache() into a set_shrinker()-registered shrinker_t.
> I'm not entirely sure how good an idea this is given my prior remarks
> about the vmscan.c code skipping shrink_slab() under highmem pressure.
> Maybe the proper solution is teaching true slab shrinkers to honor
> the gfp_mask argument?
> This is also untested (apart from compiletesting).
If any of this goes anywhere, I probably deserve a wee bit of credit
for getting it done (well, I did put some time into it). Here's me
patting myself on the back, incremental atop the previous two.
-- wli
diff -prauN mm4-2.6.0-test9-4/arch/i386/mm/pgtable.c mm4-2.6.0-test9-5/arch/i386/mm/pgtable.c
--- mm4-2.6.0-test9-4/arch/i386/mm/pgtable.c 2003-11-19 02:26:04.000000000 -0800
+++ mm4-2.6.0-test9-5/arch/i386/mm/pgtable.c 2003-11-19 02:46:50.000000000 -0800
@@ -1,5 +1,6 @@
/*
* linux/arch/i386/mm/pgtable.c
+ * highpte-compatible pte cacheing, William Irwin, IBM, June 2003
*/
#include <linux/config.h>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-19 6:51 2.6.0-test9-mm4 Andrew Morton
2003-11-19 9:02 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-19 11:13 ` Gene Heskett
2003-11-21 8:29 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2 siblings, 0 replies; 18+ messages in thread
From: Gene Heskett @ 2003-11-19 11:13 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, linux-mm
On Wednesday 19 November 2003 01:51, Andrew Morton wrote:
>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-
>test9/2.6.0-test9-mm4/
>
>
>. Several fixes against patches which are only in -mm at present.
>
>. Minor fixes which we'll queue for post-2.6.0.
>
>. The interactivity problems which the ACPI PM timer patch showed up
> should be fixed here - please sing out if not.
>
Here, I've rebooted to various elevators and run each for at least a
day, and for mm3, I'd have to say that the diffs are tolerable, but
the smoothest, most responsive is the deadline version. as still
gives an occasional 20 millisecond stutter, and cfq might be 10
milliseconds. Even as is a far cry from the near show stopper 15 to
20 second hangs of the performance in the later 2.4's. Great work
guys!
[...]
--
Cheers, Gene
AMD K6-III@500mhz 320M
Athlon1600XP@1400mhz 512M
99.27% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attornies please note, additions to this message
by Gene Heskett are:
Copyright 2003 by Maurice Eugene Heskett, all rights reserved.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-19 6:51 2.6.0-test9-mm4 Andrew Morton
2003-11-19 9:02 ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-19 11:13 ` 2.6.0-test9-mm4 Gene Heskett
@ 2003-11-21 8:29 ` Prakash K. Cheemplavam
2003-11-21 8:41 ` 2.6.0-test9-mm4 Andrew Morton
` (2 more replies)
2 siblings, 3 replies; 18+ messages in thread
From: Prakash K. Cheemplavam @ 2003-11-21 8:29 UTC (permalink / raw)
To: Andrew Morton, lkml
DMESG gives me following:
Debug: sleeping function called from invalid context at mm/slab.c:1868
in_atomic():1, irqs_disabled():0
Call Trace:
[<c0120fbb>] __might_sleep+0xab/0xd0
[<c0144fa5>] kmem_cache_alloc+0x65/0x70
[<c0155161>] __get_vm_area+0x21/0xf0
[<c0155263>] get_vm_area+0x33/0x40
[<c011df03>] __ioremap+0xb3/0x100
[<c011df79>] ioremap_nocache+0x29/0xb0
[<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
[<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
[<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
[<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
[<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
[<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
[<c0164b40>] exact_match+0x0/0x10
[<c0164941>] chrdev_open+0xf1/0x220
[<c01aa332>] devfs_open+0xe2/0xf0
[<c0159f32>] dentry_open+0x152/0x270
[<c0159ddb>] filp_open+0x5b/0x60
[<c015a2c3>] sys_open+0x53/0x90
[<c041f532>] sysenter_past_esp+0x43/0x65
Debug: sleeping function called from invalid context at mm/slab.c:1868
in_atomic():1, irqs_disabled():0
Call Trace:
[<c0120fbb>] __might_sleep+0xab/0xd0
[<c0144fa5>] kmem_cache_alloc+0x65/0x70
[<c0155161>] __get_vm_area+0x21/0xf0
[<c0155263>] get_vm_area+0x33/0x40
[<c011df03>] __ioremap+0xb3/0x100
[<c011df79>] ioremap_nocache+0x29/0xb0
[<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
[<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
[<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
[<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
[<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
[<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
[<c0164c82>] cdev_get+0x52/0xb0
[<c0164941>] chrdev_open+0xf1/0x220
[<c01aa332>] devfs_open+0xe2/0xf0
[<c0159f32>] dentry_open+0x152/0x270
[<c0159ddb>] filp_open+0x5b/0x60
[<c015a2c3>] sys_open+0x53/0x90
[<c041f532>] sysenter_past_esp+0x43/0x65
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
------------[ cut here ]------------
kernel BUG at arch/i386/mm/fault.c:357!
invalid operand: 0000 [#1]
PREEMPT
CPU: 0
EIP: 0060:[<c011da40>] Tainted: PF VLI
EFLAGS: 00210293
EIP is at do_page_fault+0x3a0/0x53a
eax: f6415dc0 ebx: f6415dc0 ecx: 00000000 edx: f6415dc0
esi: f6415de0 edi: f69f9180 ebp: f6c3dfb4 esp: f6c3df0c
ds: 007b es: 007b ss: 0068
Process artsd (pid: 3742, threadinfo=f6c3c000 task=f63e5980)
Stack: f6415dc0 f69f9180 40002004 00000001 00000001 40002004 f63e5980
00000000
00000001 00030002 bfffeca0 f7d13840 f6c3df90 c038b287 f7d13840
bfffeca0
bfffeca0 f6c3df6c f6c3df74 f9a589b9 00000000 f6c3df6c f7d85e28
f6c3dfc4
Call Trace:
[<c038b287>] snd_pcm_playback_ioctl1+0x57/0x4a0
[<f9a589b9>] nv_kern_isr+0x25/0x5c [nvidia]
[<c010d80b>] handle_IRQ_event+0x3b/0x70
[<c016de9e>] sys_ioctl+0xbe/0x2a0
[<c011d6a0>] do_page_fault+0x0/0x53a
[<c041f733>] error_code+0x2f/0x38
Code: 8a 8b 85 70 ff ff ff c7 04 24 14 7d 43 c0 05 02 03 00 00 89 44 24
04 e8 4f 61 00 00 f6 45 0c 04 0f 84 85 fd ff ff e9 57 fe ff ff <0f> 0b
65 01 2c 7d 43 c0 8b 55 08 f6 42 32 02 74 27 8b 8d 6c ff
------------[ cut here ]------------
kernel BUG at arch/i386/mm/fault.c:357!
invalid operand: 0000 [#2]
PREEMPT
CPU: 0
EIP: 0060:[<c011da40>] Tainted: PF VLI
EFLAGS: 00210293
EIP is at do_page_fault+0x3a0/0x53a
eax: f64154c0 ebx: f64154c0 ecx: 00000000 edx: f64154c0
esi: f64154e0 edi: f5f01580 ebp: f6183fb4 esp: f6183f0c
ds: 007b es: 007b ss: 0068
Process aplay (pid: 3769, threadinfo=f6182000 task=f6199300)
Stack: f64154c0 f5f01580 40001004 00000001 00000001 40001004 f6199300
40002000
0000e000 00030002 c014df8f f64154c0 f5f015c0 f5f01580 f5f015a0
f5f01598
000800fb f5ac0d40 00000000 00000000 00000000 00000000 001000fb
f7cd6800
Call Trace:
[<c014df8f>] do_mmap_pgoff+0x35f/0x670
[<c0112146>] sys_mmap2+0xc6/0xd0
[<c011d6a0>] do_page_fault+0x0/0x53a
[<c041f733>] error_code+0x2f/0x38
Code: 8a 8b 85 70 ff ff ff c7 04 24 14 7d 43 c0 05 02 03 00 00 89 44 24
04 e8 4f 61 00 00 f6 45 0c 04 0f 84 85 fd ff ff e9 57 fe ff ff <0f> 0b
65 01 2c 7d 43 c0 8b 55 08 f6 42 32 02 74 27 8b 8d 6c ff
It could be that also prvieous mm versions produced this, but only
lately I set the first value of /proc/sys/kernel/printk to 6 instead of 1.
Another problem is when I reboot, just before the message "remounting
readonly" (I think) I get two call traces regarding fault in
inculde/asm/atomic.h and it seems some problem with ntfs driver, as this
appears various times there. (I don't know how to catch the output just
before rebooting..)
bash-2.05b$ dmesg
ting delay loop... 1888.25 BogoMIPS
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (ungzip failed); looks like an
initrd
Freeing initrd memory: 304k freed
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(tm) stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfb420, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20031002
ACPI: IRQ 9 was Edge Triggered, setting to Level Triggerd
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LAPU] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [APC1] (IRQs *16)
ACPI: PCI Interrupt Link [APC2] (IRQs 17)
ACPI: PCI Interrupt Link [APC3] (IRQs *18)
ACPI: PCI Interrupt Link [APC4] (IRQs *19)
ACPI: PCI Interrupt Link [APCE] (IRQs 16)
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCS] (IRQs *23)
ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22)
Linux Plug and Play Support v0.97 (c) Adam Belay
SCSI subsystem initialized
drivers/usb/core/usb.c: registered new driver usbfs
drivers/usb/core/usb.c: registered new driver hub
ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 10
ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 11
ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 5
ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 10
ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 10
ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 10
ACPI: PCI Interrupt Link [LACI] enabled at IRQ 5
ACPI: PCI Interrupt Link [LFIR] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5
ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 11
PCI: Using ACPI for IRQ routing
PCI: if you experience problems, try using option 'pci=noacpi' or even
'acpi=off'
vesafb: framebuffer at 0xc0000000, mapped to 0xf8808000, size 16384k
vesafb: mode is 1280x1024x16, linelength=2560, pages=1
vesafb: protected mode interface info at c000:ea60
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
fb0: VESA VGA frame buffer device
Machine check exception polling timer started.
IA-32 Microcode Update Driver: v1.13 <tigran@veritas.com>
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
apm: overridden by ACPI.
highmem bounce pool size: 64 pages
devfs: v1.22 (20021013) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.5 [Flags: R/W].
udf: registering filesystem
SGI XFS for Linux with large block numbers, no debug enabled
ACPI: Power Button (FF) [PWRF]
ACPI: Fan [FAN] (on)
ACPI: Processor [CPU0] (supports C1)
ACPI: Thermal Zone [THRM] (40 C)
Console: switching to colour frame buffer device 160x64
pty: 256 Unix98 ptys configured
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Using cfq io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.18.
PCI: Setting latency timer of device 0000:00:04.0 to 64
eth0: forcedeth.c: subsystem: 0147b:1c00
Linux video capture interface: v1.00
DriverInitialize MAC address = ff:ff:ff:ff:ff:ff:00:00
DriverInitialize key =
ff ff ff ff
ff ff ff ff
ff ff ff ff
ff ff ff ff
DVB: registering new adapter (Technisat SkyStar2 driver).
DVB: registering frontend 0:0 (Zarlink MT312)...
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE2: IDE controller at PCI slot 0000:00:09.0
NFORCE2: chipset revision 162
NFORCE2: not 100% native mode: will probe irqs later
NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: _NEC DV-5800A, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: LITE-ON LTR-16102B, ATAPI CD/DVD-ROM drive
hdd: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive
ide1 at 0x170-0x177,0x376 on irq 15
SiI3112 Serial ATA: IDE controller at PCI slot 0000:01:0b.0
SiI3112 Serial ATA: chipset revision 2
SiI3112 Serial ATA: 100% native mode on irq 11
ide2: MMIO-DMA at 0xf9844000-0xf9844007, BIOS settings: hde:pio,
hdf:pio
ide3: MMIO-DMA at 0xf9844008-0xf984400f, BIOS settings: hdg:pio,
hdh:pio
hde: SAMSUNG SP1614N, ATA DISK drive
ide2 at 0xf9844080-0xf9844087,0xf984408a on irq 11
hde: max request size: 7KiB
hde: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63,
UDMA(100)
/dev/ide/host2/bus0/target0/lun0: p1 p2 p3 < p5 p6 p7 p8 p9 >
hda: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
hdc: ATAPI 40X CD-ROM CD-R/RW drive, 2048kB Cache, DMA
ide-floppy driver 0.99.newide
hdd: No disk in drive
hdd: 98304kB, 32/64/96 CHS, 4096 kBps, 512 sector size, 2941 rpm
ohci1394: $Rev: 1045 $ Ben Collins <bcollins@debian.org>
PCI: Setting latency timer of device 0000:00:0d.0 to 64
ohci1394_0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[cc084000-cc0847ff] Max
Packet=[2048]
ohci1394_0: SelfID received outside of bus reset sequence
video1394: Installed video1394 module
raw1394: /dev/raw1394 device initialized
Console: switching to colour frame buffer device 160x64
ehci_hcd 0000:00:02.2: EHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.2 to 64
ehci_hcd 0000:00:02.2: irq 10, pci mem f984c000
ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1
PCI: cache line size of 64 is not supported by device 0000:00:02.2
ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-13
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
ohci_hcd: 2003 Oct 13 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd 0000:00:02.0: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.0 to 64
ohci_hcd 0000:00:02.0: irq 11, pci mem f984e000
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ohci_hcd 0000:00:02.1: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.1 to 64
ohci_hcd 0000:00:02.1: irq 5, pci mem f9850000
ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
drivers/usb/host/uhci-hcd.c: USB Universal Host Controller Interface
driver v2.1
drivers/usb/core/usb.c: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
drivers/usb/core/usb.c: registered new driver usb-storage
USB Mass Storage support registered.
drivers/usb/core/usb.c: registered new driver usbscanner
drivers/usb/image/scanner.c: 0.4.15:USB Scanner Driver
mice: PS/2 mouse device common for all mice
input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
serio: i8042 AUX port at 0x60,0x64 irq 12
input: AT Translated Set 2 keyboard on isa0060/serio0
serio: i8042 KBD port at 0x60,0x64 irq 1
I2O Core - (C) Copyright 1999 Red Hat Software
I2O: Event thread created as pid 16
i2o: Checking for PCI I2O controllers...
I2O configuration manager v 0.04.
(C) Copyright 1999 Red Hat Software
i2c /dev entries driver
i2c_adapter i2c-0: nForce2 SMBus adapter at 0x5000
i2c_adapter i2c-1: nForce2 SMBus adapter at 0x5100
ieee1394: Host added: ID:BUS[0-00:1023] GUID[000000508df0fbe3]
Advanced Linux Sound Architecture Driver Version 0.9.7 (Thu Sep 25
19:16:36 2003 UTC).
request_module: failed /sbin/modprobe -- snd-card-0. error = -16
PCI: Setting latency timer of device 0000:00:06.0 to 64
hub 2-0:1.0: new USB device on port 1, assigned address 2
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 2 if 0
alt 1 proto 2 vid 0x03F0 pid 0x1004
intel8x0_measure_ac97_clock: measured 49854 usecs
intel8x0: clocking to 47386
ALSA device list:
#0: NVidia nForce2 at 0xcc081000, irq 5
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI: (supports S0 S3 S4 S5)
UDF-fs DEBUG fs/udf/lowlevel.c:65:udf_get_last_session:
CDROMMULTISESSION not supported: rc=-22
UDF-fs DEBUG fs/udf/super.c:1544:udf_fill_super: Multi-session=0
UDF-fs DEBUG fs/udf/super.c:532:udf_vrs: Starting at sector 16 (2048
byte sectors)
UDF-fs: No VRS found
XFS mounting filesystem hde6
Ending clean XFS mount for filesystem: hde6
VFS: Mounted root (xfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 160k freed
NTFS volume version 3.1.
NTFS volume version 3.1.
nvidia: no version magic, tainting kernel.
nvidia: module license 'NVIDIA' taints kernel.
0: nvidia: loading NVIDIA Linux x86 nvidia.o Kernel Module 1.0-4496
Wed Jul 16 19:03:09 PDT 2003
Debug: sleeping function called from invalid context at mm/slab.c:1868
in_atomic():1, irqs_disabled():0
Call Trace:
[<c0120fbb>] __might_sleep+0xab/0xd0
[<c0144fa5>] kmem_cache_alloc+0x65/0x70
[<c0155161>] __get_vm_area+0x21/0xf0
[<c0155263>] get_vm_area+0x33/0x40
[<c011df03>] __ioremap+0xb3/0x100
[<c011df79>] ioremap_nocache+0x29/0xb0
[<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
[<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
[<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
[<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
[<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
[<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
[<c0164b40>] exact_match+0x0/0x10
[<c0164941>] chrdev_open+0xf1/0x220
[<c01aa332>] devfs_open+0xe2/0xf0
[<c0159f32>] dentry_open+0x152/0x270
[<c0159ddb>] filp_open+0x5b/0x60
[<c015a2c3>] sys_open+0x53/0x90
[<c041f532>] sysenter_past_esp+0x43/0x65
Debug: sleeping function called from invalid context at mm/slab.c:1868
in_atomic():1, irqs_disabled():0
Call Trace:
[<c0120fbb>] __might_sleep+0xab/0xd0
[<c0144fa5>] kmem_cache_alloc+0x65/0x70
[<c0155161>] __get_vm_area+0x21/0xf0
[<c0155263>] get_vm_area+0x33/0x40
[<c011df03>] __ioremap+0xb3/0x100
[<c011df79>] ioremap_nocache+0x29/0xb0
[<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
[<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
[<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
[<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
[<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
[<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
[<c0164c82>] cdev_get+0x52/0xb0
[<c0164941>] chrdev_open+0xf1/0x220
[<c01aa332>] devfs_open+0xe2/0xf0
[<c0159f32>] dentry_open+0x152/0x270
[<c0159ddb>] filp_open+0x5b/0x60
[<c015a2c3>] sys_open+0x53/0x90
[<c041f532>] sysenter_past_esp+0x43/0x65
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
------------[ cut here ]------------
kernel BUG at arch/i386/mm/fault.c:357!
invalid operand: 0000 [#1]
PREEMPT
CPU: 0
EIP: 0060:[<c011da40>] Tainted: PF VLI
EFLAGS: 00210293
EIP is at do_page_fault+0x3a0/0x53a
eax: f6415dc0 ebx: f6415dc0 ecx: 00000000 edx: f6415dc0
esi: f6415de0 edi: f69f9180 ebp: f6c3dfb4 esp: f6c3df0c
ds: 007b es: 007b ss: 0068
Process artsd (pid: 3742, threadinfo=f6c3c000 task=f63e5980)
Stack: f6415dc0 f69f9180 40002004 00000001 00000001 40002004 f63e5980
00000000
00000001 00030002 bfffeca0 f7d13840 f6c3df90 c038b287 f7d13840
bfffeca0
bfffeca0 f6c3df6c f6c3df74 f9a589b9 00000000 f6c3df6c f7d85e28
f6c3dfc4
Call Trace:
[<c038b287>] snd_pcm_playback_ioctl1+0x57/0x4a0
[<f9a589b9>] nv_kern_isr+0x25/0x5c [nvidia]
[<c010d80b>] handle_IRQ_event+0x3b/0x70
[<c016de9e>] sys_ioctl+0xbe/0x2a0
[<c011d6a0>] do_page_fault+0x0/0x53a
[<c041f733>] error_code+0x2f/0x38
Code: 8a 8b 85 70 ff ff ff c7 04 24 14 7d 43 c0 05 02 03 00 00 89 44 24
04 e8 4f 61 00 00 f6 45 0c 04 0f 84 85 fd ff ff e9 57 fe ff ff <0f> 0b
65 01 2c 7d 43 c0 8b 55 08 f6 42 32 02 74 27 8b 8d 6c ff
------------[ cut here ]------------
kernel BUG at arch/i386/mm/fault.c:357!
invalid operand: 0000 [#2]
PREEMPT
CPU: 0
EIP: 0060:[<c011da40>] Tainted: PF VLI
EFLAGS: 00210293
EIP is at do_page_fault+0x3a0/0x53a
eax: f64154c0 ebx: f64154c0 ecx: 00000000 edx: f64154c0
esi: f64154e0 edi: f5f01580 ebp: f6183fb4 esp: f6183f0c
ds: 007b es: 007b ss: 0068
Process aplay (pid: 3769, threadinfo=f6182000 task=f6199300)
Stack: f64154c0 f5f01580 40001004 00000001 00000001 40001004 f6199300
40002000
0000e000 00030002 c014df8f f64154c0 f5f015c0 f5f01580 f5f015a0
f5f01598
000800fb f5ac0d40 00000000 00000000 00000000 00000000 001000fb
f7cd6800
Call Trace:
[<c014df8f>] do_mmap_pgoff+0x35f/0x670
[<c0112146>] sys_mmap2+0xc6/0xd0
[<c011d6a0>] do_page_fault+0x0/0x53a
[<c041f733>] error_code+0x2f/0x38
Code: 8a 8b 85 70 ff ff ff c7 04 24 14 7d 43 c0 05 02 03 00 00 89 44 24
04 e8 4f 61 00 00 f6 45 0c 04 0f 84 85 fd ff ff e9 57 fe ff ff <0f> 0b
65 01 2c 7d 43 c0 8b 55 08 f6 42 32 02 74 27 8b 8d 6c ff
bash-2.05b$
bash-2.05b$ dmesg
ting delay loop... 1888.25 BogoMIPS
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (ungzip failed); looks like an
initrd
Freeing initrd memory: 304k freed
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(tm) stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfb420, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20031002
ACPI: IRQ 9 was Edge Triggered, setting to Level Triggerd
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LAPU] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [APC1] (IRQs *16)
ACPI: PCI Interrupt Link [APC2] (IRQs 17)
ACPI: PCI Interrupt Link [APC3] (IRQs *18)
ACPI: PCI Interrupt Link [APC4] (IRQs *19)
ACPI: PCI Interrupt Link [APCE] (IRQs 16)
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCS] (IRQs *23)
ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22)
Linux Plug and Play Support v0.97 (c) Adam Belay
SCSI subsystem initialized
drivers/usb/core/usb.c: registered new driver usbfs
drivers/usb/core/usb.c: registered new driver hub
ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 10
ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 11
ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 5
ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 10
ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 10
ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 10
ACPI: PCI Interrupt Link [LACI] enabled at IRQ 5
ACPI: PCI Interrupt Link [LFIR] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5
ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 11
PCI: Using ACPI for IRQ routing
PCI: if you experience problems, try using option 'pci=noacpi' or even
'acpi=off'
vesafb: framebuffer at 0xc0000000, mapped to 0xf8808000, size 16384k
vesafb: mode is 1280x1024x16, linelength=2560, pages=1
vesafb: protected mode interface info at c000:ea60
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
fb0: VESA VGA frame buffer device
Machine check exception polling timer started.
IA-32 Microcode Update Driver: v1.13 <tigran@veritas.com>
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
apm: overridden by ACPI.
highmem bounce pool size: 64 pages
devfs: v1.22 (20021013) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.5 [Flags: R/W].
udf: registering filesystem
SGI XFS for Linux with large block numbers, no debug enabled
ACPI: Power Button (FF) [PWRF]
ACPI: Fan [FAN] (on)
ACPI: Processor [CPU0] (supports C1)
ACPI: Thermal Zone [THRM] (40 C)
Console: switching to colour frame buffer device 160x64
pty: 256 Unix98 ptys configured
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Using cfq io scheduler
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.18.
PCI: Setting latency timer of device 0000:00:04.0 to 64
eth0: forcedeth.c: subsystem: 0147b:1c00
Linux video capture interface: v1.00
DriverInitialize MAC address = ff:ff:ff:ff:ff:ff:00:00
DriverInitialize key =
ff ff ff ff
ff ff ff ff
ff ff ff ff
ff ff ff ff
DVB: registering new adapter (Technisat SkyStar2 driver).
DVB: registering frontend 0:0 (Zarlink MT312)...
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE2: IDE controller at PCI slot 0000:00:09.0
NFORCE2: chipset revision 162
NFORCE2: not 100% native mode: will probe irqs later
NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: _NEC DV-5800A, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: LITE-ON LTR-16102B, ATAPI CD/DVD-ROM drive
hdd: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive
ide1 at 0x170-0x177,0x376 on irq 15
SiI3112 Serial ATA: IDE controller at PCI slot 0000:01:0b.0
SiI3112 Serial ATA: chipset revision 2
SiI3112 Serial ATA: 100% native mode on irq 11
ide2: MMIO-DMA at 0xf9844000-0xf9844007, BIOS settings: hde:pio,
hdf:pio
ide3: MMIO-DMA at 0xf9844008-0xf984400f, BIOS settings: hdg:pio,
hdh:pio
hde: SAMSUNG SP1614N, ATA DISK drive
ide2 at 0xf9844080-0xf9844087,0xf984408a on irq 11
hde: max request size: 7KiB
hde: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63,
UDMA(100)
/dev/ide/host2/bus0/target0/lun0: p1 p2 p3 < p5 p6 p7 p8 p9 >
hda: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
hdc: ATAPI 40X CD-ROM CD-R/RW drive, 2048kB Cache, DMA
ide-floppy driver 0.99.newide
hdd: No disk in drive
hdd: 98304kB, 32/64/96 CHS, 4096 kBps, 512 sector size, 2941 rpm
ohci1394: $Rev: 1045 $ Ben Collins <bcollins@debian.org>
PCI: Setting latency timer of device 0000:00:0d.0 to 64
ohci1394_0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[cc084000-cc0847ff] Max
Packet=[2048]
ohci1394_0: SelfID received outside of bus reset sequence
video1394: Installed video1394 module
raw1394: /dev/raw1394 device initialized
Console: switching to colour frame buffer device 160x64
ehci_hcd 0000:00:02.2: EHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.2 to 64
ehci_hcd 0000:00:02.2: irq 10, pci mem f984c000
ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1
PCI: cache line size of 64 is not supported by device 0000:00:02.2
ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-13
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
ohci_hcd: 2003 Oct 13 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd 0000:00:02.0: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.0 to 64
ohci_hcd 0000:00:02.0: irq 11, pci mem f984e000
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ohci_hcd 0000:00:02.1: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.1 to 64
ohci_hcd 0000:00:02.1: irq 5, pci mem f9850000
ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
drivers/usb/host/uhci-hcd.c: USB Universal Host Controller Interface
driver v2.1
drivers/usb/core/usb.c: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
drivers/usb/core/usb.c: registered new driver usb-storage
USB Mass Storage support registered.
drivers/usb/core/usb.c: registered new driver usbscanner
drivers/usb/image/scanner.c: 0.4.15:USB Scanner Driver
mice: PS/2 mouse device common for all mice
input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
serio: i8042 AUX port at 0x60,0x64 irq 12
input: AT Translated Set 2 keyboard on isa0060/serio0
serio: i8042 KBD port at 0x60,0x64 irq 1
I2O Core - (C) Copyright 1999 Red Hat Software
I2O: Event thread created as pid 16
i2o: Checking for PCI I2O controllers...
I2O configuration manager v 0.04.
(C) Copyright 1999 Red Hat Software
i2c /dev entries driver
i2c_adapter i2c-0: nForce2 SMBus adapter at 0x5000
i2c_adapter i2c-1: nForce2 SMBus adapter at 0x5100
ieee1394: Host added: ID:BUS[0-00:1023] GUID[000000508df0fbe3]
Advanced Linux Sound Architecture Driver Version 0.9.7 (Thu Sep 25
19:16:36 2003 UTC).
request_module: failed /sbin/modprobe -- snd-card-0. error = -16
PCI: Setting latency timer of device 0000:00:06.0 to 64
hub 2-0:1.0: new USB device on port 1, assigned address 2
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 2 if 0
alt 1 proto 2 vid 0x03F0 pid 0x1004
intel8x0_measure_ac97_clock: measured 49854 usecs
intel8x0: clocking to 47386
ALSA device list:
#0: NVidia nForce2 at 0xcc081000, irq 5
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI: (supports S0 S3 S4 S5)
UDF-fs DEBUG fs/udf/lowlevel.c:65:udf_get_last_session:
CDROMMULTISESSION not supported: rc=-22
UDF-fs DEBUG fs/udf/super.c:1544:udf_fill_super: Multi-session=0
UDF-fs DEBUG fs/udf/super.c:532:udf_vrs: Starting at sector 16 (2048
byte sectors)
UDF-fs: No VRS found
XFS mounting filesystem hde6
Ending clean XFS mount for filesystem: hde6
VFS: Mounted root (xfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 160k freed
NTFS volume version 3.1.
NTFS volume version 3.1.
nvidia: no version magic, tainting kernel.
nvidia: module license 'NVIDIA' taints kernel.
Prakash
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-21 8:29 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
@ 2003-11-21 8:41 ` Andrew Morton
2003-11-21 8:44 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21 8:43 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21 13:08 ` 2.6.0-test9-mm4 William Lee Irwin III
2 siblings, 1 reply; 18+ messages in thread
From: Andrew Morton @ 2003-11-21 8:41 UTC (permalink / raw)
To: Prakash K. Cheemplavam; +Cc: linux-kernel
"Prakash K. Cheemplavam" <prakashpublic@gmx.de> wrote:
>
> DMESG gives me following:
>
> Debug: sleeping function called from invalid context at mm/slab.c:1868
> in_atomic():1, irqs_disabled():0
> Call Trace:
> [<c0120fbb>] __might_sleep+0xab/0xd0
> [<c0144fa5>] kmem_cache_alloc+0x65/0x70
> [<c0155161>] __get_vm_area+0x21/0xf0
> [<c0155263>] get_vm_area+0x33/0x40
> [<c011df03>] __ioremap+0xb3/0x100
> [<c011df79>] ioremap_nocache+0x29/0xb0
> [<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
> [<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
> [<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
> [<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
> [<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
> [<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
> [<c0164b40>] exact_match+0x0/0x10
> [<c0164941>] chrdev_open+0xf1/0x220
> [<c01aa332>] devfs_open+0xe2/0xf0
> [<c0159f32>] dentry_open+0x152/0x270
> [<c0159ddb>] filp_open+0x5b/0x60
> [<c015a2c3>] sys_open+0x53/0x90
> [<c041f532>] sysenter_past_esp+0x43/0x65
That would be a locking error in the nvidia driver.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-21 8:41 ` 2.6.0-test9-mm4 Andrew Morton
@ 2003-11-21 8:44 ` Prakash K. Cheemplavam
2003-11-21 8:52 ` 2.6.0-test9-mm4 Andrew Morton
[not found] ` <200311210809.16049.edt@aei.ca>
0 siblings, 2 replies; 18+ messages in thread
From: Prakash K. Cheemplavam @ 2003-11-21 8:44 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
Andrew Morton wrote:
> "Prakash K. Cheemplavam" <prakashpublic@gmx.de> wrote:
>
>>DMESG gives me following:
>>
>> Debug: sleeping function called from invalid context at mm/slab.c:1868
>> in_atomic():1, irqs_disabled():0
>> Call Trace:
>> [<c0120fbb>] __might_sleep+0xab/0xd0
>> [<c0144fa5>] kmem_cache_alloc+0x65/0x70
>> [<c0155161>] __get_vm_area+0x21/0xf0
>> [<c0155263>] get_vm_area+0x33/0x40
>> [<c011df03>] __ioremap+0xb3/0x100
>> [<c011df79>] ioremap_nocache+0x29/0xb0
>> [<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
>> [<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
>> [<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
>> [<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
>> [<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
>> [<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
>> [<c0164b40>] exact_match+0x0/0x10
>> [<c0164941>] chrdev_open+0xf1/0x220
>> [<c01aa332>] devfs_open+0xe2/0xf0
>> [<c0159f32>] dentry_open+0x152/0x270
>> [<c0159ddb>] filp_open+0x5b/0x60
>> [<c015a2c3>] sys_open+0x53/0x90
>> [<c041f532>] sysenter_past_esp+0x43/0x65
>
>
> That would be a locking error in the nvidia driver.
What does that mean and how to get rid of it?
Prakash
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: 2.6.0-test9-mm4
2003-11-21 8:44 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
@ 2003-11-21 8:52 ` Andrew Morton
[not found] ` <200311210809.16049.edt@aei.ca>
1 sibling, 0 replies; 18+ messages in thread
From: Andrew Morton @ 2003-11-21 8:52 UTC (permalink / raw)
To: Prakash K. Cheemplavam; +Cc: linux-kernel
"Prakash K. Cheemplavam" <prakashpublic@gmx.de> wrote:
>
> Andrew Morton wrote:
> > "Prakash K. Cheemplavam" <prakashpublic@gmx.de> wrote:
> >
> >>DMESG gives me following:
> >>
> >> Debug: sleeping function called from invalid context at mm/slab.c:1868
> >> in_atomic():1, irqs_disabled():0
> >> Call Trace:
> >> [<c0120fbb>] __might_sleep+0xab/0xd0
> >> [<c0144fa5>] kmem_cache_alloc+0x65/0x70
> >> [<c0155161>] __get_vm_area+0x21/0xf0
> >> [<c0155263>] get_vm_area+0x33/0x40
> >> [<c011df03>] __ioremap+0xb3/0x100
> >> [<c011df79>] ioremap_nocache+0x29/0xb0
> >> [<f9a5ad87>] os_map_kernel_space+0x68/0x6c [nvidia]
> >> [<f9a6d377>] __nvsym00568+0x1f/0x2c [nvidia]
> >> [<f9a6f496>] __nvsym00775+0x6e/0xe0 [nvidia]
> >> [<f9a6f526>] __nvsym00781+0x1e/0x190 [nvidia]
> >> [<f9a70fac>] rm_init_adapter+0xc/0x10 [nvidia]
> >> [<f9a57dc9>] nv_kern_open+0xf3/0x228 [nvidia]
> >> [<c0164b40>] exact_match+0x0/0x10
> >> [<c0164941>] chrdev_open+0xf1/0x220
> >> [<c01aa332>] devfs_open+0xe2/0xf0
> >> [<c0159f32>] dentry_open+0x152/0x270
> >> [<c0159ddb>] filp_open+0x5b/0x60
> >> [<c015a2c3>] sys_open+0x53/0x90
> >> [<c041f532>] sysenter_past_esp+0x43/0x65
> >
> >
> > That would be a locking error in the nvidia driver.
>
> What does that mean and how to get rid of it?
>
Well if the bug is in the compilable part of the driver then someone can
fix it. Otherwise disable CONFIG_DEBUG_SPINLOCK_SLEEP and hope for the
best.
^ permalink raw reply [flat|nested] 18+ messages in thread[parent not found: <200311210809.16049.edt@aei.ca>]
* Re: 2.6.0-test9-mm4
2003-11-21 8:29 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21 8:41 ` 2.6.0-test9-mm4 Andrew Morton
@ 2003-11-21 8:43 ` Prakash K. Cheemplavam
2003-11-21 13:08 ` 2.6.0-test9-mm4 William Lee Irwin III
2 siblings, 0 replies; 18+ messages in thread
From: Prakash K. Cheemplavam @ 2003-11-21 8:43 UTC (permalink / raw)
To: Andrew Morton; +Cc: lkml
> Debug: sleeping function called from invalid context at mm/slab.c:1868
> in_atomic():1, irqs_disabled():0
> Call Trace:
[snip]
OK, I booted up mm3 based kernel and these errors do NOT appear. I
remember having had this problem once before but somehow got rid of this
by several recompilings of the kernel... Nevertheless it is a strange thing.
The other error on reboot also appears with mm3, but ONLY on reboot, but
not on halt, IIRC. It appears on unmounting and before remounting as
readonly. Something like atomic_dec_blah in atomic.h connected with ntfs.
Prakash
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-21 8:29 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21 8:41 ` 2.6.0-test9-mm4 Andrew Morton
2003-11-21 8:43 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
@ 2003-11-21 13:08 ` William Lee Irwin III
2003-11-21 13:58 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-24 21:26 ` 2.6.0-test9-mm4 bill davidsen
2 siblings, 2 replies; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-21 13:08 UTC (permalink / raw)
To: Prakash K. Cheemplavam; +Cc: Andrew Morton, lkml
On Fri, Nov 21, 2003 at 09:29:19AM +0100, Prakash K. Cheemplavam wrote:
> kernel BUG at arch/i386/mm/fault.c:357!
> invalid operand: 0000 [#1]
> PREEMPT
> CPU: 0
> EIP: 0060:[<c011da40>] Tainted: PF VLI
> EFLAGS: 00210293
> EIP is at do_page_fault+0x3a0/0x53a
> eax: f6415dc0 ebx: f6415dc0 ecx: 00000000 edx: f6415dc0
> esi: f6415de0 edi: f69f9180 ebp: f6c3dfb4 esp: f6c3df0c
> ds: 007b es: 007b ss: 0068
diff -prauN mm4-2.6.0-test9-1/mm/memory.c mm4-2.6.0-test9-default-2/mm/memory.c
--- mm4-2.6.0-test9-1/mm/memory.c 2003-11-19 00:07:15.000000000 -0800
+++ mm4-2.6.0-test9-default-2/mm/memory.c 2003-11-19 18:08:49.000000000 -0800
@@ -1424,7 +1424,7 @@ do_no_page(struct mm_struct *mm, struct
pte_t entry;
struct pte_chain *pte_chain;
int sequence = 0;
- int ret;
+ int ret = VM_FAULT_MINOR;
if (!vma->vm_ops || !vma->vm_ops->nopage)
return do_anonymous_page(mm, vma, page_table,
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-21 13:08 ` 2.6.0-test9-mm4 William Lee Irwin III
@ 2003-11-21 13:58 ` Prakash K. Cheemplavam
2003-11-21 13:58 ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-24 21:26 ` 2.6.0-test9-mm4 bill davidsen
1 sibling, 1 reply; 18+ messages in thread
From: Prakash K. Cheemplavam @ 2003-11-21 13:58 UTC (permalink / raw)
To: William Lee Irwin III; +Cc: Andrew Morton, lkml
William Lee Irwin III wrote:
> On Fri, Nov 21, 2003 at 09:29:19AM +0100, Prakash K. Cheemplavam wrote:
>
>>kernel BUG at arch/i386/mm/fault.c:357!
>>invalid operand: 0000 [#1]
>>PREEMPT
>>CPU: 0
>>EIP: 0060:[<c011da40>] Tainted: PF VLI
>>EFLAGS: 00210293
>>EIP is at do_page_fault+0x3a0/0x53a
>>eax: f6415dc0 ebx: f6415dc0 ecx: 00000000 edx: f6415dc0
>>esi: f6415de0 edi: f69f9180 ebp: f6c3dfb4 esp: f6c3df0c
>>ds: 007b es: 007b ss: 0068
>
>
>
> diff -prauN mm4-2.6.0-test9-1/mm/memory.c
Great, with that patch the rest of the warnings disappeared.
Though still one thing left (probably nothing serious). Since mm3 I get
this when starting X/kde at the very end of dmesg:
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
Prakash
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-21 13:58 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
@ 2003-11-21 13:58 ` William Lee Irwin III
0 siblings, 0 replies; 18+ messages in thread
From: William Lee Irwin III @ 2003-11-21 13:58 UTC (permalink / raw)
To: Prakash K. Cheemplavam; +Cc: Andrew Morton, lkml
William Lee Irwin III wrote:
>> diff -prauN mm4-2.6.0-test9-1/mm/memory.c
[...]
On Fri, Nov 21, 2003 at 02:58:00PM +0100, Prakash K. Cheemplavam wrote:
> Great, with that patch the rest of the warnings disappeared.
> Though still one thing left (probably nothing serious). Since mm3 I get
> this when starting X/kde at the very end of dmesg:
> atkbd.c: Unknown key released (translated set 2, code 0x7a on
> isa0060/serio0).
> atkbd.c: Unknown key released (translated set 2, code 0x7a on
> isa0060/serio0).
Unfortunately, this one I don't know how to fix (though I'm not
entirely sure it means anything bad is going on, either).
-- wli
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: 2.6.0-test9-mm4
2003-11-21 13:08 ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-21 13:58 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
@ 2003-11-24 21:26 ` bill davidsen
1 sibling, 0 replies; 18+ messages in thread
From: bill davidsen @ 2003-11-24 21:26 UTC (permalink / raw)
To: linux-kernel
In article <20031121130810.GQ22764@holomorphy.com>,
William Lee Irwin III <wli@holomorphy.com> wrote:
| diff -prauN mm4-2.6.0-test9-1/mm/memory.c mm4-2.6.0-test9-default-2/mm/memory.c
| --- mm4-2.6.0-test9-1/mm/memory.c 2003-11-19 00:07:15.000000000 -0800
| +++ mm4-2.6.0-test9-default-2/mm/memory.c 2003-11-19 18:08:49.000000000 -0800
| @@ -1424,7 +1424,7 @@ do_no_page(struct mm_struct *mm, struct
| pte_t entry;
| struct pte_chain *pte_chain;
| int sequence = 0;
| - int ret;
| + int ret = VM_FAULT_MINOR;
|
| if (!vma->vm_ops || !vma->vm_ops->nopage)
| return do_anonymous_page(mm, vma, page_table,
Good show, I would have expected the compiler to whine if there was a
path out of a proc which returned an unset value. Or did it, and I
didn't try w/o the patch to see it?
--
bill davidsen <davidsen@tmr.com>
CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.
^ permalink raw reply [flat|nested] 18+ messages in thread