linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.0-test9-mm4
@ 2003-11-19  6:51 Andrew Morton
  2003-11-19  9:02 ` 2.6.0-test9-mm4 William Lee Irwin III
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Andrew Morton @ 2003-11-19  6:51 UTC (permalink / raw)
  To: linux-kernel, linux-mm


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.





Changes since 2.6.0-test9-mm3:


 linus.patch

 Latest Linus tree

-tulip-hash-fix.patch

 Merged

+msi-various-fixes.patch

 ia32 Message Signalled Interrupt fixlets

-compat_ioctl-cleanup.patch

 other changes broke this.

+compat-statfs-fixes.patch

 compat layer fixes

+ia32-sched_clock-fix.patch

 Fix sched_clock() for when the TSC is not the time source.

+timer_pm-verbose-timesource-fix.patch
+acpi-pm_timer-init-cpu_khz.patch
+timer_pm-fix-fix-fix.patch

 ia32 PM timer fixes

+forcedeth-update-2.patch

 Update for the nForce ethernet driver

-drm-agp-module-dependency-fix.patch

 This generated nasty warnings and I wasn't able to get it to autoload the
 AGP module when loading the DRM module anyway.

+xattr-arith-fix.patch

 64-bit fixes for the ext2 and ext3 extended attribute code.

+radeon-line-length-fix.patch

 Radeon fbdev driver fix

+resource-bounds-fix.patch

 Fix Memory/IO resource management boundary condition bug.

+proc-interrupts-use-seq-file.patch

 Convert /proc/interrupts to seq_file (breaks lots of archs)

+ide-tape-update.patch

 Make ide-tape work.

+mpparse-printk-fix.patch

 Don't try to print nulls into the boot logs.

+intel-440gx-ids-fix.patch

 The 440gx PCI IDs were wrong.

+centrino-1ghz-support.patch

 Add cpufreq support for the 1GHz Centrinos.

+nonmodular-binfmt_elf.patch

 Disallow CONFIG_BINFMT_ELF=m - it doesn't work and isn't useful.

+pnp-fix-1.patch
+pnp-fix-2.patch
+pnp-fix-3.patch

 PNP updates.

+document-elevator-equals.patch

 Documentation update

+cpio-offset-fix.patch

 Fix generation of the initramfs cpio image.

+watchdog-retval-fix.patch

 Return the right thing from the watchdog write() functions.

+document-lib-parser.patch

 Documentation update
 
+format_cpumask.patch

 Fix format_cpumask()

+init-remove-CLONE_FILES.patch

 Don't start init with CLONE_FILES - it causes fd inheritance in undesirable
 ways.

+alpha-stack-dump.patch

 Additional debug for unaligned accesses on Alpha

+usb-msgsize-fix.patch

 Support 1024k packets on USB2.0

+pagefault-accounting-fix.patch

 Fix the major-vs-minor pagefault accounting.

+proc_kill_inodes-oops-fix.patch

 Might fix oops in proc-kill_inodes()

+proc_bus_pci_lseek-remove-lock_kernel.patch

 lock_kernel() removal.

+lockmeter-sparc64-fix.patch

 Fix sparc64 build for the lockmeter patch.

+4g4g-vm86-fix.patch

 4G/4G fix.







All 231 patches:


linus.patch

mm.patch
  add -mmN to EXTRAVERSION

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

kgdb-buff-too-big.patch
  kgdb buffer overflow fix

kgdb-warning-fix.patch
  kgdbL warning fix

kgdb-build-fix.patch

kgdb-spinlock-fix.patch

kgdb-fix-debug-info.patch
  kgdb: CONFIG_DEBUG_INFO fix

kgdb-cpumask_t.patch

kgdb-x86_64-fixes.patch
  x86_64 fixes

kgdb-over-ethernet.patch
  kgdb-over-ethernet patch

kgdb-over-ethernet-fixes.patch
  kgdb-over-ethernet fixlets

kgdb-CONFIG_NET_POLL_CONTROLLER.patch
  kgdb: replace CONFIG_KGDB with CONFIG_NET_RX_POLL in net drivers

kgdb-handle-stopped-NICs.patch
  kgdb: handle netif_stopped NICs

eepro100-poll-controller.patch

tlan-poll_controller.patch

tulip-poll_controller.patch

tg3-poll_controller.patch
  kgdb: tg3 poll_controller

8139too-poll_controller.patch
  8139too poll controller

kgdb-eth-smp-fix.patch
  kgdb-over-ethernet: fix SMP

kgdb-eth-reattach.patch

kgdb-skb_reserve-fix.patch
  kgdb-over-ethernet: skb_reserve() fix

must-fix.patch

should-fix.patch

must-fix-update-01.patch
  must fix lists update

RD1-cdrom_ioctl-B6.patch

RD2-ioctl-B6.patch

RD2-ioctl-B6-fix.patch
  RD2-ioctl-B6 fixes

RD3-cdrom_open-B6.patch

RD4-open-B6.patch

RD5-cdrom_release-B6.patch

RD6-release-B6.patch

RD7-presto_journal_close-B6.patch

RD8-f_mapping-B6.patch

RD9-f_mapping2-B6.patch

RD10-i_sem-B6.patch

RD11-f_mapping3-B6.patch

RD12-generic_osync_inode-B6.patch

RD13-bd_acquire-B6.patch

RD14-generic_write_checks-B6.patch

RD15-I_BDEV-B6.patch

cramfs-use-pagecache.patch
  cramfs: use pagecache better

invalidate_inodes-speedup.patch
  invalidate_inodes speedup

invalidate_inodes-speedup-fixes-2.patch
  more invalidate_inodes speedup fixes

serio-01-renaming.patch
  serio: rename serio_[un]register_slave_port to __serio_[un]register_port

serio-02-race-fix.patch
  serio: possible race between port removal and kseriod

serio-03-blacklist.patch
  Add black list to handler<->device matching

serio-04-synaptics-cleanup.patch
  Synaptics: code cleanup

serio-05-reconnect-facility.patch
  serio: reconnect facility

serio-06-synaptics-use-reconnect.patch
  Synaptics: use serio_reconnect

acpi_off-fix.patch
  fix acpi=off

cfq-4.patch
  CFQ io scheduler
  CFQ fixes

config_spinline.patch
  uninline spinlocks for profiling accuracy.

ppc64-bar-0-fix.patch
  Allow PCI BARs that start at 0

ppc64-reloc_hide.patch

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

input-use-after-free-checks.patch
  input layer debug checks

aic7xxx-parallel-build-fix.patch
  fix parallel builds for aic7xxx

ramdisk-cleanup.patch

intel8x0-cleanup.patch
  intel8x0 cleanups

pdflush-diag.patch

kobject-oops-fixes.patch
  fix oopses is kobject parent is removed before child

futex-uninlinings.patch
  futex uninlining

zap_page_range-debug.patch
  zap_page_range() debug

call_usermodehelper-retval-fix-3.patch
  Make call_usermodehelper report exit status

asus-L5-fix.patch
  Asus L5 framebuffer fix

jffs-use-daemonize.patch

tulip-NAPI-support.patch
  tulip NAPI support

tulip-napi-disable.patch
  tulip NAPI: disable poll in close

get_user_pages-handle-VM_IO.patch

ia32-MSI-support.patch
  Updated ia32 MSI Patches

ia32-MSI-support-x86_64-fixes.patch

msi-various-fixes.patch
  MSI Update Based on 2.6.0-test9-mm3

ia32-efi-support.patch
  EFI support for ia32
  efi warning fix
  fix EFI for ppc64, ia64
  efi: warning fixes
  ia32 EFI: Add CONFIG_EFI
  efi: Update Kconfig help
  efi update patch (ia64)

support-zillions-of-scsi-disks.patch
  support many SCSI disks

SGI-IOC4-IDE-chipset-support.patch
  Add support for SGI's IOC4 chipset

sparc32-sched_clock.patch

pcibios_test_irq-fix.patch
  Fix pcibios test IRQ handler return

fixmap-in-proc-pid-maps.patch
  report user-readable fixmap area in /proc/PID/maps

i82365-sysfs-ordering-fix.patch
  Fix init_i82365 sysfs ordering oops

pci_set_power_state-might-sleep.patch

ia64-ia32-missing-compat-syscalls.patch
  From: Arun Sharma <arun.sharma@intel.com>
  Subject: Missing compat syscalls in ia64

compat-layer-fixes.patch
  Minor bug fixes to the compat layer

compat-ioctl-for-i2c.patch
  compat_ioctl for i2c

compat-statfs-fixes.patch
  COMPAT statfs64 bug fixes

fix-sqrt.patch
  sqrt() fixes

scale-min_free_kbytes.patch
  scale the initial value of min_free_kbytes

cdrom-allocation-try-harder.patch
  Use __GFP_REPEAT for cdrom buffer

sym-2.1.18f.patch

CONFIG_STANDALONE-default-to-n.patch
  Make CONFIG_STANDALONE default to N

extra-buffer-diags.patch

nosysfs.patch

constant_test_bit-doesnt-like-zwanes-gcc.patch
  gcc bug workaround for constant_test_bit()

slab-leak-detector.patch
  slab leak detector

early-serial-registration-fix.patch
  serial console registration bugfix

3c527-smp-update.patch
  SMP support on 3c527 net driver

3c527-race-fix.patch

ext3-latency-fix.patch
  ext3 scheduling latency fix

videobuf_waiton-race-fix.patch

firmware-kernel_thread-on-demand.patch
  Remove workqueue usage from request_firmware_async()

loop-autoloading-fix.patch
  Fix loop module auto loading

loop-module-alias.patch
  loop needs MODULE_ALIAS_BLOCK

loop-remove-blkdev-special-case.patch

loop-highmem.patch
  remove useless highmem bounce from loop/cryptoloop

loop-highmem-fixes.patch

loop-bio-handling-fix.patch
  loop: BIO handling fix

cmpci-set_fs-fix.patch
  cmpci.c: remove pointless set_fs()

dentry-bloat-fix-2.patch
  Fix dcache and icache bloat with deep directories

nls-config-fixes.patch
  NSL config fixes

proc_pid_lookup-vs-exit-race-fix.patch
  Fix proc_pid_lookup vs exit race

gcc-Os-if-embedded.patch
  Add `gcc -Os' config option

