2005-04-11 08:34:05

by Andrew Morton

[permalink] [raw]
Subject: 2.6.12-rc2-mm3


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/


- The anticipatory I/O scheduler has always been fairly useless with SCSI
disks which perform tagged command queueing. There's a patch here from Jens
which is designed to fix that up by constraining the number of requests
which we'll leave pending in the device.

The depth currently defaults to 1. Tunable in
/sys/block/hdX/queue/iosched/queue_depth

This patch hasn't been performance tested at all yet. If you think it is
misbehaving (the usual symptom is processes stuck in D state) then please
report it, then boot with `elevator=cfq' or `elevator=deadline' to work
around it.

- More CPU scheduler work. I hope someone is testing this stuff.




Changes since 2.6.12-rc2-mm2:


bk-acpi.patch
bk-agpgart.patch
bk-cifs.patch
bk-cpufreq.patch
bk-cryptodev.patch
gregkh-driver.patch
bk-drm.patch
bk-drm-via.patch
gregkh-i2c.patch
bk-ia64.patch
bk-input.patch
bk-jfs.patch
bk-kbuild.patch
bk-kconfig.patch
bk-mtd.patch
bk-netdev.patch
bk-nfs.patch
bk-ntfs.patch
gregkh-pci.patch
bk-scsi.patch
gregkh-usb.patch
bk-watchdog.patch

Latest versions of subsystem trees

-fix-ver_linux-script-for-no-udev-utils.patch
-bug-fix-in-usbdevfs.patch

Merged

+re-export-cancel_rearming_delayed_workqueue.patch

parisc will need this

-sysenter-irq-atomicity-fix.patch
-sysenter-irq-atomicity-fix-fix.patch
+fix-crash-in-entrys-restore_all.patch

Fix the irq-during-sysenter-accesses-above-the-stack bug by different means.

+acpi-ext-build-fix.patch

bk-acpi build fix

+acpi-fix-reloading-gdt-on-acpi-s3-wakeup.patch

acpi S# sleep fix

+update-drm-ioctl-compatibility-to-new-world-order.patch

Teach drm about the unlock_ioctl operation

+i2c-adaptor-for-coldfire-5282-cpu.patch
+i2c-adaptor-for-coldfire-5282-cpu-fix.patch

ppc i2c adaptor driver

+ia64-fix-fls.patch

Fix ia64's fls()

+remove-inter-module-mtd.patch

Remove intermodule_foo() usage from mtd.

+acpi-hotplug-convert-acpiphp-to-use-generic-resource-code.patch
+acpi-hotplug-clean-up-notify-handlers-on-acpiphp-unload.patch
+acpi-hotplug-fix-slot-power-down-problem-with-acpiphp.patch
+acpi-hotplug-acpi-based-root-bridge-hot-add.patch
+acpi-hotplug-decouple-slot-power-state-changes-from-physical-hotplug.patch

acpi hotplug updates

+net-ieee80211-ieee80211_txc-swapped-memset-arguments.patch
+drivers-isdn-hisax-possible-cleanups.patch

net fixes and cleanups

+ppc32-fix-a-problem-with-ntp-on-chrpgemini.patch
+ppc32-fix-building-32bit-kernel-for-64bit-machines.patch
+ppc32-make-the-powerstack-ii-pro4000-boot-again.patch
+pmac-sound-support-for-latest-laptops.patch
+pmac-improve-sleep-code-of-tumbler-driver.patch

ppc32/pmac updates

+ppc64-remove-fno-omit-frame-pointer.patch
+ppc64-no-prefetch-for-null-pointers.patch

ppc64 updates

+rfc-check-nmi-watchdog-is-broken-fix.patch