aic7xxx-sleep-in-spinlock-fix.patch

vm86-sysenter-fix.patch
  Fix sysenter disabling in vm86 mode

gettimeofday-resolution-fix.patch
  gettimeofday resolution fix

refill_counter-overflow-fix.patch
  vmscan: reset refill_counter after refilling the inactive list

ia32-sched_clock-fix.patch
  sched_clock() fix

verbose-timesource.patch
  be verbose about the time source

acpi-pm-timer.patch
  ACPI PM Timer

acpi-pm-timer-fixes.patch
  ACPI PM-Timer fixes

timer_pm-verbose-timesource-fix.patch
  Subject: [PATCH] linux-2.6.0-test9-mm3_verbose-timesource-acpi-pm_A0

acpi-pm_timer-init-cpu_khz.patch
  ACPI PM timer: initialise cpu_khz

timer_pm-fix-fix-fix.patch
  acpi PM timer fix

as-regression-fix.patch
  Fix IO scheduler regression

as-request-poisoning.patch
  AS: request poisoning

as-request-poisoning-fix.patch
  AS: request poisining fix

as-fix-all-known-bugs.patch
  AS fixes

as-new-process-estimation.patch
  AS: new process estimation

as-cooperative-thinktime.patch
  AS: thinktime improvement

scale-nr_requests.patch
  scale nr_requests with TCQ depth

truncate_inode_pages-check.patch

local_bh_enable-warning-fix.patch

cdc-acm-softirq-rx.patch
  cdc-acm: move rx processing to softirq

forcedeth.patch
  forcedeth: nForce ethernet driver

forcedeth-update-2.patch
  forcedeth update

reiserfs-pinned-buffer-fix.patch
  reiserfs pinned buffer fix

proc-pid-maps-output-fix.patch
  Restore /proc/pid/maps formatting

atomic_dec-debug.patch
  atomic_dec debug

sis900-pm-support.patch
  Add PM support to sis900 network driver

8139too-locking-fix.patch
  8139too locking fix

ia32-wp-test-cleanup.patch
  ia32 WP test cleanup

hugetlb-needs-pse.patch
  ia32: hugetlb needs pse

powermate-payload-size-fix.patch
  Griffin Powermate fix

more-than-256-cpus.patch
  Fix for more than 256 CPUs

ZONE_SHIFT-from-NODES_SHIFT.patch
  Use NODES_SHIFT to calculate ZONE_SHIFT

ext2_new_inode-fixes.patch
  Fix bugs in ext2_new_inode()

ext2_new_inode-fixes-tweaks.patch
  ext2_new_inode: more tweaking

remove-ext2_reverve_inode.patch

memmove-speedup.patch
  optimize ia32 memmove

percpu-counter-linkage-fix.patch
  fix percpu_counter_mod linkage problem

ide-scsi-warnings.patch
  ide-scsi: warn when used for cdroms