Fix rfc-check-nmi-watchdog-is-broken.patch (it's still broken though)

+i386-use-loaddebug-macro-consistently.patch
+i386-vdso-add-pt_note-segment.patch
+x86-64-i386-vdso-add-pt_note-segment.patch

x86 elf/vdso features

+x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610.patch

x86_64 smt reporting fix

+x86-64-fix-bug.patch

Make x86_64's BUG report the correct filename

+x86_64-always-use-cpuid-80000008-to-figure-out-mtrr-fix.patch

Fix x86_64-always-use-cpuid-80000008-to-figure-out-mtrr.patch

+x86_64-final-support-for-amd-dual-core-fix-2.patch
+x86_64-final-support-for-amd-dual-core-fix-fix.patch
+x86_64-final-support-for-amd-dual-core-fix-fix-fix.patch

Fix x86_64-final-support-for-amd-dual-core.patch lots more

+h8300-header-update.patch

h8/300 update

+swsusp-smp-fix.patch

Fix swsusp on SMP a bit.

+kernel-timerc-remove-a-goto-construct.patch

timer.c cleanup

+create-a-kstrdup-library-function-fix-include-slab.patch

Fix create-a-kstrdup-library-function.patch some more.

+reiserfs-make-resize-option-auto-get-new-device-size.patch

Make reiserfs play better with device resize

+as-limit-queue-depth.patch
+as-limit-queue-depth-fix.patch

Constrain TCQ usage in the anticipatory scheduler

+kprobes-multiple-probes-feature-at-given-address.patch

kprobes feature work (might be broken)

+credits-update.patch

CREDITS update

+pci-enumeration-on-ixp2000-overflow-in-kernel-resourcec.patch

Fix handling of resource regions which span 0 ... 0xffffffff

+cpuset-remove-function-attribute-const.patch

Don't declare a return type as `const'

+let-sound_ad1889-depend-on-pci.patch

OSS Kconfig dependency fix

+maintainers-remove-obsolete-acp-mwave-modem-entry.patch

This driver went away

+autofs4-wait-order-fix.patch
+autofs4-tree-race-fix.patch
+autofs4-tree-race-fix-fix.patch
+autofs4-tree-race-fix-fix-fix.patch
+autofs4-bump-version-number.patch

autofs4 fixes

+silence-spinlock-rwlock-uninitialized-break_lock-member.patch

Make -mm play better with `gcc -W'

+perfctr-x86-abi-update.patch
+perfctr-ppc32-abi-update.patch
+perfctr-ppc64-abi-update.patch

perfctr ABI updates

-sched-consolidate-sbe-sbf-fix.patch
+sched-consolidate-sbe-sbf-fix-2.patch
+sched-relax-pinned-balancing.patch
+sched-unlocked-context-switches.patch

CPU scheduler work

+fbdev-maintainers-update.patch
+fbdev-batch-cmap-changes-at-driver-level.patch

fbdev updates

+drivers-serial-jsm-make-2-functions-static.patch
+arch-i386-kernel-cpu-mtrr-genericc-make-generic_get_mtrr-static.patch

namespace cleanups

+drivers-pnp-pnpbios-rsparserc-fix-an-array-overflow.patch
+drivers-video-radeonfbc-fix-an-array-overflow.patch
+drivers-pnp-pnpacpi-rsparserc-fix-an-array-overflow.patch
+drivers-input-joystick-spaceorbc-fix-an-array-overflow.patch
+sound-oss-sonicvibesc-fix-an-array-overflow.patch

Fix possible array overindexing

+fix-lib-sort-regression-test.patch
+correctly-name-the-shell-sort.patch
+lib-c-documentation-strncpy.patch
+serial-icom-remove-custom-msescs_to_jiffies-macro.patch
+printk-drivers-char-applicomc.patch
+printk-drivers-char-ftape-compressor-zftape-compressc.patch
+lib-sha1c-fix-sparse-warning.patch
+x86_64-coding-style-and-whitespace-fixups.patch
+use-align-to-remove-duplicate-code.patch
+cosmetic-fixes-for-example-programs-in-documentation-cdrom-sbpcd.patch

Various little fixlets




number of patches in -mm: 819
number of changesets in external trees: 647
number of patches in -mm only: 797
total patches: 1444




All 819 patches:


re-export-cancel_rearming_delayed_workqueue.patch
re-export cancel_rearming_delayed_workqueue

fix-acl-oops.patch
Fix acl Oops

fix-crash-in-entrys-restore_all.patch
fix crash in entry.S restore_all

fix-get_compat_sigevent.patch
: Fix get_compat_sigevent()

fix-bug-4395-modprobe-bttv-freezes-the-computer.patch
fix Bug 4395: modprobe bttv freezes the computer

selinux-fix-bug-in-netlink-message-type-detection.patch
SELinux: fix bug in Netlink message type detection

r128_statec-break-missing-in-switch-statement.patch
r128_state.c: break missing in switch statement

bk-acpi.patch

acpi-ext-build-fix.patch
acpi-ext build fix

bk-acpi-alpha-build-fix.patch
bk-acpi alpha build fix

acpi-toshiba-failure-handling.patch
acpi: Toshiba failure handling

acpi-video-pointer-size-fix.patch
acpi video pointer size fix

no-acpi-build-fix.patch
CONFIG_ACPI=n build fix

drivers-firmware-pcdpc-build-fix.patch
drivers/firmware/pcdp.c build fix

acpi-fix-reloading-gdt-on-acpi-s3-wakeup.patch
acpi: Fix reloading GDT on ACPI S3 wakeup

bk-agpgart.patch

agp-fix-for-xen-vmm.patch
AGP fix for Xen VMM

fix-agp-code-to-work-again-with-non-pci-agp-bridges.patch
fix AGP code to work again with non-PCI AGP bridges

include-linux-soundcardh-endianness-fix.patch
include/linux/soundcard.h: endianness fix

add-cxt48-to-modem-black-list-in-ac97.patch
Add CXT48 to modem black list in ac97

bk-cifs.patch

bk-cpufreq.patch

add-suspend-method-to-cpufreq-core.patch
Add suspend method to cpufreq core

add-suspend-method-to-cpufreq-core-warning-fix.patch
add-suspend-method-to-cpufreq-core-warning-fix

powernow-k7recalibrate-cpu_khz.patch
powernowk7: recalibrate cpu_khz

cpufreq-timers-recalibrate_cpu_khz.patch
cpufreq timers: recalibrate cpu_khz

bk-cryptodev.patch

gregkh-driver.patch

bk-driver-core-usb-klist_node_attached-fix.patch
usb: klist_node_attached() fix

bk-drm.patch

update-drm-ioctl-compatibility-to-new-world-order.patch
Update DRM ioctl compatibility to new world order

bk-drm-via.patch

gregkh-i2c.patch

remove-redundancy-from-i2c-corec.patch
Remove redundancy from i2c-core.c

i2c-adaptor-for-coldfire-5282-cpu.patch
I2C adaptor for ColdFire 5282 CPU

i2c-adaptor-for-coldfire-5282-cpu-fix.patch
i2c-adaptor-for-coldfire-5282-cpu-fix

bk-ia64.patch

ia64-fix-fls.patch
ia64: fix fls()

bk-driver-core-sn2-build-fix.patch
bk-driver-core sn build fix

quiet-ide-cd-warning.patch
quiet ide-cd warning

bk-input.patch

alps-printk-tidy.patch
alps-printk-tidy

serio-resume-fix.patch
serio resume fix

alps-resume-fix.patch
ALPS resume fix

serport-oops-fix.patch
serport oops fix

serio-id-attributes.patch
serio 'id' attributes

bk-jfs.patch

bk-kbuild.patch

bk-kbuild-cvs-fixes.patch
bk-kbuild cvs fixes

biarch-compiler-support-for-i386.patch
biarch compiler support for i386

use-cross_compileinstallkernel-in-arch-boot-installsh.patch
use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh

bk-kconfig.patch

kconfig-i18n-support.patch
Kconfig i18n support

libata-flush-comreset-set-and-clear.patch
libata: flush COMRESET set and clear

bk-mtd.patch

remove-inter-module-mtd.patch
Remove inter_module functions from mtd drivers

bk-netdev.patch

tulip-fix-for-64-bit-mips.patch
tulip: fix for 64-bit mips

pcnet_csc-irq-handler-optimization.patch
pcnet_cs.c: IRQ handler optimization

bk-nfs.patch

bk-ntfs.patch

gregkh-pci.patch

gregkh-pci-kconfig-fix.patch
gregkh-pci kconfig fix

pci_module_init-pci_register_driver.patch
pci_module_init -> pci_register_driver

pci-pci-transparent-bridge-handling-improvements-yenta_socket.patch
PCI-PCI transparent bridge handling improvements (yenta_socket)

acpi-bridge-hotadd-acpi-based-root-bridge-hot-add.patch
acpi bridge hotadd: ACPI based root bridge hot-add

acpi-bridge-hotadd-fix-pci_enable_device-for-p2p-bridges.patch
acpi bridge hotadd: Fix pci_enable_device() for p2p bridges

acpi-bridge-hotadd-make-pcibios_fixup_bus-hot-plug-safe.patch
acpi bridge hotadd: Make pcibios_fixup_bus() hot-plug safe

acpi-bridge-hotadd-prevent-duplicate-bus-numbers-when-scanning-pci-bridge.patch
acpi bridge hotadd: Prevent duplicate bus numbers when scanning PCI bridge

acpi-bridge-hotadd-take-the-pci-lock-when-modifying-pci-bus-or-device-lists.patch
acpi bridge hotadd: Take the PCI lock when modifying pci bus or device lists

acpi-bridge-hotadd-link-newly-created-pci-child-bus-to-its-parent-on-creation.patch
acpi bridge hotadd: Link newly created pci child bus to its parent on creation

acpi-bridge-hotadd-make-the-pci-remove-routines-safe-for-failed-hot-plug.patch
acpi bridge hotadd: Make the PCI remove routines safe for failed hot-plug

acpi-bridge-hotadd-remove-hot-plugged-devices-that-could-not-be-allocated-resources.patch
acpi bridge hotadd: Remove hot-plugged devices that could not be allocated resources

acpi-bridge-hotadd-read-bridge-resources-when-fixing-up-the-bus.patch
acpi bridge hotadd: Read bridge resources when fixing up the bus

acpi-bridge-hotadd-allow-acpi-add-and-start-operations-to-be-done-independently.patch
acpi bridge hotadd: Allow ACPI .add and .start operations to be done independently

acpi-bridge-hotadd-export-the-interface-to-get-pci-id-for-an-acpi-handle.patch
acpi bridge hotadd: Export the interface to get PCI id for an ACPI handle

acpi-hotplug-convert-acpiphp-to-use-generic-resource-code.patch
acpi hotplug: convert acpiphp to use generic resource code

acpi-hotplug-clean-up-notify-handlers-on-acpiphp-unload.patch
acpi hotplug: clean up notify handlers on acpiphp unload

acpi-hotplug-fix-slot-power-down-problem-with-acpiphp.patch
acpi hotplug: fix slot power-down problem with acpiphp

acpi-hotplug-acpi-based-root-bridge-hot-add.patch
acpi hotplug: aCPI based root bridge hot-add

acpi-hotplug-decouple-slot-power-state-changes-from-physical-hotplug.patch
acpi hotplug: decouple slot power state changes from physical hotplug

bk-scsi.patch

megaraid_sas-announcing-new-module-for.patch
megaraid_sas: new module for LSI Logic's SAS based MegaRAID controllers

add-scsi-changer-driver.patch
add scsi changer driver

scsi-ch-build-fix.patch
scsi ch.c build fix

gregkh-usb.patch

usb-wacom-tablet-driver.patch
usb wacom tablet driver

add-new-wacom-device-to-usb-hid-core-list.patch
add new wacom device to usb hid-core list

zd1201-build-fix.patch
zd1201 build fix

pm-support-for-zd1201.patch
PM support for zd1201

usb-turn-a-user-mode-driver-error-into-a-hard-error.patch
usb: turn a user mode driver error into a hard error

usb-storage-debugc-missing-include.patch
usb/storage/debug.c: missing include

bk-watchdog.patch

mm.patch
add -mmN to EXTRAVERSION

swapspace-layout-improvements.patch
swapspace-layout-improvements
/proc/swaps negative Used

vmscan-notice-slab-shrinking.patch
vmscan: notice slab shrinking

madvise-do-not-split-the-maps.patch
madvise: do not split the maps

madvise-merge-the-maps.patch
madvise: merge the maps

freepgt-free_pgtables-use-vma-list.patch
freepgt: free_pgtables use vma list

freepgt-remove-mm_vm_sizemm.patch
freepgt: remove MM_VM_SIZE(mm)

freepgt-hugetlb_free_pgd_range.patch
freepgt: hugetlb_free_pgd_range

freepgt-hugetlb_free_pgd_range-fix-aio-panic-fix.patch
ppc64-fix-aio-panic-caused-by-is_hugepage_only_range-ia64-fix

freepgt-remove-arch-pgd_addr_end.patch
freepgt: remove arch pgd_addr_end

freepgt-mpnt-to-vma-cleanup.patch
freepgt: mpnt to vma cleanup

freepgt-hugetlb-area-is-clean.patch
freepgt: hugetlb area is clean

freepgt2-free_pgtables-from-first_user_address.patch
freepgt2: free_pgtables from FIRST_USER_ADDRESS

freepgt2-sys_mincore-ignore-first_user_pgd_nr.patch
freepgt2: sys_mincore ignore FIRST_USER_PGD_NR

freepgt2-arm-first_user_address-page_size.patch
freepgt2: arm FIRST_USER_ADDRESS PAGE_SIZE

freepgt2-arm26-first_user_address-page_size.patch
freepgt2: arm26 FIRST_USER_ADDRESS PAGE_SIZE

freepgt2-arch-first_user_address-0.patch
freepgt2: arch FIRST_USER_ADDRESS 0

freepgt2-remove-first_user_address-hack.patch
freepgt2: remove FIRST_USER_ADDRESS hack

remove-non-discontig-use-of-pgdat-node_mem_map.patch
remove non-DISCONTIG use of pgdat->node_mem_map

resubmit-sparsemem-base-early_pfn_to_nid-works-before-sparse-is-initialized.patch
sparsemem base: early_pfn_to_nid() (works before sparse is initialized)

resubmit-sparsemem-base-simple-numa-remap-space-allocator.patch
sparsemem base: simple NUMA remap space allocator

resubmit-sparsemem-base-reorganize-page-flags-bit-operations.patch
sparsemem base: reorganize page->flags bit operations

resubmit-sparsemem-base-teach-discontig-about-sparse-ranges.patch
sparsemem base: teach discontig about sparse ranges

create-mm-kconfig-for-arch-independent-memory-options.patch
create mm/Kconfig for arch-independent memory options

make-each-arch-use-mm-kconfig.patch
make each arch use mm/Kconfig

update-all-defconfigs-for-arch_discontigmem_enable.patch
update all defconfigs for ARCH_DISCONTIGMEM_ENABLE

introduce-new-kconfig-option-for-numa-or-discontig.patch
Introduce new Kconfig option for NUMA or DISCONTIG

sparsemem-fix-minor-defaults-issue-in-mm-kconfig.patch
sparsemem: fix minor "defaults" issue in mm/Kconfig

filemap_getpage-can-block-when-map_nonblock-specified.patch
filemap_getpage can block when MAP_NONBLOCK specified

add-kmalloc_node-inline-cleanup.patch
add kmalloc_node, inline cleanup

oom-killer-disable-for-iscsi-lvm2-multipath-userland-critical-sections.patch
oom-killer disable for iscsi/lvm2/multipath userland critical sections

vmscan-pageout-remove-unneeded-test.patch
vmscan: pageout(): remove unneeded test

end_buffer_write_sync-avoid-pointless-assignments.patch
end_buffer_write_sync() avoid pointless assignments

meminfo-add-cached-underflow-check.patch
meminfo: add Cached underflow check

eni155p-error-handling-fix.patch
ENI155P error handling fix

a-new-10gb-ethernet-driver-by-chelsio-communications.patch
A new 10GB Ethernet Driver by Chelsio Communications

chelsio-build-fix.patch
chelsio build fix

dm9000-network-driver.patch
DM9000 network driver

fix-linux-atalkh-header.patch
Fix linux/atalk.h header

dont-call-kmem_cache_create-with-a-spinlock-held.patch
net: don't call kmem_cache_create with a spinlock held

fix-dst_destroy-race.patch
Fix dst_destroy() race

irda_device-oops-fix.patch
irda_device() oops fix

net-ieee80211-ieee80211_txc-swapped-memset-arguments.patch
net/ieee80211/ieee80211_tx.c: swapped memset arguments

drivers-isdn-hisax-possible-cleanups.patch
drivers/isdn/hisax/: possible cleanups

selinux-add-support-for-netlink_kobject_uevent.patch
SELinux: add support for NETLINK_KOBJECT_UEVENT

ppc32-fix-bogosity-in-process-freezing-code.patch
ppc32: fix bogosity in process-freezing code

ppc32-ppc4xx_pic-add-acknowledge-when-enabling-level-sensitive-irq.patch
ppc32: ppc4xx_pic - add acknowledge when enabling level-sensitive IRQ

ppc32-improve-timebase-sync-for-smp.patch
ppc32: improve timebase sync for SMP

ppc32-oops-on-kernel-altivec-assist-exceptions.patch
ppc32: oops on kernel altivec assist exceptions

ppc32-fix-single-stepping-of-emulated-instructions.patch
ppc32: fix single-stepping of emulated instructions

ppc32-fix-cpufreq-problems.patch
ppc32: Fix cpufreq problems

ppc32-fix-agp-and-sleep-again.patch
ppc32: Fix AGP and sleep again

ppc32-fix-pte_update-for-64-bit-ptes.patch
ppc32: Fix pte_update for 64-bit PTEs

ppc32-make-usage-of-config_pte_64bit-config_phys_64bit.patch
ppc32: make usage of CONFIG_PTE_64BIT & CONFIG_PHYS_64BIT consistent

ppc32-allow-adjust-of-pfn-offset-in-pte.patch
ppc32: Allow adjust of pfn offset in pte

ppc32-support-36-bit-physical-addressing-on-e500.patch
ppc32: Support 36-bit physical addressing on e500

ppc32-fix-errata-for-some-g3-cpus.patch
ppc32: Fix errata for some G3 CPUs

ppc32-fix-mpc8xx-watchdog.patch
ppc32: Fix mpc8xx watchdog

ppc32-fix-a-problem-with-ntp-on-chrpgemini.patch
ppc32: Fix a problem with NTP on !(chrp||gemini)

ppc32-fix-building-32bit-kernel-for-64bit-machines.patch
ppc32: Fix building 32bit kernel for 64bit machines

ppc32-make-the-powerstack-ii-pro4000-boot-again.patch
ppc32: Make the Powerstack II Pro4000 boot again

pmac-sound-support-for-latest-laptops.patch
pmac: sound support for latest laptops

pmac-improve-sleep-code-of-tumbler-driver.patch
pmac: Improve sleep code of tumbler driver

ppc64-fix-semantics-of-__ioremap.patch
ppc64: Fix semantics of __ioremap

ppc64-fix-export-of-wrong-symbol.patch
ppc64: fix export of wrong symbol

ppc64-kconfig-memory-models.patch
ppc64: Kconfig memory models

ppc64-improve-mapping-of-vdso.patch
ppc64: Improve mapping of vDSO

ppc64-detect-altivec-via-firmware-on-unknown-cpus.patch
ppc64: Detect altivec via firmware on unknown CPUs

ppc64-remove-bogus-f50-hack-in-promc.patch
ppc64: remove bogus f50 hack in prom.c

ppc64-remove-fno-omit-frame-pointer.patch
ppc64: remove -fno-omit-frame-pointer

ppc64-no-prefetch-for-null-pointers.patch
ppc64: no prefetch for NULL pointers

mips-remove-obsolete-vr41xx-rtc-function.patch
mips: remove obsolete VR41xx RTC function from vr41xx.h

mips-update-vr41xx-cpu-pci-bridge.patch
mips: update VR41xx CPU-PCI bridge support

mips-remove-include-linux-audith-two.patch
mips: remove #include <linux/audit.h> two times

fix-i386-memcpy.patch
fix i386 memcpy

i386-x86_64-segment-register-access-update.patch
i386/x86_64 segment register access update

rfc-check-nmi-watchdog-is-broken.patch
check nmi watchdog is broken

rfc-check-nmi-watchdog-is-broken-fix.patch
rfc-check-nmi-watchdog-is-broken fix

irq-and-pci_ids-patch-for-intel-esb2.patch
irq and pci_ids: patch for Intel ESB2

piix-ide-pata-patch-for-intel-esb2.patch
piix: IDE PATA patch for Intel ESB2

intel8x0-ac97-audio-patch-for-intel-esb2.patch
intel8x0: AC'97 audio patch for Intel ESB2

ata_piix-ide-mode-sata-patch-for-intel-esb2.patch
ata_piix: IDE mode SATA patch for Intel ESB2

ahci-ahci-mode-sata-patch-for-intel-esb2.patch
ahci: AHCI mode SATA patch for Intel ESB2

i2c-i801-i2c-patch-for-intel-esb2.patch
i2c-i801: I2C patch for Intel ESB2

i386-use-loaddebug-macro-consistently.patch
i386: Use loaddebug macro consistently

i386-vdso-add-pt_note-segment.patch
i386 vDSO: add PT_NOTE segment

x86-64-i386-vdso-add-pt_note-segment.patch
x86-64: i386 vDSO: add PT_NOTE segment

x86-64-i386-revert-cpuinfo-siblings-behaviour-back-to-2610.patch
x86-64/i386: Revert cpuinfo siblings behaviour back to 2.6.10

x86-64-fix-bug.patch
x86-64: Fix BUG()

x86_64-disable-interrupts-during-smp-bogomips-checking.patch
x86_64: disable interrupts during SMP bogomips checking

x86_64-genapic-update.patch
x86_64 genapic update

x86_64-show_stack-touch_nmi_watchdog.patch
x86_64 show_stack(): call touch_nmi_watchdog

x86_64-use-a-vma-for-the-32bit-vsyscall.patch
x86_64: Use a VMA for the 32bit vsyscall

x86_64-make-irda-devices-are-not-really-isa-devices-not.patch
x86_64: Make IRDA devices are not really ISA devices not depend on CONFIG_ISA

x86_64-from-i386-originally-from-linus.patch
x86_64: clean up ptrace single-stepping

x86_64-some-fixes-for-single-step-handling.patch
x86_64: Some fixes for single step handling

x86_64-handle-programs-that-set-tf-in-user-space-using.patch
x86_64: Handle programs that set TF in user space using popf while single stepping

x86_64-use-a-common-function-to-find-code-segment-bases.patch
x86_64: Use a common function to find code segment bases

x86_64-use-a-common-function-to-find-code-segment-bases-fix.patch
x86_64-use-a-common-function-to-find-code-segment-bases fix

x86_64-dump-stack-and-prevent-recursion-on-early-fault.patch
x86_64: Dump stack and prevent recursion on early fault

x86_64-fix-interaction-of-single-stepping-with-debuggers.patch
x86_64: Fix interaction of single stepping with debuggers

x86_64-minor-microoptimization-in-syscall-entry-slow-path.patch
x86_64: Minor microoptimization in syscall entry slow path

x86_64-call-do_notify_resume-unconditionally-in-entrys.patch
x86_64: Call do_notify_resume unconditionally in entry.S

x86_64-regularize-exception-stack-handling.patch
x86_64: Regularize exception stack handling

x86_64-fix-a-small-missing-schedule-race.patch
x86_64: Fix a small missing schedule race

x86_64-remove-unused-macro-in-preempt-support.patch
x86_64: Remove unused macro in preempt support

x86_64-support-constantly-ticking-tscs.patch
x86_64: Support constantly ticking TSCs

x86_64-make-kernel-math-errors-a-die-now.patch
x86_64: Make kernel math errors a die() now

x86_64-dont-assume-future-amd-cpus-have-k8-compatible.patch
x86_64: Don't assume future AMD CPUs have K8 compatible performance counters

x86_64-correct-wrong-comment-in-localh.patch
x86_64: Correct wrong comment in local.h

x86_64-use-the-extended-rip-msr-for-machine-check.patch
x86_64: Use the extended RIP MSR for machine check reporting if available.

x86_64-remove-excessive-stack-allocation-in-mce-code.patch
x86_64: Remove excessive stack allocation in MCE code with large NR_CPUS

x86_64-always-use-cpuid-80000008-to-figure-out-mtrr.patch
x86_64: Always use CPUID 80000008 to figure out MTRR address space size

x86_64-always-use-cpuid-80000008-to-figure-out-mtrr-fix.patch
x86_64-always-use-cpuid-80000008-to-figure-out-mtrr fix

x86_64-port-over-e820-gap-detection-from-i386.patch
x86_64: Port over e820 gap detection from i386

x86_64-use-the-e820-hole-to-map-the-iommu-agp-aperture.patch
x86_64: Use the e820 hole to map the IOMMU/AGP aperture

x86_64-keep-only-a-single-debug-notifier-chain.patch
x86_64: Keep only a single debug notifier chain

x86_64-remove-duplicated-syscall-entry.patch
x86_64: Remove duplicated syscall entry.

x86_64-adds-support-for-intel-dual-core-detection-and-displaying.patch
x86_64: add support for Intel dual-core detection and displaying

x86_64-final-support-for-amd-dual-core.patch
x86_64: Final support for AMD dual core

x86_64-final-support-for-amd-dual-core-fix.patch
x86_64-final-support-for-amd-dual-core-fix

x86_64-final-support-for-amd-dual-core-fix-2.patch
x86_64-final-support-for-amd-dual-core fix #2
Subject: Re: 2.6.12-rc2-mm2

x86_64-final-support-for-amd-dual-core-fix-fix.patch
Fix AMD dual core compilation on i386

x86_64-final-support-for-amd-dual-core-fix-fix-fix.patch
Make x86-64 compile UP again

x86_64-rewrite-exception-stack-backtracing.patch
x86_64: Rewrite exception stack backtracing

x86_64-add-acpi_skip_timer_override-option.patch
x86_64: Add acpi_skip_timer_override option

x86_64-rename-the-extended-cpuid-level-field.patch
x86_64: Rename the extended cpuid level field

x86_64-switch-smp-bootup-over-to-new-cpu-hotplug-state.patch
x86_64: Switch SMP bootup over to new CPU hotplug state machine

x86_64-switch-smp-bootup-over-to-new-cpu-hotplug-state-fix.patch
x86_64-switch-smp-bootup-over-to-new-cpu-hotplug-state fix

x86-cacheline-alignment-for-cpu-maps.patch
x86: cacheline alignment for cpu maps

h8300-header-update.patch
h8300 header update

ia64-reduce-cacheline-bouncing-in-cpu_idle_wait.patch
ia64: reduce cacheline bouncing in cpu_idle_wait

pm_message_t-more-fixes-in-common-and-i386.patch
pm_message_t: more fixes in common and i386

fix-u32-vs-pm_message_t-in-drivers-char.patch
Fix u32 vs. pm_message_t in drivers/char

u32-vs-pm_message_t-fixes-for-drivers-net.patch
u32 vs. pm_message_t fixes for drivers/net

fix-u32-vs-pm_message_t-in-pcmcia.patch
fix u32 vs. pm_message_t in pcmcia

fix-u32-vs-pm_message_t-in-drivers-media.patch
fix u32 vs. pm_message_t in drivers/media

fix-u32-vs-pm_message_t-in-drivers-message.patch
fix u32 vs. pm_message_t in drivers/message

fix-u32-vs-pm_message_t-in-drivers-mmcmtdscsi.patch
fix u32 vs. pm_message_t in drivers/mmc,mtd,scsi

fix-pm_message_t-vs-u32-in-alsa.patch
fix pm_message_t vs. u32 in alsa

fix-u32-vs-pm_message_t-in-x86-64.patch
Fix u32 vs. pm_message_t in x86-64

fix-u32-vs-pm_message_t-in-drivers-macintosh.patch
fix u32 vs. pm_message_t in drivers/macintosh

fix-u32-vs-pm_message_t-in-pci-pcie.patch
fix u32 vs. pm_message_t in PCI, PCIE

u32-vs-pm_message_t-in-ppc-and-radeon.patch
u32 vs. pm_message_t in ppc and radeon

power-videotxt-update-documentation-with-more-systems.patch
power/video.txt: update documentation with more systems

fix-u32-vs-pm_message_t-in-drivers.patch
fix u32 vs. pm_message_t in drivers/

fix-u32-vs-pm_message_t-in-driver-video.patch
fix u32 vs. pm_message_t in driver/video

fix-u32-vs-pm_message_t-in-rest-of-the-tree.patch
fix u32 vs. pm_message_t in rest of the tree

swsusp-smp-fix.patch
swsusp: SMP fix

uml-fix-compilation-for-__choose_mode-addition.patch
uml: fix compilation for __CHOOSE_MODE addition

mtrr-size-and-base-debug.patch
mtrr size-and-base debugging

iounmap-debugging.patch
iounmap debugging

detect-soft-lockups.patch
detect soft lockups

detect-soft-lockups-from-touch_nmi_watchdog.patch
detect-soft-lockups: call from touch_nmi_watchdog

kernel-softlockup-fix-usage-of-msleep_interruptible.patch
kernel/softlockup: fix usage of msleep_interruptible()

areca-raid-linux-scsi-driver.patch
ARECA RAID Linux scsi driver

rt-lsm.patch
RT-LSM

tty-output-lossage-fix.patch
tty output lossage fix

possible-use-after-free-of-bio.patch
possible use-after-free of bio

nice-and-rt-prio-rlimits.patch
nice and rt-prio rlimits

relayfs.patch
relayfs

relayfs-properly-handle-oversized-events.patch
relayfs: properly handle oversized events

relayfs-backing_dev-fix.patch
relayfs-backing_dev-fix

cfq-iosched-update-to-time-sliced-design.patch
cfq-iosched: update to time sliced design

cfq-iosched-update-to-time-sliced-design-export-task_nice.patch
cfq-iosched-update-to-time-sliced-design-export-task_nice

cfq-iosched-update-to-time-sliced-design-fix.patch
cfq-iosched-update-to-time-sliced-design fix

cfq-iosched-update-to-time-sliced-design-fix-fix.patch
cfq-iosched-update-to-time-sliced-design-fix-fix

cfq-iosched-update-to-time-sliced-design-use-bio_data_dir.patch
cfq-iosched-update-to-time-sliced-design: use bio_data_dir()

cfq-ioschedc-fix-soft-hang-with-non-fs-requests.patch
cfq-iosched.c: fix soft hang with non-fs requests

keys-discard-key-spinlock-and-use-rcu-for-key-payload.patch
keys: Discard key spinlock and use RCU for key payload

keys-discard-key-spinlock-and-use-rcu-for-key-payload-try-4.patch
keys: Discard key spinlock and use RCU for key payload - try #4

keys-pass-session-keyring-to-call_usermodehelper.patch
Keys: Pass session keyring to call_usermodehelper()

keys-pass-session-keyring-to-call_usermodehelper-fix.patch
keys-pass-session-keyring-to-call_usermodehelper fix

keys-use-rcu-to-manage-session-keyring-pointer.patch
Keys: Use RCU to manage session keyring pointer

keys-make-request-key-create-an-authorisation-key.patch
Keys: Make request-key create an authorisation key

keys-make-request-key-create-an-authorisation-key-fix.patch
Keys: Make request-key create an authorisation key (fix)

binfmt_elf-bss-padding-fix.patch
binfmt_elf bss padding fix

timers-fixes-improvements.patch
timers fixes/improvements

timers-fixes-improvements-smp_processor_id-fix.patch
timers-fixes-improvements-smp_processor_id-fix

timers-fixes-improvements-fix.patch
timers fixes/improvements fix

kernel-timerc-remove-a-goto-construct.patch
kernel/timer.c: Remove a goto construct

enable-sig_ign-on-blocked-signals.patch
Enable SIG_IGN on blocked signals

async-io-using-rt-signals.patch
AYSNC IO using singals other than SIGIO

kernel-paramc-dont-use-max-when-num-is-null-in.patch
kernel/param.c: don't use .max when .num is NULL in param_array_set()

fix-module_param_string-calls.patch
fix module_param_string() calls

use-cheaper-elv_queue_empty-when-unplug-a-device.patch
use cheaper elv_queue_empty when unplug a device

fixup-newly-added-jsm-driver.patch
fix up newly added jsm driver

ext2-corruption-regression-between-269-and-2610.patch
ext2 corruption - regression between 2.6.9 and 2.6.10

quota-fix-possible-oops-on-quotaoff.patch
quota: fix possible oops on quotaoff

quota-possible-bug-in-quota-format-v2-support.patch
quota: possible bug in quota format v2 support

kill-ifndef-have_arch_get_signal_to_deliver-in-signalc.patch
kill #ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER in signal.c

officially-deprecate-register_ioctl32_conversion.patch
officially deprecate register_ioctl32_conversion

undo-do_readv_writev-behavior-change.patch
undo do_readv_writev() behavior change

kprobes-incorrect-handling-of-probes-on-ret-lret-instruction.patch
Kprobes: Incorrect handling of probes on ret/lret instruction

sysfs-for-ipmi-for-new-mm-kernels.patch
sysfs for IPMI

remove-all-kernel-bugs.patch
remove all kernel BUGs

exterminate-page_bug.patch
Exterminate PAGE_BUG

clean-up-kernel-messages.patch
clean up kernel messages

move-sa_xxx-defines-to-linux-signalh.patch
move SA_xxx defines to linux/signal.h

procfs-fix-hardlink-counts.patch
procfs: Fix hardlink counts

procfs-fix-hardlink-counts-for-proc-pid-task.patch
procfs: Fix hardlink counts for /proc/<PID>/task

show-thread_info-flags-in-proc-pid-status.patch
Show thread_info->flags in /proc/PID/status

direct-io-async-short-read-fix.patch
Direct IO async short read fix

set-ms_active-bit-before-calling-fill_super.patch
Set MS_ACTIVE bit before calling ->fill_super functions

kernel-rcupdatec-make-the-exports-export_symbol_gpl.patch
kernel/rcupdate.c: make the exports EXPORT_SYMBOL_GPL

add-deprecated_for_modules.patch
Add deprecated_for_modules

add-deprecated_for_modules-fix.patch
deprecate-synchronize_kernel-gpl-replacement fix

deprecate-synchronize_kernel-gpl-replacement.patch
Deprecate synchronize_kernel, GPL replacement

deprecate-synchronize_kernel-gpl-replacement-fix.patch
deprecate-synchronize_kernel-gpl-replacement-fix

change-synchronize_kernel-to-_rcu-and-_sched.patch
Change synchronize_kernel to _rcu and _sched

update-rcu-documentation.patch
Update RCU documentation

fix-comment-in-listh-that-refers-to-nonexistent-api.patch
Fix comment in list.h that refers to nonexistent API

pnpbios-eliminate-bad-section-references.patch
pnpbios: eliminate bad section references

hd-eliminate-bad-section-references.patch
hd: eliminate bad section references

efi-eliminate-bad-section-references.patch
efi: eliminate bad section references

create-a-kstrdup-library-function.patch
create a kstrdup library function

create-a-kstrdup-library-function-fixes.patch
create-a-kstrdup-library-function-fixes

create-a-kstrdup-library-function-fix-include-slab.patch
create-a-kstrdup-library-function-fix-include-slab

add-big-endian-variants-of-ioread-iowrite.patch
add Big Endian variants of ioread/iowrite

opl3sa2-module_parm_desc.patch
opl3sa2: MODULE_PARM_DESC

con_consdev-bit-not-set-correctly-on-last-console.patch
CON_CONSDEV bit not set correctly on last console

update-maintainer-for-dev-random.patch
update maintainer for /dev/random

add-dontdiff-file.patch
Add dontdiff file

reiserfs-make-resize-option-auto-get-new-device-size.patch
reiserfs: make resize option auto-get new device size

as-limit-queue-depth.patch
AS: limit TCQ queueing depth

as-limit-queue-depth-fix.patch
as-limit-queue-depth-fix

kprobes-multiple-probes-feature-at-given-address.patch
Kprobes: Multiple probes feature at given address

credits-update.patch
CREDITS update

pci-enumeration-on-ixp2000-overflow-in-kernel-resourcec.patch
pci enumeration on ixp2000: overflow in kernel/resource.c

cpuset-remove-function-attribute-const.patch
cpuset: remove function attribute const

let-sound_ad1889-depend-on-pci.patch
let SOUND_AD1889 depend on PCI

maintainers-remove-obsolete-acp-mwave-modem-entry.patch
MAINTAINERS: remove obsolete ACP/MWAVE MODEM entry

autofs4-wait-order-fix.patch
autofs4: wait order fix

autofs4-tree-race-fix.patch
autofs4: tree race fix

autofs4-tree-race-fix-fix.patch
autofs4-tree-race-fix fix

autofs4-tree-race-fix-fix-fix.patch
autofs4-tree-race-fix-fix-fix

autofs4-bump-version-number.patch
autofs4: bump version number

inotify-022-for-2612-rc1-mm4.patch
inotify 0.22 for 2.6.12-rc1-mm4

ipoib-set-skb-macraw-on-receive.patch
IPoIB: set skb->mac.raw on receive

ipoib-fix-static-rate-calculation.patch
IPoIB: fix static rate calculation

ipoib-convert-to-debugfs.patch
IPoIB: convert to debugfs

ipoib-document-conversion-to.patch
IPoIB: document conversion to debugfs

ib-keep-mad-work-completion-valid.patch
IB: Keep MAD work completion valid

ib-remove-unneeded-includes.patch
IB: remove unneeded includes

ib-fix-fmr-pool-crash.patch
IB: Fix FMR pool crash

ib-trivial-fmr-printk-cleanup.patch
IB: Trivial FMR printk cleanup

ib-fix-user-mad-registrations-with-class-0.patch
IB: Fix user MAD registrations with class 0

ib-remove-incorrect-comments.patch
IB: Remove incorrect comments

ib-mthca-map-mpt-mtt-context-in-mem-free-mode.patch
IB/mthca: map MPT/MTT context in mem-free mode

ib-mthca-fill-in-more-device-query-fields.patch
IB/mthca: fill in more device query fields

ib-mthca-fix-calculation-of-rdb-shift.patch
IB/mthca: fix calculation of RDB shift

ib-mthca-fix-posting-sends-with-immediate-data.patch
IB/mthca: fix posting sends with immediate data

ib-mthca-allow-unaligned-memory-regions.patch
IB/mthca: allow unaligned memory regions

ib-mthca-allocate-correct-number-of-doorbell-pages.patch
IB/mthca: allocate correct number of doorbell pages

ib-mthca-clean-up-mthca_dereg_mr.patch
IB/mthca: clean up mthca_dereg_mr()

ib-mthca-fix-mr-allocation-error-path.patch
IB/mthca: fix MR allocation error path

ib-mthca-release-mutex-on-doorbell-alloc-error-path.patch
IB/mthca: release mutex on doorbell alloc error path

ib-mthca-print-assigned-irq-when-interrupt-test-fails.patch
IB/mthca: print assigned IRQ when interrupt test fails

ib-mthca-only-free-doorbell-records-in-mem-free-mode.patch
IB/mthca: only free doorbell records in mem-free mode

ib-mthca-fix-format-of-cq-number-for-cq-events.patch
IB/mthca: fix format of CQ number for CQ events

ib-mthca-implement-rdma-atomic-operations-for-mem-free-mode.patch
IB/mthca: implement RDMA/atomic operations for mem-free mode

ib-mthca-fix-mtt-allocation-in-mem-free-mode.patch
IB/mthca: fix MTT allocation in mem-free mode

ib-mthca-fill-in-opcode-field-for-send-completions.patch
IB/mthca: fill in opcode field for send completions

ib-mthca-allow-address-handle-creation-in-interrupt-context.patch
IB/mthca: allow address handle creation in interrupt context

ib-mthca-encapsulate-mtt-buddy-allocator.patch
IB/mthca: encapsulate MTT buddy allocator

ib-mthca-add-sync_tpt-firmware-command.patch
IB/mthca: add SYNC_TPT firmware command

ib-mthca-add-mthca_write64_raw-for-writing-to-mtt-table-directly.patch
IB/mthca: add mthca_write64_raw() for writing to MTT table directly

ib-mthca-add-mthca_table_find-function.patch
IB/mthca: add mthca_table_find() function

ib-mthca-split-mr-key-munging-routines.patch
IB/mthca: split MR key munging routines

ib-mthca-add-fast-memory-region-implementation.patch
IB/mthca: add fast memory region implementation

ib-mthca-tweaks-to-mthca_cmdc.patch
IB/mthca: tweaks to mthca_cmd.c

ib-mthca-encapsulate-mem-free-check-into-mthca_is_memfree.patch
IB/mthca: encapsulate mem-free check into mthca_is_memfree()

ib-mthca-map-context-for-rdma-responder-in-mem-free-mode.patch
IB/mthca: map context for RDMA responder in mem-free mode

ib-mthca-update-receive-queue-initialization-for-new-hcas.patch
IB/mthca: update receive queue initialization for new HCAs

ib-mthca-add-support-for-new-mt25204-hca.patch
IB/mthca: add support for new MT25204 HCA

ib-mthca-add-support-for-new-mt25204-hca-fix.patch
drivers/infiniband/hw/mthca/mthca_main.c: remove an unused label

jbd-dirty-buffer-leak-fix.patch
jbd dirty buffer leak fix

ext3-remove-unnecessary-race-then-retry-in-ext3_get_block.patch
ext3: remove unnecessary race then retry in ext3_get_block

ext3-remove-unnecessary-race-then-retry-in-ext3_get_block-leak-fix.patch
ext3-remove-unnecessary-race-then-retry-in-ext3_get_block-leak-fix

pcmcia-hotplug-event-for-pcmcia-devices.patch
pcmcia: hotplug event for PCMCIA devices

pcmcia-hotplug-event-for-pcmcia-socket-devices.patch
pcmcia: hotplug event for PCMCIA socket devices

pcmcia-device-and-driver-matching.patch
pcmcia: device and driver matching

pcmcia-check-for-invalid-crc32-hashes-in-id_tables.patch
pcmcia: check for invalid crc32 hashes in id_tables

pcmcia-match-for-fake-cis.patch
pcmcia: match for fake CIS

pcmcia-export-cis-in-sysfs.patch
pcmcia: export CIS in sysfs

pcmcia-cis-overrid-via-sysfs.patch
pcmcia: CIS overrid via sysfs

pcmcia-match-anonymous-cards.patch
pcmcia: match "anonymous" cards

pcmcia-allow-function-id-based-match.patch
pcmcia: allow function-ID based match

pcmcia-file2alias.patch
pcmcia: file2alias

pcmcia-request-cis-via-firmware-interface.patch
pcmcia: request CIS via firmware interface

pcmcia-cleanups.patch
pcmcia: cleanups

pcmcia-rescan-bus-always-upon-echoing-into-setup_done.patch
pcmcia: rescan bus always upon echoing into setup_done

pcmcia-id_table-for-serial_cs.patch
pcmcia: id_table for serial_cs

pcmcia-id_table-for-3c574_cs.patch
pcmcia: id_table for 3c574_cs

pcmcia-id_table-for-3c589_cs.patch
pcmcia: id_table for 3c589_cs

pcmcia-id_table-for-aha152x.patch
pcmcia: id_table for aha152x

pcmcia-id_table-for-airo_cs.patch
pcmcia: id_table for airo_cs

pcmcia-id_table-for-axnet_cs.patch
pcmcia: id_table for axnet_cs

pcmcia-id_table-for-fdomain_stub.patch
pcmcia: id_table for fdomain_stub

pcmcia-id_table-for-fmvj18x_cs.patch
pcmcia: id_table for fmvj18x_cs

pcmcia-id_table-for-ibmtr_cs.patch
pcmcia: id_table for ibmtr_cs

pcmcia-id_table-for-netwave_cs.patch
pcmcia: id_table for netwave_cs

pcmcia-id_table-for-nmclan_cs.patch
pcmcia: id_table for nmclan_cs

pcmcia-id_table-for-teles_cs.patch
pcmcia: id_table for teles_cs

pcmcia-id_table-for-ray_cs.patch
pcmcia: id_table for ray_cs

pcmcia-id_table-for-wavelan_cs.patch
pcmcia: id_table for wavelan_cs

pcmcia-id_table-for-sym53c500_csc.patch
pcmcia: id_table for sym53c500_cs.c

pcmcia-id_table-for-qlogic_stubc.patch
pcmcia: id_table for qlogic_stub.c

pcmcia-id_table-for-smc91c92_csc.patch
pcmcia: id_table for smc91c92_cs.c

pcmcia-id_table-for-orinoco_cs.patch
pcmcia: id_table for orinoco_cs

pcmcia-id_table-for-xirc2ps_csc.patch
pcmcia: id_table for xirc2ps_cs.c

pcmcia-id_table-for-ide_csc.patch
pcmcia: id_table for ide_cs.c

pcmcia-id_table-for-parport_csc.patch
pcmcia: id_table for parport_cs.c

pcmcia-id_table-for-pcnet_csc.patch
pcmcia: id_table for pcnet_cs.c

pcmcia-id_table-for-pcmciamtdc.patch
pcmcia: id_table for pcmciamtd.c

pcmcia-id_table-for-vxpocketc.patch
pcmcia: id_table for vxpocket.c

pcmcia-id_table-for-atmel_csc.patch
pcmcia: id_table for atmel_cs.c

pcmcia-id_table-for-avma1_csc.patch
pcmcia: id_table for avma1_cs.c

pcmcia-id_table-for-avm_csc.patch
pcmcia: id_table for avm_cs.c

pcmcia-id_table-for-bluecard_csc.patch
pcmcia: id_table for bluecard_cs.c

pcmcia-id_table-for-bt3c_csc.patch
pcmcia: id_table for bt3c_cs.c

pcmcia-id_table-for-btuart_csc.patch
pcmcia: id_table for btuart_cs.c

pcmcia-id_table-for-com20020_csc.patch
pcmcia: id_table for com20020_cs.c

pcmcia-id_table-for-dtl1_csc.patch
pcmcia: id_table for dtl1_cs.c

pcmcia-id_table-for-elsa_csc.patch
pcmcia: id_table for elsa_cs.c

pcmcia-id_table-for-ixj_pcmciac.patch
pcmcia: id_table for ixj_pcmcia.c

pcmcia-id_table-for-nsp_csc.patch
pcmcia: id_table for nsp_cs.c

pcmcia-id_table-for-sedlbauer_csc.patch
pcmcia: id_table for sedlbauer_cs.c

pcmcia-id_table-for-wl3501_csc.patch
pcmcia: id_table for wl3501_cs.c

pcmcia-id_table-for-pdaudiocfc.patch
pcmcia: id_table for pdaudiocf.c

pcmcia-id_table-for-synclink_csc.patch
pcmcia: id_table for synclink_cs.c

pcmcia-add-some-documentation.patch
pcmcia: add some Documentation

pcmcia-update-resource-database-adjust-routines-to-use-unsigned-long-values.patch
pcmcia: update resource database adjust routines to use unsigned long values

pcmcia-mark-parent-bridge-windows-as-resources-available-for-pcmcia-devices.patch
pcmcia: mark parent bridge windows as resources available for PCMCIA devices

pcmcia-add-a-config-option-for-the-pcmica-ioctl.patch
pcmcia: add a config option for the PCMICA ioctl

pcmcia-move-pcmcia-ioctl-to-a-separate-file.patch
pcmcia: move PCMCIA ioctl to a separate file

pcmcia-clean-up-cs-ds-callback.patch
pcmcia: clean up cs ds callback

pcmcia-clean-up-cs-ds-callback-fix.patch
pcmcia-clean-up-cs-ds-callback-fix

pcmcia-make-pcmcia-status-a-bitfield.patch
pcmcia: make PCMCIA status a bitfield

pcmcia-merge-struct-pcmcia_bus_socket-into-struct-pcmcia_socket.patch
pcmcia: merge struct pcmcia_bus_socket into struct pcmcia_socket

pcmcia-remove-unneeded-includes-in-dsc.patch
pcmcia: remove unneeded includes in ds.c

pcmcia-rename-some-functions.patch
pcmcia: rename some functions

pcmcia-move-pcmcia-resource-handling-out-of-csc.patch
pcmcia: move pcmcia resource handling out of cs.c

pcmcia-csc-cleanup.patch
pcmcia: cs.c cleanup

pcmcia-dsc-cleanup.patch
pcmcia: ds.c cleanup

pcmcia-release_class.patch
pcmcia: release_class

pcmcia-use-request_region-in-i82365.patch
pcmcia: use request_region in i82365

pcmcia-synclink_cs-irq_info2_info-is-gone.patch
pcmcia: synclink_cs IRQ_INFO2_INFO is gone

pcmcia-mod_devicetableh-fix-for-different-sizes-in-kernel-and-userspace.patch
pcmcia: mod_devicetable.h fix for different sizes in kernel- and userspace

pcmcia-select-crc32-in-kconfig-for-pcmcia.patch
pcmcia: select crc32 in Kconfig for PCMCIA

pcmcia-resource-handling-fixes.patch
pcmcia: resource handling fixes

nfsd-clear-signals-before-exiting-the-nfsd-thread.patch
nfsd: clear signals before exiting the nfsd() thread

nfsd4-callback-create-rpc-client-returns.patch
nfsd4: callback create rpc client returns

nfsd4-fix-struct-file-leak.patch
nfsd4: fix struct file leak

nfsd4-find_delegation_file.patch
nfsd4: find_delegation_file()

nfsd4-nfs4_check_delegmode.patch
nfsd4: nfs4_check_delegmode

nfsd4-dont-reopen-for-delegated-client.patch
nfsd4: don't reopen for delegated client

nfsd4-add-open-state-code-for-claim_delegate_cur.patch
nfsd4: add open state code for CLAIM_DELEGATE_CUR

nfsd4-support-claim_delegate_cur.patch
nfsd4: support CLAIM_DELEGATE_CUR

nfsd4-fix-fh_expire_type.patch
nfsd4: fix fh_expire_type

nfsd4-block-metadata-ops-during-grace-period.patch
nfsd4: block metadata ops during grace period

nfsd4-slabify-nfs4_files.patch
nfsd4: slabify nfs4_files

nfsd4-slabify-stateids.patch
nfsd4: slabify stateids

nfsd4-slabify-delegations.patch
nfsd4: slabify delegations

nfsd4-remove-debugging-counters.patch
nfsd4: remove debugging counters

nfsd4-rename-nfs4_file-fields.patch
nfsd4: rename nfs4_file fields

nfsd4-reference-count-struct-nfs4_file.patch
nfsd4: reference count struct nfs4_file

nfsacl-solaris-nfsacl-workaround.patch
nfsacl: Solaris nfsacl workaround

nfs-client-latencies.patch
NFS client latency fixes

kgdb-ga.patch
kgdb stub for ia32 (George Anzinger's one)
kgdbL warning fix
kgdb buffer overflow fix
kgdbL warning fix
kgdb: CONFIG_DEBUG_INFO fix
x86_64 fixes
correct kgdb.txt Documentation link (against 2.6.1-rc1-mm2)
kgdb: fix for recent gcc
kgdb warning fixes
THREAD_SIZE fixes for kgdb
Fix stack overflow test for non-8k stacks
kgdb-ga.patch fix for i386 single-step into sysenter
fix TRAP_BAD_SYSCALL_EXITS on i386
add TRAP_BAD_SYSCALL_EXITS config for i386
kgdb-is-incompatible-with-kprobes
kgdb-ga-build-fix
kgdb-ga-fixes
kgdb: kill off highmem_start_page
kgdb documentation fix

kgdb-x86-config_debug_info-fix.patch
kgdb CONFIG_DEBUG_INFO fix

kgdboe-netpoll.patch
kgdb-over-ethernet via netpoll
kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
kgdb-x86_64-warning-fixes
kgdb-x86_64-fix
kgdb-x86_64-serial-fix
kprobes exception notifier fix

kgdb-x86_64-config_debug_info-fix.patch
kgdb CONFIG_DEBUG_INFO fix

rock-lindent.patch
rock: lindent it

rock-manual-tidies.patch
rock: manual tidies

rock-remove-CHECK_SP.patch
rock: remove CHECK_SP

rock-remove-CONTINUE_DECLS.patch
rock: remove CONTINUE_DECLS

rock-remove-CHECK_CE.patch
rock: remove CHECK_CE

rock-remove-SETUP_ROCK_RIDGE.patch
rock: remove SETUP_ROCK_RIDGE

rock-remove-MAYBE_CONTINUE.patch
rock: remove MAYBE_CONTINUE

rock-comment-tidies.patch
rock: comment tidies

rock-lindent-rock-h.patch
rock: lindent rock.h

isofs-remove-debug-stuff.patch
isofs: remove debug stuff

rock-handle-corrupted-directories.patch
rock.c: handle corrupted directories

rock-rename-union-members.patch
rock: rename union members

rock-handle-directory-overflows.patch
rock: handle directory overflows

rock-handle-directory-overflows-fix.patch
rock-handle-directory-overflows-fix

journal_add_journal_head-debug.patch
journal_add_journal_head-debug

list_del-debug.patch
list_del debug check

page-owner-tracking-leak-detector.patch
Page owner tracking leak detector

make-page_owner-handle-non-contiguous-page-ranges.patch
make page_owner handle non-contiguous page ranges

add-gfp_mask-to-page-owner.patch
add gfp_mask to page owner

unplug-can-sleep.patch
unplug functions can sleep

firestream-warnings.patch
firestream warnings

periodically-scan-redzone-entries-and-slab-control-structures.patch
periodically scan redzone entries and slab control structures

slab-leak-detector.patch
slab leak detector

slab-leak-detector-warning-fixes.patch
slab leak detector warning fixes

irqpoll.patch
irqpoll

releasing-resources-with-children.patch
Releasing resources with children

silence-spinlock-rwlock-uninitialized-break_lock-member.patch
silence spinlock/rwlock uninitialized break_lock member warnings

perfctr-core.patch
perfctr: core
perfctr: remove bogus perfctr_sample_thread() calls

perfctr-i386.patch
perfctr: i386

perfctr-x86-core-updates.patch
perfctr x86 core updates

perfctr-x86-driver-updates.patch
perfctr x86 driver updates

perfctr-x86-driver-cleanup.patch
perfctr: x86 driver cleanup

perfctr-prescott-fix.patch
Prescott fix for perfctr

perfctr-x86-update-2.patch
perfctr x86 update 2

perfctr-x86_64.patch
perfctr: x86_64

perfctr-x86_64-core-updates.patch
perfctr x86_64 core updates

perfctr-ppc.patch
perfctr: PowerPC

perfctr-ppc32-driver-update.patch
perfctr: ppc32 driver update

perfctr-ppc32-mmcr0-handling-fixes.patch
perfctr ppc32 MMCR0 handling fixes

perfctr-ppc32-update.patch
perfctr ppc32 update

perfctr-ppc32-update-2.patch
perfctr ppc32 update

perfctr-virtualised-counters.patch
perfctr: virtualised counters

perfctr-remap_page_range-fix.patch

virtual-perfctr-illegal-sleep.patch
virtual perfctr illegal sleep

make-perfctr_virtual-default-in-kconfig-match-recommendation.patch
Make PERFCTR_VIRTUAL default in Kconfig match recommendation in help text

perfctr-ifdef-cleanup.patch
perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
perfctr: Kconfig-related updates

perfctr-virtual-updates.patch
perfctr virtual updates

perfctr-virtual-cleanup.patch
perfctr: virtual cleanup

perfctr-ppc32-preliminary-interrupt-support.patch
perfctr ppc32 preliminary interrupt support

perfctr-update-5-6-reduce-stack-usage.patch
perfctr: reduce stack usage

perfctr-interrupt-support-kconfig-fix.patch
perfctr interrupt_support Kconfig fix

perfctr-low-level-documentation.patch
perfctr low-level documentation

perfctr-inheritance-1-3-driver-updates.patch
perfctr inheritance: driver updates

perfctr-inheritance-2-3-kernel-updates.patch
perfctr inheritance: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
perfctr inheritance: documentation updates

perfctr-inheritance-locking-fix.patch
perfctr inheritance locking fix

perfctr-api-changes-first-step.patch
perfctr API changes: first step

perfctr-virtual-update.patch
perfctr virtual update

perfctr-x86-64-ia32-emulation-fix.patch
perfctr x86-64 ia32 emulation fix

perfctr-sysfs-update-1-4-core.patch
perfctr sysfs update: core

perfctr-sysfs-update.patch
Perfctr sysfs update

perfctr-sysfs-update-2-4-x86.patch
perfctr sysfs update: x86

perfctr-sysfs-update-3-4-x86-64.patch
perfctr sysfs update: x86-64
perfctr: syscall numbers in x86-64 ia32-emulation
perfctr x86_64 native syscall numbers fix

perfctr-sysfs-update-4-4-ppc32.patch
perfctr sysfs update: ppc32

perfctr-2710-api-update-1-4-common.patch
perfctr-2.7.10 API update 1/4: common

perfctr-2710-api-update-2-4-i386.patch
perfctr-2.7.10 API update 2/4: i386

perfctr-2710-api-update-3-4-x86_64.patch
perfctr-2.7.10 API update 3/4: x86_64

perfctr-2710-api-update-4-4-ppc32.patch
perfctr-2.7.10 API update 4/4: ppc32

perfctr-api-update-1-9-physical-indexing-x86.patch
perfctr API update 1/9: physical indexing, x86

perfctr-api-update-2-9-physical-indexing-ppc32.patch
perfctr API update 2/9: physical indexing, ppc32

perfctr-api-update-3-9-cpu_control_header-x86.patch
perfctr API update 3/9: cpu_control_header, x86

perfctr-api-update-4-9-cpu_control_header-ppc32.patch
perfctr API update 4/9: cpu_control_header, ppc32

perfctr-api-update-5-9-cpu_control_header-common.patch
perfctr API update 5/9: cpu_control_header, common

perfctr-api-update-6-9-cpu_control-access-common.patch
perfctr API update 6/9: cpu_control access, common

perfctr-api-update-7-9-cpu_control-access-x86.patch
perfctr API update 7/9: cpu_control access, x86

perfctr-api-update-8-9-cpu_control-access-ppc32.patch
perfctr API update 8/9: cpu_control access, ppc32

perfctr-api-update-9-9-domain-based-read-write-syscalls.patch
perfctr API update 9/9: domain-based read/write syscalls

perfctr-ia32-syscalls-on-x86-64-fix.patch
perfctr ia32 syscalls on x86-64 fix

perfctr-cleanups-1-3-common.patch
perfctr cleanups: common

perfctr-cleanups-2-3-ppc32.patch
perfctr cleanups: ppc32

perfctr-cleanups-3-3-x86.patch
perfctr cleanups: x86

perfctr-x86-fix-and-cleanups.patch
perfctr: x86 fix and cleanups

perfctr-ppc32-fix-and-cleanups.patch
perfctr: ppc32 fix and cleanups

perfctr-64-bit-values-in-register-descriptors.patch
perfctr: 64-bit values in register descriptors

perfctr-64-bit-values-in-register-descriptors-fix.patch
perfctr-64-bit-values-in-register-descriptors fix

perfctr-mapped-state-cleanup-x86.patch
perfctr: mapped state cleanup: x86

perfctr-mapped-state-cleanup-ppc32.patch
perfctr: mapped state cleanup: ppc32

perfctr-mapped-state-cleanup-common.patch
perfctr: mapped state cleanup: common

perfctr-ppc64-arch-hooks.patch
perfctr: ppc64 arch hooks

perfctr-common-updates-for-ppc64.patch
perfctr: common updates for ppc64

perfctr-ppc64-driver-core.patch
perfctr: ppc64 driver core

perfctr-x86-abi-update.patch
perfctr: x86 ABI update

perfctr-ppc32-abi-update.patch
perfctr: ppc32 ABI update

perfctr-ppc64-abi-update.patch
perfctr: ppc64 ABI update

sched2-cleanup-wake_idle.patch
sched: cleanup wake_idle

sched2-improve-load-balancing-pinned-tasks.patch
sched: improve load balancing pinned tasks

sched2-reduce-active-load-balancing.patch
sched: reduce active load balancing

sched2-fix-smt-scheduling-problems.patch
sched: fix SMT scheduling problems

sched2-add-debugging.patch
sched: add debugging

sched2-less-aggressive-idle-balancing.patch
sched: less aggressive idle balancing

sched2-balance-timers.patch
sched: balance timers

sched2-tweak-affine-wakeups.patch
sched: tweak affine wakeups

sched2-no-aggressive-idle-balancing.patch
sched: no aggressive idle balancing

sched2-balance-on-fork.patch
sched: balance on fork

sched2-schedstats-update-for-balance-on-fork.patch
sched: schedstats update for balance on fork

sched2-sched-tuning.patch
sched: sched tuning

sched2-sched-tuning-fix.patch
sched2-sched-tuning-fix

sched2-sched-domain-sysctl.patch
sched: sched domain sysctl

sched-uninline-task_timeslice.patch
sched: uninline task_timeslice

sched-cleanup-context-switch-locking.patch
sched: cleanup context switch locking

sched-null-domains.patch
sched: null domains

sched-remove-degenerate-domains.patch
sched: remove degenerate domains

sched-multilevel-sbe-sbf.patch
sched: multilevel sbe sbf

sched-rcu-domains.patch
sched: RCU domains

sched-consolidate-sbe-sbf.patch
sched: consolidate sbe sbf

sched-consolidate-sbe-sbf-fix-2.patch
sched-consolidate-sbe-sbf fix #2

sched-relax-pinned-balancing.patch
sched: relax pinned balancing

sched-unlocked-context-switches.patch
sched: unlocked context-switches

add-do_proc_doulonglongvec_minmax-to-sysctl-functions.patch
Add do_proc_doulonglongvec_minmax to sysctl functions
add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix
add-do_proc_doulonglongvec_minmax-to-sysctl-functions fix 2

allow-x86_64-to-reenable-interrupts-on-contention.patch
Allow x86_64 to reenable interrupts on contention

i386-cpu-hotplug-updated-for-mm.patch
i386 CPU hotplug

disable-atykb-warning.patch
disable atykb "too many keys pressed" warning

export-file_ra_state_init-again.patch
Export file_ra_state_init() again

cachefs-filesystem.patch
CacheFS filesystem

numa-policies-for-file-mappings-mpol_mf_move-cachefs.patch
numa-policies-for-file-mappings-mpol_mf_move for cachefs

cachefs-release-search-records-lest-they-return-to-haunt-us.patch
CacheFS: release search records lest they return to haunt us

fix-64-bit-problems-in-cachefs.patch
Fix 64-bit problems in cachefs

cachefs-fixed-typos-that-cause-wrong-pointer-to-be-kunmapped.patch
cachefs: fixed typos that cause wrong pointer to be kunmapped

cachefs-return-the-right-error-upon-invalid-mount.patch
CacheFS: return the right error upon invalid mount

fix-cachefs-barrier-handling-and-other-kernel-discrepancies.patch
Fix CacheFS barrier handling and other kernel discrepancies

remove-error-from-linux-cachefsh.patch
Remove #error from linux/cachefs.h

cachefs-warning-fix-2.patch
cachefs warning fix 2

cachefs-linkage-fix-2.patch
cachefs linkage fix

cachefs-build-fix.patch
cachefs build fix

cachefs-documentation.patch
CacheFS documentation

add-page-becoming-writable-notification.patch
Add page becoming writable notification

add-page-becoming-writable-notification-fix.patch
do_wp_page_mk_pte_writable() fix

add-page-becoming-writable-notification-build-fix.patch
add-page-becoming-writable-notification build fix

make-page-becoming-writable-notification-a-vma-op-only.patch
Make page-becoming-writable notification a VMA-op only

provide-a-filesystem-specific-syncable-page-bit.patch
Provide a filesystem-specific sync'able page bit

provide-a-filesystem-specific-syncable-page-bit-fix.patch
provide-a-filesystem-specific-syncable-page-bit-fix

provide-a-filesystem-specific-syncable-page-bit-fix-2.patch
provide-a-filesystem-specific-syncable-page-bit-fix-2

make-afs-use-cachefs.patch
Make AFS use CacheFS

afs-cachefs-dependency-fix.patch
afs-cachefs-dependency-fix

split-general-cache-manager-from-cachefs.patch
Split general cache manager from CacheFS

turn-cachefs-into-a-cache-backend.patch
Turn CacheFS into a cache backend

rework-the-cachefs-documentation-to-reflect-fs-cache-split.patch
Rework the CacheFS documentation to reflect FS-Cache split

update-afs-client-to-reflect-cachefs-split.patch
Update AFS client to reflect CacheFS split

make-page-becoming-writable-notification-a-vma-op-only-kafs-fix.patch
Make page-becoming-writable notification a VMA-op only (kafs fix)

fscache-menuconfig-help-fix-documentation-path.patch
fscache-menuconfig-help-fix-documentation-pathc

x86-rename-apic_mode_exint.patch
kexec: x86: rename APIC_MODE_EXINT

x86-local-apic-fix.patch
kexec: x86: local apic fix

x86_64-e820-64bit.patch
kexec: x86_64: e820 64bit fix

x86-i8259-shutdown.patch
kexec: x86: i8259 shutdown: disable interrupts

x86_64-i8259-shutdown.patch
kexec: x86_64: add i8259 shutdown method

x86-apic-virtwire-on-shutdown.patch
kexec: x86: resture apic virtual wire mode on shutdown

x86_64-apic-virtwire-on-shutdown.patch
kexec: x86_64: restore apic virtual wire mode on shutdown

vmlinux-fix-physical-addrs.patch
kexec: vmlinux: fix physical addresses

x86-vmlinux-fix-physical-addrs.patch
kexec: x86: vmlinux: fix physical addresses

x86_64-vmlinux-fix-physical-addrs.patch
kexec: x86_64: vmlinux: fix physical addresses

x86-config-kernel-start.patch
kexec: x86: add CONFIG_PYSICAL_START

kexec-reserve-bootmem-fix-for-booting-nondefault-location-kernel.patch
kexec: reserve Bootmem fix for booting nondefault location kernel

x86_64-config-kernel-start.patch
kexec: x86_64: add CONFIG_PHYSICAL_START

kexec-kexec-generic.patch
kexec: add kexec syscalls

kexec-kexec-generic-kexec-use-unsigned-bitfield.patch
kexec: use unsigned bitfield

x86-machine_shutdown.patch
kexec: x86: factor out apic shutdown code

x86-kexec.patch
kexec: x86 kexec core

x86-crashkernel.patch
crashdump: x86 crashkernel option

x86-crashkernel-fix.patch
kexec: fix for broken kexec on panic

x86_64-machine_shutdown.patch
kexec: x86_64: factor out apic shutdown code

x86_64-kexec.patch
kexec: x86_64 kexec implementation

x86_64-crashkernel.patch
crashdump: x86_64: crashkernel option

kexec-ppc-support.patch
kexec: kexec ppc support

kexec-ppc-fix-noret_type.patch
kexec: ppc: fix NORET_TYPE

x86-crash_shutdown-nmi-shootdown.patch
crashdump: x86: add NMI handler to capture other CPUs

x86-crash_shutdown-snapshot-registers.patch
kexec: x86: snapshot registers during crash shutdown

x86-crash_shutdown-apic-shutdown.patch
kexec: x86 shutdown APICs during crash_shutdown

kdump-export-crash-notes-section-address-through.patch
Kdump: Export crash notes section address through sysfs

kdump-export-crash-notes-section-address-through-x86_64-fix.patch
kdump-export-crash-notes-section-address-through x86_64 fix

kdump-nmi-handler-segment-selector-stack.patch
kdump: NMI handler segment selector, stack pointer fix

kdump-documentation-for-kdump.patch
kdump: Documentation for Kdump

kdump-retrieve-saved-max-pfn.patch
kdump: Retrieve saved max pfn

kdump-kconfig-for-kdump.patch
kdump: Kconfig

kdump-routines-for-copying-dump-pages.patch
kdump: Routines for copying dump pages

kdump-retrieve-elfcorehdr-address-from-command.patch
Retrieve elfcorehdr address from command line

kdump-access-dump-file-in-elf-format.patch
kdump: Access dump file in elf format (/proc/vmcore)

kdump-parse-elf32-headers-and-export-through.patch
kdump: Parse elf32 headers and export through /proc/vmcore

kdump-accessing-dump-file-in-linear-raw-format.patch
kdump: Accessing dump file in linear raw format (/dev/oldmem)

kdump-cleanups-for-dump-file-access-in-linear.patch
kdump: cleanups for dump file access in linear raw format

kdump-sysrq-trigger-mechanism-for-kexec-based-crashdumps.patch
kdump: sysrq trigger mechanism for kexec based crashdumps

reiser4-sb_sync_inodes.patch
reiser4: vfs: add super_operations.sync_inodes()

reiser4-allow-drop_inode-implementation.patch
reiser4: export vfs inode.c symbols

reiser4-truncate_inode_pages_range.patch
reiser4: vfs: add truncate_inode_pages_range()

reiser4-export-remove_from_page_cache.patch
reiser4: export pagecache add/remove functions to modules

reiser4-export-page_cache_readahead.patch
reiser4: export page_cache_readahead to modules

reiser4-reget-page-mapping.patch
reiser4: vfs: re-check page->mapping after calling try_to_release_page()

reiser4-rcu-barrier.patch
reiser4: add rcu_barrier() synchronization point

reiser4-rcu-barrier-license-fix.patch
reiser4-rcu-barrier-license-fix

reiser4-export-inode_lock.patch
reiser4: export inode_lock to modules

reiser4-export-pagevec-funcs.patch
reiser4: export pagevec functions to modules

reiser4-export-radix_tree_preload.patch
reiser4: export radix_tree_preload() to modules

reiser4-export-find_get_pages.patch

reiser4-radix_tree_lookup_slot.patch
reiser4: add radix_tree_lookup_slot()

reiser4-include-reiser4.patch
reiser4: add to build system

reiser4-doc.patch
reiser4: documentation

reiser4-only.patch
reiser4: main fs

reiser4-kconfig-help-cleanup.patch
reiser4 Kconfig help cleanup

add-acpi-based-floppy-controller-enumeration.patch
Add ACPI-based floppy controller enumeration.

possible-dcache-bug-debugging-patch.patch
Possible dcache BUG: debugging patch

serial-add-support-for-non-standard-xtals-to-16c950-driver.patch
serial: add support for non-standard XTALs to 16c950 driver

add-support-for-possio-gcc-aka-pcmcia-siemens-mc45.patch
Add support for Possio GCC AKA PCMCIA Siemens MC45

serial-mri-mri-pcids1-dual-port-serial-card.patch
serial: MRi MRI-PCIDS1 dual port serial card

remove-lock_section-from-x86_64-spin_lock-asm.patch
remove LOCK_SECTION from x86_64 spin_lock asm

kfree_skb-dump_stack.patch
kfree_skb-dump_stack

minimal-ide-disk-updates.patch
Minimal ide-disk updates

fbdev-maintainers-update.patch
fbdev MAINTAINERS update

fbdev-batch-cmap-changes-at-driver-level.patch
fbdev: Batch cmap changes at driver level

md-close-a-small-race-in-md-thread-deregistration.patch
md: close a small race in md thread deregistration

md-remove-a-number-of-misleading-calls-to-md_bug.patch
md: remove a number of misleading calls to MD_BUG

md-merge-md_enter_safemode-into-md_check_recovery.patch
md: merge md_enter_safemode into md_check_recovery

md-improve-locking-on-safemode-and-move-superblock-writes.patch
md: improve locking on 'safemode' and move superblock writes

md-improve-the-interface-to-sync_request.patch
md: improve the interface to sync_request

md-optimised-resync-using-bitmap-based-intent-logging.patch
md: optimised resync using Bitmap based intent logging

md-optimised-resync-using-bitmap-based-intent-logging-mempool-fix.patch
md-optimised-resync-using-bitmap-based-intent-logging-mempool-fix

md-a-couple-of-tidyups-relating-to-the-bitmap-file.patch
md: a couple of tidyups relating to the bitmap file.

md-call-bitmap_daemon_work-regularly.patch
md: call bitmap_daemon_work regularly

md-print-correct-pid-for-newly-created-bitmap-writeback-daemon.patch
md: print correct pid for newly created bitmap-writeback-daemon.

md-minor-code-rearrangement-in-bitmap_init_from_disk.patch
md: minor code rearrangement in bitmap_init_from_disk

md-make-sure-md-bitmap-is-cleared-on-a-clean-start.patch
md: make sure md bitmap is cleared on a clean start.

md-printk-fix.patch
md printk fix

md-improve-debug-printing-of-bitmap-superblock.patch
md: improve debug-printing of bitmap superblock.

md-check-return-value-of-write_page-rather-than-ignore-it.patch
md: check return value of write_page, rather than ignore it

md-enable-the-bitmap-write-back-daemon-and-wait-for-it.patch
md: enable the bitmap write-back daemon and wait for it.

md-dont-skip-bitmap-pages-due-to-lack-of-bit-that-we-just-cleared.patch
md: don't skip bitmap pages due to lack of bit that we just cleared.

md-optimised-resync-using-bitmap-based-intent-logging-fix.patch
md-optimised-resync-using-bitmap-based-intent-logging fix

md-raid1-support-for-bitmap-intent-logging.patch
md: raid1 support for bitmap intent logging

md-fix-bug-when-raid1-attempts-a-partial-reconstruct.patch
md: fix bug when raid1 attempts a partial reconstruct.

md-raid1-support-for-bitmap-intent-logging-fix.patch
md: initialise sync_blocks in raid1 resync

md-optimise-reconstruction-when-re-adding-a-recently-failed-drive.patch
md: optimise reconstruction when re-adding a recently failed drive.

md-fix-deadlock-due-to-md-thread-processing-delayed-requests.patch
md: fix deadlock due to md thread processing delayed requests.

md-allow-md-intent-bitmap-to-be-stored-near-the-superblock.patch
md: allow md intent bitmap to be stored near the superblock.

md-allow-md-to-update-multiple-superblocks-in-parallel.patch
md: allow md to update multiple superblocks in parallel.

detect-atomic-counter-underflows.patch
detect atomic counter underflows

docbook-changes-and-extensions-to-the-kernel-documentation.patch
DocBook: changes and extensions to the kernel documentation

docbook-fix-void-xml-tag.patch
DocBook: fix <void/> xml tag

docbook-fix-some-descriptions.patch
DocBook: fix some descriptions

docbook-use-informalexample-for-examples.patch
DocBook: use <informalexample> for examples

docbook-remove-obsolete-templates.patch
DocBook: remove obsolete templates

docbook-use-xmlto-to-process-the-docbook-files.patch
DocBook: Use xmlto to process the DocBook files.

post-halloween-doc.patch
post halloween doc

fuse-maintainers-kconfig-and-makefile-changes.patch
FUSE - MAINTAINERS, Kconfig and Makefile changes

fuse-core.patch
FUSE - core

fuse-device-functions.patch
FUSE - device functions

fuse-device-functions-abi-version-change.patch
FUSE: ABI version change

fuse-device-functions-comments-and-documentation.patch
FUSE: comments and documentation

fuse-device-functions-cleanup.patch
FUSE: trivial cleanups

fuse-read-only-operations.patch
FUSE - read-only operations

fuse-read-only-operations-add-offset-to-fuse_dirent.patch
FUSE: add offset to fuse_dirent

fuse-read-only-operations-readdir-fixes.patch
FUSE: readdir fixes

fuse-read-write-operations.patch
FUSE - read-write operations

fuse-file-operations.patch
FUSE - file operations

fuse-mount-options.patch
FUSE - mount options

fuse-mount-options-fix.patch
fuse: fix busy inodes after unmount

fuse-mount-options-comments-and-documentation.patch
FUSE: comments and documentation

fuse-mount-options-fix-cleanup.patch
FUSE: trivial cleanups

fuse-mount-options-fix-fix.patch
FUSE: fix locking for background list

fuse-extended-attribute-operations.patch
FUSE - extended attribute operations

fuse-add-padding.patch
FUSE: add padding

fuse-readpages-operation.patch
FUSE - readpages operation

fuse-nfs-export.patch
FUSE - NFS export

fuse-direct-i-o.patch
FUSE - direct I/O

fuse-direct-i-o-fix-warning-on-x86_64.patch
FUSE: fix warning on x86_64

fuse-transfer-readdir-data-through-device.patch
fuse: transfer readdir data through device

fuse-add-fsync-operation-for-directories.patch
FUSE: add fsync operation for directories

drivers-isdn-divert-isdn_divertc-make-5-functions-static.patch
drivers/isdn/divert/isdn_divert.c: make 5 functions static

drivers-isdn-capi-make-some-code-static.patch
drivers/isdn/capi/: make some code static

drivers-scsi-pas16c-make-code-static.patch
drivers/scsi/pas16.c: make code static

i386-x86_64-early_printkc-make-early_serial_base-static.patch
i386/x86_64 early_printk.c: make early_serial_base static

kernel-exitc-make-exit_mm-static.patch
kernel/exit.c: make exit_mm static

drivers-serial-jsm-make-2-functions-static.patch
drivers/serial/jsm/: make 2 functions static

arch-i386-kernel-cpu-mtrr-genericc-make-generic_get_mtrr-static.patch
arch/i386/kernel/cpu/mtrr/generic.c: make generic_get_mtrr static

drivers-pnp-pnpbios-rsparserc-fix-an-array-overflow.patch
drivers/pnp/pnpbios/rsparser.c: fix an array overflow

drivers-video-radeonfbc-fix-an-array-overflow.patch
drivers/video/radeonfb.c: fix an array overflow

drivers-pnp-pnpacpi-rsparserc-fix-an-array-overflow.patch
drivers/pnp/pnpacpi/rsparser.c: fix an array overflow

drivers-input-joystick-spaceorbc-fix-an-array-overflow.patch
drivers/input/joystick/spaceorb.c: fix an array overflow

sound-oss-sonicvibesc-fix-an-array-overflow.patch
sound/oss/sonicvibes.c: fix an array overflow

cyrix-eliminate-bad-section-references.patch
cyrix: eliminate bad section references

drivers-media-video-tvaudioc-make-some-variables-static.patch
drivers/media/video/tvaudio.c: make some variables static

drivers-isdn-sc-possible-cleanups.patch
drivers/isdn/sc/: possible cleanups

drivers-isdn-pcbit-possible-cleanups.patch
drivers/isdn/pcbit/: possible cleanups

drivers-isdn-i4l-possible-cleanups.patch
drivers/isdn/i4l/: possible cleanups

unexport-mca_find_device_by_slot.patch
unexport mca_find_device_by_slot

drivers-isdn-hardware-avm-misc-cleanups.patch
drivers/isdn/hardware/avm/: misc cleanups

drivers-isdn-act2000-capic-if-0-an-unused-function.patch
drivers/isdn/act2000/capi.c: #if 0 an unused function

tpm-fix-gcc-printk-warnings.patch
tpm: fix gcc printk warnings

x86-64-add-memcpy-memset-prototypes.patch
x86-64: add memcpy/memset prototypes

au1100fb-convert-to-c99-inits.patch
au1100fb: convert to C99 inits.

reiserfs-use-null-instead-of-0.patch
reiserfs: use NULL instead of 0

comments-on-locking-of-task-comm.patch
comments on locking of task->comm

riottyc-cleanups-and-warning-fix.patch
riotty.c cleanups and warning fix

fixup-a-comment-still-refering-to-verify_area.patch
fix up a comment still refering to verify_area

char-ds1620-use-msleep-instead-of-schedule_timeout.patch
char/ds1620: use msleep() instead of schedule_timeout()

char-tty_io-replace-schedule_timeout-with-msleep_interruptible.patch
char/tty_io: replace schedule_timeout() with msleep_interruptible()

kernel-timer-fix-msleep_interruptible-comment.patch
kernel/timer: fix msleep_interruptible() comment

ixj-compile-warning-cleanup.patch
ixj* - compile warning cleanup

spelling-cleanups-in-shrinker-code.patch
Spelling cleanups in shrinker code

init-do_mounts_initrdc-fix-sparse-warning.patch
init/do_mounts_initrd.c: fix sparse warning

arch-i386-kernel-trapsc-fix-sparse-warnings.patch
arch/i386/kernel/traps.c: fix sparse warnings

arch-i386-kernel-apmc-fix-sparse-warnings.patch
arch/i386/kernel/apm.c: fix sparse warnings

arch-i386-mm-faultc-fix-sparse-warnings.patch
arch/i386/mm/fault.c: fix sparse warnings

arch-i386-crypto-aesc-fix-sparse-warnings.patch
arch/i386/crypto/aes.c: fix sparse warnings

codingstyle-trivial-whitespace-fixups.patch
CodingStyle: trivial whitespace fixups

small-partitions-msdos-cleanups.patch
small partitions/msdos cleanups

remove-redundant-null-check-before-before-kfree-in.patch
remove redundant NULL check before before kfree() in kernel/sysctl.c

update-ross-biro-bouncing-email-address.patch
update Ross Biro bouncing email address

get-rid-of-redundant-null-checks-before-kfree-in-arch-i386.patch
get rid of redundant NULL checks before kfree() in arch/i386/

remove-redundant-null-checks-before-kfree-in-sound-and.patch
remove redundant NULL checks before kfree() in sound/ and avoid casting pointers about to be kfree()'ed

x86-geode-support-fixes.patch
x86: geode support fixes

drivers-scsi-initioc-cleanups.patch
drivers/scsi/initio.c: cleanups

dont-do-pointless-null-checks-and-casts-before-kfree.patch
selinux: kfree cleanup

drivers-char-isicomc-section-fixes.patch
drivers/char/isicom.c: section fixes

sound-oss-cleanups.patch
sound/oss/: cleanups

sound-oss-cleanups-fix.patch
nm256 oss build failure

sound-oss-rme96xxc-remove-kernel-22-ifs.patch
sound/oss/rme96xx.c: remove kernel 2.2 #if's

drivers-char-mwave-tp3780ic-remove-kernel-22-ifs.patch
drivers/char/mwave/tp3780i.c: remove kernel 2.2 #if's

drivers-net-skfp-cleanups.patch
drivers/net/skfp/: cleanups

net-atm-resourcesc-remove-__free_atm_dev.patch
Subject: [2.6 patch] net/atm/resources.c: remove __free_atm_dev

fix-ncr53c9xc-compile-warning.patch
fix NCR53C9x.c compile warning

fix-lib-sort-regression-test.patch
fix lib/sort regression test

correctly-name-the-shell-sort.patch
correctly name the Shell sort

lib-c-documentation-strncpy.patch
documentation for strncpy()

serial-icom-remove-custom-msescs_to_jiffies-macro.patch
serial/icom: Remove custom msescs_to_jiffies() macro

printk-drivers-char-applicomc.patch
printk: drivers/char/applicom.c

printk-drivers-char-ftape-compressor-zftape-compressc.patch
printk: drivers/char/ftape/compressor/zftape-compress.c

lib-sha1c-fix-sparse-warning.patch
lib/sha1.c: fix sparse warning

x86_64-coding-style-and-whitespace-fixups.patch
x86_64: coding style and whitespace fixups

use-align-to-remove-duplicate-code.patch
Use ALIGN to remove duplicate code

cosmetic-fixes-for-example-programs-in-documentation-cdrom-sbpcd.patch
cosmetic fixes for example programs in Documentation/cdrom/sbpcd

mm-mmapnommuc-several-unexports.patch
mm/{mmap,nommu}.c: several unexports

unexport-hugetlb_total_pages.patch
unexport hugetlb_total_pages

unexport-clear_page_dirty_for_io.patch
unexport clear_page_dirty_for_io

mm-filemapc-make-sync_page_range_nolock-static.patch
mm/filemap.c: make sync_page_range_nolock static

mm-filemapc-make-generic_file_direct_io-static.patch
mm/filemap.c: make generic_file_direct_IO static

remove-exports-for-oem-modules.patch
remove exports for oem modules

mm-page_allocc-unexport-nr_swap_pages.patch
unexport nr_swap_pages

unexport-console_unblank.patch
unexport console_unblank

mm-swapc-unexport-vm_acct_memory.patch
mm/swap.c: unexport vm_acct_memory

mm-swapfilec-unexport-total_swap_pages.patch
mm/swapfile.c: unexport total_swap_pages

mm-swap_statec-unexport-swapper_space.patch
mm/swap_state.c: unexport swapper_space

unexport-slab_reclaim_pages.patch
unexport slab_reclaim_pages

unexport-idle_cpu.patch
unexport idle_cpu




2005-04-11 08:56:59

by J.A. Magallon

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3


On 04.11, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>

Is this not needed anymore ?

--- 25/arch/i386/kernel/entry.S~nmi_stack_correct-fix 2005-04-05 00:02:48.000000000 -0700
+++ 25-akpm/arch/i386/kernel/entry.S 2005-04-05 00:02:48.000000000 -0700
@@ -178,9 +178,9 @@ ENTRY(resume_kernel)
need_resched:
movl TI_flags(%ebp), %ecx # need_resched set ?
testb $_TIF_NEED_RESCHED, %cl
- jz restore_all
+ jz restore_nocheck
testl $IF_MASK,EFLAGS(%esp) # interrupts off (exception path) ?
- jz restore_all
+ jz restore_nocheck
call preempt_schedule_irq
jmp need_resched
#endif
@@ -587,7 +587,7 @@ nmi_stack_correct:
xorl %edx,%edx # zero error code
movl %esp,%eax # pt_regs pointer
call do_nmi
- jmp restore_all
+ jmp restore_nocheck

nmi_stack_fixup:
FIX_STACK(12,nmi_stack_correct, 1)

--
J.A. Magallon <jamagallon()able!es> \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandrakelinux release 10.2 (Limited Edition 2005) for i586
Linux 2.6.11-jam12 (gcc 3.4.3 (Mandrakelinux 10.2 3.4.3-7mdk)) #1


2005-04-11 09:43:49

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3


(Please do reply-to-all)

"J.A. Magallon" <[email protected]> wrote:
>
> On 04.11, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >
> >
>
> Is this not needed anymore ?
>
> --- 25/arch/i386/kernel/entry.S~nmi_stack_correct-fix 2005-04-05 00:02:48.000000000 -0700
> +++ 25-akpm/arch/i386/kernel/entry.S 2005-04-05 00:02:48.000000000 -0700

Hopefully not. fix-crash-in-entrys-restore_all.patch works around the problem.

2005-04-11 10:33:54

by Jan Dittmer

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:
> bk-cifs.patch

This breaks the build on mips, ppc64, sparc, sparc64 with the
following error (defconfig, compared to mm2):

CC [M] fs/cifs/misc.o
fs/cifs/misc.c: In function `cifs_convertUCSpath':
fs/cifs/misc.c:546: error: case label does not reduce to an integer constant
fs/cifs/misc.c:549: error: case label does not reduce to an integer constant
fs/cifs/misc.c:552: error: case label does not reduce to an integer constant
fs/cifs/misc.c:561: error: case label does not reduce to an integer constant
fs/cifs/misc.c:564: error: case label does not reduce to an integer constant
fs/cifs/misc.c:567: error: case label does not reduce to an integer constant
make[2]: *** [fs/cifs/misc.o] Error 1
make[1]: *** [fs/cifs] Error 2
make: *** [fs] Error 2

See http://l4x.org/k for details.

Jan

2005-04-11 17:33:56

by Benoit Boissinot

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, Apr 11, 2005 at 01:25:32AM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>
> Changes since 2.6.12-rc2-mm2:
>
>
> bk-cifs.patch


The following patch correct an error in bk-cifs:

fs/cifs/misc.c: In function ‘cifs_convertUCSpath’:
fs/cifs/misc.c:546: error: case label does not reduce to an integer constant
fs/cifs/misc.c:549: error: case label does not reduce to an integer constant
fs/cifs/misc.c:552: error: case label does not reduce to an integer constant
fs/cifs/misc.c:561: error: case label does not reduce to an integer constant
fs/cifs/misc.c:564: error: case label does not reduce to an integer constant
fs/cifs/misc.c:567: error: case label does not reduce to an integer constant

The utilisations of UNI_* constants show that it is should in cpu format:

for example line 542, src_char is converted in cpu_format:
src_char = le16_to_cpu(source[i]);
switch (src_char) {
...
case UNI_COLON:
...

or line 610, it is unlikely that you want to have cpu_to_le16(cpu_to_le16(x)):
target[j] = cpu_to_le16(UNI_COLON);

the following patch fixes it.

Signed-Off-By: Benoit Boissinot <[email protected]>


--- ./fs/cifs/misc.c.orig 2005-04-11 19:18:11.000000000 +0200
+++ ./fs/cifs/misc.c 2005-04-11 19:18:30.000000000 +0200
@@ -519,13 +519,13 @@ dump_smb(struct smb_hdr *smb_buf, int sm
/* Windows maps these to the user defined 16 bit Unicode range since they are
reserved symbols (along with \ and /), otherwise illegal to store
in filenames in NTFS */
-#define UNI_ASTERIK cpu_to_le16('*' + 0xF000)
-#define UNI_QUESTION cpu_to_le16('?' + 0xF000)
-#define UNI_COLON cpu_to_le16(':' + 0xF000)
-#define UNI_GRTRTHAN cpu_to_le16('>' + 0xF000)
-#define UNI_LESSTHAN cpu_to_le16('<' + 0xF000)
-#define UNI_PIPE cpu_to_le16('|' + 0xF000)
-#define UNI_SLASH cpu_to_le16('\\' + 0xF000)
+#define UNI_ASTERIK ('*' + 0xF000)
+#define UNI_QUESTION ('?' + 0xF000)
+#define UNI_COLON (':' + 0xF000)
+#define UNI_GRTRTHAN ('>' + 0xF000)
+#define UNI_LESSTHAN ('<' + 0xF000)
+#define UNI_PIPE ('|' + 0xF000)
+#define UNI_SLASH ('\\' + 0xF000)

/* Convert 16 bit Unicode pathname from wire format to string in current code
page. Conversion may involve remapping up the seven characters that are

2005-04-11 19:16:13

by Jindrich Makovicka

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.12-rc2-mm3
# Mon Apr 11 20:58:23 2005
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y

#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
# CONFIG_X86_MCE_P4THERMAL is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_MICROCODE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_FLATMEM=y
# CONFIG_DISCONTIGMEM is not set
# CONFIG_HIGHPTE is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_HAVE_DEC_LOCK=y
# CONFIG_REGPARM is not set
CONFIG_SECCOMP=y

#
# Performance-monitoring counters support
#
# CONFIG_PERFCTR is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_KEXEC is not set

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_SOFTWARE_SUSPEND=y
CONFIG_PM_STD_PARTITION=""

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_HOTKEY=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_X86_PM_TIMER is not set
# CONFIG_ACPI_CONTAINER is not set

#
# APM (Advanced Power Management) BIOS Support
#
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set

#
# CPUFreq processor drivers
#
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K7_ACPI=y
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set

#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_LEGACY_PROC is not set
CONFIG_PCI_NAMES=y
# CONFIG_PCI_DEBUG is not set
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y

#
# Networking
#
CONFIG_NET=y

#
# Networking protocols
#
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set

#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_IP_SCTP is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set

#
# Network packet filtering
#
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_IP_NF_CONNTRACK=y
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=y
CONFIG_IP_NF_IRC=y
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_PKTTYPE=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_DSCP=y
CONFIG_IP_NF_MATCH_AH_ESP=y
CONFIG_IP_NF_MATCH_LENGTH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_HELPER=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_CONNTRACK=y
CONFIG_IP_NF_MATCH_OWNER=y
CONFIG_IP_NF_MATCH_ADDRTYPE=y
CONFIG_IP_NF_MATCH_REALM=y
CONFIG_IP_NF_MATCH_SCTP=y
CONFIG_IP_NF_MATCH_COMMENT=y
CONFIG_IP_NF_MATCH_CONNMARK=y
CONFIG_IP_NF_MATCH_HASHLIMIT=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_SAME=y
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
CONFIG_IP_NF_NAT_IRC=y
CONFIG_IP_NF_NAT_FTP=y
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
# CONFIG_IP_NF_RAW is not set
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
# CONFIG_NET_KEY is not set
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_WAN_ROUTER is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA (infrared) subsystem support
#
CONFIG_IRDA=m

#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set

#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
CONFIG_IRDA_DEBUG=y

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m

#
# Dongle support
#
# CONFIG_DONGLE is not set

#
# Old SIR device drivers
#
# CONFIG_IRPORT_SIR is not set

#
# Old Serial dongle support
#

#
# FIR device drivers
#
# CONFIG_USB_IRDA is not set
# CONFIG_SIGMATEL_FIR is not set
# CONFIG_NSC_FIR is not set
# CONFIG_WINBOND_FIR is not set
# CONFIG_TOSHIBA_FIR is not set
# CONFIG_SMC_IRCC_FIR is not set
# CONFIG_ALI_FIR is not set
# CONFIG_VLSI_FIR is not set
# CONFIG_VIA_FIR is not set

#
# Bluetooth subsystem support
#
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set

#
# Asynchronous Transfer Mode (ATM)
#
# CONFIG_ATM is not set

#
# Network testing
#
# CONFIG_NET_DIVERT is not set
# CONFIG_NET_PKTGEN is not set
# CONFIG_KGDBOE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set

#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set

#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
# CONFIG_PARPORT_SERIAL is not set
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_1284=y

#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_ISAPNP=y
CONFIG_PNPBIOS=y
CONFIG_PNPBIOS_PROC_FS=y
# CONFIG_PNPACPI is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_LBD is not set
# CONFIG_CDROM_PKTCDVD is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
CONFIG_IDE_TASK_IOCTL=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
CONFIG_SCSI=m
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set

#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set

#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA2XXX=m
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
# CONFIG_MD_RAID10 is not set
CONFIG_MD_RAID5=m
# CONFIG_MD_RAID6 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
# CONFIG_NET_POCKET is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SKGE is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=m
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
# CONFIG_JOYSTICK_JOYDUMP is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
CONFIG_INPUT_UINPUT=y

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
# CONFIG_GAMEPORT_L4 is not set
CONFIG_GAMEPORT_EMU10K1=m
# CONFIG_GAMEPORT_FM801 is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
# CONFIG_SERIAL_8250_ACPI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=y
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set

#
# Linux InfraRed Controller
#
CONFIG_LIRC_SUPPORT=m
CONFIG_LIRC_MAX_DEV=2
# CONFIG_LIRC_BT829 is not set
# CONFIG_LIRC_IT87 is not set
# CONFIG_LIRC_ATIUSB is not set
# CONFIG_LIRC_MCEUSB is not set
# CONFIG_LIRC_PARALLEL is not set
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_HOMEBREW=y
# CONFIG_LIRC_SERIAL_ANIMAX is not set
# CONFIG_LIRC_SERIAL_IRDEO is not set
# CONFIG_LIRC_SERIAL_IRDEO_REMOTE is not set
# CONFIG_LIRC_SERIAL_TRANSMITTER is not set
# CONFIG_LIRC_SERIAL_IGOR is not set
CONFIG_LIRC_SERIAL_COM1=y
# CONFIG_LIRC_SERIAL_COM2 is not set
# CONFIG_LIRC_SERIAL_COM3 is not set
# CONFIG_LIRC_SERIAL_COM4 is not set
# CONFIG_LIRC_SERIAL_OTHER is not set
CONFIG_LIRC_PORT_SERIAL=0x3f8
CONFIG_LIRC_IRQ_SERIAL=0x4
# CONFIG_LIRC_SIR is not set

#
# IPMI
#
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
# CONFIG_IPMI_SI is not set
# CONFIG_IPMI_WATCHDOG is not set
# CONFIG_IPMI_POWEROFF is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=y
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=m
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_AGP_VIA=m
# CONFIG_AGP_EFFICEON is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set

#
# TPM devices
#
# CONFIG_TCG_TPM is not set

#
# I2C support
#
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set

#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_ISA=m
# CONFIG_I2C_NFORCE2 is not set
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set

#
# Hardware Sensors Chip support
#
CONFIG_I2C_SENSOR=m
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_VIA686A is not set
CONFIG_SENSORS_W83781D=m
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set

#
# Other I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
CONFIG_SENSORS_EEPROM=m
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=y

#
# Video For Linux
#

#
# Video Adapters
#
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
CONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_CX88 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set

#
# Radio Adapters
#
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_RTRACK is not set
# CONFIG_RADIO_RTRACK2 is not set
# CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_GEMTEK is not set
# CONFIG_RADIO_GEMTEK_PCI is not set
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_MAESTRO is not set
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_SF16FMR2 is not set
# CONFIG_RADIO_TERRATEC is not set
# CONFIG_RADIO_TRUST is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_IR=m

#
# Graphics support
#
# CONFIG_FB is not set
CONFIG_VIDEO_SELECT=y

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_DUMMY=m
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
CONFIG_SND_MPU401=m

#
# ISA devices
#
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_WAVEFRONT is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set

#
# PCI devices
#
CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
CONFIG_SND_EMU10K1=m
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_SONICVIBES is not set
CONFIG_SND_VIA82XX=m
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_HDA_INTEL is not set

#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_SL811_HCD is not set

#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=m

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set

#
# USB Input Devices
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y

#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_ITMTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
# CONFIG_USB_VICAM is not set
# CONFIG_USB_DSBR is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_KONICAWC is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_SE401 is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_STV680 is not set
# CONFIG_USB_PWC is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
CONFIG_USB_MON=m

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP2101 is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
CONFIG_USB_SERIAL_VISOR=m
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OMNINET is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_TEST is not set

#
# USB ATM/DSL drivers
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISER4_FS=y
# CONFIG_REISER4_DEBUG is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
CONFIG_JFS_FS=m
# CONFIG_JFS_POSIX_ACL is not set
# CONFIG_JFS_SECURITY is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set

#
# XFS support
#
CONFIG_XFS_FS=m
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=852
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-2"
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_RELAYFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=y
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=y
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
CONFIG_NCP_FS=y
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
CONFIG_NLS_CODEPAGE_852=y
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_CODEPAGE_1250=y
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_DETECT_SOFTLOCKUP is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_PAGE_OWNER is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_FRAME_POINTER is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_KPROBES is not set
# CONFIG_DEBUG_STACK_USAGE is not set

#
# Page alloc debug is incompatible with Software Suspend on i386
#
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
# CONFIG_KGDB is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_WP512=y
CONFIG_CRYPTO_TGR192=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_CAST5=y
CONFIG_CRYPTO_CAST6=y
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_KHAZAD=y
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_TEST is not set

#
# Hardware crypto devices
#
# CONFIG_CRYPTO_DEV_PADLOCK is not set

#
# Library routines
#
CONFIG_CRC_CCITT=m
CONFIG_CRC32=m
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_PC=y


Attachments:
.config (39.18 kB)

2005-04-11 20:47:28

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3



--On Monday, April 11, 2005 01:25:32 -0700 Andrew Morton <[email protected]> wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>
> - The anticipatory I/O scheduler has always been fairly useless with SCSI
> disks which perform tagged command queueing. There's a patch here from Jens
> which is designed to fix that up by constraining the number of requests
> which we'll leave pending in the device.
>
> The depth currently defaults to 1. Tunable in
> /sys/block/hdX/queue/iosched/queue_depth
>
> This patch hasn't been performance tested at all yet. If you think it is
> misbehaving (the usual symptom is processes stuck in D state) then please
> report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> around it.
>
> - More CPU scheduler work. I hope someone is testing this stuff.

Trying ... having some build problems that seem to be part test-harness,
part bugs.

Meanwhile on PPC64:

fs/cifs/misc.c: In function `cifs_convertUCSpath':
fs/cifs/misc.c:546: error: case label does not reduce to an integer constant
fs/cifs/misc.c:549: error: case label does not reduce to an integer constant
fs/cifs/misc.c:552: error: case label does not reduce to an integer constant
fs/cifs/misc.c:561: error: case label does not reduce to an integer constant
fs/cifs/misc.c:564: error: case label does not reduce to an integer constant
fs/cifs/misc.c:567: error: case label does not reduce to an integer constant
make[2]: *** [fs/cifs/misc.o] Error 1
make[1]: *** [fs/cifs] Error 2
make[1]: *** Waiting for unfinished jobs....


M.

2005-04-11 21:05:39

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.12-rc2-mm3: CONFIG_MODULES=n MTD compile error

On Mon, Apr 11, 2005 at 01:25:32AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.12-rc2-mm2:
>...
> +remove-inter-module-mtd.patch
>
> Remove intermodule_foo() usage from mtd.
>...

This breaks the compilation with CONFIG_MODULES=n:

<-- snip -->

...
CC drivers/mtd/devices/docprobe.o
drivers/mtd/devices/docprobe.c: In function `DoC_Probe':
drivers/mtd/devices/docprobe.c:311: warning: implicit declaration of
function `__symbol_get'
drivers/mtd/devices/docprobe.c:311: warning: assignment makes pointer
from integer without a cast
drivers/mtd/devices/docprobe.c:315: warning: implicit declaration of function `__symbol_put'
...
LD .tmp_vmlinux1
drivers/built-in.o(.init.text+0x60f20): In function `DoC_Probe':
: undefined reference to `__symbol_get'
drivers/built-in.o(.init.text+0x60f3b): In function `DoC_Probe':
: undefined reference to `__symbol_put'
drivers/built-in.o(.init.text+0x610a4): In function `DoC_Probe':
: undefined reference to `__symbol_get'
make: *** [.tmp_vmlinux1] Error 1

<-- snip -->


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2005-04-11 21:59:21

by Borislav Petkov

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Monday 11 April 2005 11:43, Andrew Morton wrote:
> (Please do reply-to-all)
>
> "J.A. Magallon" <[email protected]> wrote:
> > On 04.11, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-r
> > >c2/2.6.12-rc2-mm3/
> >
> > Is this not needed anymore ?
> >
> > --- 25/arch/i386/kernel/entry.S~nmi_stack_correct-fix 2005-04-05
> > 00:02:48.000000000 -0700 +++ 25-akpm/arch/i386/kernel/entry.S 2005-04-05
> > 00:02:48.000000000 -0700
>
> Hopefully not. fix-crash-in-entrys-restore_all.patch works around the
> problem. -

Hello Andrew,
I don't know whether you remember the mysterious crashes I was telling you
about last week and me rookiesh-ly trying to debug them with kgdb over the
serial console. Well, today I tried for the n-th time again and after rc2-mm3
blocked again while loading, here's what I did:

<snip>
[ 12.335438] NET: Registered protocol family 17
[ 12.362483] Testing NMI watchdog ... OK.
[ 12.416195] Starting balanced_irq
[ 12.443099] VFS: Mounted root (ext2 filesystem) readonly.
[ 12.472490] Freeing unused kernel memory: 196k freed
[ 12.521004] logips2pp: Detected unknown logitech mouse model 1
[ 12.572581] Warning: unable to open an initial console.
[ 12.972518] input: PS/2 Logitech Mouse on isa0060/serio1

Program received signal SIGTRAP, Trace/breakpoint trap.
0xc0102ee7 in resume_kernelX () at atomic.h:175 <--- this one is wrong for a
mysterious reason
175 {
(gdb) p $eip
$1 = (void *) 0xc0102ee7

(gdb) disas 0xc0102ee7
Dump of assembler code for function resume_kernelX:
0xc0102ee7 <resume_kernelX+0>: mov 0x30(%esp),%eax
0xc0102eeb <resume_kernelX+4>: mov 0x38(%esp),%ah
0xc0102eef <resume_kernelX+8>: mov 0x2c(%esp),%al
0xc0102ef3 <resume_kernelX+12>: and $0x20403,%eax
0xc0102ef8 <resume_kernelX+17>: cmp $0x403,%eax
0xc0102efd <resume_kernelX+22>: je 0xc0102f0c <ldt_ss>
End of assembler dump.
(gdb)

And as we see, we're at the "mov 0x30(%esp),%eax" which accesses above the
bottom of the stack. After applying nmi_stack_correct-fix.patch, rc2-mm3
booted just fine, so I IMHO think that we might still be needing this, after
all.

Regards,
Boris.

2005-04-11 22:26:28

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Borislav Petkov <[email protected]> wrote:
>
> On Monday 11 April 2005 11:43, Andrew Morton wrote:
> > (Please do reply-to-all)
> >
> > "J.A. Magallon" <[email protected]> wrote:
> > > On 04.11, Andrew Morton wrote:
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-r
> > > >c2/2.6.12-rc2-mm3/
> > >
> > > Is this not needed anymore ?
> > >
> > > --- 25/arch/i386/kernel/entry.S~nmi_stack_correct-fix 2005-04-05
> > > 00:02:48.000000000 -0700 +++ 25-akpm/arch/i386/kernel/entry.S 2005-04-05
> > > 00:02:48.000000000 -0700
> >
> > Hopefully not. fix-crash-in-entrys-restore_all.patch works around the
> > problem. -
>
> Hello Andrew,
> I don't know whether you remember the mysterious crashes I was telling you
> about last week and me rookiesh-ly trying to debug them with kgdb over the
> serial console. Well, today I tried for the n-th time again and after rc2-mm3
> blocked again while loading, here's what I did:
>
> <snip>
> [ 12.335438] NET: Registered protocol family 17
> [ 12.362483] Testing NMI watchdog ... OK.
> [ 12.416195] Starting balanced_irq
> [ 12.443099] VFS: Mounted root (ext2 filesystem) readonly.
> [ 12.472490] Freeing unused kernel memory: 196k freed
> [ 12.521004] logips2pp: Detected unknown logitech mouse model 1
> [ 12.572581] Warning: unable to open an initial console.
> [ 12.972518] input: PS/2 Logitech Mouse on isa0060/serio1
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0xc0102ee7 in resume_kernelX () at atomic.h:175 <--- this one is wrong for a
> mysterious reason
> 175 {
> (gdb) p $eip
> $1 = (void *) 0xc0102ee7
>
> (gdb) disas 0xc0102ee7
> Dump of assembler code for function resume_kernelX:
> 0xc0102ee7 <resume_kernelX+0>: mov 0x30(%esp),%eax
> 0xc0102eeb <resume_kernelX+4>: mov 0x38(%esp),%ah
> 0xc0102eef <resume_kernelX+8>: mov 0x2c(%esp),%al
> 0xc0102ef3 <resume_kernelX+12>: and $0x20403,%eax
> 0xc0102ef8 <resume_kernelX+17>: cmp $0x403,%eax
> 0xc0102efd <resume_kernelX+22>: je 0xc0102f0c <ldt_ss>
> End of assembler dump.
> (gdb)
>
> And as we see, we're at the "mov 0x30(%esp),%eax" which accesses above the
> bottom of the stack. After applying nmi_stack_correct-fix.patch, rc2-mm3
> booted just fine, so I IMHO think that we might still be needing this, after
> all.

Interesting. It could be an interaction between the kgdb patch and the new
vm86 checking code. (looks. I don't think that's the case).

Stas, could you please take a look at 2.6.12-rc2-mm3's entry.S sometime,
see if you think my theory is correct?

It seems that you have CONFIG_TRAP_BAD_SYSCALL_EXITS enabled - I can't say
that I've ever used that, and I really should remove it. But I doubt if
that is the cause of this bug.


The above code is accessing esp+56, but Stas's patch only offsets the stack
pointer by 32 bytes, so I assume this, in copy_thread():

- p->thread.esp0 = (unsigned long) (childregs+1) - 8;
+ p->thread.esp0 = (unsigned long) (childregs+1) - 15;

fixes it?

2005-04-11 22:30:14

by Benoit Boissinot

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Apr 11, 2005 10:46 PM, Martin J. Bligh <[email protected]> wrote:
>
>
> --On Monday, April 11, 2005 01:25:32 -0700 Andrew Morton <[email protected]> wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >
> >
> > - The anticipatory I/O scheduler has always been fairly useless with SCSI
> > disks which perform tagged command queueing. There's a patch here from Jens
> > which is designed to fix that up by constraining the number of requests
> > which we'll leave pending in the device.
> >
> > The depth currently defaults to 1. Tunable in
> > /sys/block/hdX/queue/iosched/queue_depth
> >
> > This patch hasn't been performance tested at all yet. If you think it is
> > misbehaving (the usual symptom is processes stuck in D state) then please
> > report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> > around it.
> >
> > - More CPU scheduler work. I hope someone is testing this stuff.
>
> Trying ... having some build problems that seem to be part test-harness,
> part bugs.
>
> Meanwhile on PPC64:
>
> fs/cifs/misc.c: In function `cifs_convertUCSpath':
> fs/cifs/misc.c:546: error: case label does not reduce to an integer constant
> fs/cifs/misc.c:549: error: case label does not reduce to an integer constant
> fs/cifs/misc.c:552: error: case label does not reduce to an integer constant
> fs/cifs/misc.c:561: error: case label does not reduce to an integer constant
> fs/cifs/misc.c:564: error: case label does not reduce to an integer constant
> fs/cifs/misc.c:567: error: case label does not reduce to an integer constant
> make[2]: *** [fs/cifs/misc.o] Error 1
> make[1]: *** [fs/cifs] Error 2
> make[1]: *** Waiting for unfinished jobs....
>
>
See this patch from Steve French:
http://cifs.bkbits.net:8080/linux-2.5cifs/gnupatch@4259f2138nVCJQt3SmaZowdXd8KB7A

> M.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2005-04-12 00:22:21

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Jindrich Makovicka <[email protected]> wrote:
>
> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
> MPlayer randomly crashes in various pthread_* calls when using binary
> codecs. 2.6.12-rc2-mm2 was ok. I tried to reverse
> fix-crash-in-entrys-restore_all.patch, but it didn't help.
>

hm, could be anything.

Does 2.6.12-rc2 also fail?

2005-04-12 02:10:48

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Tue, 2005-04-12 at 03:18 +0200, Juergen Kreileder wrote:
> Andrew Morton <[email protected]> writes:
>
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>
> 2.6.11-mm4 works fine but all 2.6.12 versions I've tried (all since
> -rc1-mm3) lock up randomly. The easiest way to reproduce the problem
> seems to be running Azareus. So it might be network related, but I'm
> not 100% sure about that, there was a least one deadlock with
> virtually no network usage.
>
> BTW, what's the SysRq key on recent Apple USB keyboards? Alt/Cmd-F13
> doesn't work for me.

No idea about sysrq, i don't use it. However, I haven't experienced any
such problem with the various G5s we have here (and no other G5 user
reported such a problem).

So it would be useful if you could provide a bit more informations here
though. For example, what exact G5 model is this, do you have any 3rd
party PCI card, what video card are you using, can you reproduce the
crash in console mode, that sort of thing ...

Also, did you run a memtest equivalent on the machine ?

Finally, it would be useful if you could point out which specific patch
or bk snapshot, or at least -mm rev. introduced the bug. As I said
previously, you are the only one to report that and none of the G5s here
is showing such a problem.

Ben.


2005-04-12 05:21:03

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Tue, 2005-04-12 at 03:18 +0200, Juergen Kreileder wrote:
> Andrew Morton <[email protected]> writes:
>
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>
> 2.6.11-mm4 works fine but all 2.6.12 versions I've tried (all since
> -rc1-mm3) lock up randomly. The easiest way to reproduce the problem
> seems to be running Azareus. So it might be network related, but I'm
> not 100% sure about that, there was a least one deadlock with
> virtually no network usage.
>
> BTW, what's the SysRq key on recent Apple USB keyboards? Alt/Cmd-F13
> doesn't work for me.
>

Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you test
without it and let me know if it makes a difference ?

Ben.


2005-04-12 05:25:36

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton <[email protected]> wrote:
>
> - The anticipatory I/O scheduler has always been fairly useless with SCSI
> disks which perform tagged command queueing. There's a patch here from Jens
> which is designed to fix that up by constraining the number of requests
> which we'll leave pending in the device.
>
> The depth currently defaults to 1. Tunable in
> /sys/block/hdX/queue/iosched/queue_depth
>
> This patch hasn't been performance tested at all yet. If you think it is
> misbehaving (the usual symptom is processes stuck in D state) then please
> report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> around it.

So it turns out that patch was broken. I've fixed it locally and the
results are good, but odd.

The machine is a 4GB x86_64 with aic79xx controllers and MAXTOR
ATLAS10K4_73WLS disks. ext2 filesystem.

The workload is continuous pagecache writeback versus
read-lots-of-little-files:

while true
do
dd if=/dev/zero of=/mnt/sdb2/x bs=40M count=100 conv=notrunc
done

versus

find /mnt/sdb2/linux-2.4.25 -type f | xargs cat > /dev/null

we measure how long the find+cat takes.

2.6.12-rc2, as, tcq depth=2: 7.241 seconds
2.6.12-rc2, as, tcq depth=64: 12.172 seconds
2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes

So

- The effects of tcq on AS are much less disastrous than I thought they
were. Do I have the wrong workload? Memory fails me. Or did we fix the
anticipatory scheduler?

- as-limit-queue-depth.patch fixes things right up anyway. Seems to be
doing the right thing.

- CFQ is seriously, seriously read-starved on this workload.

CFQ2:

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 3 1116 25504 4868 3854008 4 0 8 61976 1112 291 0 4 39 58
0 4 1112 24992 4868 3855120 0 568 4 53804 1124 452 0 4 54 43
0 4 1112 24032 4868 3856004 0 0 8 44652 1110 303 0 3 45 53
0 2 1112 25912 4872 3854164 0 0 4 51108 1122 321 0 3 52 45
2 3 1112 24312 4872 3855728 0 0 32 52240 1113 300 0 4 44 52
1 3 1112 25728 4876 3854432 0 0 20 48128 1118 296 0 3 58 39
0 2 1112 23872 4876 3856336 0 0 4 48136 1116 288 0 4 47 49
0 4 1112 25856 4876 3854300 0 4 16 50260 1117 294 0 3 55 42

CFQ3:

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 5 1008 25888 4204 3845820 0 0 12 50544 1119 116 0 3 49 48
0 5 1008 24096 4204 3847520 0 0 8 51200 1112 110 0 3 49 48
0 5 1008 25824 4204 3845820 0 0 8 54816 1117 120 0 4 49 48
0 5 1008 25440 4204 3846160 0 0 8 52880 1113 115 0 3 49 48
0 5 1008 25888 4208 3845748 0 0 16 51024 1121 116 0 3 49 48


2005-04-12 05:25:36

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

> On Tue, 2005-04-12 at 03:18 +0200, Juergen Kreileder wrote:
>> Andrew Morton <[email protected]> writes:
>>
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>>
>> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>>
>> 2.6.11-mm4 works fine but all 2.6.12 versions I've tried (all since
>> -rc1-mm3) lock up randomly. The easiest way to reproduce the
>> problem seems to be running Azareus. So it might be network
>> related, but I'm not 100% sure about that, there was a least one
>> deadlock with virtually no network usage.
>
> Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you
> test without it and let me know if it makes a difference ?

IIRC I had disabled that for rc2-mm2 and it didn't make a difference.
I'll disable it again when I try older versions.

I just got another crash with rc2-mm3. The crash was a bit different
this time, I still could move the mouse pointer and the logs contained
some info:

Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
[c00000017690b860] [0000000000069a73] 0x69a73 (unreliable)
[c00000017690b900] [c00000000003b300] .__schedule_tail+0x9c/0x1b4
[c00000017690b9a0] [c0000000003162b0] .schedule+0x324/0x610
[c00000017690ba80] [c0000000003177e8] .schedule_timeout+0xfc/0x104
[c00000017690bb60] [c0000000000b6118] .do_select+0x278/0x4c4
[c00000017690bcb0] [c0000000000d6f4c] .compat_sys_select+0x390/0x690
[c00000017690bdc0] [c000000000019eb8] .ppc32_select+0x14/0x28
[c00000017690be30] [c00000000000da00] syscall_exit+0x0/0x18
Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
Call Trace:
[c00000016fe23860] [0000000000000413] 0x413 (unreliable)
[c00000016fe23900] [c00000000003b300] .__schedule_tail+0x9c/0x1b4
[c00000016fe239a0] [c0000000003162b0] .schedule+0x324/0x610
[c00000016fe23a80] [c000000000317774] .schedule_timeout+0x88/0x104
[c00000016fe23b60] [c0000000000b6118] .do_select+0x278/0x4c4
[c00000016fe23cb0] [c0000000000d6f4c] .compat_sys_select+0x390/0x690
[c00000016fe23dc0] [c000000000019eb8] .ppc32_select+0x14/0x28
[c00000016fe23e30] [c00000000000da00] syscall_exit+0x0/0x18
Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
Call Trace:
[c000000175d2b860] [0000000000000163] 0x163 (unreliable)
[c000000175d2b900] [c00000000003b300] .__schedule_tail+0x9c/0x1b4
[c000000175d2b9a0] [c0000000003162b0] .schedule+0x324/0x610
[c000000175d2ba80] [c000000000317774] .schedule_timeout+0x88/0x104
[c000000175d2bb60] [c0000000000b6118] .do_select+0x278/0x4c4
[c000000175d2bcb0] [c0000000000d6f4c] .compat_sys_select+0x390/0x690
[c000000175d2bdc0] [c000000000019eb8] .ppc32_select+0x14/0x28
[c000000175d2be30] [c00000000000da00] syscall_exit+0x0/0x18
Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
Call Trace:
[c000000178a17860] [0000000000000eb1] 0xeb1 (unreliable)
[c000000178a17900] [c00000000003b300] .__schedule_tail+0x9c/0x1b4
[c000000178a179a0] [c0000000003162b0] .schedule+0x324/0x610
[c000000178a17a80] [c000000000317774] .schedule_timeout+0x88/0x104
[c000000178a17b60] [c0000000000b6118] .do_select+0x278/0x4c4
[c000000178a17cb0] [c0000000000d6f4c] .compat_sys_select+0x390/0x690
[c000000178a17dc0] [c000000000019eb8] .ppc32_select+0x14/0x28
[c000000178a17e30] [c00000000000da00] syscall_exit+0x0/0x18
Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
Call Trace:
[c0000001767fba10] [0000000000001bca] 0x1bca (unreliable)

and so on until the machine switched into jet-fighter mode after:

[c00000016f887a10] [000000000001fc8c] 0x1fc8c (unreliable)
[c00000016f887ab0] [c00000000003b300] .__schedule_tail+0x9c/0x1b4
[c00000016f887b50] [c0000000003162b0] .schedule+0x324/0x610
[c00000016f887c30] [c000000000317774] .schedule_timeout+0x88/0x104
[c00000016f887d10] [c0000000000b6bb4] .sys_poll+0x3b8/0x4dc
[c00000016f887e30] [c00000000000da00] syscall_exit+0x0/0x18
Oops: Machine check, sig: 0 [#1]


Machine info:
* PowerMac7,2 with 2x 2GHz
* 4GB RAM
* 2 disks with ext3 partitions on top of LVM2
* Radeon 9800Pro with radeonfb and X (from Debian sid) at 1600x1200
* USB Mouse via evdev
* Bluetooth enabled but unused
* Firewire disabled
* No PCI cards
* Kernel compiled with gcc-3.4.2


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-12 05:55:14

by Nick Piggin

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:

>
>So it turns out that patch was broken. I've fixed it locally and the
>results are good, but odd.
>
>The machine is a 4GB x86_64 with aic79xx controllers and MAXTOR
>ATLAS10K4_73WLS disks. ext2 filesystem.
>
>The workload is continuous pagecache writeback versus
>read-lots-of-little-files:
>
> while true
> do
> dd if=/dev/zero of=/mnt/sdb2/x bs=40M count=100 conv=notrunc
> done
>
>versus
>
> find /mnt/sdb2/linux-2.4.25 -type f | xargs cat > /dev/null
>
>we measure how long the find+cat takes.
>
>2.6.12-rc2, as, tcq depth=2: 7.241 seconds
>2.6.12-rc2, as, tcq depth=64: 12.172 seconds
>2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
>2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
>2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes
>
>So
>
>- The effects of tcq on AS are much less disastrous than I thought they
> were. Do I have the wrong workload? Memory fails me. Or did we fix the
> anticipatory scheduler?
>
>

Yes, we did fix it ;)
Quite a long time ago, so maybe you are thinking of something else
(I haven't been able to work it out).

AS basically does its own TCQ strangulation, which IIRC involves things
like completing all reads before issuing new writes, and completing all
reads from one process before reads from another. As well as the
fundamental way that waiting for a 'dependant read' throttles TCQ.

>- as-limit-queue-depth.patch fixes things right up anyway. Seems to be
> doing the right thing.
>
>

Well it depends on what we want to do. If we hard limit the AS queue
like this, I can remove some of that TCQ throttling logic from AS.

OTOH, the throttling was intended to allow us to sanely use a large
TCQ depth without getting really bad behaviour. Theoretically a process
can make use of TCQ if it is doing a lot of writing, or if it is not
determined to be doing dependant reads.



2005-04-12 05:30:28

by Stas Sergeev

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Hello.

Andrew Morton wrote:
>> Program received signal SIGTRAP, Trace/breakpoint trap.
SIGTRAP - it looks like the "int $3"
triggered, not "mov 0x30(%esp),%eax",
which is just the next insn and so the
%eip points to it, but it might be
innocent. And besides, 0x30(%esp) is
EFLAGS, not OLDSS. So I think maybe my
patch is not guilty this time, it is
just the non-zero preempt count on the
return path caused by something else.

>> (gdb) p $eip
>> $1 = (void *) 0xc0102ee7
Could you please also do
"p $esp" or "info reg", so that we can
see the rest of the registers?

>> And as we see, we're at the "mov 0x30(%esp),%eax" which accesses above the
>> bottom of the stack.
But that's strange. Another instance of
the 0x30(%esp) is there a few instructions
above this one, see it with "disas restore_all".
It is much more likely that the real offender
is the previous instruction. $eip points on
the instruction *after* the trap, which might
be innocent.

>> After applying nmi_stack_correct-fix.patch, rc2-mm3
I can't find this one in an -mm broken-outs.
Where is this patch?
Could you please also test this one:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0504.0/1287.html

> Interesting. It could be an interaction between the kgdb patch and the new
> vm86 checking code.
I think so too, will have a look if I can
reproduce it.

> The above code is accessing esp+56,
Yes, but this particular instruction was
not reached. "int $3" killed the system
for some reasons.

> - p->thread.esp0 = (unsigned long) (childregs+1) - 8;
> + p->thread.esp0 = (unsigned long) (childregs+1) - 15;
15 is somewhat nasty - it will make the
stack unaligned, should better be 16 I
think. But I don't see why, the only
scenario we've seen were the not stored
SS/ESP, which is 8 bytes only.
If we definitely think my patch is guilty
again, then probably something like this
is necessary:

--- linux/include/asm-i386/processor.h.old 2005-03-20 14:13:02.000000000 +0300
+++ linux/include/asm-i386/processor.h 2005-04-12 07:50:11.000000000 +0400
@@ -458,7 +458,7 @@
* be within the limit.
*/
#define INIT_TSS { \
- .esp0 = sizeof(init_stack) + (long)&init_stack, \
+ .esp0 = sizeof(init_stack) - 8 + (long)&init_stack, \
.ss0 = __KERNEL_DS, \
.ss1 = __KERNEL_CS, \
.ldt = GDT_ENTRY_LDT, \

But I don't think the init_stack can be
abused on the sysenter path, so this is
just a wild guess.

2005-04-12 05:29:57

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Stas Sergeev <[email protected]> wrote:
>
> Hello.
>
> Andrew Morton wrote:
> >> Program received signal SIGTRAP, Trace/breakpoint trap.
> SIGTRAP - it looks like the "int $3"
> triggered, not "mov 0x30(%esp),%eax",
> which is just the next insn and so the
> %eip points to it, but it might be
> innocent. And besides, 0x30(%esp) is
> EFLAGS, not OLDSS. So I think maybe my
> patch is not guilty this time, it is
> just the non-zero preempt count on the
> return path caused by something else.

OK, the `int $3' is part of the CONFIG_TRAP_BAD_SYSCALL_EXITS thing which I
never use.

I'm not sure what problem is actually being reported here, now you mention it.

> >> (gdb) p $eip
> >> $1 = (void *) 0xc0102ee7
> Could you please also do
> "p $esp" or "info reg", so that we can
> see the rest of the registers?
>
> >> And as we see, we're at the "mov 0x30(%esp),%eax" which accesses above the
> >> bottom of the stack.
> But that's strange. Another instance of
> the 0x30(%esp) is there a few instructions
> above this one, see it with "disas restore_all".
> It is much more likely that the real offender
> is the previous instruction. $eip points on
> the instruction *after* the trap, which might
> be innocent.

Yup. But are you sure that the "+ 8" is correct, given these offsets are
larger than that?

> >> After applying nmi_stack_correct-fix.patch, rc2-mm3
> I can't find this one in an -mm broken-outs.

It was in rc2-mm2.

> Where is this patch?
> Could you please also test this one:
> http://www.uwsg.iu.edu/hypermail/linux/kernel/0504.0/1287.html
>
> > Interesting. It could be an interaction between the kgdb patch and the new
> > vm86 checking code.
> I think so too, will have a look if I can
> reproduce it.
>
> > The above code is accessing esp+56,
> Yes, but this particular instruction was
> not reached. "int $3" killed the system
> for some reasons.

Probably it decided that some syscall got a "bad exit". Disable
CONFIG_TRAP_BAD_SYSCALL_EXITS.

> > - p->thread.esp0 = (unsigned long) (childregs+1) - 8;
> > + p->thread.esp0 = (unsigned long) (childregs+1) - 15;
> 15 is somewhat nasty - it will make the
> stack unaligned, should better be 16 I
> think.

? It's still 4-byte-aligned.

> But I don't see why, the only
> scenario we've seen were the not stored
> SS/ESP, which is 8 bytes only.
> But the
> If we definitely think my patch is guilty
> again, then probably something like this
> is necessary:
>
> --- linux/include/asm-i386/processor.h.old 2005-03-20 14:13:02.000000000 +0300
> +++ linux/include/asm-i386/processor.h 2005-04-12 07:50:11.000000000 +0400
> @@ -458,7 +458,7 @@
> * be within the limit.
> */
> #define INIT_TSS { \
> - .esp0 = sizeof(init_stack) + (long)&init_stack, \
> + .esp0 = sizeof(init_stack) - 8 + (long)&init_stack, \
> .ss0 = __KERNEL_DS, \
> .ss1 = __KERNEL_CS, \
> .ldt = GDT_ENTRY_LDT, \
>
> But I don't think the init_stack can be
> abused on the sysenter path, so this is
> just a wild guess.

I'm suspecting this is all due to CONFIG_TRAP_BAD_SYSCALL_EXITS taking the
debug trap..

2005-04-12 06:24:27

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Nick Piggin <[email protected]> wrote:
>
> >- The effects of tcq on AS are much less disastrous than I thought they
> > were. Do I have the wrong workload? Memory fails me. Or did we fix the
> > anticipatory scheduler?
> >
> >
>
> Yes, we did fix it ;)
> Quite a long time ago, so maybe you are thinking of something else
> (I haven't been able to work it out).

Steve Pratt's ols2004 presentation made AS look pretty bad. However the
numbers in the proceedings
(http://www.finux.org/proceedings/LinuxSymposium2004_V2.pdf) are much less
stark.

Steve, what's up with that? The slides which you talked to had some awful
numbers. Was it the same set of tests?

Seems that software RAID might have muddied the waters as well.

That was 2.6.5. Do you recall if we did significant AS work after that?

> AS basically does its own TCQ strangulation, which IIRC involves things
> like completing all reads before issuing new writes, and completing all
> reads from one process before reads from another. As well as the
> fundamental way that waiting for a 'dependant read' throttles TCQ.

My (mpt-fusion-based) workstation is still really slow when there's a lot
of writeout happening. Just from a quick test:

> 2.6.12-rc2, as, tcq depth=2: 7.241 seconds
> 2.6.12-rc2, as, tcq depth=64: 12.172 seconds
> 2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
> 2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
> 2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes

2.6.11-rc4-mm1, as, mpt-f 39.349 seconds

That was really really slow but had a sudden burst of read I/O at the end
which made the thing look better than it really is. I wouldn't have a clue
what tag depth it's using, and it's the only mpt-fusion based machine I
have handy...

> >- as-limit-queue-depth.patch fixes things right up anyway. Seems to be
> > doing the right thing.
> >
> >
>
> Well it depends on what we want to do. If we hard limit the AS queue
> like this, I can remove some of that TCQ throttling logic from AS.
>
> OTOH, the throttling was intended to allow us to sanely use a large
> TCQ depth without getting really bad behaviour. Theoretically a process
> can make use of TCQ if it is doing a lot of writing, or if it is not
> determined to be doing dependant reads.

OK, I'll have a bit more of a poke at the LSI53C1030 driver, see if I can
characterise what's going on.

2005-04-12 06:35:51

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Tue, 2005-04-12 at 06:42 +0200, Juergen Kreileder wrote:
> Benjamin Herrenschmidt <[email protected]> writes:
>
> > On Tue, 2005-04-12 at 03:18 +0200, Juergen Kreileder wrote:
> >> Andrew Morton <[email protected]> writes:
> >>
> >>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >>
> >> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
> >>
> >> 2.6.11-mm4 works fine but all 2.6.12 versions I've tried (all since
> >> -rc1-mm3) lock up randomly. The easiest way to reproduce the
> >> problem seems to be running Azareus. So it might be network
> >> related, but I'm not 100% sure about that, there was a least one
> >> deadlock with virtually no network usage.
> >
> > Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you
> > test without it and let me know if it makes a difference ?
>
> IIRC I had disabled that for rc2-mm2 and it didn't make a difference.
> I'll disable it again when I try older versions.
>
> I just got another crash with rc2-mm3. The crash was a bit different
> this time, I still could move the mouse pointer and the logs contained
> some info:

Ok, what about non-mm ? (just plain rc2)

Ben.


2005-04-12 06:49:17

by Nick Piggin

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 2005-04-11 at 23:19 -0700, Andrew Morton wrote:
> Nick Piggin <[email protected]> wrote:
> >
> > >- The effects of tcq on AS are much less disastrous than I thought they
> > > were. Do I have the wrong workload? Memory fails me. Or did we fix the
> > > anticipatory scheduler?
> > >
> > >
> >
> > Yes, we did fix it ;)
> > Quite a long time ago, so maybe you are thinking of something else
> > (I haven't been able to work it out).
>
> Steve Pratt's ols2004 presentation made AS look pretty bad. However the
> numbers in the proceedings
> (http://www.finux.org/proceedings/LinuxSymposium2004_V2.pdf) are much less
> stark.
>
> Steve, what's up with that? The slides which you talked to had some awful
> numbers. Was it the same set of tests?
>

Yes, they still do... :P

> Seems that software RAID might have muddied the waters as well.
>

This may be the big issue, and yes software (and hardware) RAID isn't
very good for AS - mainly because it can't make a good guess as to
where "the head" is.

Probably software RAID should default to using deadline if possible.
I think we can do that easily with Jens' recent ioscheduler work.

> That was 2.6.5. Do you recall if we did significant AS work after that?
>

I don't think there was.

> > AS basically does its own TCQ strangulation, which IIRC involves things
> > like completing all reads before issuing new writes, and completing all
> > reads from one process before reads from another. As well as the
> > fundamental way that waiting for a 'dependant read' throttles TCQ.
>
> My (mpt-fusion-based) workstation is still really slow when there's a lot
> of writeout happening. Just from a quick test:
>
> > 2.6.12-rc2, as, tcq depth=2: 7.241 seconds
> > 2.6.12-rc2, as, tcq depth=64: 12.172 seconds
> > 2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
> > 2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
> > 2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes
>
> 2.6.11-rc4-mm1, as, mpt-f 39.349 seconds
>
> That was really really slow but had a sudden burst of read I/O at the end
> which made the thing look better than it really is. I wouldn't have a clue
> what tag depth it's using, and it's the only mpt-fusion based machine I
> have handy...
>

Heh.

> > >- as-limit-queue-depth.patch fixes things right up anyway. Seems to be
> > > doing the right thing.
> > >
> > >
> >
> > Well it depends on what we want to do. If we hard limit the AS queue
> > like this, I can remove some of that TCQ throttling logic from AS.
> >
> > OTOH, the throttling was intended to allow us to sanely use a large
> > TCQ depth without getting really bad behaviour. Theoretically a process
> > can make use of TCQ if it is doing a lot of writing, or if it is not
> > determined to be doing dependant reads.
>
> OK, I'll have a bit more of a poke at the LSI53C1030 driver, see if I can
> characterise what's going on.

OK. I'd like to start doing a bit of work on AS again too. Hopefully
after the current CPU scheduler work gets resolved.



2005-04-12 07:13:37

by Jens Axboe

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, Apr 11 2005, Andrew Morton wrote:
> - CFQ is seriously, seriously read-starved on this workload.
>
> CFQ3:
>
> procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
> r b swpd free buff cache si so bi bo in cs us sy id wa
> 1 5 1008 25888 4204 3845820 0 0 12 50544 1119 116 0 3 49 48
> 0 5 1008 24096 4204 3847520 0 0 8 51200 1112 110 0 3 49 48
> 0 5 1008 25824 4204 3845820 0 0 8 54816 1117 120 0 4 49 48
> 0 5 1008 25440 4204 3846160 0 0 8 52880 1113 115 0 3 49 48
> 0 5 1008 25888 4208 3845748 0 0 16 51024 1121 116 0 3 49 48

Looks very bad, I'll have a look at this.

--
Jens Axboe

2005-04-12 07:51:06

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Nick Piggin <[email protected]> wrote:
>
> > > AS basically does its own TCQ strangulation, which IIRC involves things
> > > like completing all reads before issuing new writes, and completing all
> > > reads from one process before reads from another. As well as the
> > > fundamental way that waiting for a 'dependant read' throttles TCQ.
> >
> > My (mpt-fusion-based) workstation is still really slow when there's a lot
> > of writeout happening. Just from a quick test:
> >
> > > 2.6.12-rc2, as, tcq depth=2: 7.241 seconds
> > > 2.6.12-rc2, as, tcq depth=64: 12.172 seconds
> > > 2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
> > > 2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
> > > 2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes
> >
> > 2.6.11-rc4-mm1, as, mpt-f 39.349 seconds
> >
> > That was really really slow but had a sudden burst of read I/O at the end
> > which made the thing look better than it really is. I wouldn't have a clue
> > what tag depth it's using, and it's the only mpt-fusion based machine I
> > have handy...
> >
>
> Heh.

Well with my current lineup on the mpt-fusion driver and no
as-limit-queue-depth.patch that test takes 17 seconds. With
as-limit-queue-depth.patch it's down to 10 seconds. Which is pretty darn
good btw. I assume from this:

scsi0 : ioc0: LSI53C1030, FwRev=01030600h, Ports=1, MaxQ=222, IRQ=25
scsi1 : ioc1: LSI53C1030, FwRev=01030600h, Ports=1, MaxQ=222, IRQ=26

that it's using a tag depth of 222.

int req_depth; /* Number of request frames */

I wonder if that's true...


One thing which changed is that this kernel now has the fixed-up mpt-fusion
chipset tuning. That doubles the IO bandwidth, which would pretty well
account for that difference. I'll wait and see how irritating things get
under writeout load.

Yes, we'll need to decide if we want to retain as-limit-queue-depth.patch
and toss out some of the older AS logic which was designed to address the
TCQ problem.

Steve, could you help to identify a not-too-hard-to-set-up workload at
which AS was particularly poor? Thanks.

2005-04-12 08:23:05

by Jindrich Makovicka

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:
> Jindrich Makovicka <[email protected]> wrote:
>
>>Andrew Morton wrote:
>>
>>>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>>
>>MPlayer randomly crashes in various pthread_* calls when using binary
>>codecs. 2.6.12-rc2-mm2 was ok. I tried to reverse
>>fix-crash-in-entrys-restore_all.patch, but it didn't help.
>>
>
>
> hm, could be anything.
>
> Does 2.6.12-rc2 also fail?

looks like it's sched-unlocked-context-switches.patch. after reversing
it works fine.

--
Jindrich Makovicka

2005-04-12 11:37:27

by Ed Tomlinson

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Monday 11 April 2005 04:25, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>
> - The anticipatory I/O scheduler has always been fairly useless with SCSI
> ? disks which perform tagged command queueing. ?There's a patch here from Jens
> ? which is designed to fix that up by constraining the number of requests
> ? which we'll leave pending in the device.
>
> ? The depth currently defaults to 1. ?Tunable in
> ? /sys/block/hdX/queue/iosched/queue_depth
>
> ? This patch hasn't been performance tested at all yet. ?If you think it is
> ? misbehaving (the usual symptom is processes stuck in D state) then please
> ? report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> ? around it.
>
> - More CPU scheduler work. ?I hope someone is testing this stuff.

Something is not quite right here. I built rc2-mm3 and booted (uni processor, amd64, preempt on).
mm3 lasted about 30 mins before locking up with a dead keyboard. I had mm2 reboot a few times
over the last couple of days too.

11-mm3 uptime of 2 weeks+
12-rc2-mm2 reboots once every couple of days
12-rc2-mm3 locked up within 30 mins using X using kmail/bogofilter

My serial console does not seem to want to work. Has anything changed with this support?

TIA,
Ed Tomlinson

2005-04-12 11:43:30

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Ed Tomlinson <[email protected]> wrote:
>
> On Monday 11 April 2005 04:25, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >
> >
> > - The anticipatory I/O scheduler has always been fairly useless with SCSI
> > ? disks which perform tagged command queueing. ?There's a patch here from Jens
> > ? which is designed to fix that up by constraining the number of requests
> > ? which we'll leave pending in the device.
> >
> > ? The depth currently defaults to 1. ?Tunable in
> > ? /sys/block/hdX/queue/iosched/queue_depth
> >
> > ? This patch hasn't been performance tested at all yet. ?If you think it is
> > ? misbehaving (the usual symptom is processes stuck in D state) then please
> > ? report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> > ? around it.
> >
> > - More CPU scheduler work. ?I hope someone is testing this stuff.
>
> Something is not quite right here. I built rc2-mm3 and booted (uni processor, amd64, preempt on).
> mm3 lasted about 30 mins before locking up with a dead keyboard. I had mm2 reboot a few times
> over the last couple of days too.
>
> 11-mm3 uptime of 2 weeks+
> 12-rc2-mm2 reboots once every couple of days
> 12-rc2-mm3 locked up within 30 mins using X using kmail/bogofilter

Unpleasant. Serial console would be nice ;)

> My serial console does not seem to want to work. Has anything changed with this support?
>

Don't think so - it works OK here. Checked the .config? Does the serial
port work if you do `echo foo > /dev/ttyS0'? ACPI?

2005-04-12 12:27:26

by Borislav Petkov

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Tuesday 12 April 2005 06:20, Stas Sergeev wrote:

Here we go again:

You might be right about the int3 instruction:

(gdb) disas 0xc0102ee0
Dump of assembler code for function restore_all:
0xc0102ed1 <restore_all+0>: mov 0x30(%esp),%eax
0xc0102ed5 <restore_all+4>: mov 0x2c(%esp),%al
0xc0102ed9 <restore_all+8>: test $0x20003,%eax
0xc0102ede <restore_all+13>: je 0xc0102ee7 <resume_kernelX>
0xc0102ee0 <restore_all+15>: cmpl $0x0,0x14(%ebp)
0xc0102ee4 <restore_all+19>: je 0xc0102ee7 <resume_kernelX>
0xc0102ee6 <restore_all+21>: int3
End of assembler dump.

> Could you please also do
> "p $esp" or "info reg", so that we can
> see the rest of the registers?

Program received signal SIGTRAP, Trace/breakpoint trap.
0xc0102ee7 in resume_kernelX () at atomic.h:175
175 {
(gdb) p $esp
$1 = (void *) 0xdfcb4fc4

(gdb) info reg
eax 0x273 627
ecx 0x0 0
edx 0x10000 65536
ebx 0xb7fd9c00 -1208116224
esp 0xdfcb4fc4 0xdfcb4fc4
ebp 0xbfbd5948 0xbfbd5948
esi 0x77 119
edi 0x1cb 459
eip 0xc0102ee7 0xc0102ee7
eflags 0x82 130
cs 0x60 96
ss 0x68 104
ds 0xc010007b -1072693125
es 0xdfcb007b -540344197
fs 0xffff 65535
gs 0xffff 65535
(gdb)
> >> And as we see, we're at the "mov 0x30(%esp),%eax" which accesses
> >> above the bottom of the stack.
>
> But that's strange. Another instance of
> the 0x30(%esp) is there a few instructions
> above this one, see it with "disas restore_all".
> It is much more likely that the real offender
> is the previous instruction. $eip points on
> the instruction *after* the trap, which might
> be innocent.
>
> >> After applying nmi_stack_correct-fix.patch, rc2-mm3
>
> I can't find this one in an -mm broken-outs.
> Where is this patch?
> Could you please also test this one:
> http://www.uwsg.iu.edu/hypermail/linux/kernel/0504.0/1287.html
>
> > Interesting. It could be an interaction between the kgdb patch and the
> > new vm86 checking code.
>
> I think so too, will have a look if I can
> reproduce it.
>
> > The above code is accessing esp+56,
>
> Yes, but this particular instruction was
> not reached. "int $3" killed the system
> for some reasons.
>
> > - p->thread.esp0 = (unsigned long) (childregs+1) - 8;
> > + p->thread.esp0 = (unsigned long) (childregs+1) - 15;
<snip>

So, as next I'm gonna try disabling CONFIG_TRAP_BAD_SYSCALL_EXITS and see what
happens there and then the stack-aligned process.c one liner above.
/me open to testing suggestions.

Regards,
Boris.

2005-04-12 16:59:14

by Steven Pratt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:

>Nick Piggin <[email protected]> wrote:
>
>
>>>- The effects of tcq on AS are much less disastrous than I thought they
>>>
>>>
>> > were. Do I have the wrong workload? Memory fails me. Or did we fix the
>> > anticipatory scheduler?
>> >
>> >
>>
>> Yes, we did fix it ;)
>> Quite a long time ago, so maybe you are thinking of something else
>> (I haven't been able to work it out).
>>
>>
>
>Steve Pratt's ols2004 presentation made AS look pretty bad. However the
>numbers in the proceedings
>(http://www.finux.org/proceedings/LinuxSymposium2004_V2.pdf) are much less
>stark.
>
>Steve, what's up with that? The slides which you talked to had some awful
>numbers. Was it the same set of tests?
>
>
I highlighted a few cases where AS went really wrong during the
presentation, like on really large RAID 0 arrays, but in general
(referring back to slides) AS trailed other schedulers by 5-10% on ext3,
but had real trouble with XFS, losing by as much as %145 on 5disk raid5
system for a mix of workloads. Perhaps this is the piece you remember.


Steve

2005-04-12 21:02:12

by Stas Sergeev

[permalink] [raw]
Subject: [patch 2/3]: entry.S trap return fixes

Hello.

do_debug() returns void, do_int3() too when
!CONFIG_KPROBES.
This patch fixes the CONFIG_KPROBES variant
of do_int3() to return void too and adjusts
the entry.S accordingly.

Signed-off-by: Stas Sergeev <[email protected]>


Attachments:
kgdbfix1.diff (1.13 kB)

2005-04-12 20:41:53

by Stas Sergeev

[permalink] [raw]
Subject: [patch 0/3] Re: 2.6.12-rc2-mm3

Hello.

Andrew Morton wrote:
> OK, the `int $3' is part of the CONFIG_TRAP_BAD_SYSCALL_EXITS thing which I
> never use.
> I'm not sure what problem is actually being reported here, now you mention it.
The problem being reported here is that
CONFIG_TRAP_BAD_SYSCALL_EXITS does nothing
but locking up your machine. Actually the
bug was so obvious, that I had real troubles
finding it (the obvious things are difficult
to spot), so I found some more bugs in a
mean time.
What was the bug? GET_THREAD_INFO(%ebp) was
missing before TI_preempt_count(%ebp), hence
the accesses beyond the stack. I'll have
troubles beleiving this code worked without
a lock-ups for someone sometimes.
I fixed it differently though. The subsequent
patches are addressing the issue.

> Yup. But are you sure that the "+ 8" is correct, given these offsets are<>
> larger than that?
I don't think they are indeed larger. The %esp
points to "struct pt_regs", which is 60 bytes
in size, and without the xss/esp = 52. Adding
8 to this gives 60, so 56(+3) looks safe to me.

> Probably it decided that some syscall got a "bad exit". Disable
> CONFIG_TRAP_BAD_SYSCALL_EXITS.
Yes, that's the fix too.

>> > - p->thread.esp0 = (unsigned long) (childregs+1) - 8;
>> > + p->thread.esp0 = (unsigned long) (childregs+1) - 15;
>> 15 is somewhat nasty - it will make the
>> stack unaligned, should better be 16 I
>> think.
> ? It's still 4-byte-aligned.
I don't see your point. Why do you think that
I substract the stack pointer by 32 bytes, for
example? I literally substract it by 8 bytes,
you propose to substract it by 15 *bytes* (not
dwords), so why would it still be aligned?
But anyway, fortunately this bug is not about
the esp0 stuff at all.

> I'm suspecting this is all due to CONFIG_TRAP_BAD_SYSCALL_EXITS taking the
> debug trap..
Sure. And that looks silly. I removed "int $3".
Patches follow. Seems to work reliable now,
but I don't know how to test it since there
seem to be no such an offending syscalls here
to test.

2005-04-12 22:46:00

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3


> >>> Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you
> >>> test without it and let me know if it makes a difference ?
> >>
> >> IIRC I had disabled that for rc2-mm2 and it didn't make a
> >> difference. I'll disable it again when I try older versions.
> >>
> >> I just got another crash with rc2-mm3. The crash was a bit
> >> different this time, I still could move the mouse pointer and the
> >> logs contained some info:
> >
> > Ok, what about non-mm ? (just plain rc2)
>
> I've tried older kernels now. rc1-mm1 locks up (no logs); plain rc1
> seems to be OK (running fine for several hours now).

Interesting. Please try -rc2 too...

Ben.


2005-04-12 22:42:05

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3


>>
> See this patch from Steve French:
> http://cifs.bkbits.net:8080/linux-2.5cifs/gnupatch@4259f2138nVCJQt3SmaZowdXd8KB7A

Thanks, that fixed it.

M.

2005-04-13 01:34:15

by Stas Sergeev

[permalink] [raw]
Subject: [patch 3/3]: fix BAD_SYSCALL_EXIT lockup

Hello.

CONFIG_TRAP_BAD_SYSCALL_EXITS forgets to do
GET_THREAD_INFO(%ebp) before accessing the
TI_preempt_count(%ebp). This leads to an
accesses to the random addresses and kills
the machine. Also "int $3" does nothing good
by itself (it would just Oops AFAICS). And
it is misplaced, too. Obviously it never worked.

The attached patch moves the check to the
right place (to the syscall_exit path) and
replaces the "int $3" by the call to the
helper function that only prints some debug
info and doesn't crash the system.
This fully solves the reported problem.

Signed-off-by: Stas Sergeev <[email protected]>


Attachments:
kgdbfix2.diff (1.68 kB)

2005-04-13 01:49:55

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

>>>>> Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you
>>>>> test without it and let me know if it makes a difference ?
>>>>
>>>> IIRC I had disabled that for rc2-mm2 and it didn't make a
>>>> difference. I'll disable it again when I try older versions.
>>>>
>>>> I just got another crash with rc2-mm3. The crash was a bit
>>>> different this time, I still could move the mouse pointer and the
>>>> logs contained some info:
>>>
>>> Ok, what about non-mm ? (just plain rc2)
>>
>> I've tried older kernels now. rc1-mm1 locks up (no logs); plain
>> rc1 seems to be OK (running fine for several hours now).
>
> Interesting. Please try -rc2 too...

Works fine so far.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-13 02:16:34

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch 2/3]: entry.S trap return fixes

Stas Sergeev <[email protected]> wrote:
>
> do_debug() returns void, do_int3() too when
> !CONFIG_KPROBES.
> This patch fixes the CONFIG_KPROBES variant
> of do_int3() to return void too and adjusts
> the entry.S accordingly.
>

This patch is applicable to the mainline kernel, is it not?


>
>
>
> [kgdbfix1.diff text/x-patch (1297 bytes)]
> --- linux/arch/i386/kernel/entry.S.old 2005-04-12 09:47:38.000000000 +0400
> +++ linux/arch/i386/kernel/entry.S 2005-04-12 11:13:03.000000000 +0400
> @@ -550,8 +550,6 @@
> xorl %edx,%edx # error code 0
> movl %esp,%eax # pt_regs pointer
> call do_debug
> - testl %eax,%eax
> - jnz restore_all
> jmp ret_from_exception
>
> /*
> @@ -632,8 +630,6 @@
> xorl %edx,%edx # zero error code
> movl %esp,%eax # pt_regs pointer
> call do_int3
> - testl %eax,%eax
> - jnz restore_all
> jmp ret_from_exception
>
> ENTRY(overflow)
> --- linux/arch/i386/kernel/traps.c.old 2005-04-12 09:47:38.000000000 +0400
> +++ linux/arch/i386/kernel/traps.c 2005-04-12 10:59:54.000000000 +0400
> @@ -695,16 +695,15 @@
> }
>
> #ifdef CONFIG_KPROBES
> -fastcall int do_int3(struct pt_regs *regs, long error_code)
> +fastcall void do_int3(struct pt_regs *regs, long error_code)
> {
> if (notify_die(DIE_INT3, "int3", regs, error_code, 3, SIGTRAP)
> == NOTIFY_STOP)
> - return 1;
> + return;
> /* This is an interrupt gate, because kprobes wants interrupts
> disabled. Normal trap handlers don't. */
> restore_interrupts(regs);
> do_trap(3, SIGTRAP, "int3", 1, regs, error_code, NULL);
> - return 0;
> }
> #endif

2005-04-13 03:00:03

by Stas Sergeev

[permalink] [raw]
Subject: [patch 1/3]: move config option for BAD_SYSCALL_EXIT

Hello.

This patch moves the CONFIG_TRAP_BAD_SYSCALL_EXIT
from "Executable file formats" section to the
KGDB section. I had real problems finding that
option where it was.

Signed-off-by: Stas Sergeev <[email protected]>


Attachments:
kgdbconf.diff (1.01 kB)

2005-04-13 03:23:15

by Stas Sergeev

[permalink] [raw]
Subject: Re: [patch 2/3]: entry.S trap return fixes

Hello.

Andrew Morton wrote:
>> do_debug() returns void, do_int3() too when
> This patch is applicable to the mainline kernel, is it not?
I think so - with some offsets it applies
and looks valid.

2005-04-12 19:25:21

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

> On Tue, 2005-04-12 at 06:42 +0200, Juergen Kreileder wrote:
>> Benjamin Herrenschmidt <[email protected]> writes:
>>
>>> On Tue, 2005-04-12 at 03:18 +0200, Juergen Kreileder wrote:
>>>> Andrew Morton <[email protected]> writes:
>>>>
>>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>>>>
>>>> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>>>>
>>>> 2.6.11-mm4 works fine but all 2.6.12 versions I've tried (all
>>>> since -rc1-mm3) lock up randomly. The easiest way to reproduce
>>>> the problem seems to be running Azareus. So it might be network
>>>> related, but I'm not 100% sure about that, there was a least one
>>>> deadlock with virtually no network usage.
>>>
>>> Hrm... I just noticed you have CONFIG_PREEMPT enabled... Can you
>>> test without it and let me know if it makes a difference ?
>>
>> IIRC I had disabled that for rc2-mm2 and it didn't make a
>> difference. I'll disable it again when I try older versions.
>>
>> I just got another crash with rc2-mm3. The crash was a bit
>> different this time, I still could move the mouse pointer and the
>> logs contained some info:
>
> Ok, what about non-mm ? (just plain rc2)

I've tried older kernels now. rc1-mm1 locks up (no logs); plain rc1
seems to be OK (running fine for several hours now).

Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-13 04:37:24

by Steven Pratt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:

>Nick Piggin <[email protected]> wrote:
>
>
>>>> AS basically does its own TCQ strangulation, which IIRC involves things
>>>>
>>>>
>> > > like completing all reads before issuing new writes, and completing all
>> > > reads from one process before reads from another. As well as the
>> > > fundamental way that waiting for a 'dependant read' throttles TCQ.
>> >
>> > My (mpt-fusion-based) workstation is still really slow when there's a lot
>> > of writeout happening. Just from a quick test:
>> >
>> > > 2.6.12-rc2, as, tcq depth=2: 7.241 seconds
>> > > 2.6.12-rc2, as, tcq depth=64: 12.172 seconds
>> > > 2.6.12-rc2+patch,as, tcq depth=64: 7.199 seconds
>> > > 2.6.12-rc2, cfq2, tcq depth=64: much more than 5 minutes
>> > > 2.6.12-rc2, cfq3, tcq depth=64: much more than 5 minutes
>> >
>> > 2.6.11-rc4-mm1, as, mpt-f 39.349 seconds
>> >
>> > That was really really slow but had a sudden burst of read I/O at the end
>> > which made the thing look better than it really is. I wouldn't have a clue
>> > what tag depth it's using, and it's the only mpt-fusion based machine I
>> > have handy...
>> >
>>
>> Heh.
>>
>>
>
>Well with my current lineup on the mpt-fusion driver and no
>as-limit-queue-depth.patch that test takes 17 seconds. With
>as-limit-queue-depth.patch it's down to 10 seconds. Which is pretty darn
>good btw. I assume from this:
>
>scsi0 : ioc0: LSI53C1030, FwRev=01030600h, Ports=1, MaxQ=222, IRQ=25
>scsi1 : ioc1: LSI53C1030, FwRev=01030600h, Ports=1, MaxQ=222, IRQ=26
>
>that it's using a tag depth of 222.
>
> int req_depth; /* Number of request frames */
>
>I wonder if that's true...
>
>
>One thing which changed is that this kernel now has the fixed-up mpt-fusion
>chipset tuning. That doubles the IO bandwidth, which would pretty well
>account for that difference. I'll wait and see how irritating things get
>under writeout load.
>
>Yes, we'll need to decide if we want to retain as-limit-queue-depth.patch
>and toss out some of the older AS logic which was designed to address the
>TCQ problem.
>
>Steve, could you help to identify a not-too-hard-to-set-up workload at
>which AS was particularly poor? Thanks.
>
>

AS with XFS was pretty bad on a couple of workloads. random 4k reads
and "metadata" which was 40%create, 40%append, 20%delete multithreaded
workloads. I'll try to run a few tests with and without this patch on
my hardware setup over the next day or so and see how it does. I have
not really looked at AS performance since about 2.6.6/7. Our database
team recently re-checked IO Scheduler performance, and on the Ad Hoc
Decision Support Workload we still saw a 15-20% lower throughput on
RHEL4 with AS compared to other schedulers which were all within a
couple of %.

Steve

2005-04-13 18:36:37

by Stas Sergeev

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <linux/unistd.h>
#include <asm/ldt.h>
#include <asm/ucontext.h>

_syscall3(int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount)

static int set_ldt_entry(int entry, unsigned long base, unsigned int limit,
int seg_32bit_flag, int contents, int read_only_flag,
int limit_in_pages_flag, int seg_not_present, int useable)
{
struct modify_ldt_ldt_s ldt_info;
ldt_info.entry_number = entry;
ldt_info.base_addr = base;
ldt_info.limit = limit;
ldt_info.seg_32bit = seg_32bit_flag;
ldt_info.contents = contents;
ldt_info.read_exec_only = read_only_flag;
ldt_info.limit_in_pages = limit_in_pages_flag;
ldt_info.seg_not_present = seg_not_present;
ldt_info.useable = useable;

return modify_ldt(1, &ldt_info, sizeof(ldt_info));
}

int main(int argc, char *argv[])
{
unsigned short _ss, new_ss, fs;

/* Get SS */
asm volatile(
"movw %%ss, %0\n"
:"=m"(_ss)
);

/* Force to LDT */
new_ss = (_ss & 0xffff) | 4;
/* Create the LDT entry */
set_ldt_entry(new_ss >> 3, 0, 0xfffff, 0, MODIFY_LDT_CONTENTS_DATA, 0, 1, 0, 0);

asm ("movw %%fs, %0":"=m"(fs));
printf("fs1=0x%hx\n", fs);
asm ("movw %0, %%fs"::"a"(new_ss));
asm ("movw %%fs, %0":"=m"(fs));
printf("fs2=0x%hx\n", fs);
usleep(0);
asm ("movw %%fs, %0":"=m"(fs));
printf("fs3=0x%hx\n", fs);
if (fs != new_ss)
printf("BUG!\n");
else
printf("All OK\n");
return 0;
}


Attachments:
fs.c (1.46 kB)

2005-04-13 20:05:11

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3


* Stas Sergeev <[email protected]> wrote:

> Hi Ingo.
>
> I have some programs that crash
> in 2.6.12-rc2-mm3. After seeing this:
> http://www.uwsg.iu.edu/hypermail/linux/kernel/0504.1/1091.html

does the patch below fix the problem for you? (already in Andrew's tree,
should be in the next -mm patch)

Ingo

--

delay the reloading of segment registers into switch_mm(), so that if
the LDT size changes we dont get a (silent) fault and a zeroed selector
register upon reloading.

Signed-off-by: Ingo Molnar <[email protected]>

--- linux/arch/i386/kernel/process.c.orig
+++ linux/arch/i386/kernel/process.c
@@ -612,12 +612,12 @@ struct task_struct fastcall * __switch_t
asm volatile("movl %%gs,%0":"=m" (*(int *)&prev->gs));

/*
- * Restore %fs and %gs if needed.
+ * Clear selectors if needed:
*/
- if (unlikely(prev->fs | prev->gs | next->fs | next->gs)) {
- loadsegment(fs, next->fs);
- loadsegment(gs, next->gs);
- }
+ if (unlikely((prev->fs | prev->gs) && !(next->fs | next->gs))) {
+ loadsegment(fs, next->fs);
+ loadsegment(gs, next->gs);
+ }

/*
* Now maybe reload the debug registers
--- linux/include/asm-i386/mmu_context.h.orig
+++ linux/include/asm-i386/mmu_context.h
@@ -61,6 +61,13 @@ static inline void switch_mm(struct mm_s
}
}
#endif
+ /*
+ * Now that we've switched the LDT, load segments:
+ */
+ if (unlikely(current->thread.fs | current->thread.gs)) {
+ loadsegment(fs, current->thread.fs);
+ loadsegment(gs, current->thread.gs);
+ }
}

#define deactivate_mm(tsk, mm) \

2005-04-14 00:19:16

by Ed Tomlinson

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Tuesday 12 April 2005 07:39, Andrew Morton wrote:
> Ed Tomlinson <[email protected]> wrote:
> >
> > On Monday 11 April 2005 04:25, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> > >
> > >
> > > - The anticipatory I/O scheduler has always been fairly useless with SCSI
> > > ? disks which perform tagged command queueing. ?There's a patch here from Jens
> > > ? which is designed to fix that up by constraining the number of requests
> > > ? which we'll leave pending in the device.
> > >
> > > ? The depth currently defaults to 1. ?Tunable in
> > > ? /sys/block/hdX/queue/iosched/queue_depth
> > >
> > > ? This patch hasn't been performance tested at all yet. ?If you think it is
> > > ? misbehaving (the usual symptom is processes stuck in D state) then please
> > > ? report it, then boot with `elevator=cfq' or `elevator=deadline' to work
> > > ? around it.
> > >
> > > - More CPU scheduler work. ?I hope someone is testing this stuff.
> >
> > Something is not quite right here. I built rc2-mm3 and booted (uni processor, amd64, preempt on).
> > mm3 lasted about 30 mins before locking up with a dead keyboard. I had mm2 reboot a few times
> > over the last couple of days too.
> >
> > 11-mm3 uptime of 2 weeks+
> > 12-rc2-mm2 reboots once every couple of days
> > 12-rc2-mm3 locked up within 30 mins using X using kmail/bogofilter
>
> Unpleasant. Serial console would be nice ;)
>
> > My serial console does not seem to want to work. Has anything changed with this support?
> >
>
> Don't think so - it works OK here. Checked the .config? Does the serial
> port work if you do `echo foo > /dev/ttyS0'? ACPI?

Turned out it was some old ups software that got reactivated on the box displaying the
console - was a pain to disable it....

In any case, when the box reboots there are not any messages. Any ideas on what debug
options to enable or suggestions on how we can figure out the cause of the reboots.

TIA,
Ed Tomlinson

2005-04-14 00:24:03

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Ed Tomlinson <[email protected]> wrote:
>
> > Don't think so - it works OK here. Checked the .config? Does the serial
> > port work if you do `echo foo > /dev/ttyS0'? ACPI?
>
> Turned out it was some old ups software that got reactivated on the box displaying the
> console - was a pain to disable it....

OK.

> In any case, when the box reboots there are not any messages. Any ideas on what debug
> options to enable or suggestions on how we can figure out the cause of the reboots.

There were a few problems in the task switching area - maybe that.




From: Ingo Molnar <[email protected]>

delay the reloading of segment registers into switch_mm(), so that if
the LDT size changes we dont get a (silent) fault and a zeroed selector
register upon reloading.

Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

25-akpm/arch/i386/kernel/process.c | 10 +++++-----
25-akpm/include/asm-i386/mmu_context.h | 7 +++++++
2 files changed, 12 insertions(+), 5 deletions(-)

diff -puN arch/i386/kernel/process.c~sched-unlocked-context-switches-fix arch/i386/kernel/process.c
--- 25/arch/i386/kernel/process.c~sched-unlocked-context-switches-fix 2005-04-12 03:43:07.254363568 -0700
+++ 25-akpm/arch/i386/kernel/process.c 2005-04-12 03:43:07.259362808 -0700
@@ -653,12 +653,12 @@ struct task_struct fastcall * __switch_t
asm volatile("mov %%gs,%0":"=m" (prev->gs));

/*
- * Restore %fs and %gs if needed.
+ * Clear selectors if needed:
*/
- if (unlikely(prev->fs | prev->gs | next->fs | next->gs)) {
- loadsegment(fs, next->fs);
- loadsegment(gs, next->gs);
- }
+ if (unlikely((prev->fs | prev->gs) && !(next->fs | next->gs))) {
+ loadsegment(fs, next->fs);
+ loadsegment(gs, next->gs);
+ }

/*
* Now maybe reload the debug registers
diff -puN include/asm-i386/mmu_context.h~sched-unlocked-context-switches-fix include/asm-i386/mmu_context.h
--- 25/include/asm-i386/mmu_context.h~sched-unlocked-context-switches-fix 2005-04-12 03:43:07.256363264 -0700
+++ 25-akpm/include/asm-i386/mmu_context.h 2005-04-12 03:43:07.260362656 -0700
@@ -61,6 +61,13 @@ static inline void switch_mm(struct mm_s
}
}
#endif
+ /*
+ * Now that we've switched the LDT, load segments:
+ */
+ if (unlikely(current->thread.fs | current->thread.gs)) {
+ loadsegment(fs, current->thread.fs);
+ loadsegment(gs, current->thread.gs);
+ }
}

#define deactivate_mm(tsk, mm) \
_

2005-04-14 00:39:05

by Ed Tomlinson

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Wednesday 13 April 2005 20:20, Andrew Morton wrote:
> Ed Tomlinson <[email protected]> wrote:
> >
> > > Don't think so - it works OK here. Checked the .config? Does the serial
> > > port work if you do `echo foo > /dev/ttyS0'? ACPI?
> >
> > Turned out it was some old ups software that got reactivated on the box displaying the
> > console - was a pain to disable it....
>
> OK.
>
> > In any case, when the box reboots there are not any messages. Any ideas on what debug
> > options to enable or suggestions on how we can figure out the cause of the reboots.
>
> There were a few problems in the task switching area - maybe that.

These hit arch/i386. Are they going to help on an x86_64 box?

Ed

> From: Ingo Molnar <[email protected]>
>
> delay the reloading of segment registers into switch_mm(), so that if
> the LDT size changes we dont get a (silent) fault and a zeroed selector
> register upon reloading.
>
> Signed-off-by: Ingo Molnar <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> 25-akpm/arch/i386/kernel/process.c | 10 +++++-----
> 25-akpm/include/asm-i386/mmu_context.h | 7 +++++++
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff -puN arch/i386/kernel/process.c~sched-unlocked-context-switches-fix arch/i386/kernel/process.c
> --- 25/arch/i386/kernel/process.c~sched-unlocked-context-switches-fix 2005-04-12 03:43:07.254363568 -0700
> +++ 25-akpm/arch/i386/kernel/process.c 2005-04-12 03:43:07.259362808 -0700
> @@ -653,12 +653,12 @@ struct task_struct fastcall * __switch_t
> asm volatile("mov %%gs,%0":"=m" (prev->gs));
>
> /*
> - * Restore %fs and %gs if needed.
> + * Clear selectors if needed:
> */
> - if (unlikely(prev->fs | prev->gs | next->fs | next->gs)) {
> - loadsegment(fs, next->fs);
> - loadsegment(gs, next->gs);
> - }
> + if (unlikely((prev->fs | prev->gs) && !(next->fs | next->gs))) {
> + loadsegment(fs, next->fs);
> + loadsegment(gs, next->gs);
> + }
>
> /*
> * Now maybe reload the debug registers
> diff -puN include/asm-i386/mmu_context.h~sched-unlocked-context-switches-fix include/asm-i386/mmu_context.h
> --- 25/include/asm-i386/mmu_context.h~sched-unlocked-context-switches-fix 2005-04-12 03:43:07.256363264 -0700
> +++ 25-akpm/include/asm-i386/mmu_context.h 2005-04-12 03:43:07.260362656 -0700
> @@ -61,6 +61,13 @@ static inline void switch_mm(struct mm_s
> }
> }
> #endif
> + /*
> + * Now that we've switched the LDT, load segments:
> + */
> + if (unlikely(current->thread.fs | current->thread.gs)) {
> + loadsegment(fs, current->thread.fs);
> + loadsegment(gs, current->thread.gs);
> + }
> }
>
> #define deactivate_mm(tsk, mm) \
> _
>
>

2005-04-14 00:54:21

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Ed Tomlinson <[email protected]> wrote:
>
> On Wednesday 13 April 2005 20:20, Andrew Morton wrote:
> > Ed Tomlinson <[email protected]> wrote:
> > >
> > > > Don't think so - it works OK here. Checked the .config? Does the serial
> > > > port work if you do `echo foo > /dev/ttyS0'? ACPI?
> > >
> > > Turned out it was some old ups software that got reactivated on the box displaying the
> > > console - was a pain to disable it....
> >
> > OK.
> >
> > > In any case, when the box reboots there are not any messages. Any ideas on what debug
> > > options to enable or suggestions on how we can figure out the cause of the reboots.
> >
> > There were a few problems in the task switching area - maybe that.
>
> These hit arch/i386. Are they going to help on an x86_64 box?

nope.

2005-04-14 16:38:36

by Stas Sergeev

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Hello.

Ingo Molnar wrote:
> does the patch below fix the problem for you?
Works perfectly, thankyou!

2005-04-15 18:26:35

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Juergen Kreileder <[email protected]> writes:

> Andrew Morton <[email protected]> writes:
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.

I think I finally found the culprit. Both rc2-mm3 and rc1-mm1 work
fine when I reverse the timer-* patches.

Any idea? Bug in my ppc64 gcc?


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-15 23:24:59

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Fri, 2005-04-15 at 20:23 +0200, Juergen Kreileder wrote:
> Juergen Kreileder <[email protected]> writes:
>
> > Andrew Morton <[email protected]> writes:
> >
> >> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >
> > I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>
> I think I finally found the culprit. Both rc2-mm3 and rc1-mm1 work
> fine when I reverse the timer-* patches.
>
> Any idea? Bug in my ppc64 gcc?

Or a bug in those patches, I'll have a look as soon as I find 5 minutes.

Ben.


2005-04-17 08:40:50

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

> On Fri, 2005-04-15 at 20:23 +0200, Juergen Kreileder wrote:
>> Juergen Kreileder <[email protected]> writes:
>>
>>> Andrew Morton <[email protected]> writes:
>>>
>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>>>
>>> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>>
>> I think I finally found the culprit. Both rc2-mm3 and rc1-mm1 work
>> fine when I reverse the timer-* patches.
>>
>> Any idea? Bug in my ppc64 gcc?
>
> Or a bug in those patches,

Probably. I've tried a different toolchain now (3.4.3), didn't help.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-17 21:32:58

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fix "make mandocs"

On Mon, Apr 11, 2005 at 01:25:32AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.12-rc2-mm2:
>...
> gregkh-driver.patch
>...

Due to the removal of class_simple.c, "make mandocs" no longer works.

This patch fixes this issue.

Signed-off-by: Adrian Bunk <[email protected]>

--- linux-2.6.12-rc2-mm3-full/Documentation/DocBook/kernel-api.tmpl.old 2005-04-17 23:26:10.000000000 +0200
+++ linux-2.6.12-rc2-mm3-full/Documentation/DocBook/kernel-api.tmpl 2005-04-17 23:26:17.000000000 +0200
@@ -338,7 +338,6 @@
X!Iinclude/linux/device.h
-->
!Edrivers/base/driver.c
-!Edrivers/base/class_simple.c
!Edrivers/base/core.c
!Edrivers/base/firmware_class.c
!Edrivers/base/transport_class.c

2005-04-17 22:27:15

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>

[Mikael Pettersson on CC, would like your advice]

This patch fixes the NMI checking problems in -mm x64 for me. It
changes the perfctr selection to use RETIRED_UOPS instead
(makes both processors tick even on my box).

This makes the NMI tick once per second while running which is quite much,
I'd like to get it down to every fourth second and herein lies the problem.
Multiplying nmi_interval() in patch below with 4 does not help, still ticks
at about the same pace. I'm puzzled...


Index: x64_mm/arch/x86_64/kernel/nmi.c
===================================================================
--- x64_mm.orig/arch/x86_64/kernel/nmi.c 2005-04-17 14:34:09.000000000 +0200
+++ x64_mm/arch/x86_64/kernel/nmi.c 2005-04-18 02:11:37.000000000 +0200
@@ -58,7 +58,7 @@
int panic_on_timeout;

unsigned int nmi_watchdog = NMI_DEFAULT;
-static unsigned int nmi_hz = HZ;
+static unsigned long nmi_hz = HZ;
unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */

/* Note that these events don't tick when the CPU idles. This means
@@ -70,6 +70,7 @@
#define K7_EVNTSEL_USR (1 << 16)
#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0x76
#define K7_NMI_EVENT K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING
+#define K7_RETIRED_UOPS 0xC1 /* always running */

#define P6_EVNTSEL0_ENABLE (1 << 22)
#define P6_EVNTSEL_INT (1 << 20)
@@ -78,6 +79,11 @@
#define P6_EVENT_CPU_CLOCKS_NOT_HALTED 0x79
#define P6_NMI_EVENT P6_EVENT_CPU_CLOCKS_NOT_HALTED

+static inline unsigned long nmi_interval(void)
+{
+ return (((unsigned long)cpu_khz * 1000UL) / nmi_hz);
+}
+
/* Run after command line and cpu_init init, but before all other checks */
void __init nmi_watchdog_default(void)
{
@@ -129,8 +135,8 @@

for (cpu = 0; cpu < NR_CPUS; cpu++)
counts[cpu] = cpu_pda[cpu].__nmi_count;
- local_irq_enable();
- mdelay((10*1000)/nmi_hz); // wait 10 ticks
+
+ mdelay((10*1000) / nmi_hz); /* wait 10 NMI ticks */

for (cpu = 0; cpu < NR_CPUS; cpu++) {
if (cpu_pda[cpu].__nmi_count - counts[cpu] <= 5) {
@@ -305,9 +311,6 @@
int i;
unsigned int evntsel;

- /* No check, so can start with slow frequency */
- nmi_hz = 1;
-
/* XXX should check these in EFER */

nmi_perfctr_msr = MSR_K7_PERFCTR0;
@@ -322,10 +325,10 @@
evntsel = K7_EVNTSEL_INT
| K7_EVNTSEL_OS
| K7_EVNTSEL_USR
- | K7_NMI_EVENT;
+ | K7_RETIRED_UOPS;

wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
- wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz*1000) / nmi_hz);
+ wrmsrl(MSR_K7_PERFCTR0, -nmi_interval());
apic_write(APIC_LVTPC, APIC_DM_NMI);
evntsel |= K7_EVNTSEL_ENABLE;
wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
@@ -409,7 +412,7 @@
alert_counter[cpu] = 0;
}
if (nmi_perfctr_msr)
- wrmsr(nmi_perfctr_msr, -(cpu_khz/nmi_hz*1000), -1);
+ wrmsr(nmi_perfctr_msr, -nmi_interval(), -1);
}

static int dummy_nmi_callback(struct pt_regs * regs, int cpu)


2005-04-17 22:36:46

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

m?n 2005-04-11 klockan 01:25 -0700 skrev Andrew Morton:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>

I tried to kexec on my x64 and it hangs up in calibrate_delay() because
the PIT never fires any interrupts so jiffies is never updated. Has
kexec been tested on x64 and should be working? I want to know if I
should start looking at weirdness with my hardware or if it is like this
on all x64 boxes.

Also, patch at bottom is needed to compile kexec on x64 without ia32
emulation support (the includes are not used at the moment).

CC arch/x86_64/kernel/crash.o
In file included from arch/x86_64/kernel/crash.c:18:
include/linux/elfcore.h: I funktion `elf_core_copy_regs':
include/linux/elfcore.h:92: error: dereferencing pointer to incomplete type
include/linux/elfcore.h:92: error: dereferencing pointer to incomplete type


Index: x64_mm/arch/x86_64/kernel/crash.c
===================================================================
--- x64_mm.orig/arch/x86_64/kernel/crash.c 2005-04-16 19:23:58.000000000 +0200
+++ x64_mm/arch/x86_64/kernel/crash.c 2005-04-16 19:47:56.000000000 +0200
@@ -14,8 +14,6 @@
#include <linux/irq.h>
#include <linux/reboot.h>
#include <linux/kexec.h>
-#include <linux/elf.h>
-#include <linux/elfcore.h>

#include <asm/processor.h>
#include <asm/hardirq.h>


2005-04-17 23:39:38

by Mikael Pettersson

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 18 Apr 2005 00:27:02 +0200, Alexander Nyberg wrote:
>This patch fixes the NMI checking problems in -mm x64 for me. It

What problems?

>changes the perfctr selection to use RETIRED_UOPS instead
>(makes both processors tick even on my box).

This patch mixes what appears to be cleanups with what appears
to be bug fixes. Please separate them, and describe the problem
in enough detail that we can judge the validity of the bug-fix parts.

>Index: x64_mm/arch/x86_64/kernel/nmi.c
>===================================================================
>--- x64_mm.orig/arch/x86_64/kernel/nmi.c 2005-04-17 14:34:09.000000000 +0200
>+++ x64_mm/arch/x86_64/kernel/nmi.c 2005-04-18 02:11:37.000000000 +0200
>@@ -58,7 +58,7 @@
> int panic_on_timeout;
>
> unsigned int nmi_watchdog = NMI_DEFAULT;
>-static unsigned int nmi_hz = HZ;
>+static unsigned long nmi_hz = HZ;

Why? Surely the value won't exceed 2^32-1?

> unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */
>
> /* Note that these events don't tick when the CPU idles. This means
>@@ -70,6 +70,7 @@
> #define K7_EVNTSEL_USR (1 << 16)
> #define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0x76
> #define K7_NMI_EVENT K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING
>+#define K7_RETIRED_UOPS 0xC1 /* always running */
>
> #define P6_EVNTSEL0_ENABLE (1 << 22)
> #define P6_EVNTSEL_INT (1 << 20)
>@@ -78,6 +79,11 @@
> #define P6_EVENT_CPU_CLOCKS_NOT_HALTED 0x79
> #define P6_NMI_EVENT P6_EVENT_CPU_CLOCKS_NOT_HALTED
>
>+static inline unsigned long nmi_interval(void)
>+{
>+ return (((unsigned long)cpu_khz * 1000UL) / nmi_hz);

Extraneous parentheses. Also I'd prefer to divide before the multiply.

>+}
>+
> /* Run after command line and cpu_init init, but before all other checks */
> void __init nmi_watchdog_default(void)
> {
>@@ -129,8 +135,8 @@
>
> for (cpu = 0; cpu < NR_CPUS; cpu++)
> counts[cpu] = cpu_pda[cpu].__nmi_count;
>- local_irq_enable();

Why?

>- mdelay((10*1000)/nmi_hz); // wait 10 ticks
>+
>+ mdelay((10*1000) / nmi_hz); /* wait 10 NMI ticks */

Not a bug fix.

>
> for (cpu = 0; cpu < NR_CPUS; cpu++) {
> if (cpu_pda[cpu].__nmi_count - counts[cpu] <= 5) {
>@@ -305,9 +311,6 @@
> int i;
> unsigned int evntsel;
>
>- /* No check, so can start with slow frequency */
>- nmi_hz = 1;
>-

What's this for?

> /* XXX should check these in EFER */
>
> nmi_perfctr_msr = MSR_K7_PERFCTR0;
>@@ -322,10 +325,10 @@
> evntsel = K7_EVNTSEL_INT
> | K7_EVNTSEL_OS
> | K7_EVNTSEL_USR
>- | K7_NMI_EVENT;
>+ | K7_RETIRED_UOPS;

Bogus. Redefine K7_NMI_EVENT instead.

/Mikael

2005-04-18 09:56:28

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

> >This patch fixes the NMI checking problems in -mm x64 for me. It
>
> What problems?
>

Sorry, in -mm on x64 check_nmi_watchdog() has started to be run as a
late_initcall(). Currently it reports the NMIs as stuck on a few systems
although they are not, both of mine are reported as stuck. This appears
to be because the current event mask uses don't appear to tick much
running mdelay() on opteron (in my case). Also in -mm because nmi_hz is
set to 1 in setup_k7_watchdog() the NMI watchdog checking takes 10
seconds, a bit much.

Patch below uses RETIRED_UOPS for a more constant rate of NMI sending,
this works well for me. However I'd like NMIs to maybe fire every fourth
second or so. Using nmi_mult to multiply nmi_interval() by 4 doesn't
seem to make it go every fourth second however, maybe every 1.5 second,
I'm puzzled about this...


Index: x64_mm/arch/x86_64/kernel/nmi.c
===================================================================
--- x64_mm.orig/arch/x86_64/kernel/nmi.c 2005-04-18 12:56:05.000000000 +0200
+++ x64_mm/arch/x86_64/kernel/nmi.c 2005-04-18 13:34:37.000000000 +0200
@@ -59,6 +59,7 @@

unsigned int nmi_watchdog = NMI_DEFAULT;
static unsigned int nmi_hz = HZ;
+static int nmi_mult = 1; /* nmi multiplier, how many seconds inbetween */
unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */

/* Note that these events don't tick when the CPU idles. This means
@@ -68,7 +69,7 @@
#define K7_EVNTSEL_INT (1 << 20)
#define K7_EVNTSEL_OS (1 << 17)
#define K7_EVNTSEL_USR (1 << 16)
-#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0x76
+#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0xC1 /* Retired uops */
#define K7_NMI_EVENT K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING

#define P6_EVNTSEL0_ENABLE (1 << 22)
@@ -78,6 +79,11 @@
#define P6_EVENT_CPU_CLOCKS_NOT_HALTED 0x79
#define P6_NMI_EVENT P6_EVENT_CPU_CLOCKS_NOT_HALTED

+static inline unsigned long nmi_interval(void)
+{
+ return ((unsigned long)cpu_khz * 1000 * nmi_mult) / nmi_hz;
+}
+
/* Run after command line and cpu_init init, but before all other checks */
void __init nmi_watchdog_default(void)
{
@@ -146,8 +152,10 @@

/* now that we know it works we can reduce NMI frequency to
something more reasonable; makes a difference in some configs */
- if (nmi_watchdog == NMI_LOCAL_APIC)
+ if (nmi_watchdog == NMI_LOCAL_APIC) {
nmi_hz = 1;
+ nmi_mult = 4;
+ }

return 0;
}
@@ -305,9 +313,6 @@
int i;
unsigned int evntsel;

- /* No check, so can start with slow frequency */
- nmi_hz = 1;
-
/* XXX should check these in EFER */

nmi_perfctr_msr = MSR_K7_PERFCTR0;
@@ -325,7 +330,7 @@
| K7_NMI_EVENT;

wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
- wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz*1000) / nmi_hz);
+ wrmsrl(MSR_K7_PERFCTR0, -nmi_interval());
apic_write(APIC_LVTPC, APIC_DM_NMI);
evntsel |= K7_EVNTSEL_ENABLE;
wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
@@ -409,7 +414,7 @@
alert_counter[cpu] = 0;
}
if (nmi_perfctr_msr)
- wrmsr(nmi_perfctr_msr, -(cpu_khz/nmi_hz*1000), -1);
+ wrmsr(nmi_perfctr_msr, -nmi_interval(), -1);
}

static int dummy_nmi_callback(struct pt_regs * regs, int cpu)


2005-04-18 11:06:07

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

[Proper patch now that goes all the way, sorry for spamming]

Patch below uses RETIRED_UOPS for a more constant rate of NMI sending.
This makes x64 deliver NMI interrupts every fourth second at a constant
rate when going through the local apic. Makes both cpus on my box to get
NMIs at constant rate that it previously did not, there could be long
delays when a CPU was idle.

This fixes misdetection in check_nmi_watchdog() that thought the NMI
sending was stuck although it was not because the perfctr did not
generate enough events with the previous mask. The 10-second
check_nmi_watchdog() delay is down to 10 msec now.

Tested on opteron SMP.


Index: x64_mm/arch/x86_64/kernel/nmi.c
===================================================================
--- x64_mm.orig/arch/x86_64/kernel/nmi.c 2005-04-18 12:56:05.000000000 +0200
+++ x64_mm/arch/x86_64/kernel/nmi.c 2005-04-18 14:47:14.000000000 +0200
@@ -59,16 +59,14 @@

unsigned int nmi_watchdog = NMI_DEFAULT;
static unsigned int nmi_hz = HZ;
+static int nmi_mult = 1; /* nmi multiplier for longer intervals */
unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */

-/* Note that these events don't tick when the CPU idles. This means
- the frequency varies with CPU load. */
-
#define K7_EVNTSEL_ENABLE (1 << 22)
#define K7_EVNTSEL_INT (1 << 20)
#define K7_EVNTSEL_OS (1 << 17)
#define K7_EVNTSEL_USR (1 << 16)
-#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0x76
+#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0xC1 /* Retired uops */
#define K7_NMI_EVENT K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING

#define P6_EVNTSEL0_ENABLE (1 << 22)
@@ -78,6 +76,11 @@
#define P6_EVENT_CPU_CLOCKS_NOT_HALTED 0x79
#define P6_NMI_EVENT P6_EVENT_CPU_CLOCKS_NOT_HALTED

+static inline unsigned long nmi_interval(void)
+{
+ return ((unsigned long)cpu_khz * 1000 * nmi_mult) / nmi_hz;
+}
+
/* Run after command line and cpu_init init, but before all other checks */
void __init nmi_watchdog_default(void)
{
@@ -146,8 +149,10 @@

/* now that we know it works we can reduce NMI frequency to
something more reasonable; makes a difference in some configs */
- if (nmi_watchdog == NMI_LOCAL_APIC)
+ if (nmi_watchdog == NMI_LOCAL_APIC) {
nmi_hz = 1;
+ nmi_mult = 8;
+ }

return 0;
}
@@ -305,9 +310,6 @@
int i;
unsigned int evntsel;

- /* No check, so can start with slow frequency */
- nmi_hz = 1;
-
/* XXX should check these in EFER */

nmi_perfctr_msr = MSR_K7_PERFCTR0;
@@ -325,7 +327,7 @@
| K7_NMI_EVENT;

wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
- wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz*1000) / nmi_hz);
+ wrmsrl(MSR_K7_PERFCTR0, -nmi_interval());
apic_write(APIC_LVTPC, APIC_DM_NMI);
evntsel |= K7_EVNTSEL_ENABLE;
wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
@@ -393,10 +395,10 @@
if (last_irq_sums[cpu] == sum) {
/*
* Ayiee, looks like this CPU is stuck ...
- * wait a few IRQs (5 seconds) before doing the oops ...
+ * wait a few NMIs before doing the oops ...
*/
alert_counter[cpu]++;
- if (alert_counter[cpu] == 5*nmi_hz) {
+ if (alert_counter[cpu] == 3*nmi_hz) {
if (notify_die(DIE_NMI, "nmi", regs, reason, 2, SIGINT)
== NOTIFY_STOP) {
alert_counter[cpu] = 0;
@@ -409,7 +411,7 @@
alert_counter[cpu] = 0;
}
if (nmi_perfctr_msr)
- wrmsr(nmi_perfctr_msr, -(cpu_khz/nmi_hz*1000), -1);
+ wrmsr(nmi_perfctr_msr, -nmi_interval(), -1);
}

static int dummy_nmi_callback(struct pt_regs * regs, int cpu)


2005-04-18 11:15:36

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 2005-04-18 at 13:05 +0200, Alexander Nyberg wrote:
> [Proper patch now that goes all the way, sorry for spamming]
>
> Patch below uses RETIRED_UOPS for a more constant rate of NMI sending.
> This makes x64 deliver NMI interrupts every fourth second at a constant
> rate when going through the local apic. Makes both cpus on my box to get
> NMIs at constant rate that it previously did not, there could be long
> delays when a CPU was idle.


isn't this dangerous in the light of the mobile cpus that either scale
back or stop entirely in idle or lower load situations ?


2005-04-18 14:11:16

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

m?n 2005-04-18 klockan 13:14 +0200 skrev Arjan van de Ven:
> On Mon, 2005-04-18 at 13:05 +0200, Alexander Nyberg wrote:
> > [Proper patch now that goes all the way, sorry for spamming]
> >
> > Patch below uses RETIRED_UOPS for a more constant rate of NMI sending.
> > This makes x64 deliver NMI interrupts every fourth second at a constant
> > rate when going through the local apic. Makes both cpus on my box to get
> > NMIs at constant rate that it previously did not, there could be long
> > delays when a CPU was idle.
>
>
> isn't this dangerous in the light of the mobile cpus that either scale
> back or stop entirely in idle or lower load situations ?
>

I don't see any real problem, at each nmi_watchdog_tick() the next NMI
is calculated accounting cpu_khz so the NMIs might not come at a
constant rate while frequency scaling, but over time there will still be
one every fourth second.

And if stop entirely as you say, are there even any uops run? And even
if so the watchdog that is now currently would also have a few events
accounted on it and could fire NMI aswell.

2005-04-18 22:27:47

by Mikael Pettersson

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 18 Apr 2005 11:56:15 +0200, Alexander Nyberg wrote:
>> >This patch fixes the NMI checking problems in -mm x64 for me. It
>>
>> What problems?
>>
>
>Sorry, in -mm on x64 check_nmi_watchdog() has started to be run as a
>late_initcall(). Currently it reports the NMIs as stuck on a few systems
>although they are not, both of mine are reported as stuck. This appears
>to be because the current event mask uses don't appear to tick much
>running mdelay() on opteron (in my case).

Please provide a complete dmesg log up to and including the failure
point where the kernel complains about stuck NMIs.

I tried 2.6.12-rc2-mm3 SMP on UP amd64 and I immediately found a
bug triggering bogus stuck NMI failures, and I want to check if
what you're seeing is caused by the same bug.

> Also in -mm because nmi_hz is
>set to 1 in setup_k7_watchdog() the NMI watchdog checking takes 10
>seconds, a bit much.

Orthogonal issue. Let's ignore this one for now.

>Patch below uses RETIRED_UOPS for a more constant rate of NMI sending,

This may or may not work as you intend. There is _no_ documented reason
to assume that RETIRED_UOPS would provide a more steady stream of events
than CYCLES_PROCESSOR_IS_RUNNING. Both events are likely to be idle in
HLT states, for instance.

The local APIC + performance counter driven NMI watchdog simply cannot
provide wall-clock like behaviour. You need the I/O-APIC driven watchdog
for that, or to prevent the kernel from using HLT when idle.

>@@ -68,7 +69,7 @@
> #define K7_EVNTSEL_INT (1 << 20)
> #define K7_EVNTSEL_OS (1 << 17)
> #define K7_EVNTSEL_USR (1 << 16)
>-#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0x76
>+#define K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING 0xC1 /* Retired uops */
> #define K7_NMI_EVENT K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING

This is as bogus as "#define ONE 2". CYCLES_PROCESSOR_IS_RUNNING
_is_ event 0x76 (AMD renamed it recently, but that's irrelevant).
Using RETIRED_UOPS requires a new define, and a modification to
the K7_NMI_EVENT #define.

/Mikael

2005-04-19 02:03:23

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.12-rc2-mm3: hostap: do not #include .c files

On Mon, Apr 11, 2005 at 01:25:32AM -0700, Andrew Morton wrote:
>...
> All 819 patches:
>...
> bk-netdev.patch
>...

drivers/net/wireless/hostap/hostap.c:#include "hostap_crypt.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_ap.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_info.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_ioctl.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_proc.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_80211_rx.c"
drivers/net/wireless/hostap/hostap.c:#include "hostap_80211_tx.c"
drivers/net/wireless/hostap/hostap_cs.c:#include "hostap_hw.c"
drivers/net/wireless/hostap/hostap_hw.c:#include "hostap_download.c"
drivers/net/wireless/hostap/hostap_hw.c:#include "hostap_callback.c"
drivers/net/wireless/hostap/hostap_pci.c:#include "hostap_hw.c"
drivers/net/wireless/hostap/hostap_plx.c:#include "hostap_hw.c"

Please do not #include .c files.

A proper separation in a .c file and a header file is the better
solution.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2005-04-19 02:14:06

by Jouni Malinen

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3: hostap: do not #include .c files

On Tue, Apr 19, 2005 at 04:03:12AM +0200, Adrian Bunk wrote:

> drivers/net/wireless/hostap/hostap.c:#include "hostap_crypt.c"

> Please do not #include .c files.

A tested patch would be appreciated.. ;-)

> A proper separation in a .c file and a header file is the better
> solution.

Agreed and this is on my to-do list, but not very high on it. Some of
these would be relatively easy to fix, but the hardware specific ones
(different register offsets for PC Card/PLX/PCI) would require quite a
bit of changes to get rid of this.

--
Jouni Malinen PGP id EFC895FA

2005-04-24 00:02:26

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Juergen Kreileder <[email protected]> wrote:
>
> Benjamin Herrenschmidt <[email protected]> writes:
>
> > On Fri, 2005-04-15 at 20:23 +0200, Juergen Kreileder wrote:
> >> Juergen Kreileder <[email protected]> writes:
> >>
> >>> Andrew Morton <[email protected]> writes:
> >>>
> >>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >>>
> >>> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
> >>
> >> I think I finally found the culprit. Both rc2-mm3 and rc1-mm1 work
> >> fine when I reverse the timer-* patches.
> >>
> >> Any idea? Bug in my ppc64 gcc?
> >
> > Or a bug in those patches,

(cc'ed Oleg)

> Probably. I've tried a different toolchain now (3.4.3), didn't help.

That is bad news.

I wonder why you're the only person who has noticed this.

How frequent are the lockups?

Is it possible to perform any additional debugging?

Do you think there's anything unusual in your driver lineup or in your
workload which would cause you to be the only person who is observing this?

2005-04-24 01:59:21

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton <[email protected]> writes:

> Juergen Kreileder <[email protected]> wrote:
>>
>> Benjamin Herrenschmidt <[email protected]> writes:
>>
>>> On Fri, 2005-04-15 at 20:23 +0200, Juergen Kreileder wrote:
>>>> Juergen Kreileder <[email protected]> writes:
>>>>> I'm getting frequent lockups on my PowerMac G5 with rc2-mm3.
>>>>
>>>> I think I finally found the culprit. Both rc2-mm3 and rc1-mm1
>>>> work fine when I reverse the timer-* patches.
>>>>
>>>> Any idea? Bug in my ppc64 gcc?
>>>
>>> Or a bug in those patches,
>>
>> Probably. I've tried a different toolchain now (3.4.3), didn't
>> help.
>
> That is bad news.
>
> I wonder why you're the only person who has noticed this.

Me too.

> How frequent are the lockups?

It only happens when running Azareus with IBM's Java (our's isn't
ready yet).
So far I was able to reproduce the problem on all -mm versions within
one hour. Otherwise the kernels seem to work fine -- no lockup unless
I run Azareus.

I'm running rc2-mm3 without the timer- patches now. It's up for 6
days now and survived downloading all Ubuntu torrents over ten times.

> Is it possible to perform any additional debugging?

> Do you think there's anything unusual in your driver lineup or in
> your workload which would cause you to be the only person who is
> observing this?

I'm might be the only one using evdev on ppc64.

And I don't know how popular LVM2 is on disks with Macintosh labels.
I had to set it up manually when I installed the machine, Debian's
installer couldn't handle it at that time.

Workload is normal, the lockups happen with just X and Azaereus.
(The machine also runs mysqld, apache, and a few other daemons. But I
don't have to put load on these to make the machine lock up.)


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-24 02:11:17

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Sun, 2005-04-24 at 03:59 +0200, Juergen Kreileder wrote:

> I'm might be the only one using evdev on ppc64.
>
> And I don't know how popular LVM2 is on disks with Macintosh labels.
> I had to set it up manually when I installed the machine, Debian's
> installer couldn't handle it at that time.
>
> Workload is normal, the lockups happen with just X and Azaereus.
> (The machine also runs mysqld, apache, and a few other daemons. But I
> don't have to put load on these to make the machine lock up.)

If you make sure you have CONFIG_XMON enabled and CONFIG_BOOTX_TEXT, and
make sure X has "UseFBDev" option, do you drop into xmon before the
lockup ?

Also, do you have another machine at hand ? if yes, then we can try to
revive my old firewire based debug tools we used to track things down in
linus tree.

I'll have a look at the timer patch next week, they might have some
subtle race caused by a lack of memory barrier. I've had to debug some
of those in early timer code, and those are really nasty, they usually
only trigger under some subtle conditions, like ... heavy networking.

Ben.


2005-04-24 03:24:00

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

> On Sun, 2005-04-24 at 03:59 +0200, Juergen Kreileder wrote:
>
>> I'm might be the only one using evdev on ppc64.
>>
>> And I don't know how popular LVM2 is on disks with Macintosh
>> labels. I had to set it up manually when I installed the machine,
>> Debian's installer couldn't handle it at that time.
>>
>> Workload is normal, the lockups happen with just X and Azaereus.
>> (The machine also runs mysqld, apache, and a few other daemons.
>> But I don't have to put load on these to make the machine lock up.)
>
> If you make sure you have CONFIG_XMON enabled and CONFIG_BOOTX_TEXT,
> and make sure X has "UseFBDev" option, do you drop into xmon before
> the lockup ?

I'll check that.

> Also, do you have another machine at hand ? if yes, then we can try
> to revive my old firewire based debug tools we used to track things
> down in linus tree.

I'd have to organize a firewire cable for that first.

> I'll have a look at the timer patch next week, they might have some
> subtle race caused by a lack of memory barrier. I've had to debug
> some of those in early timer code, and those are really nasty, they
> usually only trigger under some subtle conditions, like ... heavy
> networking.

I wouldn't call it "heavy" in my case. Azareus uses quite a few
sockets but that isn't that uncommon and external traffic is limited
by a ADSL connection.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-24 04:26:07

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt <[email protected]> writes:

> If you make sure you have CONFIG_XMON enabled and CONFIG_BOOTX_TEXT,
> and make sure X has "UseFBDev" option, do you drop into xmon before
> the lockup ?

No, instant lockup.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-24 09:46:26

by Oleg Nesterov

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Benjamin Herrenschmidt wrote:
>
> I'll have a look at the timer patch next week, they might have some
> subtle race caused by a lack of memory barrier. I've had to debug some
> of those in early timer code, and those are really nasty, they usually
> only trigger under some subtle conditions, like ... heavy networking.

Before this timer patch del_timer(pending_timer) worked as
a memory barrier for the caller, now it does not.

For example, sk_stop_timer() does:

if (del_timer(timer))
// no more wmb() here
atomic_dec(&sk->sk_refcnt);

I think that this particular case is ok, but may be there is
some user of timers which lacks the memory barrier?

Juergen Kreileder wrote:
>
> It only happens when running Azareus with IBM's Java (our's isn't ready yet).
> So far I was able to reproduce the problem on all -mm versions within
> one hour. Otherwise the kernels seem to work fine -- no lockup unless
> I run Azareus.

By any chance, could you please try this patch?
It restores "deleting timer acts as a barrier" behaviour.

--- 2.6.12-rc2+timer_patches/kernel/timer.c~ Sun Apr 24 11:59:31 2005
+++ 2.6.12-rc2+timer_patches/kernel/timer.c Sun Apr 24 13:35:01 2005
@@ -341,6 +341,9 @@ int del_timer(struct timer_list *timer)
spin_unlock_irqrestore(&base->lock, flags);
}

+ if (ret)
+ smp_wmb();
+
return ret;
}

@@ -387,6 +390,10 @@ unlock:
spin_unlock_irqrestore(&base->lock, flags);
} while (ret < 0);

+ if (ret)
+ smp_wmb();
+ smp_rmb();
+
return ret;
}

@@ -457,6 +464,7 @@ repeat:

set_running_timer(base, timer);
detach_timer(timer, 1);
+ smp_wmb();
spin_unlock_irq(&base->t_base.lock);
{
u32 preempt_count = preempt_count();

2005-04-24 23:11:58

by Juergen Kreileder

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Oleg Nesterov <[email protected]> writes:

> Juergen Kreileder wrote:
>>
>> It only happens when running Azareus with IBM's Java (our's isn't
>> ready yet). So far I was able to reproduce the problem on all -mm
>> versions within one hour. Otherwise the kernels seem to work fine
>> -- no lockup unless I run Azareus.
>
> By any chance, could you please try this patch?

Doesn't help.


Juergen

--
Juergen Kreileder, Blackdown Java-Linux Team
http://blog.blackdown.de/

2005-04-25 00:05:45

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 2005-04-25 at 01:11 +0200, Juergen Kreileder wrote:
> Oleg Nesterov <[email protected]> writes:
>
> > Juergen Kreileder wrote:
> >>
> >> It only happens when running Azareus with IBM's Java (our's isn't
> >> ready yet). So far I was able to reproduce the problem on all -mm
> >> versions within one hour. Otherwise the kernels seem to work fine
> >> -- no lockup unless I run Azareus.
> >
> > By any chance, could you please try this patch?
>
> Doesn't help.

Ok, try to mail me privately a HOWTO to reproduce your exact testcase,
knowing that I don't know anything about this Azareus thing ...

Ben.


2005-04-26 00:49:41

by Randy.Dunlap

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 11 Apr 2005 01:25:32 -0700
Andrew Morton <[email protected]> wrote:

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/


I'm seeing some badness and a panic, goes away if I disable
PCI Express.


gargoyle login: Linux version 2.6.12-rc2-mm3 (rddunlap@gargoyle) (gcc version 3.3.3 (SuSE Linux)) #12 Mon Apr 25 16:25:48 PDT 2005
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)
BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 262128
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 32752 pages, LIFO batch:7
DMI 2.3 present.
Allocating PCI resources starting at 40000000 (gap: 40000000:bec00000)
Built 1 zonelists
Initializing CPU#0
Kernel command line: auto BOOT_IMAGE=lin2612rc2mm3EX root=309 elevator=cfq splash=silent desktop showopts console=ttyS0,115200n8 console=tty0 crashkernel=64M@16M debug
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 1685.942 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x30
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 962204k/1048512k available (2603k kernel code, 85708k reserved, 1325k data, 224k init, 131008k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3325.95 BogoMIPS (lpj=1662976)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 3febfbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 3febfbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 256K
CPU: After all inits, caps: 3febfbf7 00000000 00000000 00000080 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU: Intel(R) Xeon(TM) CPU 1.70GHz stepping 02
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
softlockup thread 0 started up.
NET: Registered protocol family 16
EISA bus registered
PCI: PCI BIOS revision 2.10 entry at 0xfb110, last bus=4
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
Linux Plug and Play Support v0.97 (c) Adam Belay
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
Boot video device is 0000:01:00.0
PCI: Using IRQ router PIIX/ICH [8086/2440] at 0000:00:1f.0
fscache: general fs caching registered
CacheFS: general fs caching v0.1 registered
highmem bounce pool size: 64 pages
inotify device minor=63
Initializing Cryptographic API
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
fakephp: Fake PCI Hot Plug Controller Driver
Badness in kref_get at lib/kref.c:32
[<c1003368>] dump_stack+0x16/0x18
[<c10f7b32>] kref_get+0x28/0x32
[<c10f7173>] kobject_get+0x14/0x1c
[<c114b216>] get_bus+0x1a/0x2c
[<c114b0e1>] bus_add_driver+0x12/0x93
[<c13e67f7>] pcied_init+0x31/0x9d
[<c13da714>] do_initcalls+0x4e/0xa0
[<c10002a7>] init+0x25/0xce
[<c1000b09>] kernel_thread_helper+0x5/0xb
Badness in kref_get at lib/kref.c:32
[<c1003368>] dump_stack+0x16/0x18
[<c10f7b32>] kref_get+0x28/0x32
[<c10f7173>] kobject_get+0x14/0x1c
[<c10f6d52>] kobject_init+0x2c/0x3f
[<c10f7024>] kobject_register+0x17/0x4f
[<c114b118>] bus_add_driver+0x49/0x93
[<c13e67f7>] pcied_init+0x31/0x9d
[<c13da714>] do_initcalls+0x4e/0xa0
[<c10002a7>] init+0x25/0xce
[<c1000b09>] kernel_thread_helper+0x5/0xb
lib/kobject.c:171: spin_is_locked on uninitialized spinlock c133e1b8.
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
c10f6f6f
*pde = 00000000
Oops: 0002 [#1]
DEBUG_PAGEALLOC
Modules linked in:
CPU: 0
EIP: 0060:[<c10f6f6f>] Not tainted VLI
EFLAGS: 00010292 (2.6.12-rc2-mm3)
EIP is at kobject_add+0xed/0x18b
eax: c133df00 ebx: c133dee4 ecx: 00000000 edx: c133e1b0
esi: ffffffea edi: c133e1d0 ebp: c6341f90 esp: c6341f84
ds: 007b es: 007b ss: 0068
Process swapper (pid: 1, threadinfo=c6340000 task=c631cac0)
Stack: c133dee4 ffffffea c133dee4 c6341fa8 c10f702a c133dee4 c133dee4 c133deb8
c133e120 c6341fc4 c114b118 c133dee4 00000000 00000000 00000000 00000000
c6341fd4 c13e67f7 c133deb8 c1408814 c6341fe4 c13da714 c1000282 00000000
Call Trace:
[<c100334a>] show_stack+0x7a/0x82
[<c1003453>] show_registers+0xe9/0x153
[<c100369f>] die+0x15c/0x23d
[<c100e962>] do_page_fault+0x431/0x5a8
[<c1002ed3>] error_code+0x4f/0x54
[<c10f702a>] kobject_register+0x1d/0x4f
[<c114b118>] bus_add_driver+0x49/0x93
[<c13e67f7>] pcied_init+0x31/0x9d
[<c13da714>] do_initcalls+0x4e/0xa0
[<c10002a7>] init+0x25/0xce
[<c1000b09>] kernel_thread_helper+0x5/0xb
Code: 28 c7 40 24 ab 00 00 00 75 0f 8b 43 28 83 c0 28 50 e8 05 02 00 00 89 c7 58 8b 53 28 8d 43 1c 83 c2 08 89 53 1c 8b 4a 04 89 42 04 <89> 01 89 48 04 8b 43 28 81 78 10 3c 4b 24 1d 74 1b 83 c0 10 50
<0>Kernel panic - not syncing: Attempted to kill init!



--
~Randy

2005-04-26 01:06:32

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

"Randy.Dunlap" <[email protected]> wrote:
>
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>
> I'm seeing some badness and a panic, goes away if I disable
> PCI Express.

OK, it looks like Greg's stuff broke. I'm not in much of a position to
think about this at present - please keep an eye on things as -mm ramps up
again, remind us if it's still happening?

2005-04-26 03:18:35

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, Apr 25, 2005 at 05:49:00PM -0700, Randy.Dunlap wrote:
> On Mon, 11 Apr 2005 01:25:32 -0700
> Andrew Morton <[email protected]> wrote:
>
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
>
>
> I'm seeing some badness and a panic, goes away if I disable
> PCI Express.
>
> pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> fakephp: Fake PCI Hot Plug Controller Driver
> Badness in kref_get at lib/kref.c:32
> [<c1003368>] dump_stack+0x16/0x18
> [<c10f7b32>] kref_get+0x28/0x32
> [<c10f7173>] kobject_get+0x14/0x1c
> [<c114b216>] get_bus+0x1a/0x2c
> [<c114b0e1>] bus_add_driver+0x12/0x93
> [<c13e67f7>] pcied_init+0x31/0x9d
> [<c13da714>] do_initcalls+0x4e/0xa0
> [<c10002a7>] init+0x25/0xce
> [<c1000b09>] kernel_thread_helper+0x5/0xb
> Badness in kref_get at lib/kref.c:32
> [<c1003368>] dump_stack+0x16/0x18
> [<c10f7b32>] kref_get+0x28/0x32
> [<c10f7173>] kobject_get+0x14/0x1c
> [<c10f6d52>] kobject_init+0x2c/0x3f
> [<c10f7024>] kobject_register+0x17/0x4f
> [<c114b118>] bus_add_driver+0x49/0x93
> [<c13e67f7>] pcied_init+0x31/0x9d
> [<c13da714>] do_initcalls+0x4e/0xa0
> [<c10002a7>] init+0x25/0xce
> [<c1000b09>] kernel_thread_helper+0x5/0xb
> lib/kobject.c:171: spin_is_locked on uninitialized spinlock c133e1b8.

Hm, what happens if you disable the fakephp driver? I haven't tried
that out with pci express. Do you have pci express slots on this box?

thanks,

greg k-h

2005-04-26 16:19:47

by Randy.Dunlap

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

On Mon, 25 Apr 2005 20:17:50 -0700
Greg KH <[email protected]> wrote:

> On Mon, Apr 25, 2005 at 05:49:00PM -0700, Randy.Dunlap wrote:
> > On Mon, 11 Apr 2005 01:25:32 -0700
> > Andrew Morton <[email protected]> wrote:
> >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.12-rc2/2.6.12-rc2-mm3/
> >
> >
> > I'm seeing some badness and a panic, goes away if I disable
> > PCI Express.
> >
> > pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> > fakephp: Fake PCI Hot Plug Controller Driver
> > Badness in kref_get at lib/kref.c:32
> > [<c1003368>] dump_stack+0x16/0x18
> > [<c10f7b32>] kref_get+0x28/0x32
> > [<c10f7173>] kobject_get+0x14/0x1c
> > [<c114b216>] get_bus+0x1a/0x2c
> > [<c114b0e1>] bus_add_driver+0x12/0x93
> > [<c13e67f7>] pcied_init+0x31/0x9d
> > [<c13da714>] do_initcalls+0x4e/0xa0
> > [<c10002a7>] init+0x25/0xce
> > [<c1000b09>] kernel_thread_helper+0x5/0xb
> > Badness in kref_get at lib/kref.c:32
> > [<c1003368>] dump_stack+0x16/0x18
> > [<c10f7b32>] kref_get+0x28/0x32
> > [<c10f7173>] kobject_get+0x14/0x1c
> > [<c10f6d52>] kobject_init+0x2c/0x3f
> > [<c10f7024>] kobject_register+0x17/0x4f
> > [<c114b118>] bus_add_driver+0x49/0x93
> > [<c13e67f7>] pcied_init+0x31/0x9d
> > [<c13da714>] do_initcalls+0x4e/0xa0
> > [<c10002a7>] init+0x25/0xce
> > [<c1000b09>] kernel_thread_helper+0x5/0xb
> > lib/kobject.c:171: spin_is_locked on uninitialized spinlock c133e1b8.
>
> Hm, what happens if you disable the fakephp driver? I haven't tried
> that out with pci express. Do you have pci express slots on this box?

Same still happens without fakephp (this is in pciehp_core).

Same OOPS still happens also (pcied_init near middle of stack trace).

No, I don't have *any* PCI Express slots....

--
~Randy

2005-04-27 10:42:15

by Alexander Nyberg

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

The two functions:
crash_kexec()
smp_send_stop()

called from panic() wants preempt to be disabled which it may not be if
coming from a direct panic assertion (and not via the do_exit
assertions...).

Signed-off-by: Alexander Nyberg <[email protected]>

Index: mm/kernel/panic.c
===================================================================
--- mm.orig/kernel/panic.c 2005-04-26 11:15:29.000000000 +0200
+++ mm/kernel/panic.c 2005-04-26 23:18:07.000000000 +0200
@@ -64,6 +64,12 @@
unsigned long caller = (unsigned long) __builtin_return_address(0);
#endif

+ /* It's possible to come here directly from a panic-assertion and not
+ * have preempt disabled. Some functions called from here want
+ * preempt to be disabled. No point enabling it later though...
+ */
+ preempt_disable();
+
bust_spinlocks(1);
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);


2005-05-03 06:30:51

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Oleg Nesterov <[email protected]> wrote:
>
> Benjamin Herrenschmidt wrote:
> >
> > I'll have a look at the timer patch next week, they might have some
> > subtle race caused by a lack of memory barrier. I've had to debug some
> > of those in early timer code, and those are really nasty, they usually
> > only trigger under some subtle conditions, like ... heavy networking.
>
> Before this timer patch del_timer(pending_timer) worked as
> a memory barrier for the caller, now it does not.
>
> For example, sk_stop_timer() does:
>
> if (del_timer(timer))
> // no more wmb() here
> atomic_dec(&sk->sk_refcnt);
>
> I think that this particular case is ok, but may be there is
> some user of timers which lacks the memory barrier?
>
> ...
> --- 2.6.12-rc2+timer_patches/kernel/timer.c~ Sun Apr 24 11:59:31 2005
> +++ 2.6.12-rc2+timer_patches/kernel/timer.c Sun Apr 24 13:35:01 2005
> @@ -341,6 +341,9 @@ int del_timer(struct timer_list *timer)
> spin_unlock_irqrestore(&base->lock, flags);
> }
>
> + if (ret)
> + smp_wmb();
> +
> return ret;
> }
>
> @@ -387,6 +390,10 @@ unlock:
> spin_unlock_irqrestore(&base->lock, flags);
> } while (ret < 0);
>
> + if (ret)
> + smp_wmb();
> + smp_rmb();
> +
> return ret;
> }
>
> @@ -457,6 +464,7 @@ repeat:
>
> set_running_timer(base, timer);
> detach_timer(timer, 1);
> + smp_wmb();
> spin_unlock_irq(&base->t_base.lock);
> {
> u32 preempt_count = preempt_count();

I wonder if we should still do this? It would seem to be a safer approach.

(This barrier stuff continues to give me the creeps. Imagine being
dependent upon accidental barriers in the add/del/mod_timer code. Ugh).

2005-05-03 10:40:43

by Oleg Nesterov

[permalink] [raw]
Subject: Re: 2.6.12-rc2-mm3

Andrew Morton wrote:
>
> Oleg Nesterov <[email protected]> wrote:
> >
> > ...
> > Before this timer patch del_timer(pending_timer) worked as
> > a memory barrier for the caller, now it does not.
> >
>
> I wonder if we should still do this? It would seem to be a safer approach.
>
> (This barrier stuff continues to give me the creeps. Imagine being
> dependent upon accidental barriers in the add/del/mod_timer code. Ugh).

I can't judge. But if we added barriers now, it would be
very hard to remove them later. And I think it's not good
to have these barriers "just in case".

Oleg.