pipe-readv-writev.patch
  Fix writev atomicity on pipe/fifo

ext3_new_inode-scan-fix.patch
  ext3_new_inode fixlet

lockless-semop.patch
  lockless semop

percpu_counter-use-alloc_percpu.patch
  use alloc_percpu in percpu_counters

i450nx-scanning-fix.patch
  i450nx PCI scanning fix

serio-pm-fix.patch
  psmouse pm resume fix

find_busiest_queue-commentary.patch
  find_busiest_queue() commentary fix

ext2-block-allocator-fixes.patch
  ext2 block allocator fixes

SOUND_CMPCI-config-typo-fix.patch
  fix SOUND_CMPCI Configure help entry

atkbd-24-compatibility.patch
  Fixes for keyboard 2.4 compatibility

init_h-needs-compiler_h.patch
  init.h needs to include compiler.h

init_h-needs-compiler_h-fix.patch
  compile fix for older gcc's

cpu_sibling_map-fix.patch
  cpu_sibling_map fix

context-switch-accounting-fix.patch
  Fix context switch accounting

access-vfs_permission-fix.patch
  Subject: Re: [PATCH] fix access() / vfs_permission() bug

eicon-linkage-fix.patch
  eicon/ and hardware/eicon/ drivers using the same symbols

kobject-docco-additions.patch
  Improve documentation for kobjects

xattr-arith-fix.patch
  fs/ext[23]/xattr.c pointer arithmetic fix

radeon-line-length-fix.patch
  radeonfb fix

resource-bounds-fix.patch
  resource.c bounds checking fix

promise-sata-id.patch
  add Promise 20376 PCI ID

proc-interrupts-use-seq-file.patch
  seq_file version of /proc/interrupts

ide-tape-update.patch
  ide-tape update

mpparse-printk-fix.patch
  mpparse printk fix

intel-440gx-ids-fix.patch

centrino-1ghz-support.patch
  support centrino 1GHz

nonmodular-binfmt_elf.patch
  disallow modular BINFMT_ELF

pnp-fix-1.patch
  PnP Fixes #1

pnp-fix-2.patch
  PnP Fixes #2

pnp-fix-3.patch
  PnP Fixes #3

document-elevator-equals.patch
  document elevator= parameter

cpio-offset-fix.patch
  missing padding in cpio_mkfile in usr/gen_init_cpio.c

watchdog-retval-fix.patch
  watchdog write() return value fixes

document-lib-parser.patch
  Add lib/parser.c kernel-doc

format_cpumask.patch
  format_cpumask()

init-remove-CLONE_FILES.patch
  Remove CLONE_FILES from init kernel thread creation

alpha-stack-dump.patch

usb-msgsize-fix.patch
  HiSpd Isoc 1024KB submits: -EMSGSIZE

pagefault-accounting-fix.patch
  pagefault accounting fix

proc_kill_inodes-oops-fix.patch

proc_bus_pci_lseek-remove-lock_kernel.patch
  remove lock_kernel() from proc_bus_pci_lseek()

list_del-debug.patch
  list_del debug check

print-build-options-on-oops.patch

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

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

lockmeter.patch

lockmeter-sparc64-fix.patch

printk-oops-mangle-fix.patch
  disentangle printk's whilst oopsing on SMP

4g-2.6.0-test2-mm2-A5.patch
  4G/4G split patch
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g/4g usercopy atomicity fix
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g/4g usercopy atomicity fix
  4G/4G preempt on vstack
  4G/4G: even number of kmap types
  4g4g: fix __get_user in slab
  4g4g: Remove extra .data.idt section definition
  4g/4g linker error (overlapping sections)
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g4g: show_registers() fix
  4g/4g usercopy atomicity fix
  4g4g: debug flags fix
  4g4g: Fix wrong asm-offsets entry
  cyclone time fixmap fix
  4G/4G preempt on vstack
  4G/4G: even number of kmap types
  4g4g: fix __get_user in slab
  4g4g: Remove extra .data.idt section definition
  4g/4g linker error (overlapping sections)
  4G/4G: remove debug code
  4g4g: pmd fix
  4g/4g: fixes from Bill
  4g4g: fpu emulation fix
  4g4g: show_registers() fix
  4g/4g usercopy atomicity fix
  4g4g: debug flags fix
  4g4g: Fix wrong asm-offsets entry
  cyclone time fixmap fix
  use direct_copy_{to,from}_user for kernel access in mm/usercopy.c
  4G/4G might_sleep warning fix
  4g/4g pagetable accounting fix

4g4g-athlon-prefetch-handling-fix.patch

4g4g-wp-test-fix.patch
  Fix 4G/4G and WP test lockup

4g4g-KERNEL_DS-usercopy-fix.patch
  4G/4G KERNEL_DS usercopy again

4g4g-vm86-fix.patch
  Fix 4G/4G X11/vm86 oops

ppc-fixes.patch
  make mm4 compile on ppc

aic7xxx_old-oops-fix.patch

O_DIRECT-race-fixes-rollup.patch
  DIO fixes forward port and AIO-DIO fix
  O_DIRECT race fixes comments
  O_DRIECT race fixes fix fix fix
  DIO locking rework
  O_DIRECT XFS fix

dio-aio-fixes.patch
  direct-io AIO fixes

dio-aio-fixes-fixes.patch
  dio-aio fix fix

readahead-multiple-fixes.patch
  readahead: multipole performance fixes

readahead-simplification.patch
  readahead simplification

aio-sysctl-parms.patch
  aio sysctl parms

aio-01-retry.patch
  AIO: Core retry infrastructure
  Fix aio process hang on EINVAL
  AIO: flush workqueues before destroying ioctx'es
  AIO: hold the context lock across unuse_mm
  task task_lock in use_mm()

4g4g-aio-hang-fix.patch
  Fix AIO and 4G-4G hang

aio-retry-elevated-refcount.patch
  aio: extra ref count during retry

aio-splice-runlist.patch
  Splice AIO runlist for fairer handling of multiple io contexts

aio-02-lockpage_wq.patch
  AIO: Async page wait

aio-03-fs_read.patch
  AIO: Filesystem aio read

aio-04-buffer_wq.patch
  AIO: Async buffer wait
  lock_buffer_wq fix

aio-05-fs_write.patch
  AIO: Filesystem aio write

aio-06-bread_wq.patch
  AIO: Async block read

aio-07-ext2getblk_wq.patch
  AIO: Async get block for ext2

O_SYNC-speedup-2.patch
  speed up O_SYNC writes

O_SYNC-speedup-2-f_mapping-fixes.patch

aio-09-o_sync.patch
  aio O_SYNC
  AIO: fix a BUG
  Unify o_sync changes for aio and regular writes
  aio-O_SYNC-fix bits got lost
  aio: writev nr_segs fix
  More AIO O_SYNC related fixes

aio-09-o_sync-f_mapping-fixes.patch

gang_lookup_next.patch
  Change the page gang lookup API

aio-gang_lookup-fix.patch
  AIO gang lookup fixes

aio-O_SYNC-short-write-fix.patch
  Fix for O_SYNC short writes

aio-12-readahead.patch
  AIO: readahead fixes
  aio O_DIRECT no readahead
  Unified page range readahead for aio and regular reads

aio-12-readahead-f_mapping-fix.patch

aio-readahead-speedup.patch
  Readahead issues and AIO read speedup




^ 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 ` 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: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: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

* 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
       [not found]       ` <200311210809.16049.edt@aei.ca>
@ 2003-11-21 13:36         ` Prakash K. Cheemplavam
  0 siblings, 0 replies; 18+ messages in thread
From: Prakash K. Cheemplavam @ 2003-11-21 13:36 UTC (permalink / raw)
  To: Ed Tomlinson; +Cc: lkml


> Its an nvidia problem.  Please do report it to them as they are
> the ones that can fix it.  You can stop the message from 
> printing by disabling the debug check but that does not
> get rid of the problem.


Done, though I suspect the won't release any update as long as  there is 
no 2.6.0 stable  kernel release.

bye,

Prakash


^ 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

end of thread, other threads:[~2003-11-24 21:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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  9:19   ` 2.6.0-test9-mm4 Andrew Morton
2003-11-19  9:33     ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-19 10:13       ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-19 10:34         ` 2.6.0-test9-mm4 William Lee Irwin III
2003-11-19 10:50           ` 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 ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21  8:41   ` 2.6.0-test9-mm4 Andrew Morton
2003-11-21  8:44     ` 2.6.0-test9-mm4 Prakash K. Cheemplavam
2003-11-21  8:52       ` 2.6.0-test9-mm4 Andrew Morton
     [not found]       ` <200311210809.16049.edt@aei.ca>
2003-11-21 13:36         ` 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
2003-11-21 13:58     ` 2.6.0-test9-mm4 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

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