2006-05-30 09:25:23

by Andrew Morton

[permalink] [raw]
Subject: 2.6.17-rc5-mm1


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/


- The git-cfq tree is causing oopses and has been dropped.

- New reiser4 code drop.

- Merged the generic-IRQ handling code.

- Merged the runtime locking validator. If you enable this your machine
will run slowly.

- The build is broken on ia64 and probably on everything apart from x86,
x86_64 and powerpc. Check out the hot-fixes directory, as it won't be
broken for long.

- Dropped the git-viro-bid-* git trees - they're getting many rejects
against other things in -mm.

- Merged the new readahead code.

- Merged the generic statistics infrastructure patches.




Changes since 2.6.17-rc4-mm3:


origin.patch
git-acpi.patch
git-agpgart.patch
git-alsa.patch
git-audit-master.patch
git-block.patch
git-cifs.patch
git-dvb.patch
git-gfs2.patch
git-ia64.patch
git-infiniband.patch
git-intelfb.patch
git-klibc.patch
git-hdrcleanup.patch
git-hdrinstall.patch
git-libata-all.patch
git-mips.patch
git-mtd.patch
git-mtd-fixup.patch
git-mtd-cs553x_nand-build-fix.patch
git-mtd-ya-build-fix.patch
git-netdev-all.patch
git-net.patch
git-nfs.patch
git-powerpc.patch
git-rbtree.patch
git-sas.patch
git-pcmcia.patch
git-scsi-rc-fixes.patch
git-scsi-target.patch
git-supertrak.patch
git-watchdog.patch
git-cryptodev.patch

git trees

-sys_sync_file_range-move-exported-flags-outside-kernel.patch
-knfsd-fix-two-problems-that-can-cause-rmmod-nfsd-to-die.patch
-md-fix-possible-oops-when-starting-a-raid0-array.patch
-md-make-sure-bi_max_vecs-is-set-properly-in-bio_split.patch
-git-audit-master-build-fix.patch
-audit-build-fix.patch
-git-klibc-build-hacks.patch
-git-klibc-stdint-build-fix.patch
-git-klibc-stdint-build-fix-2.patch
-e1000-endian-fixes.patch
-forcedeth-suggested-cleanups.patch
-forcedeth-add-support-for-flow-control.patch
-forcedeth-add-support-for-configuration.patch
-drivers-net-s2ioc-make-bus_speed-static.patch
-qla2xxx-lock-ordering-fix.patch
-qla2xxx-lock-ordering-fix-warning-fix.patch
-orinoco-possible-null-pointer-dereference-in-orinoco_rx_monitor.patch
-x86_64-mm-i386-numa-summit-check-fix.patch
-x86-64-calgary-iommu-introduce-iommu_detected.patch
-x86-64-calgary-iommu-calgary-specific-bits.patch
-x86-64-calgary-iommu-hook-it-in.patch
-x86-64-check-for-valid-dma-data-direction-in-the-dma-api.patch
-fix-unlikely-memory-leak-in-dac960-driver.patch
-sunsu-license-fix.patch
-intelfb-use-firmware-edid-for-mode-database.patch
-intelfb-use-firmware-edid-for-mode-database-fix.patch

Merged into mainline or a subsystem tree

+ext3-resize-fix-double-unlock_super.patch
+fbcon-fix-scrollback-with-logo-issue-immediately-after-boot.patch
+spanned_pages-is-not-updated-at-a-case-of-memory-hot-add.patch
+tpm-bios-log-parsing-fixes.patch
+tpm-more-bios-log-parsing-fixes.patch
+tpm-more-bios-log-parsing-fixes-tidy.patch
+ipmi-reserve-i-o-ports-separately.patch
+revert-swsusp-add-check-for-suspension-of-x-controlled-devices.patch
+hrtimer-export-symbols.patch
+drivers-usb-core-devioc-dereference-userspace-pointer.patch
+scsi-properly-count-the-number-of-pages-in-scsi_req_map_sg.patch
+x86_64-fix-stack-mmap-randomization-for-compat.patch
+x86_64-fix-no-iommu-warning-in-pci-gart-driver.patch
+i386-apic=-command-line-option-should-always-be.patch
+x86_64-fix-last_tsc-calculation-of-pm-timer.patch
+x86_64-handle-empty-node-zero.patch
+x86_64-fix-off-by-one-in-bad_addr-checking-in.patch
+x86_64-dont-do-syscall-exit-tracing-twice.patch
+powerpc-fix-boot-on-emac.patch
+au1100fb-fix-compilation.patch
+maxinefb-fix-compilation-error.patch
+sgiioc4-use-mmio-ops-instead-of-port-io.patch
+md-fix-badness-in-sysfs_notify-caused-by-md_new_event.patch

2.6.17 queue

+acpi-atlas-acpi-driver.patch
+acpi-atlas-acpi-driver-v2-tidy.patch
+remove-acpi_os_create_lock-acpi_os_delete_lock.patch

ACPI updates

+firmware_class-s-semaphores-mutexes.patch

mutex conversion.

+trivial-videodev2h-patch.patch

cleanup

+fix-broken-suspend-resume-in-ohci1394-was-acpi-suspend.patch
+ieee1394_core-switch-to-kthread-api.patch
+ieee1394_core-switch-to-kthread-api-fix.patch

ieee1394 updates

-input-move-fixp-arithh-to-drivers-input.patch
-input-fix-accuracy-of-fixp-arithh.patch
-input-new-force-feedback-interface.patch
-input-adapt-hid-force-feedback-drivers-for-the-new-interface.patch
-input-adapt-uinput-for-the-new-force-feedback-interface.patch
-input-adapt-iforce-driver-for-the-new-force-feedback-interface.patch
-input-force-feedback-driver-for-pid-devices.patch
-input-force-feedback-driver-for-zeroplus-devices.patch
-input-update-documentation-of-force-feedback.patch
-input-drop-the-remains-of-the-old-ff-interface.patch
-input-drop-the-old-pid-driver.patch

Dropped - these are being redone.

+input-powermac-cleanup-of-mac_hid-and-support-for-ctrlclick-and-commandclick-update.patch

Fix input-powermac-cleanup-of-mac_hid-and-support-for-ctrlclick-and-commandclick.patch

+mm-constify-drivers-char-keyboardc.patch
+input-logitech-trackman-trackball-support.patch

Input driver updates

+git-mtd-cs553x_nand-build-fix.patch
+git-mtd-ya-build-fix.patch

Fix git-mtd.patch

+git-netdev-all-fixup.patch

Fix reject due to git-netdev-all.patch

+git-net-git-klibc-fixup.patch

Fix reject.

+eliminate-unused-proc-sys-net-ethernet.patch

Kill empty /proc directory.

+irda-missing-allocation-result-check-in-irlap_change_speed.patch

IRDA fix

+nfs-really-return-status-from-decode_recall_args.patch

NFS fixlet.

+64-bit-resources-arch-powerpc-changes-update.patch

ppc build fix

+allow-msi-to-work-on-kexec-kernel.patch
+pci-disable-msi-mode-in-pci_disable_device.patch

PCI fixes

+pcmcia-missing-pcmcia_get_socket-result-check.patch

pcmcia fixlet.

+qla1280-fix-section-mismatch-warnings.patch
+bogus-disk-geometry-on-large-disks.patch
+bogus-disk-geometry-on-large-disks-warning-fix.patch
+megaraid_sas-switch-fw_outstanding-to-an-atomic_t.patch
+megaraid_sas-add-support-for-zcr-controller.patch
+megaraid_sas-add-support-for-zcr-controller-fix.patch

SCSI driver updates

+usb-gadget-update-inodec-to-support-full-speed-only.patch
+usb-gadget-update-pxa2xx_udcc-and-arch-dependent-files.patch
+usb-gadget-update-pxa2xx_udcc-driver-to-fully-support.patch
+usb-gadget-clean-udch.patch
+usb-gadget-dont-build-small-version-if-usbgadgetfs.patch
+driver-for-apple-cinema-display.patch
+driver-for-apple-cinema-display-tweaks.patch
+usb-wifi-zd1201-cleanups.patch

USB updates

-x86_64-mm-iommu-warning.patch
-x86_64-mm-i386-apic-overwrite.patch
-x86_64-mm-profile-pc-fp.patch
-x86_64-mm-fix-last_tsc-calculation-of-pm-timer.patch
-x86_64-mm-empty-node0.patch
-x86_64-mm-disable-apic-initdata.patch
+x86_64-mm-iommu-clarification.patch
+x86_64-mm-reliable-stack-trace-support.patch
+x86_64-mm-reliable-stack-trace-support-x86-64.patch
+x86_64-mm-reliable-stack-trace-support-x86-64-irq-stack.patch
+x86_64-mm-reliable-stack-trace-support-x86-64-syscall.patch
+x86_64-mm-reliable-stack-trace-support-i386.patch
+x86_64-mm-reliable-stack-trace-support-i386-entrys.patch
+x86_64-mm-consoldidate-boot-compressed.patch
+x86_64-mm-remove-pud_offset_k.patch
+x86_64-mm-use-halt-instead-of-raw-inline-assembly.patch
+x86_64-mm-change-assembly-to-use-regular-cpuid_count-macro.patch
+x86_64-mm-iommu-detected.patch
+x86_64-mm-valid-dma-direction.patch
+x86_64-mm-iommu-abstraction.patch
+x86_64-mm-calgary-iommu.patch
+x86_64-mm-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86.patch
+x86_64-mm-add-nmi-watchdog-support-for-new-intel-cpus.patch
+x86_64-mm-rdtscp-macros.patch
+x86_64-mm-time-constants.patch
+x86_64-mm-rename-force-hpet.patch
+x86_64-mm-rdtscp-feature.patch
+x86_64-mm-remove-hpet-hack.patch
+x86_64-mm-use-time-constants.patch
+x86_64-mm-init-rdtscp.patch
+x86_64-mm-explain-double-hpet-init.patch
+x86_64-mm-update-copyright.patch
+x86_64-mm-getcpu-vsyscall.patch
+x86_64-mm-time-init-gtod-prototype.patch
+x86_64-mm-x86-clean-up-nmi-panic-messages.patch

x86_64 tree updates

-revert-x86_64-mm-profile-pc-fp.patch

Dropped.

+fix-x86_64-mm-reliable-stack-trace-support-i386-entrys.patch
+x86_64-mm-reliable-stack-trace-support-non-x86-fix.patch
+x86_64-mm-reliable-stack-trace-support-non-x86-fix-fix.patch
+x86_64-mm-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86-warning-fix.patch

Fix x86_64 tree.

+lock-validator-lockdep-small-xfs-init_rwsem-cleanup.patch

XFS cleanup.

-zone-init-check-and-report-unaligned-zone-boundaries-fix-v2.patch

Folded into zone-init-check-and-report-unaligned-zone-boundaries.patch

-zone-allow-unaligned-zone-boundaries-spelling-fix.patch

Folded into zone-allow-unaligned-zone-boundaries.patch

+zone-allow-unaligned-zone-boundaries-x86-add-zone-alignment-qualifier.patch

Implement it on x86.

-unify-pxm_to_node-and-node_to_pxm-update.patch

Folded into unify-pxm_to_node-and-node_to_pxm.patch

-pgdat-allocation-for-new-node-add-specify-node-id-powerpc-fix.patch
-pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch
-pgdat-allocation-for-new-node-add-specify-node-id-fix-3.patch
-pgdat-allocation-for-new-node-add-specify-node-id-build-fixes.patch
-pgdat-allocation-for-new-node-add-specify-node-id-tidy-cleanup.patch

Folded into pgdat-allocation-for-new-node-add-specify-node-id.patch

-pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch

Folded into pgdat-allocation-for-new-node-add-get-node-id-by-acpi.patch

-pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch

Folded into pgdat-allocation-for-new-node-add-generic-alloc-node_data.patch

-pgdat-allocation-for-new-node-add-refresh-node_data-fix.patch

Folded into pgdat-allocation-for-new-node-add-refresh-node_data.patch

-pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch

Folded into pgdat-allocation-for-new-node-add-export-kswapd-start-func.patch

-catch-valid-mem-range-at-onlining-memory-tidy.patch
-catch-valid-mem-range-at-onlining-memory-fix.patch

Folded into catch-valid-mem-range-at-onlining-memory.patch

-register-sysfs-file-for-hotpluged-new-node-fix.patch

Folded into register-sysfs-file-for-hotpluged-new-node.patch

-mm-introduce-remap_vmalloc_range-tidy.patch
-mm-introduce-remap_vmalloc_range-fix.patch

Folded into mm-introduce-remap_vmalloc_range.patch

-change-gen_pool-allocator-to-not-touch-managed-memory-update.patch
-change-gen_pool-allocator-to-not-touch-managed-memory-update-2.patch

Folded into change-gen_pool-allocator-to-not-touch-managed-memory.patch

-page-migration-cleanup-extract-try_to_unmap-from-migration-functions-update-comments-7.patch

Folded into page-migration-cleanup-extract-try_to_unmap-from-migration-functions.patch

-page-migration-cleanup-move-fallback-handling-into-special-function-update-comments-9.patch

Folded into page-migration-cleanup-move-fallback-handling-into-special-function.patch

-swapless-pm-add-r-w-migration-entries-fix.patch
-swapless-pm-add-r-w-migration-entries-ifdefs.patch
-swapless-pm-add-r-w-migration-entries-update-comments.patch
-swapless-pm-add-r-w-migration-entries-update-comments-4.patch
-swapless-pm-add-r-w-migration-entries-update-comments-6.patch

Folded into swapless-pm-add-r-w-migration-entries.patch

+swapless-pm-add-r-w-migration-entries-fix-2.patch

Fix it again.

-swapless-page-migration-modify-core-logic-remove-useless-mapping-checks.patch

Folded into swapless-page-migration-modify-core-logic.patch

-more-page-migration-use-migration-entries-for-file-pages-fix.patch
-more-page-migration-use-migration-entries-for-file-pages-update-comments-5.patch
-more-page-migration-use-migration-entries-for-file-pages-update-comments-8.patch
-more-page-migration-use-migration-entries-for-file-pages-remove_migration_ptes.patch
-more-page-migration-use-migration-entries-for-file-pages-replace-call-to-pageout-with-writepage-2.patch

Folded into more-page-migration-use-migration-entries-for-file-pages.patch

-tracking-dirty-pages-in-shared-mappings-v4.patch
-tracking-dirty-pages-in-shared-mappings-v4-fix2.patch
-tracking-dirty-pages-in-shared-mappings-v4-fix3.patch
-throttle-writers-of-shared-mappings.patch
-throttle-writers-of-shared-mappings-tidy.patch
-optimize-follow_pages.patch

Dropped, being redone.

+node-hotplug-register-cpu-remove-node-struct.patch
+node-hotplug-fixes-callres-of-register_cpu.patch
+node-hotplug-fixes-callres-of-register_cpu-powerpc-warning-fix.patch
+node-hotplug-register_node-fix.patch

NUMA node hotplugging updates

+add-page_mkwrite-vm_operations-method.patch
+mm-remove-vm_locked-before-remap_pfn_range-and-drop-vm_shm.patch
+swapoff-atomic_inc_not_zero-on-mm_users.patch
+remove-unused-o_flags-from-do_shmat.patch
+fix-update_mmu_cache-in-fremapc.patch
+fix-update_mmu_cache-in-fremapc-fix.patch

Memory management updates

+page-migration-support-moving-of-individual-pages-fixes.patch
+page-migration-support-moving-of-individual-pages-x86_64-support.patch
+page-migration-support-moving-of-individual-pages-x86-support.patch
+page-migration-support-moving-of-individual-pages-x86-support-fix.patch
+allow-migration-of-mlocked-pages.patch

Page migration updates

+au1550-1200-add-missing-psc-defines-make-oss-driver-use.patch

MIPS fix

+x86-re-enable-generic-numa.patch
+x86-make-using_apic_timer-__read_mostly.patch
+x86-cyrix-code-config_pci-fix--add-__initdata.patch
+x86-constify-some-parts-of-arch-i386-kernel-cpu.patch
+x86-make-i387-mxcsr_feature_mask-__read_mostly.patch
+x86-make-acpi-errata-__read_mostly.patch
+x86-constify-arch-i386-pci-irqc.patch
+x86-use-proper-defines-for-i8259a-i-o.patch
+i386-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86.patch
+i386-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86-warning-fix.patch
+i386-fix-get_segment_eip-with-vm86.patch

x86 updates

-x86-move-vsyscall-page-out-of-fixmap-above-stack.patch
-x86-move-vsyscall-page-out-of-fixmap-above-stack-tidy.patch
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma.patch
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-tidy.patch
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-arch_vma_name-fix.patch
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386.patch
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2.patch

Updated x86 VDSO randomisation patches

-swsusp-add-architecture-special-saveable-pages-fix.patch

Folded into swsusp-add-architecture-special-saveable-pages-support.patch

-swsusp-i386-mark-special-saveable-unsaveable-pages-fix.patch

Folded into swsusp-i386-mark-special-saveable-unsaveable-pages.patch

-swsusp-x86_64-mark-special-saveable-unsaveable-pages-fix.patch

Folded into swsusp-x86_64-mark-special-saveable-unsaveable-pages.patch

-dont-use-flush_tlb_all-in-suspend-time-tidy.patch

Folded into dont-use-flush_tlb_all-in-suspend-time.patch

-swsusp-fix-typo-in-cr0-handling.patch

Folded into swsusp-documentation-updates.patch

+m68k-completely-initialize-hw_regs_t-in-ide_setup_ports.patch
+m68k-atyfb_base-compile-fix-for-config_pci=n.patch
+m68k-cleanup-unistdh.patch
+m68k-remove-some-unused-definitions-in-zorroh.patch
+m68k-use-c99-initializer.patch
+m68k-print-correct-stack-trace.patch
+m68k-restore-amikbd-compatibility-with-24.patch
+m68k-extra-delay.patch
+m68k-use-proper-defines-for-zone-initialization.patch
+m68k-adjust-to-changed-hardirq_mask.patch
+m68k-m68k-mac-via2-fixes-and-cleanups.patch

m68k updates

+xtensa-remove-verify_area-macros.patch
+xtensa-remove-verify_area-macros-fix.patch

Xtensa updates

-s390-statistics-infrastructure.patch

Dropped.

-per-cpufy-net-proto-structures-add-percpu_counter_modbh.patch
-percpu-counters-add-percpu_counter_exceeds.patch
-per-cpufy-net-proto-structures-protomemory_allocated.patch
-per-cpufy-net-proto-structures-sockets_allocated.patch
-per-cpufy-net-proto-structures-protoinuse.patch

Dropped.

-percpu-counter-data-type-changes-to-suppport-fix.patch
-percpu-counter-data-type-changes-to-suppport-fix-fix.patch
-percpu-counter-data-type-changes-to-suppport-fix-fix-fix.patch

Folded into percpu-counter-data-type-changes-to-suppport.patch

-jbd-split-checkpoint-lists-tidy.patch

Folded into jbd-split-checkpoint-lists.patch

-mark-address_space_operations-const-fix.patch
-mark-address_space_operations-const-fix-2.patch

Folded into mark-address_space_operations-const.patch

-hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking.patch
-hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates.patch
-hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2.patch
-hptiop-highpoint-rocketraid-3xxx-controller-driver-redone.patch

Folded into hptiop-highpoint-rocketraid-3xxx-controller-driver.patch

-ufs-right-block-allocation-fixes.patch

Folded into ufs-right-block-allocation.patch

-ufs-change-block-number-on-the-fly-tweaks.patch

Folded into ufs-change-block-number-on-the-fly.patch

+ufs-wrong-type-cast.patch
+ufs-not-usual-amounts-of-fragments-per-block.patch
+ufs-unmark-config_ufs_fs_write-as-broken-mm-tree.patch

More UFS fixes.

-add-driver-for-arm-amba-pl031-rtc-tidy.patch

Folded into add-driver-for-arm-amba-pl031-rtc.patch

-add-a-sysfs-file-to-determine-if-a-kexec-kernel-is-loaded-tidy.patch

Folded into add-a-sysfs-file-to-determine-if-a-kexec-kernel-is-loaded.patch

+avoid-disk-sector_t-overflow-for-2tb-ext3-filesystem.patch
+cleanup-dead-code-from-ext2-mount-code.patch
+fix-memory-leak-when-the-ext3s-journal-file-is-corrupted.patch
+remove-inconsistent-space-before-exclamation-point-in-ext3s-mount-code.patch
+moxa-remove-pointless-casts.patch
+moxa-remove-pointless-check-of-tty-argument-vs-null.patch
+moxa-partial-codingstyle-cleanup-spelling-fixes.patch
+updated-kdump-documentation.patch
+cpuset-remove-extra-cpuset_zone_allowed-check-in-__alloc_pages.patch
+spin-rwlock-init-cleanups.patch
+make-debug_mutex_on-__read_mostly.patch
+constify-parts-of-kernel-power.patch
+constify-libcrc32c-table.patch
+apple-motion-sensor-driver.patch
+prepare-for-__copy_from_user_inatomic-to-not-zero-missed-bytes.patch
+make-copy_from_user_inatomic-not-zero-the-tail-on-i386.patch
+remove-unecessary-null-check-in-kernel-acctc.patch
+ax88796-parallel-port-driver.patch
+ax88796-parallel-port-driver-build-fix.patch
+wd7000-fix-section-mismatch-warnings.patch
+megaraid_mbox-fix-section-mismatch-warnings.patch
+keys-fix-race-between-two-instantiators-of-a-key.patch
+keys-fix-race-between-two-instantiators-of-a-key-tidy.patch
+ext3_fsblk_t-filesystem-group-blocks-and-bug-fixes.patch
+ext3_fsblk_t-the-rest-of-in-kernel-filesystem-blocks.patch
+inotify-kernel-api.patch
+inotify-kernel-api-fix.patch
+kernel-doc-mm-readhead-fixup.patch
+make-procfs-obligatory-except-under-config_embedded.patch
+lock-validator-introduce-warn_on_oncecond.patch
+make-sysctl-obligatory-except-under-config_embedded.patch
+lock-validator-sound-oss-emu10k1-midic-cleanup.patch
+for_each_cpu_mask-warning-fix.patch

Misc.

-use-list_add_tail-instead-of-list_add-fix.patch

Folded into use-list_add_tail-instead-of-list_add.patch

+add-new-generic-hw-rng-core-hw_random-core-rewrite-chrdev-read-method-hw_random-core-block-read-if-o_nonblock.patch

Hardware random number genarator update.

+time-fix-time-going-backward-w-clock=pit.patch

x86 time handling fix

pi-futex-futex-code-cleanups.patch
-pi-futex-futex-code-cleanups-fix.patch
+pi-futex-robust-futex-docs-fix.patch
pi-futex-introduce-debug_check_no_locks_freed.patch
+pi-futex-introduce-warn_on_smp.patch
pi-futex-add-plist-implementation.patch
pi-futex-scheduler-support-for-pi.patch
pi-futex-rt-mutex-core.patch
-pi-futex-rt-mutex-core-fix-timeout-race.patch
pi-futex-rt-mutex-docs.patch
+pi-futex-rt-mutex-docs-update.patch
pi-futex-rt-mutex-debug.patch
pi-futex-rt-mutex-tester.patch
pi-futex-rt-mutex-futex-api.patch
pi-futex-futex_lock_pi-futex_unlock_pi-support.patch
-pi-futex-v2.patch
-pi-futex-v3.patch
-pi-futex-patchset-v4.patch
-pi-futex-patchset-v4-update.patch
-pi-futex-patchset-v4-fix.patch
-rtmutex-remove-buggy-bug_on-in-pi-boosting-code.patch
-futex-pi-enforce-waiter-bit-when-owner-died-is-detected.patch
-rtmutex-debug-printk-correct-task-information.patch
-futex-pi-make-use-of-restart_block-when-interrupted.patch
-document-futex-pi-design.patch
-document-futex-pi-design-fix.patch
-document-futex-pi-design-fix-fix.patch

Updated pi-futex patch series

+ecryptfs-fs-makefile-and-fs-kconfig-remove-ecrypt_debug-from-fs-kconfig.patch
+ecryptfs-main-module-functions-uint16_t-u16.patch
+ecryptfs-header-declarations-update.patch
+ecryptfs-header-declarations-update-convert-signed-data-types-to-unsigned-data-types.patch
+ecryptfs-header-declarations-remove-unnecessary-ifndefs.patch
+ecryptfs-file-operations-remove-null-==-syntax.patch
+ecryptfs-file-operations-remove-extraneous-read-of-inode-size-from-header.patch
+ecryptfs-convert-assert-to-bug_on.patch
+ecryptfs-remove-unnecessary-null-checks.patch
+ecryptfs-rewrite-ecryptfs_fsync.patch
+ecryptfs-overhaul-file-locking.patch

ecryptfs updates

+proc-sysctl-add-_proc_do_string-helper.patch

/proc helper fucntion.

+namespaces-utsname-switch-to-using-uts-namespaces-cleanup.patch

Folded into namespaces-utsname-switch-to-using-uts-namespaces-alpha-fix.patch

+namespaces-utsname-sysctl-hack-cleanup.patch
+namespaces-utsname-sysctl-hack-cleanup-2.patch

Folded into namespaces-utsname-sysctl-hack.patch

+uts-copy-nsproxy-only-when-needed.patch

utsname virtualisation update

+readahead-kconfig-options.patch
+radixtree-introduce-radix_tree_scan_hole.patch
+mm-introduce-probe_page.patch
+mm-introduce-pg_readahead.patch
+readahead-add-look-ahead-support-to-__do_page_cache_readahead.patch
+readahead-delay-page-release-in-do_generic_mapping_read.patch
+readahead-insert-cond_resched-calls.patch
+readahead-minmax_ra_pages.patch
+readahead-events-accounting.patch
+readahead-rescue_pages.patch
+readahead-sysctl-parameters.patch
+readahead-sysctl-parameters-fix.patch
+readahead-min-max-sizes.patch
+readahead-state-based-method-aging-accounting.patch
+readahead-state-based-method-routines.patch
+readahead-state-based-method.patch
+readahead-context-based-method.patch
+readahead-initial-method-guiding-sizes.patch
+readahead-initial-method-thrashing-guard-size.patch
+readahead-initial-method-expected-read-size.patch
+readahead-initial-method-user-recommended-size.patch
+readahead-initial-method.patch
+readahead-backward-prefetching-method.patch
+readahead-seeking-reads-method.patch
+readahead-thrashing-recovery-method.patch
+readahead-call-scheme.patch
+readahead-laptop-mode.patch
+readahead-loop-case.patch
+readahead-nfsd-case.patch
+readahead-turn-on-by-default.patch
+readahead-debug-radix-tree-new-functions.patch
+readahead-debug-traces-showing-accessed-file-names.patch
+readahead-debug-traces-showing-read-patterns.patch

readahead rework

+make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch
-reiser4-fix-incorrect-assertions.patch
-reiser4-add-missing-txn_restart-before-get_nonexclusive_access-calls.patch
-reiser4-check-radix-tree-emptiness-properly.patch
-reiser4-check-radix-tree-emptiness-properly-2.patch
-fs-reiser4-misc-cleanups.patch
-reiser4-releasepage-fix.patch
-reiser4fs-use-list_move.patch
-make-address_space_operations-invalidatepage-return-void-reiser4.patch
-reiser4-have-get_exclusive_access-restart-transaction.patch
-reiser4-writeback-fix-range-handling.patch
-reiser4-gfp_t-annotations.patch
+reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch

Reiser4 updates

+hpt3xx-switch-to-using-pci_get_slot.patch
+hpt3xx-cache-channels-mcr-address.patch

IDE updates

+fbdev-remove-unused-exports.patch
+s3c2410fb-fix-resume.patch
+backlight-fix-kconfig-dependency.patch
+au1100fb-add-power-management-support.patch
+au1100fb-add-power-management-support-tidy.patch

fbdev updates

+dm-snapshot-unify-chunk_size.patch
+lib-add-idr_replace.patch
+lib-add-idr_replace-tidy.patch
+dm-fix-idr-minor-allocation.patch
+dm-move-idr_pre_get.patch
+dm-change-minor_lock-to-spinlock.patch
+dm-add-dmf_freeing.patch
+dm-fix-mapped-device-ref-counting.patch
+dm-add-module-ref-counting.patch
+dm-fix-block-device-initialisation.patch
+dm-mirror-sector-offset-fix.patch

Device mapper updates

+statistics-infrastructure-prerequisite-list.patch
+statistics-infrastructure-prerequisite-parser.patch
+statistics-infrastructure-prerequisite-timestamp.patch
+statistics-infrastructure-documentation.patch
+statistics-infrastructure.patch
+statistics-infrastructure-update-1.patch
+statistics-infrastructure-exploitation-zfcp.patch

Generic statistics infrastructure, use it on an s390 driver.

+genirq-rename-desc-handler-to-desc-chip-ia64-fix-2.patch

Fix genirq-rename-desc-handler-to-desc-chip.patch some more.

+genirq-sem2mutex-probe_sem-probing_active.patch
+genirq-cleanup-merge-irq_affinity-into-irq_desc.patch
+genirq-cleanup-remove-irq_descp.patch
+genirq-cleanup-remove-fastcall.patch
+genirq-cleanup-misc-code-cleanups.patch
+genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete.patch
+genirq-cleanup-include-linux-irqh.patch
+genirq-cleanup-merge-irq_dir-smp_affinity_entry-into-irq_desc.patch
+genirq-cleanup-merge-pending_irq_cpumask-into-irq_desc.patch
+genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu.patch
+genirq-debug-better-debug-printout-in-enable_irq.patch
+genirq-add-retrigger-irq-op-to-consolidate-hw_irq_resend.patch
+genirq-doc-comment-include-linux-irqh-structures.patch
+genirq-doc-handle_irq_event-and-__do_irq-comments.patch
+genirq-cleanup-no_irq_type-cleanups.patch
+genirq-doc-add-design-documentation.patch
+genirq-add-genirq-sw-irq-retrigger.patch
+genirq-add-irq_noprobe-support.patch
+genirq-add-irq_norequest-support.patch
+genirq-add-irq_noautoen-support.patch
+genirq-update-copyrights.patch
+genirq-core.patch
+genirq-add-irq-chip-support.patch
+genirq-add-handle_bad_irq.patch
+genirq-add-irq-wake-power-management-support.patch
+genirq-add-sa_trigger-support.patch
+genirq-cleanup-no_irq_type-no_irq_chip-rename.patch
+genirq-convert-the-x86_64-architecture-to-irq-chips.patch
+genirq-convert-the-i386-architecture-to-irq-chips.patch
+genirq-convert-the-i386-architecture-to-irq-chips-fix-2.patch
+genirq-more-verbose-debugging-on-unexpected-irq-vectors.patch

Generic IRQ habdling layer

+lock-validator-floppyc-irq-release-fix.patch
+lock-validator-forcedethc-fix.patch
+lock-validator-mutex-section-binutils-workaround.patch
+lock-validator-add-__module_address-method.patch
+lock-validator-better-lock-debugging.patch
+lock-validator-locking-api-self-tests.patch
+lock-validator-locking-init-debugging-improvement.patch
+lock-validator-beautify-x86_64-stacktraces.patch
+lock-validator-beautify-x86_64-stacktraces-fix.patch
+lock-validator-x86_64-document-stack-frame-internals.patch
+lock-validator-stacktrace.patch
+lock-validator-stacktrace-build-fix.patch
+lock-validator-stacktrace-warning-fix.patch
+lock-validator-fown-locking-workaround.patch
+lock-validator-sk_callback_lock-workaround.patch
+lock-validator-irqtrace-core.patch
+lock-validator-irqtrace-core-powerpc-fix-1.patch
+lock-validator-irqtrace-core-non-x86-fix.patch
+lock-validator-irqtrace-core-non-x86-fix-2.patch
+lock-validator-irqtrace-core-non-x86-fix-3.patch
+lock-validator-irqtrace-cleanup-include-asm-i386-irqflagsh.patch
+lock-validator-irqtrace-cleanup-include-asm-x86_64-irqflagsh.patch
+lock-validator-lockdep-add-local_irq_enable_in_hardirq-api.patch
+lock-validator-add-per_cpu_offset.patch
+lock-validator-add-per_cpu_offset-fix.patch
+lock-validator-core.patch
+lock-validator-procfs.patch
+lock-validator-core-multichar-fix.patch
+lock-validator-core-count_matching_names-fix.patch
+lock-validator-design-docs.patch
+lock-validator-prove-rwsem-locking-correctness.patch
+lock-validator-prove-rwsem-locking-correctness-fix.patch
+lock-validator-prove-rwsem-locking-correctness-powerpc-fix.patch
+lock-validator-prove-spinlock-rwlock-locking-correctness.patch
+lock-validator-prove-mutex-locking-correctness.patch
+lock-validator-print-all-lock-types-on-sysrq-d.patch
+lock-validator-x86_64-early-init.patch
+lock-validator-smp-alternatives-workaround.patch
+lock-validator-do-not-recurse-in-printk.patch
+lock-validator-disable-nmi-watchdog-if-config_lockdep.patch
+lock-validator-special-locking-bdev.patch
+lock-validator-special-locking-direct-io.patch
+lock-validator-special-locking-serial.patch
+lock-validator-special-locking-serial-fix.patch
+lock-validator-special-locking-dcache.patch
+lock-validator-special-locking-i_mutex.patch
+lock-validator-special-locking-s_lock.patch
+lock-validator-special-locking-futex.patch
+lock-validator-special-locking-genirq.patch
+lock-validator-special-locking-completions.patch
+lock-validator-special-locking-waitqueues.patch
+lock-validator-special-locking-mm.patch
+lock-validator-special-locking-slab.patch
+lock-validator-special-locking-skb_queue_head_init.patch
+lock-validator-special-locking-timerc.patch
+lock-validator-special-locking-schedc.patch
+lock-validator-special-locking-hrtimerc.patch
+lock-validator-special-locking-sock_lock_init.patch
+lock-validator-special-locking-af_unix.patch
+lock-validator-special-locking-bh_lock_sock.patch
+lock-validator-special-locking-mmap_sem.patch
+lock-validator-special-locking-sb-s_umount.patch
+lock-validator-special-locking-sb-s_umount-fix.patch
+lock-validator-special-locking-sb-s_umount-2.patch
+lock-validator-special-locking-jbd.patch
+lock-validator-special-locking-posix-timers.patch
+lock-validator-special-locking-sch_genericc.patch
+lock-validator-special-locking-xfrm.patch
+lock-validator-special-locking-sound-core-seq-seq_portsc.patch
+lock-validator-enable-lock-validator-in-kconfig.patch
+lock-validator-enable-lock-validator-in-kconfig-x86-only.patch
+lock-validator-enable-lock-validator-in-kconfig-not-yet.patch
+lockdep-one-stacktrace-column-if-config_lockdep=y.patch
+lockdep-further-improve-stacktrace-output.patch
+lock-validator-special-locking-kgdb.patch

Runtime locking validation.

-add-print_fatal_signals-support.patch
+vdso-print-fatal-signals.patch
+vdso-improve-print_fatal_signals-support-by-adding-memory-maps.patch

Updated



ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/patch-list


2006-05-30 09:41:58

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Andrew Morton <[email protected]> wrote:

> - Merged the runtime locking validator. If you enable this your
> machine will run slowly.

if you disable CONFIG_DEBUG_LOCKDEP it should be quite OK. (If debugging
is disabled then the lockless "chain cache" is fully utilized and we
should rarely go into the more complex portions of kernel/lockdep.c.)

Ingo

2006-05-30 10:05:11

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] genirq: ia64 build fix

Subject: genirq: ia64 build fix
From: Ingo Molnar <[email protected]>

fix missed handler -> chip rename.

Signed-off-by: Ingo Molnar <[email protected]>
---
arch/ia64/hp/sim/hpsim_irq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux/arch/ia64/hp/sim/hpsim_irq.c
@@ -45,7 +45,7 @@ hpsim_irq_init (void)

for (i = 0; i < NR_IRQS; ++i) {
idesc = irq_desc + i;
- if (idesc->handler == &no_irq_type)
- idesc->handler = &irq_type_hp_sim;
+ if (idesc->chip == &no_irq_type)
+ idesc->chip = &irq_type_hp_sim;
}
}

2006-05-30 10:09:01

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator, irqtrace: support non-x86 architectures

Subject: lock validator, irqtrace: support non-x86 architectures
From: Ingo Molnar <[email protected]>

add TRACE_IRQFLAGS_SUPPORT method for architectures to signal
whether they have irq-flags tracing infrastructure.

Signed-off-by: Ingo Molnar <[email protected]>
---
arch/i386/Kconfig.debug | 4 ++++
arch/x86_64/Kconfig.debug | 4 ++++
include/linux/trace_irqflags.h | 30 +++++++++++++++---------------
lib/Kconfig.debug | 3 +++
4 files changed, 26 insertions(+), 15 deletions(-)

Index: linux/arch/i386/Kconfig.debug
===================================================================
--- linux.orig/arch/i386/Kconfig.debug
+++ linux/arch/i386/Kconfig.debug
@@ -1,5 +1,9 @@
menu "Kernel hacking"

+config TRACE_IRQFLAGS_SUPPORT
+ bool
+ default y
+
source "lib/Kconfig.debug"

config EARLY_PRINTK
Index: linux/arch/x86_64/Kconfig.debug
===================================================================
--- linux.orig/arch/x86_64/Kconfig.debug
+++ linux/arch/x86_64/Kconfig.debug
@@ -1,5 +1,9 @@
menu "Kernel hacking"

+config TRACE_IRQFLAGS_SUPPORT
+ bool
+ default y
+
source "lib/Kconfig.debug"

config DEBUG_RODATA
Index: linux/include/linux/trace_irqflags.h
===================================================================
--- linux.orig/include/linux/trace_irqflags.h
+++ linux/include/linux/trace_irqflags.h
@@ -11,12 +11,6 @@
#ifndef _LINUX_TRACE_IRQFLAGS_H
#define _LINUX_TRACE_IRQFLAGS_H

-#include <asm/irqflags.h>
-
-/*
- * The local_irq_*() APIs are equal to the raw_local_irq*()
- * if !TRACE_IRQFLAGS.
- */
#ifdef CONFIG_TRACE_IRQFLAGS
extern void trace_hardirqs_on(void);
extern void trace_hardirqs_off(void);
@@ -31,7 +25,6 @@
# define trace_softirq_enter() do { current->softirq_context++; } while (0)
# define trace_softirq_exit() do { current->softirq_context--; } while (0)
# define INIT_TRACE_IRQFLAGS .softirqs_enabled = 1,
-
#else
# define trace_hardirqs_on() do { } while (0)
# define trace_hardirqs_off() do { } while (0)
@@ -48,7 +41,10 @@
# define INIT_TRACE_IRQFLAGS
#endif

-#ifdef CONFIG_X86
+#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
+
+#include <asm/irqflags.h>
+
#define local_irq_enable() \
do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
#define local_irq_disable() \
@@ -66,12 +62,16 @@
raw_local_irq_restore(flags); \
} \
} while (0)
-#else
-#define raw_local_irq_disable() local_irq_disable()
-#define raw_local_irq_enable() local_irq_enable()
-#define raw_local_irq_save(flags) local_irq_save(flags)
-#define raw_local_irq_restore(flags) local_irq_restore(flags)
-#endif /* CONFIG_X86 */
+#else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
+/*
+ * The local_irq_*() APIs are equal to the raw_local_irq*()
+ * if !TRACE_IRQFLAGS.
+ */
+# define raw_local_irq_disable() local_irq_disable()
+# define raw_local_irq_enable() local_irq_enable()
+# define raw_local_irq_save(flags) local_irq_save(flags)
+# define raw_local_irq_restore(flags) local_irq_restore(flags)
+#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */

/*
* On lockdep we dont want to enable hardirqs in hardirq
@@ -86,7 +86,7 @@
# define local_irq_enable_in_hardirq() local_irq_enable()
#endif

-#ifdef CONFIG_X86
+#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
#define safe_halt() \
do { \
trace_hardirqs_on(); \
Index: linux/lib/Kconfig.debug
===================================================================
--- linux.orig/lib/Kconfig.debug
+++ linux/lib/Kconfig.debug
@@ -123,6 +123,7 @@ config DEBUG_PREEMPT
bool "Debug preemptible kernel"
depends on DEBUG_KERNEL && PREEMPT
default y
+ depends on TRACE_IRQFLAGS_SUPPORT
help
If you say Y here then the kernel will use a debug variant of the
commonly used smp_processor_id() function and will print warnings
@@ -347,6 +348,7 @@ config DEBUG_LOCKDEP
bool "Lock dependency engine debugging"
depends on LOCKDEP
default y
+ depends on TRACE_IRQFLAGS_SUPPORT
help
If you say Y here, the lock dependency engine will do
additional runtime checks to debug itself, at the price
@@ -355,6 +357,7 @@ config DEBUG_LOCKDEP
config TRACE_IRQFLAGS
bool
default y
+ depends on TRACE_IRQFLAGS_SUPPORT
depends on PROVE_SPIN_LOCKING || PROVE_RW_LOCKING

config DEBUG_SPINLOCK_SLEEP

2006-05-30 10:11:03

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: rwsem build fix for non-x86 architectures

Subject: lock validator: rwsem build fix for non-x86 architectures
From: Ingo Molnar <[email protected]>

rwsem build fix for non-x86 architectures which use their own
asm/rwsem.h and have no __init_rwsem method yet.

Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Arjan van de Ven <[email protected]>
---
include/linux/rwsem.h | 4 ++++
1 file changed, 4 insertions(+)

Index: linux/include/linux/rwsem.h
===================================================================
--- linux.orig/include/linux/rwsem.h
+++ linux/include/linux/rwsem.h
@@ -30,8 +30,12 @@ struct rw_semaphore;
* Lockdep: type splitting can also be done for dynamic locks, if for
* example there are per-CPU dynamically allocated locks:
*/
+#ifdef CONFIG_PROVE_RWSEM_LOCKING
#define init_rwsem_key(sem, key) \
__init_rwsem((sem), #sem, key)
+#else
+# define init_rwsem_key(sem, key) init_rwsem(sem)
+#endif

#ifndef rwsemtrace
#if RWSEM_DEBUG

2006-05-30 10:12:15

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Andrew Morton <[email protected]> wrote:

> - The build is broken on ia64 and probably on everything apart from
> x86, x86_64 and powerpc. Check out the hot-fixes directory, as it
> won't be broken for long.

with the following patches i just sent:

patches/genirq-ia64-build-fix.patch
patches/irqtrace-support-nonx86.patch
patches/lockdep-rwsem-fix.patch

ia64 defconfig builds fine now. I'd expect other non-x86 architectures
to build fine too (with the lock validator disabled).

Ingo

2006-05-30 10:47:29

by Jiri Slaby

[permalink] [raw]
Subject: BUG: possible deadlock detected! (sound) [Was: 2.6.17-rc5-mm1]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew Morton napsal(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/

====================================
[ BUG: possible deadlock detected! ]
- ------------------------------------
idle/1 is trying to acquire lock:
(&ops->reg_mutex){--..}, at: [<c03ca763>] mutex_lock+0x8/0xa

but task is already holding lock:
(&ops->reg_mutex){--..}, at: [<c03ca763>] mutex_lock+0x8/0xa

which could potentially lead to deadlocks!

other info that might help us debug this:
1 locks held by idle/1:
#0: (&ops->reg_mutex){--..}, at: [<c03ca763>] mutex_lock+0x8/0xa

stack backtrace:
[<c01042ac>] show_trace+0x1b/0x1d
[<c01049f2>] dump_stack+0x26/0x28
[<c01422fa>] __lockdep_acquire+0xa58/0xd8e
[<c0142b97>] lockdep_acquire+0x73/0x88
[<c03ca378>] __mutex_lock_slowpath+0xb3/0x496
[<c03ca763>] mutex_lock+0x8/0xa
[<c0333aa0>] snd_seq_device_new+0x96/0x111
[<c0358260>] snd_emux_init_seq_oss+0x35/0x9c
[<c0353f50>] snd_emux_register+0x10d/0x13f
[<c0352c39>] snd_emu10k1_synth_new_device+0xe7/0x14e
[<c0333537>] init_device+0x2c/0x94
[<c0333d04>] snd_seq_device_register_driver+0x8f/0xeb
[<c05911e0>] alsa_emu10k1_synth_init+0x22/0x24
[<c01003cb>] init+0x12b/0x2f5
[<c0101005>] kernel_thread_helper+0x5/0xb

If more info needed, feel free to ask.

regards,
- --
Jiri Slaby http://www.fi.muni.cz/~xslaby
\_.-^-._ [email protected] _.-^-._/
B67499670407CE62ACC8 22A032CC55C339D47A7E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFEfCLOMsxVwznUen4RArelAJ0WtN36nSYJ3VWB515Wik2ji8YXAACfe5jD
jiPvjBzv4udC7XJPxTUtmOM=
=vLLJ
-----END PGP SIGNATURE-----

2006-05-30 11:01:34

by Jiri Slaby

[permalink] [raw]
Subject: BUG: warning at ... (netlink) [Was: 2.6.17-rc5-mm1]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew Morton napsal(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/

BUG: warning at /l/latest/xxx/kernel/softirq.c:86/local_bh_disable()
[<c0103e66>] show_trace+0x1b/0x1d
[<c01045a4>] dump_stack+0x26/0x28
[<c012708f>] local_bh_disable+0x53/0x55
[<c0399fd6>] _write_lock_bh+0x10/0x15
[<c034e314>] netlink_table_grab+0x12/0xe9
[<c034e6f6>] netlink_insert+0x2a/0x156
[<c034fa46>] netlink_kernel_create+0xad/0x143
[<c051f869>] rtnetlink_init+0x70/0xc7
[<c051fb9f>] netlink_proto_init+0x187/0x192
[<c01003cb>] init+0x12b/0x2f1
[<c0101005>] kernel_thread_helper+0x5/0xb

If more info needed, feel free to ask.

regards,
- --
Jiri Slaby http://www.fi.muni.cz/~xslaby
\_.-^-._ [email protected] _.-^-._/
B67499670407CE62ACC8 22A032CC55C339D47A7E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFEfCYeMsxVwznUen4RApvNAJ94piY4mvFzO9x3qSBKL8DstkeBbgCguCnz
Zzw1YFf/s3AtKVo0XgYWsek=
=x+hX
-----END PGP SIGNATURE-----

2006-05-30 11:06:35

by Arjan van de Ven

[permalink] [raw]
Subject: Re: BUG: possible deadlock detected! (sound) [Was: 2.6.17-rc5-mm1]

On Tue, 2006-05-30 at 147 +0159, Jiri Slaby wrote:

(I've turned your backtrace upside down to show it "chronological")

[<c05911e0>] alsa_emu10k1_synth_init+0x22/0x24
[<c0333d04>] snd_seq_device_register_driver+0x8f/0xeb

this one does:

mutex_lock(&ops->reg_mutex);
...
list_for_each(head, &ops->dev_list) {
struct snd_seq_device *dev = list_entry(head, struct snd_seq_device, list);
init_device(dev, ops);
}
mutex_unlock(&ops->reg_mutex);

[<c0333537>] init_device+0x2c/0x94
which calls into the driver
[<c0352c39>] snd_emu10k1_synth_new_device+0xe7/0x14e
[<c0353f50>] snd_emux_register+0x10d/0x13f
[<c0358260>] snd_emux_init_seq_oss+0x35/0x9c
[<c0333aa0>] snd_seq_device_new+0x96/0x111

and this one does
mutex_lock(&ops->reg_mutex);
list_add_tail(&dev->list, &ops->dev_list);
ops->num_devices++;
mutex_unlock(&ops->reg_mutex);


so... on first sight this looks like a real deadlock;
unless the ALSA folks can tell me why "ops" is always different,
and what the lock ordering rules between those is...


2006-05-30 11:11:18

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

Subject: lock validator, fix NULL type->name bug
From: Ingo Molnar <[email protected]>

this should fix the bug reported Mike Galbraith: pass in a non-NULL
mutex name string even if DEBUG_MUTEXES is turned off.

Signed-off-by: Ingo Molnar <[email protected]>
---
include/linux/mutex.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/include/linux/mutex.h
===================================================================
--- linux.orig/include/linux/mutex.h
+++ linux/include/linux/mutex.h
@@ -80,7 +80,7 @@ struct mutex_waiter {
do { \
static struct lockdep_type_key __key; \
\
- __mutex_init((mutex), NULL, &__key); \
+ __mutex_init((mutex), #mutex, &__key); \
} while (0)
# define mutex_destroy(mutex) do { } while (0)
#endif

2006-05-30 11:55:57

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: remove softirq.c WARN_ON


* Jiri Slaby <[email protected]> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Andrew Morton napsal(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>
> BUG: warning at /l/latest/xxx/kernel/softirq.c:86/local_bh_disable()

ok, that WARN_ON is over-eager. Fix is below:

--------------
Subject: lock validator: remove softirq.c WARN_ON
From: Ingo Molnar <[email protected]>

there is nothing wrong with calling local_bh_disable() in irqs-off
section (as long as the local_bh_enable isnt done with irqs-off),
so remove this over-eager WARN_ON().

Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Arjan van de Ven <[email protected]>
---
kernel/softirq.c | 1 -
1 file changed, 1 deletion(-)

Index: linux/kernel/softirq.c
===================================================================
--- linux.orig/kernel/softirq.c
+++ linux/kernel/softirq.c
@@ -83,7 +83,6 @@ static void __local_bh_disable(unsigned

void local_bh_disable(void)
{
- WARN_ON_ONCE(irqs_disabled());
__local_bh_disable((unsigned long)__builtin_return_address(0));
}

2006-05-30 11:56:33

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 13:11 +0200, Ingo Molnar wrote:
> Subject: lock validator, fix NULL type->name bug
> From: Ingo Molnar <[email protected]>
>
> this should fix the bug reported Mike Galbraith: pass in a non-NULL
> mutex name string even if DEBUG_MUTEXES is turned off.

Well, yes and no. It cures the oops, and it almost boots. It passes
all tests, and gets to where we start mounting things...

kjournald starting. Commit interval 5 seconds
EXT3 FS on hdc1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

=====================================================
[ BUG: possible circular locking deadlock detected! ]
-----------------------------------------------------
mount/2545 is trying to acquire lock:
(&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa

...and deadlocks.

I'll try to find out what it hates.

-Mike

2006-05-30 12:01:51

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug


* Mike Galbraith <[email protected]> wrote:

> On Tue, 2006-05-30 at 13:11 +0200, Ingo Molnar wrote:
> > Subject: lock validator, fix NULL type->name bug
> > From: Ingo Molnar <[email protected]>
> >
> > this should fix the bug reported Mike Galbraith: pass in a non-NULL
> > mutex name string even if DEBUG_MUTEXES is turned off.
>
> Well, yes and no. It cures the oops, and it almost boots. It passes
> all tests, and gets to where we start mounting things...
>
> kjournald starting. Commit interval 5 seconds
> EXT3 FS on hdc1, internal journal
> EXT3-fs: mounted filesystem with ordered data mode.
>
> =====================================================
> [ BUG: possible circular locking deadlock detected! ]
> -----------------------------------------------------
> mount/2545 is trying to acquire lock:
> (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
>
> ...and deadlocks.

hm, and no other messages? Are you using serial logging?

Ingo

2006-05-30 12:03:10

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 13:58 +0200, Mike Galbraith wrote:

> =====================================================
> [ BUG: possible circular locking deadlock detected! ]
> -----------------------------------------------------
> mount/2545 is trying to acquire lock:
> (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
>
> ...and deadlocks.
>
> I'll try to find out what it hates.

It hates NTFS.

-Mike

2006-05-30 12:04:02

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 14:02 +0200, Ingo Molnar wrote:
> * Mike Galbraith <[email protected]> wrote:
>
> > On Tue, 2006-05-30 at 13:11 +0200, Ingo Molnar wrote:
> > > Subject: lock validator, fix NULL type->name bug
> > > From: Ingo Molnar <[email protected]>
> > >
> > > this should fix the bug reported Mike Galbraith: pass in a non-NULL
> > > mutex name string even if DEBUG_MUTEXES is turned off.
> >
> > Well, yes and no. It cures the oops, and it almost boots. It passes
> > all tests, and gets to where we start mounting things...
> >
> > kjournald starting. Commit interval 5 seconds
> > EXT3 FS on hdc1, internal journal
> > EXT3-fs: mounted filesystem with ordered data mode.
> >
> > =====================================================
> > [ BUG: possible circular locking deadlock detected! ]
> > -----------------------------------------------------
> > mount/2545 is trying to acquire lock:
> > (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
> >
> > ...and deadlocks.
>
> hm, and no other messages? Are you using serial logging?

nada. Yes, serial console.

-Mike

2006-05-30 12:06:23

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug


* Mike Galbraith <[email protected]> wrote:

> On Tue, 2006-05-30 at 13:58 +0200, Mike Galbraith wrote:
>
> > =====================================================
> > [ BUG: possible circular locking deadlock detected! ]
> > -----------------------------------------------------
> > mount/2545 is trying to acquire lock:
> > (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
> >
> > ...and deadlocks.
> >
> > I'll try to find out what it hates.
>
> It hates NTFS.

i'd still love to figure out what's going on here.

hmm ... do you have the NMI watchdog enabled? Could you try with
nmi_watchdog=0?

Ingo

2006-05-30 12:14:19

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 14:05 +0200, Mike Galbraith wrote:
> On Tue, 2006-05-30 at 13:58 +0200, Mike Galbraith wrote:
>
> > =====================================================
> > [ BUG: possible circular locking deadlock detected! ]
> > -----------------------------------------------------
> > mount/2545 is trying to acquire lock:
> > (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
> >
> > ...and deadlocks.
> >
> > I'll try to find out what it hates.
>
> It hates NTFS.


hummm. NTFS does really really weird things with mutexes...
can you try to enable the mutex debugging config option to see if that
triggers anything?

2006-05-30 12:14:46

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 14:06 +0200, Ingo Molnar wrote:
> * Mike Galbraith <[email protected]> wrote:
>
> > On Tue, 2006-05-30 at 13:58 +0200, Mike Galbraith wrote:
> >
> > > =====================================================
> > > [ BUG: possible circular locking deadlock detected! ]
> > > -----------------------------------------------------
> > > mount/2545 is trying to acquire lock:
> > > (&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa
> > >
> > > ...and deadlocks.
> > >
> > > I'll try to find out what it hates.
> >
> > It hates NTFS.
>
> i'd still love to figure out what's going on here.
>
> hmm ... do you have the NMI watchdog enabled? Could you try with
> nmi_watchdog=0?

I have nmi_watchdog=1. I'll reboot with 0 and see if it'll trigger.

I found a warning.

ip6_tables: (C) 2000-2006 Netfilter Core Team
ip_tables: (C) 2000-2006 Netfilter Core Team
Netfilter messages via NETLINK v0.30.
ip_conntrack version 2.4 (8191 buckets, 65528 max) - 228 bytes per conntrack
BUG: warning at kernel/lockdep.c:2398/check_flags()
<b1003dd2> show_trace+0xd/0xf <b10044c0> dump_stack+0x17/0x19
<b103ae46> check_flags+0x26e/0x273 <b103da2c> lockdep_release+0x1e/0x3e6
<b13d2d10> _spin_unlock_irq+0x16/0x3b <b13d21aa> rwsem_down_read_failed+0x64/0x1d0
<b10a76fa> .text.lock.task_mmu+0x3d/0x63 <b10a8b6b> proc_pid_follow_link+0x2b/0x3a
<b1081a9b> __link_path_walk+0xc1d/0xe98 <b1081d5c> link_path_walk+0x46/0xc6
<b1082057> do_path_lookup+0x10f/0x281 <b108298a> __user_walk_fd+0x32/0x45
<b107b81a> vfs_stat_fd+0x1b/0x41 <b107b8cd> vfs_stat+0x11/0x13
<b107b8e3> sys_stat64+0x14/0x28 <b13d3043> syscall_call+0x7/0xb
irq event stamp: 3101
hardirqs last enabled at (3101): [<b13d3081>] restore_nocheck+0x8/0xb
hardirqs last disabled at (3100): [<b13d27b5>] _spin_lock_irq+0xf/0x48
softirqs last enabled at (3094): [<b1028ae7>] __do_softirq+0xe4/0xf5
softirqs last disabled at (3085): [<b10056f4>] do_softirq+0x5a/0xca
bt878: AUDIO driver version 0.0.0 loaded
bt878: Bt878 AUDIO function found (0).
ACPI: PCI Interrupt 0000:02:02.1[A] -> GSI 18 (level, low) -> IRQ 17
bt878_probe: card id=[0x1c11bd],[ Pinnacle PCTV Sat ] has DVB functions.
bt878(0): Bt878 (rev 17) at 02:02.1, <6>input: i2c IR (Hauppauge) as /class/input/input2
ir-kbd-i2c: i2c IR (Hauppauge) detected at i2c-0/0-001a/ir0 [bt878 #0 [hw]]
irq: 17, latency: 32, memory: 0xea101000
saa7130/34: v4l2 driver version 0.2.14 loaded


2006-05-30 12:19:31

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug


* Mike Galbraith <[email protected]> wrote:

> I have nmi_watchdog=1. I'll reboot with 0 and see if it'll trigger.
>
> I found a warning.

> BUG: warning at kernel/lockdep.c:2398/check_flags()

this one could be related to NMI. We are already disabling NMI on
x86_64, but i thought i had it fixed up for i386 - apparently not.

Ingo

2006-05-30 12:26:14

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator, fix NULL type->name bug

On Tue, 2006-05-30 at 14:19 +0200, Ingo Molnar wrote:
> * Mike Galbraith <[email protected]> wrote:
>
> > I have nmi_watchdog=1. I'll reboot with 0 and see if it'll trigger.
> >
> > I found a warning.
>
> > BUG: warning at kernel/lockdep.c:2398/check_flags()
>
> this one could be related to NMI. We are already disabling NMI on
> x86_64, but i thought i had it fixed up for i386 - apparently not.

Booted with nmi_watchdog=0, no warning and no deadlock. It produced
fruit for NFTS.

=====================================================
[ BUG: possible circular locking deadlock detected! ]
-----------------------------------------------------
mount/2545 is trying to acquire lock:
(&ni->mrec_lock){--..}, at: [<b13d1563>] mutex_lock+0x8/0xa

but task is already holding lock:
(&rl->lock){----}, at: [<b1165306>] ntfs_map_runlist+0x14/0xa7

which lock already depends on the new lock,
which could lead to circular deadlocks!

the existing dependency chain (in reverse order) is:

-> #1 (&rl->lock){----}:
[<b103d9f8>] lockdep_acquire+0x61/0x77
[<b11613ae>] ntfs_readpage+0x92c/0xb53
[<b10540c8>] read_cache_page+0x95/0x15a
[<b1174b0e>] map_mft_record+0xda/0x28a
[<b117187f>] ntfs_read_locked_inode+0x5d/0x1559
[<b1174212>] ntfs_read_inode_mount+0x572/0xb30
[<b1183f8c>] ntfs_fill_super+0xc9e/0x1467
[<b1078ac2>] get_sb_bdev+0xee/0x141
[<b117eff5>] ntfs_get_sb+0x1a/0x20
[<b107880c>] vfs_kern_mount+0x9a/0x166
[<b1078920>] do_kern_mount+0x30/0x43
[<b108ea7f>] do_mount+0x464/0x7ba
[<b108ee44>] sys_mount+0x6f/0xa4
[<b13d3043>] syscall_call+0x7/0xb

-> #0 (&ni->mrec_lock){--..}:
[<b103d9f8>] lockdep_acquire+0x61/0x77
[<b13d14a5>] __mutex_lock_slowpath+0x49/0xff
[<b13d1563>] mutex_lock+0x8/0xa
[<b1174a51>] map_mft_record+0x1d/0x28a
[<b1164b77>] ntfs_map_runlist_nolock+0x378/0x4a6
[<b1165360>] ntfs_map_runlist+0x6e/0xa7
[<b1161375>] ntfs_readpage+0x8f3/0xb53
[<b10540c8>] read_cache_page+0x95/0x15a
[<b11806e5>] load_system_files+0x1e3/0x1e5c
[<b1183fec>] ntfs_fill_super+0xcfe/0x1467
[<b1078ac2>] get_sb_bdev+0xee/0x141
[<b117eff5>] ntfs_get_sb+0x1a/0x20
[<b107880c>] vfs_kern_mount+0x9a/0x166
[<b1078920>] do_kern_mount+0x30/0x43
[<b108ea7f>] do_mount+0x464/0x7ba
[<b108ee44>] sys_mount+0x6f/0xa4
[<b13d3043>] syscall_call+0x7/0xb

other info that might help us debug this:

2 locks held by mount/2545:
#0: (&s->s_umount){----}, at: [<b10782db>] sget+0x1d9/0x3bd
#1: (&rl->lock){----}, at: [<b1165306>] ntfs_map_runlist+0x14/0xa7

stack backtrace:
<b1003dd2> show_trace+0xd/0xf <b10044c0> dump_stack+0x17/0x19
<b103c9ca> print_circular_bug_tail+0x5d/0x66 <b103d145> __lockdep_acquire+0x772/0xc32
<b103d9f8> lockdep_acquire+0x61/0x77 <b13d14a5> __mutex_lock_slowpath+0x49/0xff
<b13d1563> mutex_lock+0x8/0xa <b1174a51> map_mft_record+0x1d/0x28a
<b1164b77> ntfs_map_runlist_nolock+0x378/0x4a6 <b1165360> ntfs_map_runlist+0x6e/0xa7
<b1161375> ntfs_readpage+0x8f3/0xb53 <b10540c8> read_cache_page+0x95/0x15a
<b11806e5> load_system_files+0x1e3/0x1e5c <b1183fec> ntfs_fill_super+0xcfe/0x1467
<b1078ac2> get_sb_bdev+0xee/0x141 <b117eff5> ntfs_get_sb+0x1a/0x20
<b107880c> vfs_kern_mount+0x9a/0x166 <b1078920> do_kern_mount+0x30/0x43
<b108ea7f> do_mount+0x464/0x7ba <b108ee44> sys_mount+0x6f/0xa4
<b13d3043> syscall_call+0x7/0xb


2006-05-30 12:29:31

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386


* Mike Galbraith <[email protected]> wrote:

> > > BUG: warning at kernel/lockdep.c:2398/check_flags()
> >
> > this one could be related to NMI. We are already disabling NMI on
> > x86_64, but i thought i had it fixed up for i386 - apparently not.
>
> Booted with nmi_watchdog=0, no warning and no deadlock.

ok, great. The patch below turns off NMI on i386 automatically.

-------------------
Subject: lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386
From: Ingo Molnar <[email protected]>

The NMI watchdog uses spinlocks (notifier chains, etc.),
so it's not lockdep-safe at the moment.

Signed-off-by: Ingo Molnar <[email protected]>
---
arch/i386/kernel/nmi.c | 11 +++++++++++
1 file changed, 11 insertions(+)

Index: linux/arch/i386/kernel/nmi.c
===================================================================
--- linux.orig/arch/i386/kernel/nmi.c
+++ linux/arch/i386/kernel/nmi.c
@@ -741,6 +741,17 @@ static void stop_intel_arch_watchdog(voi

void setup_apic_nmi_watchdog (void *unused)
{
+#ifdef CONFIG_LOCKDEP
+ /*
+ * The NMI watchdog uses spinlocks (notifier chains, etc.),
+ * so it's not lockdep-safe:
+ */
+ nmi_watchdog = NMI_NONE;
+ printk("lockdep: disabled NMI watchdog.\n");
+
+ return;
+#endif
+
/* only support LOCAL and IO APICs for now */
if ((nmi_watchdog != NMI_LOCAL_APIC) &&
(nmi_watchdog != NMI_IO_APIC))

2006-05-30 12:34:00

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: fix NMI-disabling on x86_64


and NMI disabling wasnt perfect on x86_64 either. (we did it too late,
which allowed a few NMI ticks to still occur.)

---------------
Subject: lock validator: fix NMI-disabling on x86_64
From: Ingo Molnar <[email protected]>

this does the NMI-watchdog disabling at the right place on x86_64.

should probably be folded into:

lock-validator-disable-nmi-watchdog-if-config_lockdep.patch

Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86_64/kernel/nmi.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)

Index: linux/arch/x86_64/kernel/nmi.c
===================================================================
--- linux.orig/arch/x86_64/kernel/nmi.c
+++ linux/arch/x86_64/kernel/nmi.c
@@ -215,18 +215,6 @@ int __init check_nmi_watchdog (void)
int *counts;
int cpu;

-#ifdef CONFIG_LOCKDEP
- /*
- * The NMI watchdog uses spinlocks (notifier chains, etc.),
- * so it's not lockdep-safe:
- */
- nmi_watchdog = 0;
- for_each_online_cpu(cpu)
- per_cpu(nmi_watchdog_ctlblk.enabled, cpu) = 0;
-
- printk("lockdep: disabled NMI watchdog.\n");
- return 0;
-#endif
if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT))
return 0;

@@ -680,6 +668,17 @@ static void stop_intel_arch_watchdog(voi

void setup_apic_nmi_watchdog(void *unused)
{
+#ifdef CONFIG_LOCKDEP
+ /*
+ * The NMI watchdog uses spinlocks (notifier chains, etc.),
+ * so it's not lockdep-safe:
+ */
+ nmi_watchdog = NMI_NONE;
+ printk("lockdep: disabled NMI watchdog.\n");
+
+ return;
+#endif
+
/* only support LOCAL and IO APICs for now */
if ((nmi_watchdog != NMI_LOCAL_APIC) &&
(nmi_watchdog != NMI_IO_APIC))

2006-05-30 12:42:08

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386

On Tue, 2006-05-30 at 14:29 +0200, Ingo Molnar wrote:
> * Mike Galbraith <[email protected]> wrote:
>
> > > > BUG: warning at kernel/lockdep.c:2398/check_flags()
> > >
> > > this one could be related to NMI. We are already disabling NMI on
> > > x86_64, but i thought i had it fixed up for i386 - apparently not.
> >
> > Booted with nmi_watchdog=0, no warning and no deadlock.
>
> ok, great. The patch below turns off NMI on i386 automatically.

All is well. Back to nmi_watchdog=1, no warning, no lock.

-Mike

2006-05-30 12:44:21

by Takashi Iwai

[permalink] [raw]
Subject: Re: BUG: possible deadlock detected! (sound) [Was: 2.6.17-rc5-mm1]

At Tue, 30 May 2006 13:06:28 +0200,
Arjan van de Ven wrote:
>
> On Tue, 2006-05-30 at 147 +0159, Jiri Slaby wrote:
>
> (I've turned your backtrace upside down to show it "chronological")
>
> [<c05911e0>] alsa_emu10k1_synth_init+0x22/0x24
> [<c0333d04>] snd_seq_device_register_driver+0x8f/0xeb
>
> this one does:
>
> mutex_lock(&ops->reg_mutex);
> ...
> list_for_each(head, &ops->dev_list) {
> struct snd_seq_device *dev = list_entry(head, struct snd_seq_device, list);
> init_device(dev, ops);
> }
> mutex_unlock(&ops->reg_mutex);
>
> [<c0333537>] init_device+0x2c/0x94
> which calls into the driver
> [<c0352c39>] snd_emu10k1_synth_new_device+0xe7/0x14e
> [<c0353f50>] snd_emux_register+0x10d/0x13f
> [<c0358260>] snd_emux_init_seq_oss+0x35/0x9c
> [<c0333aa0>] snd_seq_device_new+0x96/0x111
>
> and this one does
> mutex_lock(&ops->reg_mutex);
> list_add_tail(&dev->list, &ops->dev_list);
> ops->num_devices++;
> mutex_unlock(&ops->reg_mutex);
>
>
> so... on first sight this looks like a real deadlock;
> unless the ALSA folks can tell me why "ops" is always different,
> and what the lock ordering rules between those is...

This ops is a unique object assigned to a different "id" string.

The first snd_seq_device_register_driver() called from emu10k1_synth.c
is the registration for the id "snd-synth-emu10k1".
Then in init_device(), the corresponding devices are initialized, and
one callback registers again another device for OSS sequencer with a
different id "snd-seq-oss" via snd_seq_device_new() inside the lock.
Now it hits the lock-detector but the lock should belong to a
different ops object in practice.

This nested lock may happen only in two drivers, emu10k1-synth and
opl3, and only together with OSS emulation. Since the OSS emulation
layer don't do active registration from itself, no deadlock should
happen (in theory -- I may oversee something :)


Takashi

2006-05-30 12:46:35

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>

============================
[ BUG: illegal lock usage! ]
----------------------------
illegal {in-hardirq-W} -> {hardirq-on-W} usage.
udevd/415 [HC0[0]:SC1[1]:HE1:SE0] takes:
(&base->lock#2){++..}, at: [<c012900a>] run_timer_softirq+0x3d/0x164
{in-hardirq-W} state was registered at:
[<c0139a56>] lockdep_acquire+0x69/0x82
[<c02f23ac>] _spin_lock_irqsave+0x2a/0x3a
[<c0129a24>] lock_timer_base+0x29/0x55
[<c0129e48>] del_timer+0x19/0x4c
[<c025925d>] ide_intr+0x13b/0x1a9
[<c014c524>] handle_IRQ_event+0x20/0x50
[<c014d48c>] handle_edge_irq+0x10a/0x14f
[<c010579c>] do_IRQ+0xa1/0xc9
irq event stamp: 351479
hardirqs last enabled at (351478): [<c02f274c>] _spin_unlock_irq+0x22/0x53
hardirqs last disabled at (351479): [<c02f2324>] _spin_lock_irq+0xc/0x35
softirqs last enabled at (351434): [<c0125873>] __do_softirq+0xea/0xf0
softirqs last disabled at (351475): [<c0105689>] do_softirq+0x59/0xcb

other info that might help us debug this:
3 locks held by udevd/415:
#0: (&inode->i_mutex/1){--..}, at: [<c018150e>] lookup_create+0x1e/0x77
#1: (inode_lock){--..}, at: [<c018bf13>] new_inode+0x27/0x8e
#2: (&base->lock#2){++..}, at: [<c012900a>] run_timer_softirq+0x3d/0x164

stack backtrace:
[<c0103e52>] show_trace_log_lvl+0x4b/0xf4
[<c01044b3>] show_trace+0xd/0x10
[<c010457b>] dump_stack+0x19/0x1b
[<c0137d63>] print_usage_bug+0x1a1/0x1ab
[<c0138458>] mark_lock+0x2d7/0x514
[<c01386dc>] mark_held_locks+0x47/0x65
[<c0139745>] trace_hardirqs_on+0x12b/0x16f
[<c02f2b91>] restore_nocheck+0x8/0xb

Here is dmesg
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-dmesg
Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 12:59:41

by Arjan van de Ven

[permalink] [raw]
Subject: Re: BUG: possible deadlock detected! (sound) [Was: 2.6.17-rc5-mm1]

On Tue, 2006-05-30 at 14:44 +0200, Takashi Iwai wrote:
> This ops is a unique object assigned to a different "id" string.
>
> The first snd_seq_device_register_driver() called from emu10k1_synth.c
> is the registration for the id "snd-synth-emu10k1".
> Then in init_device(), the corresponding devices are initialized, and
> one callback registers again another device for OSS sequencer with a
> different id "snd-seq-oss" via snd_seq_device_new() inside the lock.
> Now it hits the lock-detector but the lock should belong to a
> different ops object in practice.
>
> This nested lock may happen only in two drivers, emu10k1-synth and
> opl3, and only together with OSS emulation. Since the OSS emulation
> layer don't do active registration from itself, no deadlock should
> happen (in theory -- I may oversee something :)

ok fair enough

Jiri, can you test the patch below? (I don't have this hardware)

The ops structure has complex locking rules, where not all ops are
equal, some are subordinate on others for some complex sound cards. This
requires for lockdep checking that each individual reg_mutex is
considered in separation for its locking rules.

Signed-off-by: Arjan van de Ven <[email protected]>

---
sound/core/seq/seq_device.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Index: linux-2.6.17-rc4-mm3-lockdep/sound/core/seq/seq_device.c
===================================================================
--- linux-2.6.17-rc4-mm3-lockdep.orig/sound/core/seq/seq_device.c
+++ linux-2.6.17-rc4-mm3-lockdep/sound/core/seq/seq_device.c
@@ -46,6 +46,7 @@
#include <linux/kmod.h>
#include <linux/slab.h>
#include <linux/mutex.h>
+#include <linux/lockdep.h>

MODULE_AUTHOR("Takashi Iwai <[email protected]>");
MODULE_DESCRIPTION("ALSA sequencer device management");
@@ -73,6 +74,8 @@ struct ops_list {
struct mutex reg_mutex;

struct list_head list; /* next driver */
+
+ struct lockdep_type_key reg_mutex_key;
};


@@ -379,7 +382,7 @@ static struct ops_list * create_driver(c

/* set up driver entry */
strlcpy(ops->id, id, sizeof(ops->id));
- mutex_init(&ops->reg_mutex);
+ mutex_init_key(&ops->reg_mutex, id, &ops->reg_mutex_key);
ops->driver = DRIVER_EMPTY;
INIT_LIST_HEAD(&ops->dev_list);
/* lock this instance */

2006-05-30 13:09:09

by Jiri Slaby

[permalink] [raw]
Subject: Re: BUG: possible deadlock detected! (sound) [Was: 2.6.17-rc5-mm1]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Arjan van de Ven napsal(a):
> On Tue, 2006-05-30 at 14:44 +0200, Takashi Iwai wrote:
>> This ops is a unique object assigned to a different "id" string.
>>
>> The first snd_seq_device_register_driver() called from emu10k1_synth.c
>> is the registration for the id "snd-synth-emu10k1".
>> Then in init_device(), the corresponding devices are initialized, and
>> one callback registers again another device for OSS sequencer with a
>> different id "snd-seq-oss" via snd_seq_device_new() inside the lock.
>> Now it hits the lock-detector but the lock should belong to a
>> different ops object in practice.
>>
>> This nested lock may happen only in two drivers, emu10k1-synth and
>> opl3, and only together with OSS emulation. Since the OSS emulation
>> layer don't do active registration from itself, no deadlock should
>> happen (in theory -- I may oversee something :)
>
> ok fair enough
>
> Jiri, can you test the patch below? (I don't have this hardware)
Sure, but the day after tomorrow, I am going away from that machine now.
>
> The ops structure has complex locking rules, where not all ops are
> equal, some are subordinate on others for some complex sound cards. This
> requires for lockdep checking that each individual reg_mutex is
> considered in separation for its locking rules.
>
> Signed-off-by: Arjan van de Ven <[email protected]>
>
> ---
> sound/core/seq/seq_device.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> Index: linux-2.6.17-rc4-mm3-lockdep/sound/core/seq/seq_device.c
> ===================================================================
> --- linux-2.6.17-rc4-mm3-lockdep.orig/sound/core/seq/seq_device.c
> +++ linux-2.6.17-rc4-mm3-lockdep/sound/core/seq/seq_device.c
> @@ -46,6 +46,7 @@
> #include <linux/kmod.h>
> #include <linux/slab.h>
> #include <linux/mutex.h>
> +#include <linux/lockdep.h>
>
> MODULE_AUTHOR("Takashi Iwai <[email protected]>");
> MODULE_DESCRIPTION("ALSA sequencer device management");
> @@ -73,6 +74,8 @@ struct ops_list {
> struct mutex reg_mutex;
>
> struct list_head list; /* next driver */
> +
> + struct lockdep_type_key reg_mutex_key;
> };
>
>
> @@ -379,7 +382,7 @@ static struct ops_list * create_driver(c
>
> /* set up driver entry */
> strlcpy(ops->id, id, sizeof(ops->id));
> - mutex_init(&ops->reg_mutex);
> + mutex_init_key(&ops->reg_mutex, id, &ops->reg_mutex_key);
> ops->driver = DRIVER_EMPTY;
> INIT_LIST_HEAD(&ops->dev_list);
> /* lock this instance */
>
>


- --
Jiri Slaby http://www.fi.muni.cz/~xslaby
\_.-^-._ [email protected] _.-^-._/
B67499670407CE62ACC8 22A032CC55C339D47A7E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFEfEQAMsxVwznUen4RAkp4AJwOMUsBK4kvE54X/oxcdcIWad8oGACghO2a
mZLtPAHamNSDsiNa1gOfgoE=
=CaIp
-----END PGP SIGNATURE-----

2006-05-30 15:59:13

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>
>

It looks like a network stack problem.

May 30 17:50:34 ltg01-fedora init: Switching to runlevel: 6
May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Got SIGTERM, quitting.
May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Leaving mDNS
multicast group on interface eth0.IPv4 with address 192.168.0.
14.
May 30 17:50:35 ltg01-fedora kernel:
May 30 17:50:35 ltg01-fedora kernel: ======================================
May 30 17:50:35 ltg01-fedora kernel: [ BUG: bad unlock ordering detected! ]
May 30 17:50:35 ltg01-fedora kernel: --------------------------------------
May 30 17:50:35 ltg01-fedora kernel: avahi-daemon/1878 is trying to
release lock (&in_dev->mc_list_lock) at:
May 30 17:50:35 ltg01-fedora kernel: [<c02e693b>] ip_mc_del_src+0x5e/0xd5
May 30 17:50:35 ltg01-fedora kernel: but the next lock to release is:
May 30 17:50:35 ltg01-fedora kernel: (&im->lock){-...}, at:
[<c02e6934>] ip_mc_del_src+0x57/0xd5
May 30 17:50:35 ltg01-fedora kernel:
May 30 17:50:35 ltg01-fedora kernel: other info that might help us debug this:
May 30 17:50:35 ltg01-fedora kernel: 2 locks held by avahi-daemon/1878:
May 30 17:50:35 ltg01-fedora kernel: #0: (rtnl_mutex){--..}, at:
[<c02f0b0f>] mutex_lock+0x1c/0x1f
May 30 17:50:35 ltg01-fedora kernel: #1:
(&in_dev->mc_list_lock){-.-?}, at: [<c02e6905>]
ip_mc_del_src+0x28/0xd5
May 30 17:50:35 ltg01-fedora kernel:
May 30 17:50:35 ltg01-fedora kernel: stack backtrace:
May 30 17:50:35 ltg01-fedora kernel: [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
May 30 17:50:35 ltg01-fedora kernel: [<c01044b3>] show_trace+0xd/0x10
May 30 17:50:35 ltg01-fedora kernel: [<c010457b>] dump_stack+0x19/0x1b
May 30 17:50:35 ltg01-fedora kernel: [<c0139bfa>] lockdep_release+0x18b/0x350
May 30 17:50:35 ltg01-fedora kernel: [<c02f2640>] _read_unlock+0x16/0x4d
May 30 17:50:35 ltg01-fedora kernel: [<c02e693b>] ip_mc_del_src+0x5e/0xd5
May 30 17:50:35 ltg01-fedora kernel: [<c02e69de>] ip_mc_leave_src+0x2c/0x6c
May 30 17:50:35 ltg01-fedora kernel: [<c02e6c5b>] ip_mc_leave_group+0x3d/0x97
May 30 17:50:35 ltg01-fedora kernel: [<c02c8a68>] ip_setsockopt+0x4d0/0x9a6
May 30 17:50:35 ltg01-fedora kernel: [<c02def6d>] udp_setsockopt+0x1f/0x9c
May 30 17:50:35 ltg01-fedora kernel: [<c02a7006>]
sock_common_setsockopt+0x13/0x18
May 30 17:50:35 ltg01-fedora kernel: [<c02a5956>] sys_setsockopt+0x73/0xa4
May 30 17:50:35 ltg01-fedora kernel: [<c02a6c53>] sys_socketcall+0x148/0x186
May 30 17:50:35 ltg01-fedora kernel: [<c02f2ad5>] sysenter_past_esp+0x56/0x8d

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 16:01:01

by Alexey Kuznetsov

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: remove softirq.c WARN_ON

Hello!

> ok, that WARN_ON is over-eager. Fix is below:

Nevertheless, I cannot figure out what's happening here.

This local_bh_disable() is called right after schedule().
No way irqs can be disabled there. What is wrong?


static void netlink_table_grab(void)
{
write_lock_bh(&nl_table_lock);

if (atomic_read(&nl_table_users)) {
DECLARE_WAITQUEUE(wait, current);

add_wait_queue_exclusive(&nl_table_wait, &wait);
for(;;) {
set_current_state(TASK_UNINTERRUPTIBLE);
if (atomic_read(&nl_table_users) == 0)
break;
write_unlock_bh(&nl_table_lock);
schedule();
write_lock_bh(&nl_table_lock);
}

__set_current_state(TASK_RUNNING);
remove_wait_queue(&nl_table_wait, &wait);
}
}


Alexey

2006-05-30 16:05:49

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: remove softirq.c WARN_ON

On Tue, 2006-05-30 at 20:00 +0400, Alexey Kuznetsov wrote:
> Hello!
>
> > ok, that WARN_ON is over-eager. Fix is below:
>
> Nevertheless, I cannot figure out what's happening here.
>
> This local_bh_disable() is called right after schedule().
> No way irqs can be disabled there. What is wrong?
>
>
> static void netlink_table_grab(void)
> {
> write_lock_bh(&nl_table_lock);

well it could be this one as well...

>
> if (atomic_read(&nl_table_users)) {


2006-05-30 16:09:11

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 17:59 +0200, Michal Piotrowski wrote:
> Hi,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
> >
>
> It looks like a network stack problem.
>
> May 30 17:50:34 ltg01-fedora init: Switching to runlevel: 6
> May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Got SIGTERM, quitting.
> May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Leaving mDNS
> multicast group on interface eth0.IPv4 with address 192.168.0.
> 14.
> May 30 17:50:35 ltg01-fedora kernel:
> May 30 17:50:35 ltg01-fedora kernel: ======================================
> May 30 17:50:35 ltg01-fedora kernel: [ BUG: bad unlock ordering detected! ]
> May 30 17:50:35 ltg01-fedora kernel: --------------------------------------
> May 30 17:50:35 ltg01-fedora kernel: avahi-daemon/1878 is trying to

does this fix it for you?



Mark out of order unlocking in igmp.c as such

Signed-off-by: Arjan van de Ven <[email protected]>
---
net/ipv4/igmp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.17-rc5-mm1-lockdep/net/ipv4/igmp.c
===================================================================
--- linux-2.6.17-rc5-mm1-lockdep.orig/net/ipv4/igmp.c
+++ linux-2.6.17-rc5-mm1-lockdep/net/ipv4/igmp.c
@@ -1472,7 +1472,7 @@ static int ip_mc_del_src(struct in_devic
return -ESRCH;
}
spin_lock_bh(&pmc->lock);
- read_unlock(&in_dev->mc_list_lock);
+ read_unlock_non_nested(&in_dev->mc_list_lock);
#ifdef CONFIG_IP_MULTICAST
sf_markstate(pmc);
#endif

2006-05-30 16:15:53

by Alexey Kuznetsov

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: remove softirq.c WARN_ON

Hello!

> > static void netlink_table_grab(void)
> > {
> > write_lock_bh(&nl_table_lock);
>
> well it could be this one as well...

Indeed.

But it still looks as something very strange.
There are some GFP_KERNEL allocations on the way to this function.

2006-05-30 16:16:32

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi Ingo,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>

Here is small lockdep bug

May 30 18:05:08 ltg01-fedora ainit:
May 30 18:05:09 ltg01-fedora kernel: BUG: warning at
/usr/src/linux-mm/kernel/lockdep.c:1853/trace_hardirqs_on()
May 30 18:05:09 ltg01-fedora kernel: [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
May 30 18:05:09 ltg01-fedora kernel: [<c01044b3>] show_trace+0xd/0x10
May 30 18:05:09 ltg01-fedora kernel: [<c010457b>] dump_stack+0x19/0x1b
May 30 18:05:09 ltg01-fedora kernel: [<c0139701>] trace_hardirqs_on+0xe7/0x16f
May 30 18:05:09 ltg01-fedora kernel: [<c02f2b91>] restore_nocheck+0x8/0xb
May 30 18:05:09 ltg01-fedora shutdown[2135]: shutting down for system reboot
May 30 18:05:09 ltg01-fedora init: Switching to runlevel: 6

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 18:39:50

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>

I get this on 2.6.17-rc5-mm1 + hot fixes + Arjan's net/ipv4/igmp.c patch.

May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel:
=====================================================
May 30 20:25:56 ltg01-fedora kernel: [ BUG: possible circular locking
deadlock detected! ]
May 30 20:25:56 ltg01-fedora kernel:
-----------------------------------------------------
May 30 20:25:56 ltg01-fedora kernel: umount/2322 is trying to acquire lock:
May 30 20:25:56 ltg01-fedora kernel: (sb_security_lock){--..}, at:
[<c01d6400>] selinux_sb_free_security+0x17/0x4e
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: but task is already holding lock:
May 30 20:25:56 ltg01-fedora kernel: (sb_lock){--..}, at:
[<c0178a89>] put_super+0x10/0x24
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: which lock already depends on the new lock,
May 30 20:25:56 ltg01-fedora kernel: which could lead to circular deadlocks!
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: the existing dependency chain (in
reverse order) is:
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: -> #1 (sb_lock){--..}:
May 30 20:25:56 ltg01-fedora kernel: [<c0139a56>]
lockdep_acquire+0x69/0x82
May 30 20:25:56 ltg01-fedora kernel: [<c02f2171>] _spin_lock+0x21/0x2f
May 30 20:25:56 ltg01-fedora kernel: [<c01d72de>]
selinux_complete_init+0x45/0xda
May 30 20:25:56 ltg01-fedora kernel: [<c01e0a4e>]
security_load_policy+0xb3/0x22d
May 30 20:25:56 ltg01-fedora kernel: [<c01da975>]
sel_write_load+0xa3/0x2a1
May 30 20:25:56 ltg01-fedora kernel: [<c0172e2a>] vfs_write+0xcd/0x179
May 30 20:25:56 ltg01-fedora kernel: [<c01734d3>] sys_write+0x3b/0x71
May 30 20:25:56 ltg01-fedora kernel: [<c02f2aa5>]
sysenter_past_esp+0x56/0x8d
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: other info that might help us debug this:
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: 1 locks held by umount/2322:
May 30 20:25:56 ltg01-fedora kernel: #0: (sb_lock){--..}, at:
[<c0178a89>] put_super+0x10/0x24
May 30 20:25:56 ltg01-fedora kernel:
May 30 20:25:56 ltg01-fedora kernel: stack backtrace:
May 30 20:25:56 ltg01-fedora kernel: [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
May 30 20:25:56 ltg01-fedora kernel: [<c01044b3>] show_trace+0xd/0x10
May 30 20:25:56 ltg01-fedora kernel: [<c010457b>] dump_stack+0x19/0x1b
May 30 20:25:56 ltg01-fedora kernel: [<c0138bd6>]
print_circular_bug_tail+0x59/0x64
May 30 20:25:56 ltg01-fedora kernel: [<c0139429>] __lockdep_acquire+0x848/0xa39
May 30 20:25:56 ltg01-fedora kernel: [<c0139a56>] lockdep_acquire+0x69/0x82
May 30 20:25:56 ltg01-fedora kernel: [<c02f2171>] _spin_lock+0x21/0x2f
May 30 20:25:56 ltg01-fedora kernel: [<c01d6400>]
selinux_sb_free_security+0x17/0x4e
May 30 20:25:56 ltg01-fedora kernel: [<c0178a68>] __put_super+0x24/0x35
May 30 20:25:56 ltg01-fedora kernel: [<c0178a90>] put_super+0x17/0x24
May 30 20:25:56 ltg01-fedora kernel: [<c01793a3>] deactivate_super+0xa3/0xad
May 30 20:25:56 ltg01-fedora kernel: [<c018e010>] mntput_no_expire+0x52/0x85
May 30 20:25:56 ltg01-fedora kernel: [<c017fcb0>]
path_release_on_umount+0x15/0x18
May 30 20:25:56 ltg01-fedora kernel: [<c018f535>] sys_umount+0x292/0x2aa
May 30 20:25:56 ltg01-fedora kernel: [<c018f55a>] sys_oldumount+0xd/0xf
May 30 20:25:56 ltg01-fedora kernel: [<c02f2aa5>] sysenter_past_esp+0x56/0x8d

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config2

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 18:51:04

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi Arjan,

On 30/05/06, Arjan van de Ven <[email protected]> wrote:
> On Tue, 2006-05-30 at 17:59 +0200, Michal Piotrowski wrote:
> > Hi,
> >
> > On 30/05/06, Andrew Morton <[email protected]> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> > >
> > >
> >
> > It looks like a network stack problem.
> >
> > May 30 17:50:34 ltg01-fedora init: Switching to runlevel: 6
> > May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Got SIGTERM, quitting.
> > May 30 17:50:35 ltg01-fedora avahi-daemon[1878]: Leaving mDNS
> > multicast group on interface eth0.IPv4 with address 192.168.0.
> > 14.
> > May 30 17:50:35 ltg01-fedora kernel:
> > May 30 17:50:35 ltg01-fedora kernel: ======================================
> > May 30 17:50:35 ltg01-fedora kernel: [ BUG: bad unlock ordering detected! ]
> > May 30 17:50:35 ltg01-fedora kernel: --------------------------------------
> > May 30 17:50:35 ltg01-fedora kernel: avahi-daemon/1878 is trying to
>
> does this fix it for you?

Yes, thanks.

> Mark out of order unlocking in igmp.c as such
>
> Signed-off-by: Arjan van de Ven <[email protected]>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 18:55:53

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>

SCSI or libata problem.
============================
[ BUG: illegal lock usage! ]
----------------------------
illegal {in-hardirq-W} -> {hardirq-on-W} usage.
init/1 [HC0[0]:SC0[0]:HE1:SE1] takes:
(&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
{in-hardirq-W} state was registered at:
[<c0139a56>] lockdep_acquire+0x69/0x82
[<c02f237c>] _spin_lock_irqsave+0x2a/0x3a
[<c0129a24>] lock_timer_base+0x29/0x55
[<c0129e48>] del_timer+0x19/0x4c
[<c02651e2>] scsi_delete_timer+0xe/0x1f
[<c0262964>] scsi_done+0xb/0x19
[<c0273ed3>] ata_scsi_qc_complete+0x73/0x7f
[<c027024a>] __ata_qc_complete+0x26c/0x274
[<c02704f0>] ata_qc_complete+0xd5/0xdc
[<c0270c42>] ata_hsm_qc_complete+0x201/0x210
[<c02713e7>] ata_hsm_move+0x796/0x7ac
[<c027314e>] ata_interrupt+0x173/0x1b4
[<c014c4f4>] handle_IRQ_event+0x20/0x50
[<c014d76e>] handle_level_irq+0xa1/0xeb
[<c010579c>] do_IRQ+0xa1/0xc9
irq event stamp: 576924
hardirqs last enabled at (576923): [<c02f26c7>]
_spin_unlock_irqrestore+0x36/0x69
hardirqs last disabled at (576924): [<c02f2361>] _spin_lock_irqsave+0xf/0x3a
softirqs last enabled at (576878): [<c0125873>] __do_softirq+0xea/0xf0
softirqs last disabled at (576869): [<c0105689>] do_softirq+0x59/0xcb

other info that might help us debug this:
1 locks held by init/1:
#0: (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55

stack backtrace:
[<c0103e52>] show_trace_log_lvl+0x4b/0xf4
[<c01044b3>] show_trace+0xd/0x10
[<c010457b>] dump_stack+0x19/0x1b
[<c0137d63>] print_usage_bug+0x1a1/0x1ab
[<c0138458>] mark_lock+0x2d7/0x514
[<c01386dc>] mark_held_locks+0x47/0x65
[<c0139745>] trace_hardirqs_on+0x12b/0x16f
[<c02f2b61>] restore_nocheck+0x8/0xb

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config2

Here is dmesg
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-dmesg2

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 19:05:30

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 20:39 +0200, Michal Piotrowski wrote:
> Hi,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> I get this on 2.6.17-rc5-mm1 + hot fixes + Arjan's net/ipv4/igmp.c patch.
>
> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel:
> =====================================================
> May 30 20:25:56 ltg01-fedora kernel: [ BUG: possible circular locking
> deadlock detected! ]
> May 30 20:25:56 ltg01-fedora kernel:
> -----------------------------------------------------
> May 30 20:25:56 ltg01-fedora kernel: umount/2322 is trying to acquire lock:
> May 30 20:25:56 ltg01-fedora kernel: (sb_security_lock){--..}, at:
> [<c01d6400>] selinux_sb_free_security+0x17/0x4e


ok so selinux_complete_init() does
spin_lock(&sb_security_lock);
next_sb:
if (!list_empty(&superblock_security_head)) {
struct superblock_security_struct *sbsec =
list_entry(superblock_security_head.next,
struct superblock_security_struct,
list);
struct super_block *sb = sbsec->sb;
spin_lock(&sb_lock);
sb->s_count++;
spin_unlock(&sb_lock);
spin_unlock(&sb_security_lock);

nesting sb_lock inside sb_security_lock

while

put_super() takes the sb_lock, then calls __put_super() which calls
selinux_sb_free_security which calls superblock_free_security() which takes sb_security_lock
which means the nesting is opposite.


textbook AB-BA deadlock

2006-05-30 19:13:49

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 14:46 +0200, Michal Piotrowski wrote:
> Hi,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {in-hardirq-W} -> {hardirq-on-W} usage.
> udevd/415 [HC0[0]:SC1[1]:HE1:SE0] takes:
> (&base->lock#2){++..}, at: [<c012900a>] run_timer_softirq+0x3d/0x164

hhmmm curious.. you don't happen to have nmi watchdog enabled??

2006-05-30 19:14:59

by Andi Kleen

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386

Ingo Molnar <[email protected]> writes:
>
> The NMI watchdog uses spinlocks (notifier chains, etc.),
> so it's not lockdep-safe at the moment.

That's totally unsafe even without lockdep and should be fixed
instead. I guess someone bungled the notifier chain conversion.
The NMI notifiers need to be lockless.

-Andi

2006-05-30 19:28:22

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Michal Piotrowski <[email protected]> wrote:

> Hi Ingo,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> Here is small lockdep bug
>
> May 30 18:05:08 ltg01-fedora ainit:
> May 30 18:05:09 ltg01-fedora kernel: BUG: warning at
> /usr/src/linux-mm/kernel/lockdep.c:1853/trace_hardirqs_on()

hm. Do you have the NMI watchdog enabled? [does /proc/interrupts show
any increasing NMI counts?]

Ingo

2006-05-30 19:42:08

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 30 May 2006 20:55:52 +0200
"Michal Piotrowski" <[email protected]> wrote:

> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> SCSI or libata problem.
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {in-hardirq-W} -> {hardirq-on-W} usage.
> init/1 [HC0[0]:SC0[0]:HE1:SE1] takes:
> (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
> {in-hardirq-W} state was registered at:
> [<c0139a56>] lockdep_acquire+0x69/0x82
> [<c02f237c>] _spin_lock_irqsave+0x2a/0x3a
> [<c0129a24>] lock_timer_base+0x29/0x55
> [<c0129e48>] del_timer+0x19/0x4c
> [<c02651e2>] scsi_delete_timer+0xe/0x1f
> [<c0262964>] scsi_done+0xb/0x19
> [<c0273ed3>] ata_scsi_qc_complete+0x73/0x7f
> [<c027024a>] __ata_qc_complete+0x26c/0x274
> [<c02704f0>] ata_qc_complete+0xd5/0xdc
> [<c0270c42>] ata_hsm_qc_complete+0x201/0x210
> [<c02713e7>] ata_hsm_move+0x796/0x7ac
> [<c027314e>] ata_interrupt+0x173/0x1b4
> [<c014c4f4>] handle_IRQ_event+0x20/0x50
> [<c014d76e>] handle_level_irq+0xa1/0xeb
> [<c010579c>] do_IRQ+0xa1/0xc9

That's the second report of del_timer-in-hardirq being a bug.

Unfortunately I'm unable to decrypt the local validator's output. Perhaps
when Arjan and Ingo do the analysis of these reports they could provide a
little guidance into what the traces are actually telling us, so that
others can learn to use them?

2006-05-30 19:42:42

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

* Michal Piotrowski <[email protected]> wrote:

> SCSI or libata problem.

i think SCSI and libata is innocent here.

> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {in-hardirq-W} -> {hardirq-on-W} usage.

> 1 locks held by init/1:
> #0: (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
>
> stack backtrace:
> [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
> [<c01044b3>] show_trace+0xd/0x10
> [<c010457b>] dump_stack+0x19/0x1b
> [<c0137d63>] print_usage_bug+0x1a1/0x1ab
> [<c0138458>] mark_lock+0x2d7/0x514
> [<c01386dc>] mark_held_locks+0x47/0x65
> [<c0139745>] trace_hardirqs_on+0x12b/0x16f
> [<c02f2b61>] restore_nocheck+0x8/0xb

weird. We are holding base->lock#2 [CPU#1's timer base lock], _and_ we
execute restore_nocheck - which is a return-to-userspace thing.

unfortunately the stacktrace provides no clues of how we got here.
For such nasty cases i have a kernel tracing patch prepared, you can get
it from:

http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch

just apply it ontop of your current tree and accept all the new .config
options as the kernel suggests them to you. Then rebuild and reboot into
the kernel, and reproduce the lockdep bug. Once such a bug is reported,
/proc/latency_trace should have a full kernel trace leading up to the
bug. Please upload that trace to your site and send us the URL.

(the tracer runs nonstop and it saves the current trace if it encounters
a lockdep bug. That way i can see the history of the bug.)

if possible it would be nice to boot with maxcpus=1 as well, to make
sure we have all relevant kernel activity traced. (assuming that booting
with maxcpus=1 does not make the bug go away)

Ingo

2006-05-30 19:43:42

by Roland Dreier

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Building 2.6.17-rc5-mm1, I get this:

net/built-in.o: In function `ip_rt_init':
(.init.text+0xb04): undefined reference to `__you_cannot_kmalloc_that_much'

This seems to be coming from:

rt_hash_locks = kmalloc(sizeof(spinlock_t) * RT_HASH_LOCK_SZ, GFP_KERNEL);

I have CONFIG_NR_CPUS=32, so RT_HASH_LOCK_SZ ends up as 2048. Also, I
have both CONFIG_DEBUG_SPINLOCK=y and CONFIG_PROVE_SPIN_LOCKING=y so
spinlock_t is bloated up quite big:

typedef struct {
raw_spinlock_t raw_lock;
#if defined(CONFIG_PREEMPT) && defined(CONFIG_SMP)
unsigned int break_lock;
#endif
#ifdef CONFIG_DEBUG_SPINLOCK
unsigned int magic, owner_cpu;
void *owner;
#endif
#ifdef CONFIG_PROVE_SPIN_LOCKING
struct lockdep_map dep_map;
#endif
} spinlock_t;

I only have 8 CPUs in the box, so updating my config from the x86_64
defconfig fixes things for me.

No patch because I don't really know how to fix this properly...

- R.

2006-05-30 19:47:32

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386


* Andi Kleen <[email protected]> wrote:

> Ingo Molnar <[email protected]> writes:
> >
> > The NMI watchdog uses spinlocks (notifier chains, etc.),
> > so it's not lockdep-safe at the moment.
>
> That's totally unsafe even without lockdep and should be fixed
> instead. I guess someone bungled the notifier chain conversion. The
> NMI notifiers need to be lockless.

yeah, totally agreed, they need to be raw notifiers. Havent had time to
investigate it in detail yet - i went for the easier hack of disabling
NMIs while lockdep is enabled.

Here's the kernel trace of it happening on x86_64:

<...>-417 0D... 2983us : __lockdep_acquire (ffffffff81a5cb18 0 0)
<...>-417 0D... 2983us : __lockdep_acquire (0 0 0)
<...>-417 0D... 2984us : do_nmi (nmi)
<...>-417 0D.h. 2985us : default_do_nmi (do_nmi)
<...>-417 0D.h. 2986us : atomic_notifier_call_chain (default_do_nmi)
<...>-417 0D.h. 2986us : notifier_call_chain (atomic_notifier_call_chain)
<...>-417 0D.h. 2987us : nmi_watchdog_tick (default_do_nmi)
<...>-417 0D.h. 2987us : atomic_notifier_call_chain (nmi_watchdog_tick)
<...>-417 0D.h. 2987us : notifier_call_chain (atomic_notifier_call_chain)
<...>-417 0D... 2988us : trace_hardirqs_off (trace_hardirqs_off_thunk)
<...>-417 0D... 2989us : __lockdep_acquire (1 1 0)
<...>-417 0D... 2989us : mark_lock (__lockdep_acquire)
<...>-417 0D... 2989us : mark_lock (__lockdep_acquire)
<...>-417 0D... 2989us+: mark_lock (__lockdep_acquire)
<...>-417 0D... 2991us : check_chain_key (__lockdep_acquire)
<...>-417 0.... 2992us : _raw_spin_lock (_spin_lock)
<...>-417 0.... 2992us : _spin_lock (dput)

that shouldnt be an atomic_notifier but a raw_notifier.

Ingo

2006-05-30 19:48:56

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 30/05/06, Ingo Molnar <[email protected]> wrote:
>
> * Michal Piotrowski <[email protected]> wrote:
>
> > Hi Ingo,
> >
> > On 30/05/06, Andrew Morton <[email protected]> wrote:
> > >
> > >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> > >
> >
> > Here is small lockdep bug
> >
> > May 30 18:05:08 ltg01-fedora ainit:
> > May 30 18:05:09 ltg01-fedora kernel: BUG: warning at
> > /usr/src/linux-mm/kernel/lockdep.c:1853/trace_hardirqs_on()
>
> hm. Do you have the NMI watchdog enabled? [does /proc/interrupts show
> any increasing NMI counts?]

No.

>
> Ingo
>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 19:50:51

by Andrew Morton

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386

On 30 May 2006 21:14:54 +0200
Andi Kleen <[email protected]> wrote:

> Ingo Molnar <[email protected]> writes:
> >
> > The NMI watchdog uses spinlocks (notifier chains, etc.),
> > so it's not lockdep-safe at the moment.
>
> That's totally unsafe even without lockdep and should be fixed
> instead. I guess someone bungled the notifier chain conversion.
> The NMI notifiers need to be lockless.
>

Confused. NMI uses notify_die(), which doesn't take locks?

We'll probably accidentally take locks when actually reporting an NMI
watchdog timeout, but that doesn't seem terribly important.

2006-05-30 19:56:00

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 20:39 +0200, Michal Piotrowski wrote:
> Hi,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> I get this on 2.6.17-rc5-mm1 + hot fixes + Arjan's net/ipv4/igmp.c patch.

since Andrew asked how to read this stuff.....
>
> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel:
> =====================================================
> May 30 20:25:56 ltg01-fedora kernel: [ BUG: possible circular locking
> deadlock detected! ]

this message means basically an AB-BA deadlock is found

> May 30 20:25:56 ltg01-fedora kernel:
> -----------------------------------------------------
> May 30 20:25:56 ltg01-fedora kernel: umount/2322 is trying to acquire lock:
> May 30 20:25:56 ltg01-fedora kernel: (sb_security_lock){--..}, at:
> [<c01d6400>] selinux_sb_free_security+0x17/0x4e
> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: but task is already holding lock:
> May 30 20:25:56 ltg01-fedora kernel: (sb_lock){--..}, at:

we're holding "sb_lock" already, and are trying to get sb_security_lock

> [<c0178a89>] put_super+0x10/0x24
> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: which lock already depends on the new lock,

... but there was an observed code sequence before which was the other
way around ...
> May 30 20:25:56 ltg01-fedora kernel: which could lead to circular deadlocks!

yes.

> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: the existing dependency chain (in
> reverse order) is:

now it's going to print the previously observed behavior (backwards),
and give a backtrace of where that was acquired
> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: -> #1 (sb_lock){--..}:

since it prints backwards, this is the latest of the 2 locks taken in
the old situaion

> May 30 20:25:56 ltg01-fedora kernel: [<c0139a56>]
> lockdep_acquire+0x69/0x82
> May 30 20:25:56 ltg01-fedora kernel: [<c02f2171>] _spin_lock+0x21/0x2f
> May 30 20:25:56 ltg01-fedora kernel: [<c01d72de>]
> selinux_complete_init+0x45/0xda

and it was in selinux_complete_init

for some reason the #0 is not being printed here (it normally is), which
would give a simliar backtrace. In this case it was ok,
selinux_complete_init was the sole guilty party.

> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: other info that might help us debug this:
> May 30 20:25:56 ltg01-fedora kernel:
now it's going to print all the locks we own currently, and where those
were taken; not just the ones that are part of the deadlock (that was
printed before)

> May 30 20:25:56 ltg01-fedora kernel: 1 locks held by umount/2322:
> May 30 20:25:56 ltg01-fedora kernel: #0: (sb_lock){--..}, at:
> [<c0178a89>] put_super+0x10/0x24

ok so in put_super we took sb_lock. [*]

> May 30 20:25:56 ltg01-fedora kernel:
> May 30 20:25:56 ltg01-fedora kernel: stack backtrace:
> May 30 20:25:56 ltg01-fedora kernel: [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
> May 30 20:25:56 ltg01-fedora kernel: [<c01044b3>] show_trace+0xd/0x10
> May 30 20:25:56 ltg01-fedora kernel: [<c010457b>] dump_stack+0x19/0x1b
> May 30 20:25:56 ltg01-fedora kernel: [<c0138bd6>]
> print_circular_bug_tail+0x59/0x64
> May 30 20:25:56 ltg01-fedora kernel: [<c0139429>] __lockdep_acquire+0x848/0xa39
> May 30 20:25:56 ltg01-fedora kernel: [<c0139a56>] lockdep_acquire+0x69/0x82
> May 30 20:25:56 ltg01-fedora kernel: [<c02f2171>] _spin_lock+0x21/0x2f

these are just the lockdep printing stuff

> May 30 20:25:56 ltg01-fedora kernel: [<c01d6400>]
> selinux_sb_free_security+0x17/0x4e

but here it gets interesting; this is the function that triggered the
final deadlock message (well we knew that already from the first line of
the message), which gets called from

> May 30 20:25:56 ltg01-fedora kernel: [<c0178a68>] __put_super+0x24/0x35
which gets called from

> May 30 20:25:56 ltg01-fedora kernel: [<c0178a90>] put_super+0x17/0x24

... but wait we know this one already from where I put [*], so we're now
done. put_super takes sb_lock, then calls __put_super which calls
selinux_sb_free_security which takes sb_security lock.

>From the old pattern we knew the opposite order in
selinux_complete_init(), and we have our AB-BA deadlock


> May 30 20:25:56 ltg01-fedora kernel: [<c01793a3>] deactivate_super+0xa3/0xad
> May 30 20:25:56 ltg01-fedora kernel: [<c018e010>] mntput_no_expire+0x52/0x85
> May 30 20:25:56 ltg01-fedora kernel: [<c017fcb0>]
> path_release_on_umount+0x15/0x18
> May 30 20:25:56 ltg01-fedora kernel: [<c018f535>] sys_umount+0x292/0x2aa

well we also now know that it came from a sys_umount; that might help
chasing stuff down if it's more fuzzy than this example


2006-05-30 20:04:50

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386


* Ingo Molnar <[email protected]> wrote:

> yeah, totally agreed, they need to be raw notifiers. Havent had time
> to investigate it in detail yet - i went for the easier hack of
> disabling NMIs while lockdep is enabled.

hm ... atomic_notifier_call_chain ought to be fine - it uses
rcu_read_lock(), which uses preempt_disable(), which is NMI-safe.

so i think this NMI problem might be lockdep-specific. I think it might
be the NMI iret that confuses lockdep. (and irqflags-trace in
particular)

Ingo

2006-05-30 20:21:05

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, May 30, 2006 at 09:55:46PM +0200, Arjan van de Ven wrote:
> > May 30 20:25:56 ltg01-fedora kernel: which lock already depends on the new lock,
>
> ... but there was an observed code sequence before which was the other
> way around ...

That phrase could use some rewording IMO. It sounds more like a question
than a statement.

Dave

--
http://www.codemonkey.org.uk

2006-05-30 20:26:34

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ


* Roland Dreier <[email protected]> wrote:

> Building 2.6.17-rc5-mm1, I get this:
>
> net/built-in.o: In function `ip_rt_init':
> (.init.text+0xb04): undefined reference to `__you_cannot_kmalloc_that_much'

could you try the patch below and set NR_CPUS back to 32?

-----------
Subject: lock validator: fix RT_HASH_LOCK_SZ
From: Ingo Molnar <[email protected]>

on lockdep we have a quite big spinlock_t, so keep the size down.

Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Arjan van de Ven <[email protected]>
---
net/ipv4/route.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)

Index: linux/net/ipv4/route.c
===================================================================
--- linux.orig/net/ipv4/route.c
+++ linux/net/ipv4/route.c
@@ -212,17 +212,22 @@ struct rt_hash_bucket {
/*
* Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks
* The size of this table is a power of two and depends on the number of CPUS.
+ * (on lockdep we have a quite big spinlock_t, so keep the size down there)
*/
-#if NR_CPUS >= 32
-#define RT_HASH_LOCK_SZ 4096
-#elif NR_CPUS >= 16
-#define RT_HASH_LOCK_SZ 2048
-#elif NR_CPUS >= 8
-#define RT_HASH_LOCK_SZ 1024
-#elif NR_CPUS >= 4
-#define RT_HASH_LOCK_SZ 512
+#ifdef CONFIG_LOCKDEP
+# define RT_HASH_LOCK_SZ 256
#else
-#define RT_HASH_LOCK_SZ 256
+# if NR_CPUS >= 32
+# define RT_HASH_LOCK_SZ 4096
+# elif NR_CPUS >= 16
+# define RT_HASH_LOCK_SZ 2048
+# elif NR_CPUS >= 8
+# define RT_HASH_LOCK_SZ 1024
+# elif NR_CPUS >= 4
+# define RT_HASH_LOCK_SZ 512
+# else
+# define RT_HASH_LOCK_SZ 256
+# endif
#endif

static spinlock_t *rt_hash_locks;

2006-05-30 20:32:35

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 16:20 -0400, Dave Jones wrote:
> On Tue, May 30, 2006 at 09:55:46PM +0200, Arjan van de Ven wrote:
> > > May 30 20:25:56 ltg01-fedora kernel: which lock already depends on the new lock,
> >
> > ... but there was an observed code sequence before which was the other
> > way around ...
>
> That phrase could use some rewording IMO. It sounds more like a question
> than a statement.

if you have suggestions please share them... you're the native United
Kingdomian.... :)


2006-05-30 20:48:41

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ


* Roland Dreier <[email protected]> wrote:

> > on lockdep we have a quite big spinlock_t, so keep the size down.
>
> Yes, that builds fine.
>
> However the kernel won't boot for me... it oopses early on in
> save_stack_trace(). I'm attaching a bootlog, plus another try booting
> with nmi_watchdog=0, plus my config.

there's some bad interaction between the new dwarf2 unwind info
stackframe walker code in mm1 and lockdep's stacktrace code on x86_64.
I'm investigating this currently, meanwhile you can try the quick hack
below.

Ingo

Index: linux/arch/x86_64/kernel/stacktrace.c
===================================================================
--- linux.orig/arch/x86_64/kernel/stacktrace.c
+++ linux/arch/x86_64/kernel/stacktrace.c
@@ -127,7 +127,8 @@ save_context_stack(struct stack_trace *t
skip--;
if (trace->nr_entries >= trace->max_entries)
break;
- if (!addr)
+#warning fixme
+// if (!addr)
return 0;
/*
* Stack frames must go forwards (otherwise a loop could

2006-05-30 20:58:47

by Roland Dreier

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ

Thanks, that boots.

During boot I see this, apparently while mounting NFS filesystems:

[ 83.114812] ====================================
[ 83.133079] [ BUG: possible deadlock detected! ]
[ 83.146881] ------------------------------------
[ 83.160683] mount/3531 is trying to acquire lock:
[ 83.174745] (&inode->i_mutex){--..}, at: [<ffffffff804396df>] mutex_lock+0x22/0x27
[ 83.197835]
[ 83.197836] but task is already holding lock:
[ 83.215295] (&inode->i_mutex){--..}, at: [<ffffffff804396df>] mutex_lock+0x22/0x27
[ 83.238386]
[ 83.238387] which could potentially lead to deadlocks!
[ 83.258207]
[ 83.258207] other info that might help us debug this:
[ 83.277769] 2 locks held by mount/3531:
[ 83.289235] #0: (&s->s_umount#16){--..}, at: [<ffffffff8028c0b3>] sget+0x1a0/0x407
[ 83.312612] #1: (&inode->i_mutex){--..}, at: [<ffffffff804396df>] mutex_lock+0x22/0x27
[ 83.337025]
[ 83.337026] stack backtrace:
[ 83.350101]
[ 83.350101] Call Trace:
[ 83.361890] [<ffffffff80247b4e>] __lockdep_acquire+0x18a/0xad2
[ 83.379629] [<ffffffff804396df>] mutex_lock+0x22/0x27
[ 83.395038] [<ffffffff8024887d>] lockdep_acquire+0x82/0xa3
[ 83.411748] [<ffffffff80439450>] __mutex_lock_slowpath+0xfd/0x36a
[ 83.430273] [<ffffffff804396df>] mutex_lock+0x22/0x27
[ 83.445703] [<ffffffff880ce635>] :sunrpc:rpc_populate+0x43/0x141
[ 83.463934] [<ffffffff880cedb8>] :sunrpc:rpc_mkdir+0xb6/0x172
[ 83.481383] [<ffffffff802a1862>] mntput_no_expire+0x1b/0xb9
[ 83.498348] [<ffffffff802a989c>] simple_pin_fs+0xc3/0xd3
[ 83.514548] [<ffffffff880bf8c1>] :sunrpc:rpc_new_client+0x226/0x348
[ 83.533592] [<ffffffff880c06e0>] :sunrpc:rpc_create_client+0xc/0x3e
[ 83.552644] [<ffffffff88105e0c>] :nfs:nfs_get_sb+0x559/0x6e8
[ 83.569853] [<ffffffff8028b827>] vfs_kern_mount+0x8b/0x196
[ 83.586560] [<ffffffff8028b980>] do_kern_mount+0x3c/0x57
[ 83.602724] [<ffffffff802a3596>] do_mount+0x7dd/0x851
[ 83.618108] [<ffffffff80247240>] mark_lock+0x3b/0x4fc
[ 83.633520] [<ffffffff80262a2a>] get_page_from_freelist+0x34e/0x4cc
[ 83.652560] [<ffffffff802479a0>] trace_hardirqs_on+0x165/0x189
[ 83.670281] [<ffffffff80262a99>] get_page_from_freelist+0x3bd/0x4cc
[ 83.689324] [<ffffffff8043b461>] _spin_unlock_irqrestore+0x3f/0x47
[ 83.708109] [<ffffffff80262c2a>] __alloc_pages+0x82/0x33d
[ 83.724558] [<ffffffff802787ef>] alloc_pages_current+0xa0/0xa9
[ 83.742301] [<ffffffff803361fc>] _raw_spin_lock+0xc7/0x15d
[ 83.759012] [<ffffffff802a36a7>] sys_mount+0x9d/0xe9
[ 83.774160] [<ffffffff8043ab11>] trace_hardirqs_on_thunk+0x35/0x37
[ 83.792919] [<ffffffff80209652>] system_call+0x7e/0x83

- R.

2006-05-30 21:01:29

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ

On Tue, 2006-05-30 at 13:58 -0700, Roland Dreier wrote:
> Thanks, that boots.
>
> During boot I see this, apparently while mounting NFS filesystems:


do you have KALLSYMS_ALL enabled? This looks like a thing we already
fixed as well... but it also looks a bit odd ..

2006-05-30 21:03:45

by Roland Dreier

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ

Arjan> do you have KALLSYMS_ALL enabled? This looks like a thing
Arjan> we already fixed as well... but it also looks a bit odd ..

Nope, sorry. Will rebuild and resend.

- R.

2006-05-30 21:07:49

by Brice Goglin

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Andrew Morton wrote:
> +node-hotplug-register-cpu-remove-node-struct.patch
> +node-hotplug-fixes-callres-of-register_cpu.patch
> +node-hotplug-fixes-callres-of-register_cpu-powerpc-warning-fix.patch
> +node-hotplug-register_node-fix.patch
>
> NUMA node hotplugging updates
>


Hi Andrew,

I had to apply the following patch to build this -mm on alpha.

Signed-off-by: Brice Goglin <[email protected]>

Brice

Index: linux-mm/arch/alpha/kernel/setup.c
===================================================================
--- linux-mm.orig/arch/alpha/kernel/setup.c 2006-05-30 22:53:54.000000000 +0200
+++ linux-mm/arch/alpha/kernel/setup.c 2006-05-30 22:55:30.000000000 +0200
@@ -481,7 +481,7 @@
struct cpu *p = kzalloc(sizeof(*p), GFP_KERNEL);
if (!p)
return -ENOMEM;
- register_cpu(p, i, NULL);
+ register_cpu(p, i);
}
return 0;
}


2006-05-30 21:06:56

by Laurent Riffard

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc5-mm1
# Tue May 30 20:17:03 2006
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

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

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_KLIBC_ERRLIST=y
CONFIG_KLIBC_ZLIB=y
CONFIG_UID16=y
CONFIG_VM86=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set

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

#
# Block layer
#
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"

#
# Processor type and features
#
# CONFIG_SMP is not set
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_MGEODE_LX 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_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_TSC=y
CONFIG_HPET_TIMER=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=m
CONFIG_X86_MCE_P4THERMAL=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_X86_REBOOTFIXUPS=y
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
# CONFIG_X86_CPUID is not set

#
# Firmware Drivers
#
CONFIG_EDD=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_3G_OPT is not set
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_ALIGNED_ZONE_BOUNDARIES=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_UNALIGNED_ZONE_BOUNDARIES is not set
CONFIG_ADAPTIVE_READAHEAD=y
CONFIG_DEBUG_READAHEAD=y
CONFIG_READAHEAD_SMOOTH_AGING=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_KEXEC=y
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RESOURCES_32BIT is not set
# CONFIG_COMPAT_VDSO is not set

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

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

#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ 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_DEBUG is not set
CONFIG_ISA_DMA_API=y
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=m
CONFIG_BINFMT_MISC=m

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=m
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y

#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set

#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_NETFILTER_XTABLES is not set

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
# CONFIG_IP_NF_NETBIOS_NS is not set
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
CONFIG_IP_NF_QUEUE=m

#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set

#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q 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_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_NETEM is not set
CONFIG_NET_SCH_INGRESS=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
# CONFIG_NET_CLS_RSVP6 is not set
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_ESTIMATOR=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
CONFIG_WIRELESS_EXT=y

#
# Device Drivers
#

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

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set

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

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

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# 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=m
# 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=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=2
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 is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=m
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# 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_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT821X 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=m
# 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_RAID_ATTRS is not set
CONFIG_SCSI=m
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# 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 Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_DOMAIN_ATTRS is not set

#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX 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_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR 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_HPTIOP 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_STEX 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_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_LPFC 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
# CONFIG_SCSI_SRP 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_RAID456 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=m
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set

#
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=m

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y
# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set
# CONFIG_IEEE1394_EXPORT_FULL_API is not set

#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=m

#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
# CONFIG_IEEE1394_SBP2 is not set
# CONFIG_IEEE1394_ETH1394 is not set
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# PHY device support
#
# CONFIG_PHYLIB 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_CASSINI 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=y
# CONFIG_8139CP is not set
# CONFIG_8139TOO 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 is not set
# 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_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
# CONFIG_NET_WIRELESS_RTNETLINK is not set

#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
# CONFIG_WAVELAN is not set

#
# Wireless 802.11b ISA/PCI cards support
#
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set

#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
CONFIG_PRISM54=m
# CONFIG_HOSTAP is not set
# CONFIG_ACX is not set
CONFIG_NET_WIRELESS=y

#
# 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=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y

#
# 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=m
# 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=y
# CONFIG_MOUSE_SERIAL is not set
# 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 is not set
# CONFIG_JOYSTICK_ADI is not set
# CONFIG_JOYSTICK_COBRA is not set
# CONFIG_JOYSTICK_GF2K is not set
# CONFIG_JOYSTICK_GRIP is not set
# CONFIG_JOYSTICK_GRIP_MP is not set
# CONFIG_JOYSTICK_GUILLEMOT is not set
# CONFIG_JOYSTICK_INTERACT is not set
# CONFIG_JOYSTICK_SIDEWINDER is not set
# CONFIG_JOYSTICK_TMDC is not set
# CONFIG_JOYSTICK_IFORCE is not set
# CONFIG_JOYSTICK_WARRIOR is not set
# CONFIG_JOYSTICK_MAGELLAN is not set
# CONFIG_JOYSTICK_SPACEORB is not set
# CONFIG_JOYSTICK_SPACEBALL is not set
# CONFIG_JOYSTICK_STINGER is not set
# CONFIG_JOYSTICK_TWIDJOY is not set
# CONFIG_JOYSTICK_DB9 is not set
# CONFIG_JOYSTICK_GAMECON is not set
# CONFIG_JOYSTICK_TURBOGRAFX is not set
# CONFIG_JOYSTICK_JOYDUMP is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# 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 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# 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=m
# CONFIG_SERIAL_8250_PCI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=m
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=m
# CONFIG_GEN_RTC is not set
# 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=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_MWAVE is not set
# CONFIG_CS5535_GPIO 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
# CONFIG_TELCLOCK is not set

#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

#
# 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 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# 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=m
CONFIG_I2C_VIAPRO=m
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
# CONFIG_I2C_OCORES is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 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

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#

#
# Hardware Monitoring support
#
CONFIG_HWMON=y
CONFIG_HWMON_VID=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_ADM9240 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F 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=m
# 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_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
CONFIG_SENSORS_VIA686A=m
# CONFIG_SENSORS_VT8231 is not set
CONFIG_SENSORS_W83781D=m
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
# CONFIG_VIDEO_V4L1 is not set
# CONFIG_VIDEO_V4L1_COMPAT is not set
CONFIG_VIDEO_V4L2=y

#
# Video Capture Adapters
#

#
# Video Capture Adapters
#
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_CX88 is not set

#
# Encoders and Decoders
#
# CONFIG_VIDEO_MSP3400 is not set
# CONFIG_VIDEO_CS53L32A is not set
# CONFIG_VIDEO_WM8775 is not set
# CONFIG_VIDEO_WM8739 is not set
# CONFIG_VIDEO_CX25840 is not set
# CONFIG_VIDEO_SAA7127 is not set
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set

#
# V4L USB devices
#
# CONFIG_USB_QUICKCAM_MESSENGER is not set

#
# Radio Adapters
#

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set

#
# Graphics support
#
CONFIG_FIRMWARE_EDID=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y

#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_AC97_BUS=m
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 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_OPL3SA2 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_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# 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_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
CONFIG_SND_ENS1371=m
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM 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_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI 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_ARCH_HAS_EHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# 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_ISP116X_HCD is not set
# 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_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
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Input Devices
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set

#
# 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_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK 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_ZD1201 is not set
# CONFIG_USB_MON is not set

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL 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_GOTEMP is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set

#
# USB DSL modem support
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
CONFIG_EDAC=m

#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
# CONFIG_EDAC_E752X is not set
CONFIG_EDAC_I82875P=m
# CONFIG_EDAC_I82860 is not set
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y

#
# Real Time Clock
#
# CONFIG_RTC_CLASS is not set

#
# DMA Engine support
#
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
CONFIG_NET_DMA=y

#
# DMA Devices
#
# CONFIG_INTEL_IOATDMA is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT2_FS_XIP=y
CONFIG_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISER4_FS=m
CONFIG_REISER4_DEBUG=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=m
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=850
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m

#
# 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 is not set
# 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=m
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# 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 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# 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=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Distributed Lock Manager
#

#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_MUTEX_ALLOC=y
CONFIG_DEBUG_MUTEX_DEADLOCKS=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_PROVE_SPIN_LOCKING=y
CONFIG_PROVE_RW_LOCKING=y
CONFIG_PROVE_MUTEX_LOCKING=y
CONFIG_PROVE_RWSEM_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
CONFIG_FRAME_POINTER=y
CONFIG_UNWIND_INFO=y
CONFIG_STACK_UNWIND=y
CONFIG_FORCED_INLINING=y
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_STACK_BACKTRACE_COLS=1

#
# Page alloc debug is incompatible with Software Suspend on i386
#
CONFIG_DEBUG_RODATA=y
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_BLOWFISH=m
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_586=m
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_TEST is not set

#
# Hardware crypto devices
#
# CONFIG_CRYPTO_DEV_PADLOCK is not set

#
# Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y


Attachments:
dmesg-2.6.17-rc5-mm1 (21.33 kB)
config-2.6.17-rc5-mm1 (41.81 kB)
Download all attachments

2006-05-30 21:14:32

by Roland Dreier

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: fix RT_HASH_LOCK_SZ

Here it is with KALLSYMS_ALL:

[ 80.587694] ====================================
[ 80.605928] [ BUG: possible deadlock detected! ]
[ 80.619729] ------------------------------------
[ 80.633532] mount/3534 is trying to acquire lock:
[ 80.647593] (&inode->i_mutex){--..}, at: [<ffffffff804396af>] mutex_lock+0x22/0x27
[ 80.670683]
[ 80.670684] but task is already holding lock:
[ 80.688170] (&inode->i_mutex){--..}, at: [<ffffffff804396af>] mutex_lock+0x22/0x27
[ 80.711260]
[ 80.711261] which could potentially lead to deadlocks!
[ 80.731083]
[ 80.731083] other info that might help us debug this:
[ 80.750618] 2 locks held by mount/3534:
[ 80.762085] #0: (&s->s_umount#16){--..}, at: [<ffffffff8028c07b>] sget+0x1a0/0x407
[ 80.785513] #1: (&inode->i_mutex){--..}, at: [<ffffffff804396af>] mutex_lock+0x22/0x27
[ 80.809952]
[ 80.809952] stack backtrace:
[ 80.823003]
[ 80.823003] Call Trace:
[ 80.834790] [<ffffffff80247b4e>] __lockdep_acquire+0x18a/0xad2
[ 80.852503] [<ffffffff804396af>] mutex_lock+0x22/0x27
[ 80.867887] [<ffffffff8024887d>] lockdep_acquire+0x82/0xa3
[ 80.884596] [<ffffffff80439420>] __mutex_lock_slowpath+0xfd/0x36a
[ 80.903095] [<ffffffff804396af>] mutex_lock+0x22/0x27
[ 80.918499] [<ffffffff880ce635>] :sunrpc:rpc_populate+0x43/0x141
[ 80.936759] [<ffffffff880cedb8>] :sunrpc:rpc_mkdir+0xb6/0x172
[ 80.954206] [<ffffffff802a182a>] mntput_no_expire+0x1b/0xb9
[ 80.971173] [<ffffffff802a9864>] simple_pin_fs+0xc3/0xd3
[ 80.987371] [<ffffffff880bf8c1>] :sunrpc:rpc_new_client+0x226/0x348
[ 81.006390] [<ffffffff880c06e0>] :sunrpc:rpc_create_client+0xc/0x3e
[ 81.025415] [<ffffffff88105e0c>] :nfs:nfs_get_sb+0x559/0x6e8
[ 81.042598] [<ffffffff8028b7ef>] vfs_kern_mount+0x8b/0x196
[ 81.059305] [<ffffffff8028b948>] do_kern_mount+0x3c/0x57
[ 81.075495] [<ffffffff802a355e>] do_mount+0x7dd/0x851
[ 81.090906] [<ffffffff80247240>] mark_lock+0x3b/0x4fc
[ 81.106289] [<ffffffff802629f2>] get_page_from_freelist+0x34e/0x4cc
[ 81.125331] [<ffffffff802479a0>] trace_hardirqs_on+0x165/0x189
[ 81.143050] [<ffffffff80262a61>] get_page_from_freelist+0x3bd/0x4cc
[ 81.162094] [<ffffffff8043b431>] _spin_unlock_irqrestore+0x3f/0x47
[ 81.180880] [<ffffffff80262bf2>] __alloc_pages+0x82/0x33d
[ 81.197332] [<ffffffff802787b7>] alloc_pages_current+0xa0/0xa9
[ 81.215074] [<ffffffff803361cc>] _raw_spin_lock+0xc7/0x15d
[ 81.231781] [<ffffffff802a366f>] sys_mount+0x9d/0xe9
[ 81.246905] [<ffffffff8043aae1>] trace_hardirqs_on_thunk+0x35/0x37
[ 81.265690] [<ffffffff80209652>] system_call+0x7e/0x83

2006-05-30 21:19:11

by Ingo Molnar

[permalink] [raw]
Subject: [combo patch] lock validator -V2


i've uploaded lock validator -V2, a rollup of all current fixes (against
-rc5-mm1) to:

http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch

(Andrew got all these fixes as individual patches already)

Ingo

2006-05-30 21:24:17

by Roland Dreier

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

I'm seeing problems with MSI-X interrupts on 2.6.17-rc5-mm1. I'll try
to debug the MSI patches in -mm further in the next day or so, but for
now I'll post the symptoms.

When I load the ib_mthca driver with MSI-X interrupts enabled, I get
the following crash as soon as the first interrupt is generated.

[ 329.979089] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
[ 329.995487] [<0000000000000000>]
<8>[ 330.012818] PGD 119477067 PUD 119b48067 PMD 0
[ 330.027009] Oops: 0010 [1] SMP
[ 330.036503] last sysfs file: /class/net/ib2/address
<8>[ 330.051084] CPU 0
<8>[ 330.057932] Modules linked in: ib_mthca ib_srp ib_cm ib_ipoib ib_sa ib_mad ib_core nfs lockd nfs_acl sunrpc ipv6 thermal fan button processor ac battery dm_mod ide_generic ide_disk evdev usbhid ide_cd cdrom amd74xx psmouse serio_raw e1000 pcspkr generic ohci_hcd ehci_hcd ide_core
<8>[ 330.134158] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #7
<8>[ 330.151851] RIP: 0010:[<0000000000000000>] [<0000000000000000>]
<8>[ 330.170116] RSP: 0000:ffffffff805d4f98 EFLAGS: 00010016
<8>[ 330.187344] RAX: 0000000000005200 RBX: ffffffff80873eb8 RCX: 0000000000000000
<8>[ 330.209448] RDX: ffffffff80873eb8 RSI: ffffffff80863e80 RDI: 0000000000000052
<8>[ 330.231552] RBP: ffffffff805d4fb0 R08: 0000000000000001 R09: ffffffff804380f7
<8>[ 330.253656] R10: ffff81007adc6000 R11: 0000000000000000 R12: 0000000000000052
<8>[ 330.275762] R13: 0000000000090000 R14: 0000000000000000 R15: 0000000000000000
<8>[ 330.297867] FS: 00002b9e555966d0(0000) GS:ffffffff8085c000(0000) knlGS:0000000000000000
<8>[ 330.322823] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
<8>[ 330.340777] CR2: 0000000000000000 CR3: 0000000119bd7000 CR4: 00000000000006e0
<8>[ 330.362882] Process idle (pid: 0, threadinfo ffffffff80872000, task ffffffff804baa00)
<8>[ 330.387061] Stack: ffffffff8020c693 ffffffff80207c93 0000000000000100 ffffffff80873ee0
<8>[ 330.411423] ffffffff80209b89 <EOI> ff6500230f54e8fa 65c900000020250c 00000010250c8b48
<8>[ 330.438222] f700001fd8e98148 7400000003582444
<8>[ 330.454231] Call Trace:
<8>[ 330.462870] <IRQ> [<ffffffff8020c693>] do_IRQ+0x5e/0x6f
<8>[ 330.479631] [<ffffffff80207c93>] default_idle+0x0/0x9b
<8>[ 330.496080] [<ffffffff80209b89>] ret_from_intr+0x0/0xf
<8>[ 330.512526] <EOI>Unable to handle kernel paging request at ffffffff82800000 RIP:
[ 332.136320] [<ffffffff8020ad6e>] show_trace+0x145/0x195
<8>[ 332.159591] PGD 203027 PUD 205027 PMD 0
[ 332.172226] Oops: 0000 [2] SMP
[ 332.181720] last sysfs file: /class/net/ib2/address
<

2006-05-30 21:24:51

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 23:07 +0200, Laurent Riffard wrote:
> Le 30.05.2006 11:29, Andrew Morton a écrit :
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> > ...
> > Runtime locking validation.
>
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {hardirq-on-W} -> {in-hardirq-W} usage.
> events/0/4 [HC1[1]:SC0[0]:HE0:SE1] takes:
> (&list->lock){+...}, at: [<c0247689>] skb_dequeue+0x12/0x43

hmmm skb_dequeue is called in a hard irq...



> {hardirq-on-W} state was registered at:
> [<c012d2a1>] lockdep_acquire+0x56/0x6f
> [<c029595b>] _spin_lock_bh+0x1c/0x29
> [<c02922e0>] unix_stream_connect+0x2d8/0x3a7

.. yet it was taken only with spin_lock_bh() in unix_stream_connect,
leaving interrupts enabled (and thus not allowing use inside a hard irq)

> [<c0243fb4>] sys_connect+0x54/0x71
> [<c0244c5c>] sys_socketcall+0x6f/0x166
> [<c0295afd>] sysenter_past_esp+0x56/0x8d
> irq event stamp: 1886
> hardirqs last enabled at (1885): [<c0295a2b>] _spin_unlock_irqrestore+0x35/0x3b
> hardirqs last disabled at (1886): [<c01032fb>] common_interrupt+0x1b/0x2c
> softirqs last enabled at (0): [<c0114af0>] copy_process+0x265/0x11dc
> softirqs last disabled at (0): [<00000000>] init+0x3feffde0/0x1da
>
> other info that might help us debug this:
> no locks held by events/0/4.
>
> stack backtrace:
> [<c0103810>] show_trace_log_lvl+0x4b/0xf4
> [<c0103e11>] show_trace+0xd/0x10
> [<c0103e58>] dump_stack+0x19/0x1b
> [<c012b8be>] print_usage_bug+0x1a4/0x1ae
> [<c012c3c6>] mark_lock+0x8a/0x411
> [<c012cc55>] __lockdep_acquire+0x302/0x8f8
> [<c012d2a1>] lockdep_acquire+0x56/0x6f
> [<c0295906>] _spin_lock_irqsave+0x20/0x2f
> [<c0247689>] skb_dequeue+0x12/0x43
> [<e0bdb7ac>] hpsb_bus_reset+0x55/0xa2 [ieee1394]

yet hpsb_bus_reset() calls skb_dequeue (indirectly, via the inlined
abort_requests() function) in a hard irq.



2006-05-30 21:43:07

by Mel Gorman

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 30 May 2006, Arjan van de Ven wrote:

> On Tue, 2006-05-30 at 23:07 +0200, Laurent Riffard wrote:
>> Le 30.05.2006 11:29, Andrew Morton a écrit :
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>>> ...
>>> Runtime locking validation.
>>
>> ============================
>> [ BUG: illegal lock usage! ]
>> ----------------------------
>> illegal {hardirq-on-W} -> {in-hardirq-W} usage.
>> events/0/4 [HC1[1]:SC0[0]:HE0:SE1] takes:
>> (&list->lock){+...}, at: [<c0247689>] skb_dequeue+0x12/0x43
>
> hmmm skb_dequeue is called in a hard irq...
>
>
>
>> {hardirq-on-W} state was registered at:
>> [<c012d2a1>] lockdep_acquire+0x56/0x6f
>> [<c029595b>] _spin_lock_bh+0x1c/0x29
>> [<c02922e0>] unix_stream_connect+0x2d8/0x3a7
>
> .. yet it was taken only with spin_lock_bh() in unix_stream_connect,
> leaving interrupts enabled (and thus not allowing use inside a hard irq)
>
>> [<c0243fb4>] sys_connect+0x54/0x71
>> [<c0244c5c>] sys_socketcall+0x6f/0x166
>> [<c0295afd>] sysenter_past_esp+0x56/0x8d
>> irq event stamp: 1886
>> hardirqs last enabled at (1885): [<c0295a2b>] _spin_unlock_irqrestore+0x35/0x3b
>> hardirqs last disabled at (1886): [<c01032fb>] common_interrupt+0x1b/0x2c
>> softirqs last enabled at (0): [<c0114af0>] copy_process+0x265/0x11dc
>> softirqs last disabled at (0): [<00000000>] init+0x3feffde0/0x1da
>>
>> other info that might help us debug this:
>> no locks held by events/0/4.
>>
>> stack backtrace:
>> [<c0103810>] show_trace_log_lvl+0x4b/0xf4
>> [<c0103e11>] show_trace+0xd/0x10
>> [<c0103e58>] dump_stack+0x19/0x1b
>> [<c012b8be>] print_usage_bug+0x1a4/0x1ae
>> [<c012c3c6>] mark_lock+0x8a/0x411
>> [<c012cc55>] __lockdep_acquire+0x302/0x8f8
>> [<c012d2a1>] lockdep_acquire+0x56/0x6f
>> [<c0295906>] _spin_lock_irqsave+0x20/0x2f
>> [<c0247689>] skb_dequeue+0x12/0x43
>> [<e0bdb7ac>] hpsb_bus_reset+0x55/0xa2 [ieee1394]
>
> yet hpsb_bus_reset() calls skb_dequeue (indirectly, via the inlined
> abort_requests() function) in a hard irq.
>

On x86_64, I'm seeing what may be flakiness related to skb_dequeue. I
haven't had a chance to look too closely, but the serial excerpt I have is
below. The real BUG of interest is near the end with

BUG: sleeping function called from invalid context at include/linux/rwsem.h:49

At the time of failure, a kernel compile was taking place. I've also seen
one ppc machine (not ppc64) lock up. There was no output to console so it
may or may not be related.

INIT: version 2.86 booting
Welcome to Fedora Core
Press 'I' to enter interactive startup.
Setting clock (localtime): Tue May 30 11:04:10 CDT 2006 [ OK ]
Starting udev: [ OK ]
Setting hostname bl6-13.ltc.austin.ibm.com: [ OK ]
Setting up Logical Volume Management: 2 logical volume(s) in volume group "VolGroup00" now active
[ OK ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00: clean, 275453/7929856 files, 2546251/7929856 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/sda1
/boot: clean, 62/512512 files, 43374/512064 blocks
[ OK ]
Remounting root filesystem in read-write mode: [ OK ]
Mounting local filesystems: [ OK ]
Enabling local filesystem quotas: [ OK ]
Enabling swap space: [ OK ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Starting readahead_early: Starting background readahead: [ OK ]
[ OK ]
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.17-rc5-mm1-autokern1/kernel/arch/x86_64/kernel/cpufreq/acpi-cpufreq.ko): No such device
Bringing up loopback interface: [ OK ]
Bringing up interface eth1: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting irqbalance: [ OK ]
Starting portmap: [ OK ]
Starting NFS statd: [ OK ]
Starting RPC idmapd: FATAL: Module sunrpc not found.
FATAL: Error running install command for sunrpc
Starting system message bus: [ OK ]
Starting Bluetooth services:[ OK ][ OK ]
Mounting other filesystems: [ OK ]
Starting hidd: [ OK ]
Starting automount: [ OK ]
Starting smartd: [ OK ]
Starting acpi daemon: [ OK ]
Starting hpiod: [ OK ]
Starting hpssd: [ OK ]
Starting cups: [ OK ]
Starting sshd: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
Starting console mouse services: [ OK ]
Starting crond: [ OK ]
Starting xfs: [ OK ]
Starting anacron: [ OK ]
Starting atd: [ OK ]
Starting Avahi daemon: [ OK ]
Starting cups-config-daemon: [ OK ]
Starting HAL daemon: [ OK ]

Fedora Core release 5 (Bordeaux)
Kernel 2.6.17-rc5-mm1-autokern1 on an x86_64

bl6-13.ltc.austin.ibm.com login: -- 0:conmux-control -- time-stamp -- May/30/06 9:04:37 --
-- 0:conmux-control -- time-stamp -- May/30/06 9:08:26 --
NMI Watchdog detected LOCKUP on CPU 2
CPU 2
Modules linked in: ipv6 ppdev hidp rfcomm l2cap bluetooth video sony_acpi button battery asus_acpi ac lp parport_pc parport nvram
Pid: 25254, comm: cc1 Not tainted 2.6.17-rc5-mm1-autokern1 #1
RIP: 0010:[<ffffffff810814de>] [<ffffffff810814de>] cache_alloc_refill+0x16a/0x200
RSP: 0018:ffff81001d9edb88 EFLAGS: 00000097
RAX: 00000000ffffffff RBX: 000000000000000f RCX: ffff81001d9edcd4
RDX: ffff8100016df440 RSI: ffff81003c0cc000 RDI: ffff810037fd9400
RBP: ffff81003c0cc000 R08: ffff810037fda000 R09: ffff810037fd7000
R10: ffff81001d9ec000 R11: 0000000000000246 R12: ffff8100016df440
R13: ffff810037fda000 R14: 000000000000002c R15: ffff810037fd9400
FS: 00002b18bc9bcd30(0000) GS:ffff810037e09bc0(0063) knlGS:00000000f7f9e6b0
CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000f665c000 CR3: 000000001af2d000 CR4: 00000000000006e0
Process cc1 (pid: 25254, threadinfo ffff81001d9ec000, task ffff81003e048050)
Stack: 000000d000000246 0000000000000246 00000000000000d0 ffff810037fd9400
ffff810037fd9400 ffff81001d9edd68 0000000000000000 ffffffff81082a00
ffff81003b7b14c0 00000000000000d0
Call Trace:
[<ffffffff81082a00>] kmem_cache_alloc+0x7c/0x86
[<ffffffff8122e081>] __alloc_skb+0x30/0x11d
[<ffffffff8122c6e8>] sock_alloc_send_skb+0x6d/0x1ea
[<ffffffff8102c0d5>] __wake_up+0x36/0x4d
[<ffffffff8128949d>] unix_stream_sendmsg+0x14d/0x2ff
[<ffffffff81229fad>] do_sock_write+0xc7/0xd2
[<ffffffff8122a0fd>] sock_aio_write+0x4f/0x5e
[<ffffffff81086f28>] do_sync_write+0xc9/0x106
[<ffffffff812924f2>] do_page_fault+0x46f/0x7b0
[<ffffffff81046b6c>] autoremove_wake_function+0x0/0x2e
[<ffffffff810731f4>] do_mmap_pgoff+0x673/0x774
[<ffffffff8108704c>] vfs_write+0xe7/0x175
[<ffffffff8108718d>] sys_write+0x45/0x6e
[<ffffffff81022994>] cstar_do_call+0x1b/0x65


Code: 49 8b 04 24 48 89 68 08 48 89 45 00 4c 89 65 08 49 89 2c 24
console shuts up ...
NMI Watchdog detected LOCKUP on CPU 1
CPU 1
Modules linked in: ipv6 ppdev hidp rfcomm l2cap bluetooth video sony_acpi button battery asus_acpi ac lp parport_pc parport nvram
Pid: 15, comm: events/1 Not tainted 2.6.17-rc5-mm1-autokern1 #1
RIP: 0010:[<ffffffff81135167>] [<ffffffff81135167>] __delay+0xa/0x10
RSP: 0018:ffff810037f43d80 EFLAGS: 00000012
RAX: 0000000000000008 RBX: ffff8100016df480 RCX: 00000000a155bf6d
RDX: 0000000000000101 RSI: ffff8100016df440 RDI: 0000000000000001
RBP: 000000002e69b72b R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: ffff8100016dfc40 R12: 0000000000000001
R13: 0000000000000000 R14: ffff8100016df440 R15: ffff810037fd9400
FS: 00002b99ea9c72d0(0000) GS:ffff81003efb98c0(0000) knlGS:00000000f7fdb6b0
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 00000000009afb30 CR3: 000000003ebc6000 CR4: 00000000000006e0
Process events/1 (pid: 15, threadinfo ffff810037f42000, task ffff810037fef050)
Stack: ffffffff81140cfc 0000000000000000 ffff8100016df440 ffff810037fda400
ffffffff81081c7a ffff8100016df440 0000000000000000 ffff8100016df440
ffff81003ebd7880 ffff810037fd9400
Call Trace:
[<ffffffff81140cfc>] _raw_spin_lock+0x8b/0xf1
[<ffffffff81081c7a>] drain_array+0x51/0xd3
[<ffffffff810837af>] cache_reap+0x0/0x2ce
[<ffffffff8108389b>] cache_reap+0xec/0x2ce
[<ffffffff810837af>] cache_reap+0x0/0x2ce
[<ffffffff81043354>] run_workqueue+0xa1/0xeb
[<ffffffff8104339e>] worker_thread+0x0/0x137
[<ffffffff810434a3>] worker_thread+0x105/0x137
[<ffffffff8102c02e>] default_wake_function+0x0/0xe
[<ffffffff8102c02e>] default_wake_function+0x0/0xe
[<ffffffff81046652>] kthread+0x107/0x133
[<ffffffff8104339e>] worker_thread+0x0/0x137
[<ffffffff8100a146>] child_rip+0x8/0x12
[<ffffffff8104339e>] worker_thread+0x0/0x137
[<ffffffff8104654b>] kthread+0x0/0x133
[<ffffffff8100a13e>] child_rip+0x0/0x12


Code: 48 39 f8 72 f5 c3 65 8b 04 25 24 00 00 00 48 98 48 69 c0 c0
console shuts up ...
<1>Unable to handle kernel NULL pointer dereference at 0000000000000008 RIP:
[<ffffffff8122f9aa>] skb_dequeue+0x2c/0x50
PGD 330cf067 PUD 0
Oops: 0002 [1] SMP
last sysfs file: /block/sda/sda1/size
CPU 0
Modules linked in: ipv6 ppdev hidp rfcomm l2cap bluetooth video sony_acpi button battery asus_acpi ac lp parport_pc parport nvram
Pid: 1871, comm: sshd Not tainted 2.6.17-rc5-mm1-autokern1 #1
RIP: 0010:[<ffffffff8122f9aa>] [<ffffffff8122f9aa>] skb_dequeue+0x2c/0x50
RSP: 0018:ffff810032c81c28 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff810032a96510 RCX: 000000000000003f
RDX: 000000000000001f RSI: 0000000000000246 RDI: ffff810032a96528
RBP: ffff81003c0cc2c0 R08: 0000000100000000 R09: 0000000000000246
R10: 0000000000000246 R11: 000000000000001a R12: ffff810032a96528
R13: ffff810032c81da0 R14: ffff810032c81d68 R15: 0000000000000000
FS: 00002ac772097be0(0000) GS:ffffffff8146e000(0000) knlGS:00000000f7fad6b0
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000008 CR3: 000000003d28b000 CR4: 00000000000006e0
Process sshd (pid: 1871, threadinfo ffff810032c80000, task ffff810037f4c7d0)
Stack: ffff810032a96510 ffff81003c0cc2c0 ffff810032a96440 ffffffff812899a6
ffffffa100000001 0000001a00000001 0000000000000000 00000040000000d0
0000000000003fe6 ffff81003280c180
Call Trace:
[<ffffffff812899a6>] unix_stream_recvmsg+0x101/0x4bf
[<ffffffff8122c946>] release_sock+0x10/0xae
[<ffffffff81258520>] tcp_sendmsg+0x9b0/0xa82
[<ffffffff81229d87>] do_sock_read+0xc6/0xd1
[<ffffffff81229ed7>] sock_aio_read+0x4f/0x5e
[<ffffffff81086cb0>] do_sync_read+0xc9/0x106
[<ffffffff81046b6c>] autoremove_wake_function+0x0/0x2e
[<ffffffff812905e8>] _spin_unlock_irq+0x6/0xa
[<ffffffff8128e4e5>] thread_return+0x64/0xec
[<ffffffff81086dd1>] vfs_read+0xe4/0x172
[<ffffffff8108711f>] sys_read+0x45/0x6e
[<ffffffff810092be>] system_call+0x7e/0x83


Code: 48 89 58 08 48 c7 45 00 00 00 00 00 48 c7 45 08 00 00 00 00
RIP [<ffffffff8122f9aa>] skb_dequeue+0x2c/0x50 RSP <ffff810032c81c28>
CR2: 0000000000000008
<3>BUG: sleeping function called from invalid context at include/linux/rwsem.h:49
in_atomic():0, irqs_disabled():1

Call Trace:
[<ffffffff81029ba0>] __might_sleep+0xc0/0xc2
[<ffffffff810403ed>] blocking_notifier_call_chain+0x1f/0x4e
[<ffffffff81035a8a>] do_exit+0x22/0x8ce
[<ffffffff81184817>] do_unblank_screen+0x29/0x121
[<ffffffff812927c5>] do_page_fault+0x742/0x7b0
[<ffffffff81029f49>] activate_task+0x4b/0x99
[<ffffffff81098aad>] __pollwait+0x0/0xdd
[<ffffffff81009f8d>] error_exit+0x0/0x84
[<ffffffff8122f9aa>] skb_dequeue+0x2c/0x50
[<ffffffff8122f993>] skb_dequeue+0x15/0x50
[<ffffffff812899a6>] unix_stream_recvmsg+0x101/0x4bf
[<ffffffff8122c946>] release_sock+0x10/0xae
[<ffffffff81258520>] tcp_sendmsg+0x9b0/0xa82
[<ffffffff81229d87>] do_sock_read+0xc6/0xd1
[<ffffffff81229ed7>] sock_aio_read+0x4f/0x5e
[<ffffffff81086cb0>] do_sync_read+0xc9/0x106
[<ffffffff81046b6c>] autoremove_wake_function+0x0/0x2e
[<ffffffff812905e8>] _spin_unlock_irq+0x6/0xa
[<ffffffff8128e4e5>] thread_return+0x64/0xec
[<ffffffff81086dd1>] vfs_read+0xe4/0x172
[<ffffffff8108711f>] sys_read+0x45/0x6e
[<ffffffff810092be>] system_call+0x7e/0x83

NMI Watchdog detected LOCKUP on CPU 3
CPU 3
Modules linked in: ipv6 ppdev hidp rfcomm l2cap bluetooth video sony_acpi button battery asus_acpi ac lp parport_pc parport nvram
Pid: 1710, comm: sshd Not tainted 2.6.17-rc5-mm1-autokern1 #1
RIP: 0010:[<ffffffff81140cfc>] [<ffffffff81140cfc>] _raw_spin_lock+0x8b/0xf1
RSP: 0018:ffff81003319db68 EFLAGS: 00000002
RAX: 0000000000000008 RBX: ffff8100016df480 RCX: 00000000b3e3ec80
RDX: 0000000000000105 RSI: 00000000000000d0 RDI: 0000000000000001
RBP: 000000001713db5d R08: ffff81003c0d0440 R09: ffff81003d177340
R10: 00005555556bf377 R11: 0000000000000246 R12: 0000000000000001
R13: ffff810037fd8c00 R14: 000000000000003c R15: ffff810037fd9400
FS: 00002b2015099be0(0000) GS:ffff8100016dfec0(0000) knlGS:00000000f7fb26b0
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00005555556bf168 CR3: 00000000348c8000 CR4: 00000000000006e0
Process sshd (pid: 1710, threadinfo ffff81003319c000, task ffff810037f57810)
Stack: 0000000000000246 00000000000000d0 ffff8100016df440 ffffffff810813ef
000000d000000246 0000000000000246 00000000000000d0 ffff810037fd9400
ffff810037fd9400 ffff81003319dd68
Call Trace:
[<ffffffff810813ef>] cache_alloc_refill+0x7b/0x200
[<ffffffff81082a00>] kmem_cache_alloc+0x7c/0x86
[<ffffffff8122e081>] __alloc_skb+0x30/0x11d
[<ffffffff8122c6e8>] sock_alloc_send_skb+0x6d/0x1ea
[<ffffffff810381e0>] current_fs_time+0x4d/0x52
[<ffffffff8128949d>] unix_stream_sendmsg+0x14d/0x2ff
[<ffffffff81229fad>] do_sock_write+0xc7/0xd2
[<ffffffff8122a0fd>] sock_aio_write+0x4f/0x5e
[<ffffffff8106f6e8>] do_wp_page+0x38e/0x3c1
[<ffffffff81086f28>] do_sync_write+0xc9/0x106
[<ffffffff812924f2>] do_page_fault+0x46f/0x7b0
[<ffffffff81046b6c>] autoremove_wake_function+0x0/0x2e
[<ffffffff812905e8>] _spin_unlock_irq+0x6/0xa
[<ffffffff8128e4e5>] thread_return+0x64/0xec
[<ffffffff81032628>] do_fork+0x138/0x1b0
[<ffffffff8108704c>] vfs_write+0xe7/0x175
[<ffffffff8108718(bot:conmon-payload) disconnected
d>] sys_write+0x45/0x6e
[<ffffffff810092be>] system_call+0x7e/0x83


Code: eb d9 45 85 e4 74 d2 45 31 e4 65 48 8b 04 25 00 00 00 00 65
console shuts up ...

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2006-05-30 21:56:03

by Arjan van de Ven

[permalink] [raw]
Subject: [Patch -rc5-mm1] Lockdep annotate rpc_populate for child-relationship of its mutex

On Tue, 2006-05-30 at 14:14 -0700, Roland Dreier wrote:
> Here it is with KALLSYMS_ALL:


ok this ought to do it


rpc_populate is creating a child inode in a directory, and the
parent already has it's mutex locked. Similar to the VFS code
this needs I_MUTEX_CHILD nesting annotation

Signed-off-by: Arjan van de Ven <[email protected]>
---
net/sunrpc/rpc_pipe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.17-rc5-mm1-lockdep/net/sunrpc/rpc_pipe.c
===================================================================
--- linux-2.6.17-rc5-mm1-lockdep.orig/net/sunrpc/rpc_pipe.c
+++ linux-2.6.17-rc5-mm1-lockdep/net/sunrpc/rpc_pipe.c
@@ -557,7 +557,7 @@ rpc_populate(struct dentry *parent,
struct dentry *dentry;
int mode, i;

- mutex_lock(&dir->i_mutex);
+ mutex_lock_nested(&dir->i_mutex, I_MUTEX_CHILD);
for (i = start; i < eof; i++) {
dentry = d_alloc_name(parent, files[i].name);
if (!dentry)


2006-05-30 21:57:13

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 30/05/06, Ingo Molnar <[email protected]> wrote:
> * Michal Piotrowski <[email protected]> wrote:
>
> > SCSI or libata problem.
>
> i think SCSI and libata is innocent here.
>
> > ============================
> > [ BUG: illegal lock usage! ]
> > ----------------------------
> > illegal {in-hardirq-W} -> {hardirq-on-W} usage.
>
> > 1 locks held by init/1:
> > #0: (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
> >
> > stack backtrace:
> > [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
> > [<c01044b3>] show_trace+0xd/0x10
> > [<c010457b>] dump_stack+0x19/0x1b
> > [<c0137d63>] print_usage_bug+0x1a1/0x1ab
> > [<c0138458>] mark_lock+0x2d7/0x514
> > [<c01386dc>] mark_held_locks+0x47/0x65
> > [<c0139745>] trace_hardirqs_on+0x12b/0x16f
> > [<c02f2b61>] restore_nocheck+0x8/0xb
>
> weird. We are holding base->lock#2 [CPU#1's timer base lock], _and_ we
> execute restore_nocheck - which is a return-to-userspace thing.
>
> unfortunately the stacktrace provides no clues of how we got here.
> For such nasty cases i have a kernel tracing patch prepared, you can get
> it from:
>
> http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch
>
> just apply it ontop of your current tree and accept all the new .config
> options as the kernel suggests them to you.

I can't boot with that patch. I even don't see "Uncompressing
Linux..." - machine reboots.
I have 2.6.17-rc5-mm1 +
genirq-cleanup-remove-irq_descp-fix.patch
lock-validator-irqtrace-support-non-x86-architectures.patch
lock-validator-special-locking-sb-s_umount-2-fix.patch
from hot fixes
+
Arjan's net/ipv4/igmp.c patch.

BTW. I got error when compiling kernel/latency.c, so I change
if (DEBUG_WARN_ON((val < PREEMPT_MASK) && !(preempt_count() & PREEMPT_MASK))))

to

if (DEBUG_WARN_ON((val < PREEMPT_MASK) && !(preempt_count() & PREEMPT_MASK)))

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config3

Here is "Kernel Bug : The Movie" (4,3MB)
http://www.stardust.webpages.pl/files/crap/kbtm.avi

[snip]
>
> Ingo
>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 22:09:15

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Michal Piotrowski <[email protected]> wrote:

> > http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch
> >
> >just apply it ontop of your current tree and accept all the new .config
> >options as the kernel suggests them to you.
>
> I can't boot with that patch. I even don't see "Uncompressing
> Linux..." - machine reboots.
> I have 2.6.17-rc5-mm1 +
> genirq-cleanup-remove-irq_descp-fix.patch
> lock-validator-irqtrace-support-non-x86-architectures.patch
> lock-validator-special-locking-sb-s_umount-2-fix.patch
> from hot fixes
> +
> Arjan's net/ipv4/igmp.c patch.

could you try to 1) disable PREEMPT, 2) apply the -V2 rollup of all
fixes so far to 2.6.17-rc5-mm1:

http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch

? I'll try your config meanwhile.

Ingo

2006-05-30 22:18:31

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> could you try to 1) disable PREEMPT, 2) apply the -V2 rollup of all
> fixes so far to 2.6.17-rc5-mm1:
>
> http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch
>
> ? I'll try your config meanwhile.

PREEMPT wasnt the problem but CONFIG_DEBUG_STACKOVERFLOW (at least).
There's some other debug option that seems incompatible too - i'm still
trying to figure out which one.

Ingo

2006-05-30 22:25:48

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> PREEMPT wasnt the problem but CONFIG_DEBUG_STACKOVERFLOW (at least).
> There's some other debug option that seems incompatible too - i'm
> still trying to figure out which one.

narrowed it down to:

--- .config.good01 2006-05-31 00:24:44.000000000 +0200
+++ .config.bad01 2006-05-31 00:22:28.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc5-mm1-lockdep
-# Wed May 31 00:23:12 2006
+# Wed May 31 00:19:45 2006
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -1798,7 +1798,7 @@ CONFIG_PROVE_RWSEM_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_WAKEUP_TIMING=y
# CONFIG_WAKEUP_LATENCY_HIST is not set
@@ -1807,18 +1807,19 @@ CONFIG_LATENCY_TIMING=y
CONFIG_LATENCY_TRACE=y
CONFIG_MCOUNT=y
# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_INFO=y
+CONFIG_PAGE_OWNER=y
CONFIG_DEBUG_FS=y
-# CONFIG_DEBUG_VM is not set
+CONFIG_DEBUG_VM=y
CONFIG_FRAME_POINTER=y
-# CONFIG_UNWIND_INFO is not set
+CONFIG_UNWIND_INFO=y
+CONFIG_STACK_UNWIND=y
CONFIG_FORCED_INLINING=y
-# CONFIG_DEBUG_SYNCHRO_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_PROFILE_LIKELY is not set
+CONFIG_DEBUG_SYNCHRO_TEST=y
+CONFIG_RCU_TORTURE_TEST=y
+CONFIG_PROFILE_LIKELY=y
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
CONFIG_EARLY_PRINTK=y

i'm continuing the config-bisect.

Ingo

2006-05-30 22:29:33

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> * Ingo Molnar <[email protected]> wrote:
>
> > PREEMPT wasnt the problem but CONFIG_DEBUG_STACKOVERFLOW (at least).
> > There's some other debug option that seems incompatible too - i'm
> > still trying to figure out which one.
>
> narrowed it down to:

CONFIG_PROFILE_LIKELY it is, please disable it in your config, along
with CONFIG_DEBUG_STACKOVERFLOW:

--- .config.good02 2006-05-31 00:28:35.000000000 +0200
+++ .config.bad01 2006-05-31 00:22:28.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc5-mm1-lockdep
-# Wed May 31 00:26:04 2006
+# Wed May 31 00:19:45 2006
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -1819,7 +1819,7 @@ CONFIG_STACK_UNWIND=y
CONFIG_FORCED_INLINING=y
CONFIG_DEBUG_SYNCHRO_TEST=y
CONFIG_RCU_TORTURE_TEST=y
-# CONFIG_PROFILE_LIKELY is not set
+CONFIG_PROFILE_LIKELY=y
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
CONFIG_EARLY_PRINTK=y

Ingo

2006-05-30 22:31:37

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 31/05/06, Ingo Molnar <[email protected]> wrote:
>
> * Ingo Molnar <[email protected]> wrote:
>
> > * Ingo Molnar <[email protected]> wrote:
> >
> > > PREEMPT wasnt the problem but CONFIG_DEBUG_STACKOVERFLOW (at least).
> > > There's some other debug option that seems incompatible too - i'm
> > > still trying to figure out which one.
> >
> > narrowed it down to:
>
> CONFIG_PROFILE_LIKELY it is, please disable it in your config, along
> with CONFIG_DEBUG_STACKOVERFLOW:

Ok, thanks.

>
> Ingo
>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 22:32:29

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> CONFIG_PROFILE_LIKELY it is, please disable it in your config, along
> with CONFIG_DEBUG_STACKOVERFLOW:

i've also uploaded an updated tracing patch to:

http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch

which forces CONFIG_PROFILE_LIKELY off if LATENCY_TRACE is enabled.

Ingo

2006-05-30 22:41:07

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 30 May 2006 14:24:03 -0700
Roland Dreier <[email protected]> wrote:

> I'm seeing problems with MSI-X interrupts on 2.6.17-rc5-mm1. I'll try
> to debug the MSI patches in -mm further in the next day or so, but for
> now I'll post the symptoms.
>
> When I load the ib_mthca driver with MSI-X interrupts enabled, I get
> the following crash as soon as the first interrupt is generated.

do_IRQ() did a jump-to-zero. So there's no handler installed.

> [ 329.979089] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
> [ 329.995487] [<0000000000000000>]
> <8>[ 330.012818] PGD 119477067 PUD 119b48067 PMD 0
> [ 330.027009] Oops: 0010 [1] SMP
> [ 330.036503] last sysfs file: /class/net/ib2/address
> <8>[ 330.051084] CPU 0
> <8>[ 330.057932] Modules linked in: ib_mthca ib_srp ib_cm ib_ipoib ib_sa ib_mad ib_core nfs lockd nfs_acl sunrpc ipv6 thermal fan button processor ac battery dm_mod ide_generic ide_disk evdev usbhid ide_cd cdrom amd74xx psmouse serio_raw e1000 pcspkr generic ohci_hcd ehci_hcd ide_core
> <8>[ 330.134158] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #7
> <8>[ 330.151851] RIP: 0010:[<0000000000000000>] [<0000000000000000>]
> <8>[ 330.170116] RSP: 0000:ffffffff805d4f98 EFLAGS: 00010016
> <8>[ 330.187344] RAX: 0000000000005200 RBX: ffffffff80873eb8 RCX: 0000000000000000
> <8>[ 330.209448] RDX: ffffffff80873eb8 RSI: ffffffff80863e80 RDI: 0000000000000052
> <8>[ 330.231552] RBP: ffffffff805d4fb0 R08: 0000000000000001 R09: ffffffff804380f7
> <8>[ 330.253656] R10: ffff81007adc6000 R11: 0000000000000000 R12: 0000000000000052
> <8>[ 330.275762] R13: 0000000000090000 R14: 0000000000000000 R15: 0000000000000000
> <8>[ 330.297867] FS: 00002b9e555966d0(0000) GS:ffffffff8085c000(0000) knlGS:0000000000000000
> <8>[ 330.322823] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> <8>[ 330.340777] CR2: 0000000000000000 CR3: 0000000119bd7000 CR4: 00000000000006e0
> <8>[ 330.362882] Process idle (pid: 0, threadinfo ffffffff80872000, task ffffffff804baa00)
> <8>[ 330.387061] Stack: ffffffff8020c693 ffffffff80207c93 0000000000000100 ffffffff80873ee0
> <8>[ 330.411423] ffffffff80209b89 <EOI> ff6500230f54e8fa 65c900000020250c 00000010250c8b48
> <8>[ 330.438222] f700001fd8e98148 7400000003582444
> <8>[ 330.454231] Call Trace:
> <8>[ 330.462870] <IRQ> [<ffffffff8020c693>] do_IRQ+0x5e/0x6f
> <8>[ 330.479631] [<ffffffff80207c93>] default_idle+0x0/0x9b
> <8>[ 330.496080] [<ffffffff80209b89>] ret_from_intr+0x0/0xf
> <8>[ 330.512526] <EOI>Unable to handle kernel paging request at ffffffff82800000 RIP:
> [ 332.136320] [<ffffffff8020ad6e>] show_trace+0x145/0x195
> <8>[ 332.159591] PGD 203027 PUD 205027 PMD 0
> [ 332.172226] Oops: 0000 [2] SMP
> [ 332.181720] last sysfs file: /class/net/ib2/address
> <

The possibly-relevant patches are:

box:/usr/src/25> grep msi series
gregkh-pci-pci-msi-abstractions-and-support-for-altix.patch
gregkh-pci-pci-altix-msi-support.patch
allow-msi-to-work-on-kexec-kernel.patch
pci-disable-msi-mode-in-pci_disable_device.patch
x86_64-msi-apic-build-fix.patch

But this bug seems to be at a higher level - I'd be more suspecting the
genirq patches forgot to install a handler somehow.


2006-05-30 22:49:35

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Andrew Morton <[email protected]> wrote:

> On Tue, 30 May 2006 14:24:03 -0700
> Roland Dreier <[email protected]> wrote:
>
> > I'm seeing problems with MSI-X interrupts on 2.6.17-rc5-mm1. I'll try
> > to debug the MSI patches in -mm further in the next day or so, but for
> > now I'll post the symptoms.
> >
> > When I load the ib_mthca driver with MSI-X interrupts enabled, I get
> > the following crash as soon as the first interrupt is generated.
>
> do_IRQ() did a jump-to-zero. So there's no handler installed.

yep. No desc->irq_handler. That should be 'impossible' on x86_64,
because the irq_desc[] array is initialized with handle_bad_irq, and
from that point on x86_64 only uses set_irq_chip_and_handler(), which at
most can set it to another (non-NULL) handle_irq function. Weird.

does MSI much with the irq_desc[] separately perhaps, clearing
handle_irq in the process perhaps?

Ingo

2006-05-30 22:52:33

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> > do_IRQ() did a jump-to-zero. So there's no handler installed.
>
> yep. No desc->irq_handler. That should be 'impossible' on x86_64,
> because the irq_desc[] array is initialized with handle_bad_irq, and
> from that point on x86_64 only uses set_irq_chip_and_handler(), which
> at most can set it to another (non-NULL) handle_irq function. Weird.
>
> does MSI much with the irq_desc[] separately perhaps, clearing
> handle_irq in the process perhaps?

aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
entry. This needs to be converted to irqchips.

Ingo

2006-05-30 22:57:50

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

>
> * Ingo Molnar <[email protected]> wrote:
>
> > > do_IRQ() did a jump-to-zero. So there's no handler installed.
> >
> > yep. No desc->irq_handler. That should be 'impossible' on x86_64,
> > because the irq_desc[] array is initialized with handle_bad_irq, and
> > from that point on x86_64 only uses set_irq_chip_and_handler(), which
> > at most can set it to another (non-NULL) handle_irq function. Weird.
> >
> > does MSI much with the irq_desc[] separately perhaps, clearing
> > handle_irq in the process perhaps?
>
> aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> entry. This needs to be converted to irqchips.

still ... that doesnt explain how the irq_desc[].irq_handler got NULL.

Ingo

2006-05-30 22:59:34

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 31/05/06, Ingo Molnar <[email protected]> wrote:
>
> * Michal Piotrowski <[email protected]> wrote:
>
> > > http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch
> > >
> > >just apply it ontop of your current tree and accept all the new .config
> > >options as the kernel suggests them to you.
> >
> > I can't boot with that patch. I even don't see "Uncompressing
> > Linux..." - machine reboots.
> > I have 2.6.17-rc5-mm1 +
> > genirq-cleanup-remove-irq_descp-fix.patch
> > lock-validator-irqtrace-support-non-x86-architectures.patch
> > lock-validator-special-locking-sb-s_umount-2-fix.patch
> > from hot fixes
> > +
> > Arjan's net/ipv4/igmp.c patch.
>
> could you try to 1) disable PREEMPT, 2) apply the -V2 rollup of all
> fixes so far to 2.6.17-rc5-mm1:
>
> http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch

I'll try to reproduce that bug now... but here is new one :)

BUG: key f7155db0 not in .data!
( modprobe-485 |#0): new 15286092 us user-latency.
stopped custom tracer.
BUG: warning at /usr/src/linux-mm/kernel/lockdep.c:1985/lockdep_init_map()
[<c0104208>] show_trace+0x1b/0x20
[<c01042e6>] dump_stack+0x1f/0x24
[<c0136e26>] lockdep_init_map+0x65/0xb0
[<c0134a62>] __mutex_init+0x46/0x50
[<f98b72a3>] find_driver+0xb7/0x115 [snd_seq_device]
[<f98b776f>] snd_seq_device_register_driver+0x42/0xeb [snd_seq_device]
[<f887012d>] alsa_seq_oss_init+0x12d/0x158 [snd_seq_oss]
[<c013fdad>] sys_init_module+0x96/0x1d4
[<c02eb442>] sysenter_past_esp+0x63/0xa1
---------------------------
| preempt count: 00000000 ]
| 0-level deep critical section nesting:
----------------------------------------

Here is dmesg
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-dmesg3

Here is new config (without some debugging options)
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config4

>
> ? I'll try your config meanwhile.
>
> Ingo
>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 23:04:45

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

CC'ed Ben, who is hacking on msi, IIRC

On Wed, 2006-05-31 at 00:58 +0200, Ingo Molnar wrote:
> > >
> > > does MSI much with the irq_desc[] separately perhaps, clearing
> > > handle_irq in the process perhaps?
> >
> > aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> > entry. This needs to be converted to irqchips.
>
> still ... that doesnt explain how the irq_desc[].irq_handler got NULL.

It has it's own irq_desc array

static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };

Too tired right now. I look into this tomorrow.

tglx


2006-05-30 23:04:55

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Michal Piotrowski <[email protected]> wrote:

> I'll try to reproduce that bug now... but here is new one :)
>
> BUG: key f7155db0 not in .data!
> ( modprobe-485 |#0): new 15286092 us user-latency.
> stopped custom tracer.
> BUG: warning at /usr/src/linux-mm/kernel/lockdep.c:1985/lockdep_init_map()

Arjan's sound patch is wrong: the key must not be in a dynamic variable!

Could you try the patch below? This uses the ID string as the key. (the
ID string seems to be based on static kernel strings most of the time,
so this might as well work)

Ingo

Index: linux/sound/core/seq/seq_device.c
===================================================================
--- linux.orig/sound/core/seq/seq_device.c
+++ linux/sound/core/seq/seq_device.c
@@ -382,7 +382,7 @@ static struct ops_list * create_driver(c

/* set up driver entry */
strlcpy(ops->id, id, sizeof(ops->id));
- mutex_init_key(&ops->reg_mutex, id, &ops->reg_mutex_key);
+ mutex_init_key(&ops->reg_mutex, id, (struct lockdep_type_key)id);
ops->driver = DRIVER_EMPTY;
INIT_LIST_HEAD(&ops->dev_list);
/* lock this instance */

2006-05-30 23:05:59

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> Could you try the patch below? This uses the ID string as the key.
> (the ID string seems to be based on static kernel strings most of the
> time, so this might as well work)

that patch should be:

Index: linux/sound/core/seq/seq_device.c
===================================================================
--- linux.orig/sound/core/seq/seq_device.c
+++ linux/sound/core/seq/seq_device.c
@@ -74,8 +74,6 @@ struct ops_list {
struct mutex reg_mutex;

struct list_head list; /* next driver */
-
- struct lockdep_type_key reg_mutex_key;
};


@@ -382,7 +380,7 @@ static struct ops_list * create_driver(c

/* set up driver entry */
strlcpy(ops->id, id, sizeof(ops->id));
- mutex_init_key(&ops->reg_mutex, id, &ops->reg_mutex_key);
+ mutex_init_key(&ops->reg_mutex, id, (struct lockdep_type_key *)id);
ops->driver = DRIVER_EMPTY;
INIT_LIST_HEAD(&ops->dev_list);
/* lock this instance */

2006-05-30 23:14:28

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Thomas Gleixner <[email protected]> wrote:

> CC'ed Ben, who is hacking on msi, IIRC
>
> On Wed, 2006-05-31 at 00:58 +0200, Ingo Molnar wrote:
> > > >
> > > > does MSI much with the irq_desc[] separately perhaps, clearing
> > > > handle_irq in the process perhaps?
> > >
> > > aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> > > entry. This needs to be converted to irqchips.
> >
> > still ... that doesnt explain how the irq_desc[].irq_handler got NULL.
>
> It has it's own irq_desc array
>
> static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };

ah ...

then i guess a quick solution would be to do:

if (!irq_desc[irq].irq_handler)
__do_IRQ(irq, regs);
else
generic_handle_irq(irq, regs);

in arch/x86_64/kernel/irq.c [and in arch/i386/kernel/irq.c], and
__do_IRQ() should handle the old-style irq-type MSI code just fine.

Ingo

2006-05-30 23:16:14

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 2006-05-31 at 01:05 +0200, Thomas Gleixner wrote:
> CC'ed Ben, who is hacking on msi, IIRC
>
> On Wed, 2006-05-31 at 00:58 +0200, Ingo Molnar wrote:
> > > >
> > > > does MSI much with the irq_desc[] separately perhaps, clearing
> > > > handle_irq in the process perhaps?
> > >
> > > aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> > > entry. This needs to be converted to irqchips.
> >
> > still ... that doesnt explain how the irq_desc[].irq_handler got NULL.
>
> It has it's own irq_desc array
>
> static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };
>
> Too tired right now. I look into this tomorrow.

The only way to fix drivers/pci/msi.c is to delete it.

Honest, there is nothing salvageable in that code. I've been looking at
the issues involved in supporting MSIs on various powerpc platforms and
I came to the conclusion that there isn't a single re-useable line of
code in there. Not only it's totally specific to a given set of intel
chipsets, but it's also broken beyond imagination. I wonder how that
code got in there in the first place, especially maskqueraded as
"generic" code. Greg must have been drunk.

At this point, the only solution for us (powerpc) is to allow the arch
to have it's own implementatin of the toplevel MSI API (pci_enable_msi()
etc...). From there, depending on what we come up with, we'll look into
moving that back into generic code, but we are under some pressure for
time (stupid 2 weeks merge window thing is a pain sometimes).

Ben.


2006-05-30 23:32:17

by Roland Dreier

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

> then i guess a quick solution would be to do:
>
> if (!irq_desc[irq].irq_handler)
> __do_IRQ(irq, regs);
> else
> generic_handle_irq(irq, regs);
>
> in arch/x86_64/kernel/irq.c [and in arch/i386/kernel/irq.c], and
> __do_IRQ() should handle the old-style irq-type MSI code just fine.

Indeed (fixing ".irq_handler" to be ".handle_irq"), with that change
MSI-X works fine with ib_mthca on my system. The only slightly funny
quirk is that the IRQ type is shown as "PCI-MSI-X-<NULL>", I guess
because it's printing handle_irq_name(NULL).

However (as BenH pointed out) there's definitely some work to do to
untangle MSI...

- R.

2006-05-30 23:49:08

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 31/05/06, Ingo Molnar <[email protected]> wrote:
>
> * Ingo Molnar <[email protected]> wrote:
>
> > Could you try the patch below? This uses the ID string as the key.
> > (the ID string seems to be based on static kernel strings most of the
> > time, so this might as well work)
>
> that patch should be:
>

Thanks, problem solved.

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 23:53:24

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Hi,

On 30/05/06, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>

I resend this one. It contains additional debug info

============================
[ BUG: illegal lock usage! ]
----------------------------
illegal {in-hardirq-W} -> {hardirq-on-W} usage.
events/1/9 [HC0[0]:SC1[1]:HE1:SE0] takes:
(&base->lock#2){++..}, at: [<c0128115>] run_timer_softirq+0x42/0x17a
{in-hardirq-W} state was registered at:
[<c013869a>] lockdep_acquire+0x50/0x68
[<c02eae04>] _spin_lock_irqsave+0x2d/0x3c
[<c0128b42>] lock_timer_base+0x1f/0x3a
[<c0128bfd>] __mod_timer+0x29/0xaa
[<c0128f48>] mod_timer+0x32/0x36
[<c02903da>] i8042_interrupt+0x21/0x1fb
[<c014c0c8>] handle_IRQ_event+0x1d/0x52
[<c014d007>] handle_edge_irq+0xc7/0x10c
[<c01054ca>] do_IRQ+0x86/0xac
irq event stamp: 44459
hardirqs last enabled at (44458): [<c02eb137>] _spin_unlock_irq+0x24/0x47
hardirqs last disabled at (44459): [<c02ead78>] _spin_lock_irq+0x11/0x38
softirqs last enabled at (44446): [<c012492d>] __do_softirq+0xf0/0xf8
softirqs last disabled at (44453): [<c01053e5>] do_softirq+0x5e/0xbd

other info that might help us debug this:
1 locks held by events/1/9:
#0: (&base->lock#2){++..}, at: [<c0128115>] run_timer_softirq+0x42/0x17a

stack backtrace:
[<c0104208>] show_trace+0x1b/0x20
[<c01042e6>] dump_stack+0x1f/0x24
[<c0136cbc>] print_usage_bug+0x1a5/0x1b1
[<c01372ef>] mark_lock+0x21d/0x3e7
[<c01374fc>] mark_held_locks+0x43/0x63
[<c0138421>] trace_hardirqs_on+0xc4/0x10b
[<c02eb512>] restore_nocheck+0x8/0xb
=======================
---------------------------
| preempt count: 00000003 ]
| 3-level deep critical section nesting:
----------------------------------------
.. [<c02ead7f>] .... _spin_lock_irq+0x18/0x38
.....[<c0128115>] .. ( <= run_timer_softirq+0x42/0x17a)
.. [<c011fe13>] .... vprintk+0x15/0x2e0
.....[<c01200f8>] .. ( <= printk+0x1a/0x1c)
.. [<c02eadf2>] .... _spin_lock_irqsave+0x1b/0x3c
.....[<c011f923>] .. ( <= release_console_sem+0x1f/0x1e5)

Here is dmesg
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-dmesg4

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config4

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-30 23:55:52

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, May 31, 2006 at 09:15:49AM +1000, Benjamin Herrenschmidt wrote:
> On Wed, 2006-05-31 at 01:05 +0200, Thomas Gleixner wrote:
> > CC'ed Ben, who is hacking on msi, IIRC
> >
> > On Wed, 2006-05-31 at 00:58 +0200, Ingo Molnar wrote:
> > > > >
> > > > > does MSI much with the irq_desc[] separately perhaps, clearing
> > > > > handle_irq in the process perhaps?
> > > >
> > > > aha - drivers/pci/msi.c sets msix_irq_type, which has no handle_irq
> > > > entry. This needs to be converted to irqchips.
> > >
> > > still ... that doesnt explain how the irq_desc[].irq_handler got NULL.
> >
> > It has it's own irq_desc array
> >
> > static struct msi_desc* msi_desc[NR_IRQS] = { [0 ... NR_IRQS-1] = NULL };
> >
> > Too tired right now. I look into this tomorrow.
>
> The only way to fix drivers/pci/msi.c is to delete it.
>
> Honest, there is nothing salvageable in that code. I've been looking at
> the issues involved in supporting MSIs on various powerpc platforms and
> I came to the conclusion that there isn't a single re-useable line of
> code in there. Not only it's totally specific to a given set of intel
> chipsets, but it's also broken beyond imagination. I wonder how that
> code got in there in the first place, especially maskqueraded as
> "generic" code. Greg must have been drunk.

No, not drunk, just that no other arch offered up any potential help to
get this working. So, we have one arch that has it working well, and
finally, many years later when PPC64 catches up with the rest of the
world, we have issues :)

Feel free to help untangle it. ia64 just did a big chunk of work on
this, and there are further patches in the -mm tree that help get it
working there. ppc64 and other arch support are also welcome. You are
the ones who know how your arch handles this stuff the best.

> At this point, the only solution for us (powerpc) is to allow the arch
> to have it's own implementatin of the toplevel MSI API (pci_enable_msi()
> etc...). From there, depending on what we come up with, we'll look into
> moving that back into generic code, but we are under some pressure for
> time (stupid 2 weeks merge window thing is a pain sometimes).

2 week merge window? Come on, just give it to me and let it sit in -mm
for a while. I have some stuff in there for over 2 months before it
goes to Linus to make sure that it's safe. You can do the same for your
trees.

I gladly accept patches...

thanks,

greg k-h

2006-05-31 03:09:04

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 2006-05-31 at 01:49 +0200, Michal Piotrowski wrote:
> On 31/05/06, Ingo Molnar <[email protected]> wrote:
> >
> > * Ingo Molnar <[email protected]> wrote:
> >
> > > Could you try the patch below? This uses the ID string as the key.
> > > (the ID string seems to be based on static kernel strings most of the
> > > time, so this might as well work)
> >
> > that patch should be:
> >
>
> Thanks, problem solved.

Had the same problem, and I can also confirm that that patch fixes it.

-- Steve


2006-05-31 03:17:41

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

Oh look what I found. It seems that little driver of Andrew's has come
back to haunt me :) And I think it has to do with that cute little
disable_irq in vortex_timer again.


============================
[ BUG: illegal lock usage! ]
----------------------------
illegal {in-hardirq-W} -> {hardirq-on-W} usage.
idle/0 [HC0[0]:SC1[2]:HE1:SE0] takes:
(&vp->lock){++..}, at: [<f8895b44>] vortex_timer+0x414/0x490 [3c59x]
{in-hardirq-W} state was registered at:
[<c013c759>] lockdep_acquire+0x59/0x70
[<c031a11d>] _spin_lock+0x3d/0x50
[<f8898983>] boomerang_interrupt+0x33/0x470 [3c59x]
[<c0147a11>] handle_IRQ_event+0x31/0x70
[<c0149304>] handle_level_irq+0xa4/0x100
[<c0105658>] do_IRQ+0x58/0x90
[<c010348d>] common_interrupt+0x25/0x2c
[<c010162d>] cpu_idle+0x4d/0xb0
[<c01002e5>] rest_init+0x45/0x50
[<c03f881a>] start_kernel+0x32a/0x460
[<c0100210>] 0xc0100210
irq event stamp: 220672
hardirqs last enabled at (220672): [<c031aa45>] _spin_unlock_irqrestore+0x65/00hardirqs last disabled at (220671): [<c031a5d6>] _spin_lock_irqsave+0x16/0x60
softirqs last enabled at (220658): [<c0124453>] __do_softirq+0xf3/0x110
softirqs last disabled at (220667): [<c01244e5>] do_softirq+0x75/0x80

other info that might help us debug this:
no locks held by idle/0.

stack backtrace:
<c01052bb> show_trace+0x1b/0x20 <c01052e6> dump_stack+0x26/0x30
<c013af5d> print_usage_bug+0x22d/0x240 <c013b591> mark_lock+0x621/0x6c0
<c013b6ff> __lockdep_acquire+0xcf/0xd30 <c013c759> lockdep_acquire+0x59/0x70
<c031a172> _spin_lock_bh+0x42/0x50 <f8895b44> vortex_timer+0x414/0x490 [3c59x] <c0128cf9> run_timer_softirq+0xc9/0x1a0 <c01243e7> __do_softirq+0x87/0x110
<c01244e5> do_softirq+0x75/0x80 <c0124650> irq_exit+0x50/0x60
<c01102a3> smp_apic_timer_interrupt+0x73/0x80 <c010354e> apic_timer_interrupt0 <c010162d> cpu_idle+0x4d/0xb0 <c010f2a5> start_secondary+0x455/0x500
<00000000> 0x0 <f7f85fb4> 0xf7f85fb4


-- Steve


2006-05-31 04:10:49

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 30 May 2006 23:17:28 -0400
Steven Rostedt <[email protected]> wrote:

> Oh look what I found. It seems that little driver of Andrew's has come
> back to haunt me :) And I think it has to do with that cute little
> disable_irq in vortex_timer again.
>
>
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {in-hardirq-W} -> {hardirq-on-W} usage.
> idle/0 [HC0[0]:SC1[2]:HE1:SE0] takes:
> (&vp->lock){++..}, at: [<f8895b44>] vortex_timer+0x414/0x490 [3c59x]
> {in-hardirq-W} state was registered at:
> [<c013c759>] lockdep_acquire+0x59/0x70
> [<c031a11d>] _spin_lock+0x3d/0x50
> [<f8898983>] boomerang_interrupt+0x33/0x470 [3c59x]
> [<c0147a11>] handle_IRQ_event+0x31/0x70
> [<c0149304>] handle_level_irq+0xa4/0x100
> [<c0105658>] do_IRQ+0x58/0x90
> [<c010348d>] common_interrupt+0x25/0x2c
> [<c010162d>] cpu_idle+0x4d/0xb0
> [<c01002e5>] rest_init+0x45/0x50
> [<c03f881a>] start_kernel+0x32a/0x460
> [<c0100210>] 0xc0100210
> irq event stamp: 220672
> hardirqs last enabled at (220672): [<c031aa45>] _spin_unlock_irqrestore+0x65/00hardirqs last disabled at (220671): [<c031a5d6>] _spin_lock_irqsave+0x16/0x60
> softirqs last enabled at (220658): [<c0124453>] __do_softirq+0xf3/0x110
> softirqs last disabled at (220667): [<c01244e5>] do_softirq+0x75/0x80
>
> other info that might help us debug this:
> no locks held by idle/0.
>
> stack backtrace:
> <c01052bb> show_trace+0x1b/0x20 <c01052e6> dump_stack+0x26/0x30
> <c013af5d> print_usage_bug+0x22d/0x240 <c013b591> mark_lock+0x621/0x6c0
> <c013b6ff> __lockdep_acquire+0xcf/0xd30 <c013c759> lockdep_acquire+0x59/0x70
> <c031a172> _spin_lock_bh+0x42/0x50 <f8895b44> vortex_timer+0x414/0x490 [3c59x] <c0128cf9> run_timer_softirq+0xc9/0x1a0 <c01243e7> __do_softirq+0x87/0x110
> <c01244e5> do_softirq+0x75/0x80 <c0124650> irq_exit+0x50/0x60
> <c01102a3> smp_apic_timer_interrupt+0x73/0x80 <c010354e> apic_timer_interrupt0 <c010162d> cpu_idle+0x4d/0xb0 <c010f2a5> start_secondary+0x455/0x500
> <00000000> 0x0 <f7f85fb4> 0xf7f85fb4

Without having looked at it very hard, I'd venture that this is a false
positive - that driver uses disable_irq() to prevent reentry onto that
lock.

It does that because it knows it's about to spend a long time talking with
the mii registers and it doesn't want to do that with interrupts disabled.

2006-05-31 04:34:57

by Keith Owens

[permalink] [raw]
Subject: Re: [patch, -rc5-mm1] lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386

Ingo Molnar (on Tue, 30 May 2006 14:29:50 +0200) wrote:
>
>* Mike Galbraith <[email protected]> wrote:
>
>> > > BUG: warning at kernel/lockdep.c:2398/check_flags()
>> >
>> > this one could be related to NMI. We are already disabling NMI on
>> > x86_64, but i thought i had it fixed up for i386 - apparently not.
>>
>> Booted with nmi_watchdog=0, no warning and no deadlock.
>
>ok, great. The patch below turns off NMI on i386 automatically.
>
>-------------------
>Subject: lock validator: disable NMI watchdog if CONFIG_LOCKDEP, i386
>From: Ingo Molnar <[email protected]>
>
>The NMI watchdog uses spinlocks (notifier chains, etc.),
>so it's not lockdep-safe at the moment.

Where? Since 2.6.17-rc1 the notify_die() callback uses RCU, not
spinlocks.

2006-05-31 06:30:43

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Andrew Morton <[email protected]> wrote:

> Without having looked at it very hard, I'd venture that this is a
> false positive - that driver uses disable_irq() to prevent reentry
> onto that lock.

correct.

> It does that because it knows it's about to spend a long time talking
> with the mii registers and it doesn't want to do that with interrupts
> disabled.

i still consider it a 'quirky' locking construct, because disabling
interrupts for a long time also disables all other devices sharing the
same IRQ line - not nice.

Also, this is a really hard case for lockdep to detect automatically.
(fortunately it's also relatively rare)

OTOH, the straightforward lockdep workaround would be to take the
spinlock and thus disable all local interrupts - not too nice either.

Albeit in some ways it's still a bit nicer conceptually than disabling
the irq line, because other CPUs are still operational, and under
certain locking designs [preempt-rt] spin_lock_irq() does not disable
local interrupts.

Steve, can you think of any better solution? I dont have this card.

Ingo

2006-05-31 06:39:10

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 2006-05-30 at 21:14 -0700, Andrew Morton wrote:
> On Tue, 30 May 2006 23:17:28 -0400
> Steven Rostedt <[email protected]> wrote:

> Without having looked at it very hard, I'd venture that this is a false
> positive - that driver uses disable_irq() to prevent reentry onto that
> lock.
>
> It does that because it knows it's about to spend a long time talking with
> the mii registers and it doesn't want to do that with interrupts disabled.

the scsi controller who shares that irq with your NIC just *enjoys* long
disable_irq() periods.. it can be nice and lazy about it ;)

2006-05-31 10:55:51

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> CONFIG_PROFILE_LIKELY it is, please disable it in your config, along
> with CONFIG_DEBUG_STACKOVERFLOW:

the tracer fix for PROFILE_LIKELY is below. I have also uploaded an
updated tracing patch to

http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch

which allows the enabling of PROFILE_LIKELY && LATENCY_TRACING again.
There's an updated combo patch too:

http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch

for easy pickup of all current fixes against mm1 baseline.

Ingo

Index: linux/lib/likely_prof.c
===================================================================
--- linux.orig/lib/likely_prof.c
+++ linux/lib/likely_prof.c
@@ -20,7 +20,7 @@

static struct likeliness *likeliness_head;

-int do_check_likely(struct likeliness *likeliness, int ret)
+int notrace do_check_likely(struct likeliness *likeliness, int ret)
{
static unsigned long likely_lock;

2006-05-31 11:51:07

by Steven Rostedt

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 2006-05-31 at 08:31 +0200, Ingo Molnar wrote:
> * Andrew Morton <[email protected]> wrote:
>
> > Without having looked at it very hard, I'd venture that this is a
> > false positive - that driver uses disable_irq() to prevent reentry
> > onto that lock.
>
> correct.
>
> > It does that because it knows it's about to spend a long time talking
> > with the mii registers and it doesn't want to do that with interrupts
> > disabled.
>
> i still consider it a 'quirky' locking construct, because disabling
> interrupts for a long time also disables all other devices sharing the
> same IRQ line - not nice.
>
> Also, this is a really hard case for lockdep to detect automatically.
> (fortunately it's also relatively rare)

What's the standard way to teach lockdep about this?

>
> OTOH, the straightforward lockdep workaround would be to take the
> spinlock and thus disable all local interrupts - not too nice either.
>
> Albeit in some ways it's still a bit nicer conceptually than disabling
> the irq line, because other CPUs are still operational, and under
> certain locking designs [preempt-rt] spin_lock_irq() does not disable
> local interrupts.
>
> Steve, can you think of any better solution? I dont have this card.

Until this popped up, I didn't know I had this card either ;)
(the last time we dealt with this card was to help someone else)

Anyway, I'll look into the way this card works and start to play with it
when I get some time.

Andrew, do you have any docs that I can read to understand the card a
little better?

Thanks,

-- Steve


2006-05-31 11:55:34

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Steven Rostedt <[email protected]> wrote:

> > > It does that because it knows it's about to spend a long time talking
> > > with the mii registers and it doesn't want to do that with interrupts
> > > disabled.
> >
> > i still consider it a 'quirky' locking construct, because disabling
> > interrupts for a long time also disables all other devices sharing the
> > same IRQ line - not nice.
> >
> > Also, this is a really hard case for lockdep to detect
> > automatically. (fortunately it's also relatively rare)
>
> What's the standard way to teach lockdep about this?

Not yet. One possibility would be to use existing locks and to get rid
of the disable_irq(). One technique could be to disable the IRQ on the
card (i think the code already does this), and then call
synchronize_irq() instead of disable_irq().

Ingo

2006-05-31 13:51:36

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 30/05/06, Michal Piotrowski <[email protected]> wrote:
> Hi,
>
> On 30/05/06, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> >
>
> SCSI or libata problem.
> ============================
> [ BUG: illegal lock usage! ]
> ----------------------------
> illegal {in-hardirq-W} -> {hardirq-on-W} usage.
> init/1 [HC0[0]:SC0[0]:HE1:SE1] takes:
> (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
> {in-hardirq-W} state was registered at:
> [<c0139a56>] lockdep_acquire+0x69/0x82
> [<c02f237c>] _spin_lock_irqsave+0x2a/0x3a
> [<c0129a24>] lock_timer_base+0x29/0x55
> [<c0129e48>] del_timer+0x19/0x4c
> [<c02651e2>] scsi_delete_timer+0xe/0x1f
> [<c0262964>] scsi_done+0xb/0x19
> [<c0273ed3>] ata_scsi_qc_complete+0x73/0x7f
> [<c027024a>] __ata_qc_complete+0x26c/0x274
> [<c02704f0>] ata_qc_complete+0xd5/0xdc
> [<c0270c42>] ata_hsm_qc_complete+0x201/0x210
> [<c02713e7>] ata_hsm_move+0x796/0x7ac
> [<c027314e>] ata_interrupt+0x173/0x1b4
> [<c014c4f4>] handle_IRQ_event+0x20/0x50
> [<c014d76e>] handle_level_irq+0xa1/0xeb
> [<c010579c>] do_IRQ+0xa1/0xc9
> irq event stamp: 576924
> hardirqs last enabled at (576923): [<c02f26c7>]
> _spin_unlock_irqrestore+0x36/0x69
> hardirqs last disabled at (576924): [<c02f2361>] _spin_lock_irqsave+0xf/0x3a
> softirqs last enabled at (576878): [<c0125873>] __do_softirq+0xea/0xf0
> softirqs last disabled at (576869): [<c0105689>] do_softirq+0x59/0xcb
>
> other info that might help us debug this:
> 1 locks held by init/1:
> #0: (&base->lock#2){++..}, at: [<c0129a24>] lock_timer_base+0x29/0x55
>
> stack backtrace:
> [<c0103e52>] show_trace_log_lvl+0x4b/0xf4
> [<c01044b3>] show_trace+0xd/0x10
> [<c010457b>] dump_stack+0x19/0x1b
> [<c0137d63>] print_usage_bug+0x1a1/0x1ab
> [<c0138458>] mark_lock+0x2d7/0x514
> [<c01386dc>] mark_held_locks+0x47/0x65
> [<c0139745>] trace_hardirqs_on+0x12b/0x16f
> [<c02f2b61>] restore_nocheck+0x8/0xb
>
> Here is config
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config2
>
> Here is dmesg
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-dmesg2

I can't reproduce this bug with current
http://redhat.com/~mingo/lockdep-patches/latency-tracing-lockdep.patch
and updated
http://redhat.com/~mingo/lockdep-patches/lockdep-combo-2.6.17-rc5-mm1.patch
but these two bugs looks similar (both were previously reported). Both
appears while starting avahi daemon.

http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/dmesg_1
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/dmesg_2

http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/latency_trace_1.bz2
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/latency_trace_2.bz2

Here is config
http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/mm-config5

I haven't noticed these bugs with "maxcpus=1" boot param.

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-31 14:02:24

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Michal Piotrowski <[email protected]> wrote:

> but these two bugs looks similar (both were previously reported). Both
> appears while starting avahi daemon.
>
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/dmesg_1
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/dmesg_2
>
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/latency_trace_1.bz2
> http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm1/latency_trace_2.bz2

thanks - these traces made it really easy to spot the problem! The
problem seems to be caused by a pagefault:

<...>-1 0D..1 10648us : check_chain_key (__lockdep_acquire)
<...>-1 0D..1 10649us+: _raw_spin_lock (_spin_lock_irqsave)
<...>-1 0D..1 10651us : do_page_fault (error_code)
<...>-1 0D..1 10652us : trace_hardirqs_off (ret_from_exception)
<...>-1 0D..1 10653us : trace_hardirqs_on (restore_nocheck)
<...>-1 0D..1 10654us : mark_held_locks (trace_hardirqs_on)
<...>-1 0D..1 10654us : mark_lock (mark_held_locks)
<...>-1 0D..1 10655us : save_trace (mark_lock)
<...>-1 0D..1 10656us : save_stack_trace (save_trace)
<...>-1 0D..1 10658us : print_usage_bug (mark_lock)

i think what happened is that the pagefault happened with irqs disabled,
and the entry.S return-to-exception-site irq-flags tracing code
mistakenly turned on the irq flag - causing the mismatch and lockdep's
confusion.

if it's easy to reproduce it once more, could you apply the patch below?
That will add a trace entry about what address faulted and at what EIP.
Please also upload vmlinux.bz2 because the EIP will be a raw hex number
and i'll have to look it up. (or if it's too big then please disassemble
vmlinux via objdump -d vmlinux and upload a ~100 lines portion that is
mentioned in the new trace entry next to the do_page_fault trace entry
near the end of the latency_trace output)

Ingo

Index: linux/arch/i386/mm/fault.c
===================================================================
--- linux.orig/arch/i386/mm/fault.c
+++ linux/arch/i386/mm/fault.c
@@ -337,6 +338,7 @@ fastcall void __kprobes do_page_fault(st

/* get the address */
address = read_cr2();
+ trace_special(regs->eip, address, error_code);

tsk = current;

2006-05-31 14:05:16

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> if it's easy to reproduce it once more, could you apply the patch below?

please use the updated patch below - it adds more info so that we can
see whether irqs were really disabled (from the eflags), and we can see
whether it was userspace or kernelspace.

Ingo

Index: linux/arch/i386/mm/fault.c
===================================================================
--- linux.orig/arch/i386/mm/fault.c
+++ linux/arch/i386/mm/fault.c
@@ -337,6 +338,8 @@ fastcall void __kprobes do_page_fault(st

/* get the address */
address = read_cr2();
+ trace_special(regs->eip, address, error_code);
+ trace_special(regs->eflags, regs->xss, regs->esp);

tsk = current;

2006-05-31 14:11:49

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Ingo Molnar <[email protected]> wrote:

> i think what happened is that the pagefault happened with irqs
> disabled, and the entry.S return-to-exception-site irq-flags tracing
> code mistakenly turned on the irq flag - causing the mismatch and
> lockdep's confusion.

here's the fix for the irqs-off iret irqflags-tracing problem. Does this
fix the bug(s) on your box?

Ingo

Index: linux/arch/i386/kernel/entry.S
===================================================================
--- linux.orig/arch/i386/kernel/entry.S
+++ linux/arch/i386/kernel/entry.S
@@ -364,6 +364,8 @@ restore_all:
CFI_REMEMBER_STATE
je ldt_ss # returning to user-space with LDT SS
restore_nocheck:
+ testl $IF_MASK,EFLAGS(%esp) # interrupts off (exception path) ?
+ jz restore_nocheck_notrace
TRACE_IRQS_ON
restore_nocheck_notrace:
RESTORE_REGS
@@ -404,7 +406,10 @@ ldt_ss:
* and a switch16 pointer on top of the current frame. */
call setup_x86_bogus_stack
CFI_ADJUST_CFA_OFFSET -8 # frame has moved
+ testl $IF_MASK,EFLAGS(%esp) # interrupts off (exception path) ?
+ jz restore_nocheck_notrace2
TRACE_IRQS_ON
+restore_nocheck_notrace2:
RESTORE_REGS
lss 20+4(%esp), %esp # switch to 16bit stack
1: iret

2006-05-31 14:53:27

by Stephen Smalley

[permalink] [raw]
Subject: [patch 1/1] selinux: fix sb_lock/sb_security_lock nesting (Was: Re: 2.6.17-rc5-mm1)

On Tue, 2006-05-30 at 21:04 +0200, Arjan van de Ven wrote:
> On Tue, 2006-05-30 at 20:39 +0200, Michal Piotrowski wrote:
> > Hi,
> >
> > On 30/05/06, Andrew Morton <[email protected]> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
> > >
> >
> > I get this on 2.6.17-rc5-mm1 + hot fixes + Arjan's net/ipv4/igmp.c patch.
> >
> > May 30 20:25:56 ltg01-fedora kernel:
> > May 30 20:25:56 ltg01-fedora kernel:
> > =====================================================
> > May 30 20:25:56 ltg01-fedora kernel: [ BUG: possible circular locking
> > deadlock detected! ]
> > May 30 20:25:56 ltg01-fedora kernel:
> > -----------------------------------------------------
> > May 30 20:25:56 ltg01-fedora kernel: umount/2322 is trying to acquire lock:
> > May 30 20:25:56 ltg01-fedora kernel: (sb_security_lock){--..}, at:
> > [<c01d6400>] selinux_sb_free_security+0x17/0x4e
>
>
> ok so selinux_complete_init() does
> spin_lock(&sb_security_lock);
> next_sb:
> if (!list_empty(&superblock_security_head)) {
> struct superblock_security_struct *sbsec =
> list_entry(superblock_security_head.next,
> struct superblock_security_struct,
> list);
> struct super_block *sb = sbsec->sb;
> spin_lock(&sb_lock);
> sb->s_count++;
> spin_unlock(&sb_lock);
> spin_unlock(&sb_security_lock);
>
> nesting sb_lock inside sb_security_lock
>
> while
>
> put_super() takes the sb_lock, then calls __put_super() which calls
> selinux_sb_free_security which calls superblock_free_security() which takes sb_security_lock
> which means the nesting is opposite.
>
>
> textbook AB-BA deadlock

Yes, looks that way, although oddly I don't see this warning myself upon
performing a umount (w/ 2.6.17-rc5-mm1-lockdep). Patch below should
fix.

---

Fix unsafe nesting of sb_lock inside sb_security_lock in selinux_complete_init.
Detected by the kernel locking validator.

Signed-off-by: Stephen Smalley <[email protected]>

---

security/selinux/hooks.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

--- linux-2.6.17-rc5-mm1/security/selinux/hooks.c 2006-05-30 14:26:11.000000000 -0400
+++ linux-2.6.17-rc5-mm1-x/security/selinux/hooks.c 2006-05-31 07:29:23.000000000 -0400
@@ -4448,6 +4448,7 @@ void selinux_complete_init(void)

/* Set up any superblocks initialized prior to the policy load. */
printk(KERN_INFO "SELinux: Setting up existing superblocks.\n");
+ spin_lock(&sb_lock);
spin_lock(&sb_security_lock);
next_sb:
if (!list_empty(&superblock_security_head)) {
@@ -4456,19 +4457,20 @@ next_sb:
struct superblock_security_struct,
list);
struct super_block *sb = sbsec->sb;
- spin_lock(&sb_lock);
sb->s_count++;
- spin_unlock(&sb_lock);
spin_unlock(&sb_security_lock);
+ spin_unlock(&sb_lock);
down_read(&sb->s_umount);
if (sb->s_root)
superblock_doinit(sb, NULL);
drop_super(sb);
+ spin_lock(&sb_lock);
spin_lock(&sb_security_lock);
list_del_init(&sbsec->list);
goto next_sb;
}
spin_unlock(&sb_security_lock);
+ spin_unlock(&sb_lock);
}

/* SELinux requires early initialization in order to label

--
Stephen Smalley
National Security Agency

2006-05-31 15:05:23

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 31/05/06, Ingo Molnar <[email protected]> wrote:
>
> * Ingo Molnar <[email protected]> wrote:
>
> > i think what happened is that the pagefault happened with irqs
> > disabled, and the entry.S return-to-exception-site irq-flags tracing
> > code mistakenly turned on the irq flag - causing the mismatch and
> > lockdep's confusion.
>
> here's the fix for the irqs-off iret irqflags-tracing problem. Does this
> fix the bug(s) on your box?

Yes. Thanks!

>
> Ingo
>

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

2006-05-31 15:20:12

by Ingo Molnar

[permalink] [raw]
Subject: [patch, -rc5-mm1] lock validator: irqflags-trace entry.S fix


* Michal Piotrowski <[email protected]> wrote:

> >here's the fix for the irqs-off iret irqflags-tracing problem. Does this
> >fix the bug(s) on your box?
>
> Yes. Thanks!

great! Here's the cleaned up fix for Andrew:

----------------------------
Subject: lock validator: irqflags-trace entry.S fix
From: Ingo Molnar <[email protected]>

this fixes the irqflags-tracing bug reported (and relentlessly
debugged) by Michal Piotrowski: if we took a fault while interrupts
were disabled (for example of a vmalloc area) then irqflags-tracing
mistakenly assumed that the iret would re-enable interrupts.

Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Arjan van de Ven <[email protected]>
---
arch/i386/kernel/entry.S | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

Index: linux/arch/i386/kernel/entry.S
===================================================================
--- linux.orig/arch/i386/kernel/entry.S
+++ linux/arch/i386/kernel/entry.S
@@ -84,6 +84,15 @@ VM_MASK = 0x00020000
#define resume_kernel restore_nocheck
#endif

+.macro TRACE_IRQS_IRET
+#ifdef CONFIG_TRACE_IRQFLAGS
+ testl $IF_MASK,EFLAGS(%esp) # interrupts off?
+ jz 1f
+ TRACE_IRQS_ON
+1:
+#endif
+.endm
+
#ifdef CONFIG_VM86
#define resume_userspace_sig check_userspace
#else
@@ -364,7 +373,7 @@ restore_all:
CFI_REMEMBER_STATE
je ldt_ss # returning to user-space with LDT SS
restore_nocheck:
- TRACE_IRQS_ON
+ TRACE_IRQS_IRET
restore_nocheck_notrace:
RESTORE_REGS
addl $4, %esp
@@ -404,7 +413,7 @@ ldt_ss:
* and a switch16 pointer on top of the current frame. */
call setup_x86_bogus_stack
CFI_ADJUST_CFA_OFFSET -8 # frame has moved
- TRACE_IRQS_ON
+ TRACE_IRQS_IRET
RESTORE_REGS
lss 20+4(%esp), %esp # switch to 16bit stack
1: iret

2006-05-31 15:49:49

by James Morris

[permalink] [raw]
Subject: Re: [patch 1/1] selinux: fix sb_lock/sb_security_lock nesting (Was: Re: 2.6.17-rc5-mm1)

On Wed, 31 May 2006, Stephen Smalley wrote:

> Yes, looks that way, although oddly I don't see this warning myself upon
> performing a umount (w/ 2.6.17-rc5-mm1-lockdep). Patch below should
> fix.
>
> ---
>
> Fix unsafe nesting of sb_lock inside sb_security_lock in selinux_complete_init.
> Detected by the kernel locking validator.
>
> Signed-off-by: Stephen Smalley <[email protected]>

Acked-by: James Morris <[email protected]>

2006-05-31 16:48:16

by Jesse Brandeburg

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On 5/30/06, Andrew Morton <[email protected]> wrote:
>
> - Merged the runtime locking validator. If you enable this your machine
> will run slowly.

The help in menuconfig mentions that a user looking for more info
should reference Documentation/locking-correctness.txt which doesn't
exist.

Jesse

2006-05-31 17:38:26

by Laurent Riffard

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc5-mm1-lockdep
# Wed May 31 07:26:20 2006
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

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

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_KLIBC_ERRLIST=y
CONFIG_KLIBC_ZLIB=y
CONFIG_UID16=y
CONFIG_VM86=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set

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

#
# Block layer
#
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"

#
# Processor type and features
#
# CONFIG_SMP is not set
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_MGEODE_LX 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_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_TSC=y
CONFIG_HPET_TIMER=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=m
CONFIG_X86_MCE_P4THERMAL=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_X86_REBOOTFIXUPS=y
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
# CONFIG_X86_CPUID is not set

#
# Firmware Drivers
#
CONFIG_EDD=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_3G_OPT is not set
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_ALIGNED_ZONE_BOUNDARIES=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_UNALIGNED_ZONE_BOUNDARIES is not set
CONFIG_ADAPTIVE_READAHEAD=y
CONFIG_DEBUG_READAHEAD=y
CONFIG_READAHEAD_SMOOTH_AGING=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_KEXEC=y
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RESOURCES_32BIT is not set
# CONFIG_COMPAT_VDSO is not set

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

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

#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ 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_DEBUG is not set
CONFIG_ISA_DMA_API=y
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=m
CONFIG_BINFMT_MISC=m

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=m
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y

#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set

#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_NETFILTER_XTABLES is not set

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
# CONFIG_IP_NF_NETBIOS_NS is not set
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
CONFIG_IP_NF_QUEUE=m

#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set

#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q 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_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_NETEM is not set
CONFIG_NET_SCH_INGRESS=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
# CONFIG_NET_CLS_RSVP6 is not set
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_ESTIMATOR=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
CONFIG_WIRELESS_EXT=y

#
# Device Drivers
#

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

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set

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

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

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# 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=m
# 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=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=2
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 is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=m
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# 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_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT821X 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=m
# 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_RAID_ATTRS is not set
CONFIG_SCSI=m
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# 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 Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_DOMAIN_ATTRS is not set

#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX 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_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR 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_HPTIOP 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_STEX 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_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_LPFC 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
# CONFIG_SCSI_SRP 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_RAID456 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=m
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set

#
# IEEE 1394 (FireWire) support
#
CONFIG_IEEE1394=m

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y
# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set
# CONFIG_IEEE1394_EXPORT_FULL_API is not set

#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=m

#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
# CONFIG_IEEE1394_SBP2 is not set
# CONFIG_IEEE1394_ETH1394 is not set
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# PHY device support
#
# CONFIG_PHYLIB 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_CASSINI 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=y
# CONFIG_8139CP is not set
# CONFIG_8139TOO 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 is not set
# 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_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
# CONFIG_NET_WIRELESS_RTNETLINK is not set

#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
# CONFIG_WAVELAN is not set

#
# Wireless 802.11b ISA/PCI cards support
#
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set

#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
CONFIG_PRISM54=m
# CONFIG_HOSTAP is not set
# CONFIG_ACX is not set
CONFIG_NET_WIRELESS=y

#
# 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=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y

#
# 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=m
# 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=y
# CONFIG_MOUSE_SERIAL is not set
# 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 is not set
# CONFIG_JOYSTICK_ADI is not set
# CONFIG_JOYSTICK_COBRA is not set
# CONFIG_JOYSTICK_GF2K is not set
# CONFIG_JOYSTICK_GRIP is not set
# CONFIG_JOYSTICK_GRIP_MP is not set
# CONFIG_JOYSTICK_GUILLEMOT is not set
# CONFIG_JOYSTICK_INTERACT is not set
# CONFIG_JOYSTICK_SIDEWINDER is not set
# CONFIG_JOYSTICK_TMDC is not set
# CONFIG_JOYSTICK_IFORCE is not set
# CONFIG_JOYSTICK_WARRIOR is not set
# CONFIG_JOYSTICK_MAGELLAN is not set
# CONFIG_JOYSTICK_SPACEORB is not set
# CONFIG_JOYSTICK_SPACEBALL is not set
# CONFIG_JOYSTICK_STINGER is not set
# CONFIG_JOYSTICK_TWIDJOY is not set
# CONFIG_JOYSTICK_DB9 is not set
# CONFIG_JOYSTICK_GAMECON is not set
# CONFIG_JOYSTICK_TURBOGRAFX is not set
# CONFIG_JOYSTICK_JOYDUMP is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# 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 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# 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=m
# CONFIG_SERIAL_8250_PCI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=m
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=m
# CONFIG_GEN_RTC is not set
# 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=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_MWAVE is not set
# CONFIG_CS5535_GPIO 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
# CONFIG_TELCLOCK is not set

#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

#
# 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 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# 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=m
CONFIG_I2C_VIAPRO=m
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
# CONFIG_I2C_OCORES is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 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

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#

#
# Hardware Monitoring support
#
CONFIG_HWMON=y
CONFIG_HWMON_VID=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_ADM9240 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F 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=m
# 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_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
CONFIG_SENSORS_VIA686A=m
# CONFIG_SENSORS_VT8231 is not set
CONFIG_SENSORS_W83781D=m
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
# CONFIG_VIDEO_V4L1 is not set
# CONFIG_VIDEO_V4L1_COMPAT is not set
CONFIG_VIDEO_V4L2=y

#
# Video Capture Adapters
#

#
# Video Capture Adapters
#
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_CX88 is not set

#
# Encoders and Decoders
#
# CONFIG_VIDEO_MSP3400 is not set
# CONFIG_VIDEO_CS53L32A is not set
# CONFIG_VIDEO_WM8775 is not set
# CONFIG_VIDEO_WM8739 is not set
# CONFIG_VIDEO_CX25840 is not set
# CONFIG_VIDEO_SAA7127 is not set
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set

#
# V4L USB devices
#
# CONFIG_USB_QUICKCAM_MESSENGER is not set

#
# Radio Adapters
#

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set

#
# Graphics support
#
CONFIG_FIRMWARE_EDID=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y

#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_AC97_BUS=m
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 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_OPL3SA2 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_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# 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_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
CONFIG_SND_ENS1371=m
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM 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_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI 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_ARCH_HAS_EHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# 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_ISP116X_HCD is not set
# 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_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
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Input Devices
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set

#
# 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_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK 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_ZD1201 is not set
# CONFIG_USB_MON is not set

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL 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_GOTEMP is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set

#
# USB DSL modem support
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
CONFIG_EDAC=m

#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
# CONFIG_EDAC_E752X is not set
CONFIG_EDAC_I82875P=m
# CONFIG_EDAC_I82860 is not set
CONFIG_EDAC_R82600=m
CONFIG_EDAC_POLL=y

#
# Real Time Clock
#
# CONFIG_RTC_CLASS is not set

#
# DMA Engine support
#
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
CONFIG_NET_DMA=y

#
# DMA Devices
#
# CONFIG_INTEL_IOATDMA is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT2_FS_XIP=y
CONFIG_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISER4_FS=m
CONFIG_REISER4_DEBUG=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=m
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=850
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m

#
# 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 is not set
# 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=m
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# 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 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# 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=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Distributed Lock Manager
#

#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_MUTEX_ALLOC=y
CONFIG_DEBUG_MUTEX_DEADLOCKS=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_PROVE_SPIN_LOCKING=y
CONFIG_PROVE_RW_LOCKING=y
CONFIG_PROVE_MUTEX_LOCKING=y
CONFIG_PROVE_RWSEM_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
CONFIG_FRAME_POINTER=y
CONFIG_UNWIND_INFO=y
CONFIG_STACK_UNWIND=y
CONFIG_FORCED_INLINING=y
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_STACK_BACKTRACE_COLS=1

#
# Page alloc debug is incompatible with Software Suspend on i386
#
CONFIG_DEBUG_RODATA=y
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_BLOWFISH=m
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_586=m
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_TEST is not set

#
# Hardware crypto devices
#
# CONFIG_CRYPTO_DEV_PADLOCK is not set

#
# Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y


Attachments:
config-2.6.17-rc5-mm1-lockdep (41.82 kB)
kernel.log (22.30 kB)
Download all attachments

2006-05-31 18:05:13

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 31 May 2006 19:39:31 +0200
Laurent Riffard <[email protected]> wrote:

> Le 30.05.2006 11:29, Andrew Morton a ?crit :
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>
> Hello, I've got this nice BUG:
>
> pktcdvd: writer pktcdvd0 mapped to hdc
> BUG: unable to handle kernel NULL pointer dereference at virtual address 00000084
> printing eip:
> c01118f1
> *pde = 00000000
> Oops: 0000 [#1]
> last sysfs file: /block/pktcdvd0/removable
> Modules linked in: pktcdvd lp parport_pc parport snd_pcm_oss snd_mixer_oss snd_ens1371 gameport snd_rawmidi snd_seq_device snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd_page_alloc snd soundcore af_packet floppy ide_cd cdrom loop aes dm_crypt nls_iso8859_1 nls_cp850 vfat fat reiser4 reiserfs via_agp agpgart video joydev ohci1394 usbhid ieee1394 uhci_hcd usbcore dm_mirror dm_mod via82cxxx
> CPU: 0
> EIP: 0060:[<c01118f1>] Not tainted VLI
> EFLAGS: 00010006 (2.6.17-rc5-mm1 #11)
> EIP is at do_page_fault+0xb4/0x5bc
> eax: d6750084 ebx: d6750000 ecx: 0000007b edx: 00000000
> esi: d6758000 edi: c011183d ebp: d675007c esp: d6750044
> ds: 007b es: 007b ss: 0068
> Process (pid: 0, threadinfo=d674f000 task=d657c000)
> Stack: 00000000 d6750084 00000000 00000049 00000084 00000000 00001e2e 02001120
> 00000027 00000022 00000055 d6750000 d6758000 c011183d d67500f0 c010340d
> d6750000 0000007b 00000000 d6758000 c011183d d67500f0 d67500f8 0000007b
> Call Trace:
> [<c010340d>] error_code+0x39/0x40
> Code: 00 00 c0 81 0f 84 12 02 00 00 e9 1c 05 00 00 8b 45 cc f7 40 30 00 02 02 00 74 06 e8 68 af 01 00 fb f7 43 14 ff ff ff ef 8b 55 d0 <8b> b2 84 00 00 00 0f 85 e5 01 00 00 85 f6 0f 84 dd 01 00 00 8d
> EIP: [<c01118f1>] do_page_fault+0xb4/0x5bc SS:ESP 0068:d6750044
> <0>Kernel panic - not syncing: Fatal exception in interrupt
> BUG: warning at kernel/panic.c:138/panic()
> [<c0103810>] show_trace_log_lvl+0x4b/0xf4
> [<c0103e11>] show_trace+0xd/0x10
> [<c0103e58>] dump_stack+0x19/0x1b
> [<c0116768>] panic+0x14d/0x161
> [<c0103d0d>] die+0x231/0x266
> [<c0111cc3>] do_page_fault+0x486/0x5bc
> SysRq : Emergency Sync
> SysRq : Emergency Sync
> SysRq : Emergency Remount R/O
> SysRq : Emergency Sync
> SysRq : Resetting

What a mess.

Your .config worked OK here. There's probably not a lot of point in you
persisting with rc5-mm1. Please test next -mm and if that has the same bug
then yes please, a bisection search would be great.

2006-05-31 23:08:30

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1


* Jesse Brandeburg <[email protected]> wrote:

> On 5/30/06, Andrew Morton <[email protected]> wrote:
> >
> >- Merged the runtime locking validator. If you enable this your machine
> > will run slowly.
>
> The help in menuconfig mentions that a user looking for more info
> should reference Documentation/locking-correctness.txt which doesn't
> exist.

indeed - i'll fix this.

Ingo

2006-06-01 01:22:27

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Tue, 30 May 2006 02:29:25 -0700 Andrew Morton wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/


Some odd panic, reproducible. .config attached.
Machine is Pentium-D with 2 GB RAM and SATA drives.


[ 0.000000] Bootdata ok (command line is root=/dev/sda7 vga=0x31a psmouse.proto=imps selinux=0 resume=/dev/sda2 splash=silent debug console=ttyS0,57600n8 [email protected]/eth0,[email protected]/00:14:22:d9:67:60 console=ttyUSB0,57600n8r console=tty1 initcall_debug)
[ 0.000000] Linux version 2.6.17-rc5-mm1 (rddunlap@midway) (gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)) #1 SMP Wed May 31 15:14:19 PDT 2006
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[ 0.000000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007f664000 (usable)
[ 0.000000] BIOS-e820: 000000007f664000 - 000000007f6e9000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007f6e9000 - 000000007f6ed000 (usable)
[ 0.000000] BIOS-e820: 000000007f6ed000 - 000000007f6ff000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007f6ff000 - 000000007f700000 (usable)
[ 0.000000] DMI 2.3 present.
[ 0.000000] ACPI: RSDP (v000 INTEL ) @ 0x00000000000fe020
[ 0.000000] ACPI: RSDT (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fde48
[ 0.000000] ACPI: FADT (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fcf10
[ 0.000000] ACPI: MADT (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fce10
[ 0.000000] ACPI: WDDT (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6f7f90
[ 0.000000] ACPI: MCFG (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6f7f10
[ 0.000000] ACPI: ASF! (v032 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fcd10
[ 0.000000] ACPI: SSDT (v001 INTEL CpuPm 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fdc10
[ 0.000000] ACPI: SSDT (v001 INTEL Cpu0Ist 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fda10
[ 0.000000] ACPI: SSDT (v001 INTEL Cpu1Ist 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fd810
[ 0.000000] ACPI: SSDT (v001 INTEL Cpu2Ist 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fd610
[ 0.000000] ACPI: SSDT (v001 INTEL Cpu3Ist 0x000009b7 MSFT 0x01000013) @ 0x000000007f6fd410
[ 0.000000] ACPI: TCPA (v001 INTEL TIANO 0x00000002 MSFT 0x01000013) @ 0x000000007f6e6d90
[ 0.000000] ACPI: DSDT (v001 INTEL D945GNT 0x000009b7 MSFT 0x01000013) @ 0x0000000000000000
[ 0.000000] On node 0 totalpages: 512398
[ 0.000000] DMA zone: 2753 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 509645 pages, LIFO batch:31
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[ 0.000000] Processor #0 15:4 APIC version 20
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[ 0.000000] Processor #1 15:4 APIC version 20
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x82] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x83] disabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Setting APIC routing to flat
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] Allocating PCI resources starting at 80000000 (gap: 7f700000:80900000)
[ 0.000000] Built 1 zonelists
[ 0.000000] Kernel command line: root=/dev/sda7 vga=0x31a psmouse.proto=imps selinux=0 resume=/dev/sda2 splash=silent debug console=ttyS0,57600n8 [email protected]/eth0,[email protected]/00:14:22:d9:67:60 console=ttyUSB0,57600n8r console=tty1 initcall_debug
[ 0.000000] netconsole: local port 6665
[ 0.000000] netconsole: local IP 192.168.0.101
[ 0.000000] netconsole: interface eth0
[ 0.000000] netconsole: remote port 6666
[ 0.000000] netconsole: remote IP 192.168.0.104
[ 0.000000] netconsole: remote ethernet address 00:14:22:d9:67:60
[ 0.000000] Initializing CPU#0
[ 0.000000] PID hash table entries: 4096 (order: 12, 32768 bytes)
[ 25.380581] Console: colour dummy device 80x25
[ 26.188250] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 26.204064] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 26.218420] Checking aperture...
[ 26.247610] Memory: 2045964k/2087936k available (2767k kernel code, 40628k reserved, 1240k data, 224k init)
[ 26.409571] Calibrating delay using timer specific routine.. 6004.26 BogoMIPS (lpj=30021346)
[ 26.426565] Mount-cache hash table entries: 256
[ 26.435858] CPU: Trace cache: 12K uops, L1 D cache: 16K
[ 26.446262] CPU: L2 cache: 1024K
[ 26.452679] using mwait in idle threads.
[ 26.460479] CPU: Physical Processor ID: 0
[ 26.469735] CPU: Processor Core ID: 0
[ 26.477018] CPU0: Thermal monitoring enabled (TM1)
[ 26.486560] Freeing SMP alternatives: 24k freed
[ 26.497278] tbxface-0107 [01] load_tables : ACPI Tables successfully acquired
[ 26.519875] Parsing all Control Methods:
[ 26.527484] Table [DSDT](id 000A) - 528 Objects with 54 Devices 147 Methods 30 Regions
[ 26.543798] Parsing all Control Methods:
[ 26.551371] Table [SSDT](id 0004) - 10 Objects with 0 Devices 4 Methods 0 Regions
[ 26.566731] Parsing all Control Methods:
[ 26.574303] Table [SSDT](id 0005) - 5 Objects with 0 Devices 3 Methods 0 Regions
[ 26.589490] Parsing all Control Methods:
[ 26.597054] Table [SSDT](id 0006) - 5 Objects with 0 Devices 3 Methods 0 Regions
[ 26.612238] Parsing all Control Methods:
[ 26.619811] Table [SSDT](id 0007) - 5 Objects with 0 Devices 3 Methods 0 Regions
[ 26.634990] Parsing all Control Methods:
[ 26.642565] Table [SSDT](id 0008) - 5 Objects with 0 Devices 3 Methods 0 Regions
[ 26.657639] ACPI Namespace successfully loaded at root ffffffff80529b20
[ 26.671579] evxfevnt-0089 [02] enable : Transition to ACPI mode successful
[ 26.788186] Using local APIC timer interrupts.
[ 26.830321] result 12500143
[ 26.835866] Detected 12.500 MHz APIC timer.
[ 26.849668] Booting processor 1/2 APIC 0x1
[ 26.868194] Initializing CPU#1
[ 27.018978] Calibrating delay using timer specific routine.. 6000.09 BogoMIPS (lpj=30000493)
[ 27.018990] CPU: Trace cache: 12K uops, L1 D cache: 16K
[ 27.018993] CPU: L2 cache: 1024K
[ 27.018996] CPU: Physical Processor ID: 0
[ 27.018997] CPU: Processor Core ID: 1
[ 27.019007] CPU1: Thermal monitoring enabled (TM1)
[ 27.019245] Intel(R) Pentium(R) D CPU 3.00GHz stepping 04
[ 27.028976] APIC error on CPU1: 00(40)
[ 27.028993] Brought up 2 CPUs
[ 27.119902] testing NMI watchdog ... OK.
[ 27.227673] time.c: Using 3.579545 MHz WALL PM GTOD PIT/TSC timer.
[ 27.239966] time.c: Detected 3000.048 MHz processor.
[ 27.439186] migration_cost=399
[ 27.448014] Calling initcall 0xffffffff80559ef0: cpufreq_tsc+0x0/0x6d()
[ 27.461208] Calling initcall 0xffffffff8055e129: init_smp_flush+0x0/0x58()
[ 27.474906] Calling initcall 0xffffffff80564a7a: init_elf32_binfmt+0x0/0x12()
[ 27.490550] Calling initcall 0xffffffff8056619b: helper_init+0x0/0x2f()
[ 27.503750] Calling initcall 0xffffffff80566423: pm_init+0x0/0x29()
[ 27.516247] Calling initcall 0xffffffff805665f7: ksysfs_init+0x0/0x29()
[ 27.529439] Calling initcall 0xffffffff8056854c: filelock_init+0x0/0x31()
[ 27.542986] Calling initcall 0xffffffff80568dd6: init_misc_binfmt+0x0/0x3c()
[ 27.557030] Calling initcall 0xffffffff80568e12: init_script_binfmt+0x0/0x12()
[ 27.571420] Calling initcall 0xffffffff80568e24: init_elf_binfmt+0x0/0x12()
[ 27.585287] Calling initcall 0xffffffff805698b1: debugfs_init+0x0/0x49()
[ 27.598643] Calling initcall 0xffffffff80575ff8: sock_init+0x0/0x5a()
[ 27.611538] Calling initcall 0xffffffff80576518: netlink_proto_init+0x0/0x17e()
[ 27.626124] NET: Registered protocol family 16
[ 27.634977] Calling initcall 0xffffffff80569edc: kobject_uevent_init+0x0/0x3c()
[ 27.649550] Calling initcall 0xffffffff8056a01a: pcibus_class_init+0x0/0x12()
[ 27.663774] Calling initcall 0xffffffff8056a84c: pci_driver_init+0x0/0x12()
[ 27.677662] Calling initcall 0xffffffff8056e08f: tty_class_init+0x0/0x2a()
[ 27.691371] Calling initcall 0xffffffff8055d4dc: mtrr_if_init+0x0/0x74()
[ 27.704724] Calling initcall 0xffffffff8056a9de: pci_acpi_init+0x0/0x2e()
[ 27.718244] ACPI: bus type pci registered
[ 27.726214] Calling initcall 0xffffffff8056c7e2: init_acpi_device_notify+0x0/0x4b()
[ 27.741470] Calling initcall 0xffffffff80575356: pci_access_init+0x0/0x1c()
[ 27.755338] PCI: BIOS Bug: MCFG area is not E820-reserved
[ 27.766073] PCI: Not using MMCONFIG.
[ 27.773181] PCI: Using configuration type 1
[ 27.781496] Calling initcall 0xffffffff8055d355: mtrr_init_finialize+0x0/0x34()
[ 27.796057] Calling initcall 0xffffffff805636ef: topology_init+0x0/0x36()
[ 27.809839] Calling initcall 0xffffffff80147401: pm_sysrq_init+0x0/0x1b()
[ 27.823367] Calling initcall 0xffffffff80568325: init_bio+0x0/0x105()
[ 27.836657] Calling initcall 0xffffffff80569d1b: genhd_device_init+0x0/0x33()
[ 27.851014] Calling initcall 0xffffffff8056affd: fbmem_init+0x0/0x95()
[ 27.864039] Calling initcall 0xffffffff8056c604: acpi_init+0x0/0x1de()
[ 27.877042] ACPI: Subsystem revision 20060310
[ 27.886383] evgpeblk-0951 [04] ev_create_gpe_block : GPE 00 to 1F [_GPE] 4 regs on int 0x9
[ 27.905663] evgpeblk-1048 [03] ev_initialize_gpe_bloc: Found 8 Wake, Enabled 1 Runtime GPEs in this block
[ 27.926803] Completing Region/Field/Buffer/Package initialization:...........................................................................
[ 27.956263] Initialized 29/30 Regions 0/0 Fields 22/22 Buffers 24/40 Packages (567 nodes)
[ 27.972888] Executing all Device _STA and_INI methods:............................................................
[ 27.993929] 60 Devices found - executed 0 _STA, 1 _INI methods
[ 28.007242] ACPI: Interpreter enabled
[ 28.014520] ACPI: Using IOAPIC for interrupt routing
[ 28.024484] Calling initcall 0xffffffff8056c94d: acpi_ec_init+0x0/0x63()
[ 28.037838] Calling initcall 0xffffffff8056d20b: acpi_pci_root_init+0x0/0x28()
[ 28.052229] Calling initcall 0xffffffff8056d320: acpi_pci_link_init+0x0/0x48()
[ 28.066616] Calling initcall 0xffffffff8056d41b: acpi_power_init+0x0/0x77()
[ 28.080488] Calling initcall 0xffffffff8056d5b2: acpi_system_init+0x0/0xc0()
[ 28.094532] Calling initcall 0xffffffff8056d672: acpi_event_init+0x0/0x3d()
[ 28.108402] Calling initcall 0xffffffff8056d6af: acpi_debug_init+0x0/0xa8()
[ 28.122278] Calling initcall 0xffffffff8056d757: acpi_scan_init+0x0/0x18e()
[ 28.137642] ACPI: PCI Root Bridge [PCI0] (0000:00)
[ 28.147173] PCI: Probing PCI hardware (bus 00)
[ 28.156068] ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
[ 28.174188] Boot video device is 0000:00:02.0
[ 28.183647] PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
[ 28.196982] PCI: Transparent bridge - 0000:00:1e.0
[ 28.206591] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 28.232605] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P32_._PRT]
[ 28.248331] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 9 10 *11 12)
[ 28.262146] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 9 10 *11 12)
[ 28.275964] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 9 10 *11 12)
[ 28.289783] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 9 10 *11 12)
[ 28.303588] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[ 28.319674] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 10 *11 12)
[ 28.333481] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 *9 10 11 12)
[ 28.347286] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 9 *10 11 12)
[ 28.365226] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT]
[ 28.379046] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX2._PRT]
[ 28.392591] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX3._PRT]
[ 28.406129] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX4._PRT]
[ 28.419669] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX5._PRT]
[ 28.436624] Calling initcall 0xffffffff8056da5a: pnp_init+0x0/0x20()
[ 28.449290] Linux Plug and Play Support v0.97 (c) Adam Belay
[ 28.460568] Calling initcall 0xffffffff8056dbc9: pnpacpi_init+0x0/0x6a()
[ 28.473918] pnp: PnP ACPI init
[ 28.490943] pnp: PnP ACPI: found 13 devices
[ 28.499259] Calling initcall 0xffffffff8056e6c3: misc_init+0x0/0x80()
[ 28.513336] Calling initcall 0xffffffff80571b62: phy_init+0x0/0x2f()
[ 28.526123] Generic PHY: Registered new driver
[ 28.534959] Calling initcall 0xffffffff8057293b: init_scsi+0x0/0xd9()
[ 28.548867] SCSI subsystem initialized
[ 28.556319] Calling initcall 0xffffffff80572e4c: usb_init+0x0/0xd5()
[ 28.569122] usbcore: registered new driver usbfs
[ 28.578421] usbcore: registered new driver hub
[ 28.587388] Calling initcall 0xffffffff805735d1: serio_init+0x0/0x9f()
[ 28.600451] Calling initcall 0xffffffff80573969: gameport_init+0x0/0x89()
[ 28.614028] Calling initcall 0xffffffff805739f2: input_init+0x0/0x122()
[ 28.627228] Calling initcall 0xffffffff80573c66: i2c_init+0x0/0x32()
[ 28.640018] Calling initcall 0xffffffff80575372: pci_acpi_init+0x0/0xab()
[ 28.653543] PCI: Using ACPI for IRQ routing
[ 28.661860] PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
[ 28.678305] Calling initcall 0xffffffff8057541d: pci_legacy_init+0x0/0x124()
[ 28.692348] Calling initcall 0xffffffff805758ef: pcibios_irq_init+0x0/0x4a4()
[ 28.706562] Calling initcall 0xffffffff80575d93: pcibios_init+0x0/0x69()
[ 28.720004] Calling initcall 0xffffffff805760ad: proto_init+0x0/0x34()
[ 28.733010] Calling initcall 0xffffffff80576210: net_dev_init+0x0/0x1cb()
[ 28.746555] Calling initcall 0xffffffff80576696: genl_init+0x0/0xaf()
[ 28.759407] Calling initcall 0xffffffff80559fef: late_hpet_init+0x0/0xd1()
[ 28.773105] Calling initcall 0xffffffff8055ce79: pci_iommu_init+0x0/0x12()
[ 28.786812] PCI-GART: No AMD northbridge found.
[ 28.795820] Calling initcall 0xffffffff805684d6: init_pipe_fs+0x0/0x49()
[ 28.809189] Calling initcall 0xffffffff8056d924: acpi_motherboard_init+0x0/0x136()
[ 28.824329] Calling initcall 0xffffffff8056db5e: pnp_system_init+0x0/0x12()
[ 28.838314] pnp: 00:06: ioport range 0x500-0x53f has been reserved
[ 28.850610] pnp: 00:06: ioport range 0x400-0x47f could not be reserved
[ 28.863596] pnp: 00:06: ioport range 0x680-0x6ff has been reserved
[ 28.875901] Calling initcall 0xffffffff8056df93: chr_dev_init+0x0/0x8a()
[ 28.890130] Calling initcall 0xffffffff80573e16: cpufreq_gov_performance_init+0x0/0x12()
[ 28.906250] Calling initcall 0xffffffff80573e3a: cpufreq_gov_userspace_init+0x0/0x20()
[ 28.922027] Calling initcall 0xffffffff80574e1a: pcibios_assign_resources+0x0/0x8b()
[ 28.937476] PCI: Ignore bogus resource 6 [0:0] of 0000:00:02.0
[ 28.949081] PCI: Bridge: 0000:00:1c.0
[ 28.956357] IO window: 1000-1fff
[ 28.963118] MEM window: 90100000-901fffff
[ 28.971435] PREFETCH window: disabled.
[ 28.979236] PCI: Bridge: 0000:00:1c.2
[ 28.986509] IO window: disabled.
[ 28.993271] MEM window: 90300000-903fffff
[ 29.001587] PREFETCH window: disabled.
[ 29.009385] PCI: Bridge: 0000:00:1c.3
[ 29.016658] IO window: disabled.
[ 29.024810] MEM window: 90400000-904fffff
[ 29.033127] PREFETCH window: disabled.
[ 29.040926] PCI: Bridge: 0000:00:1c.4
[ 29.048202] IO window: disabled.
[ 29.054961] MEM window: 90500000-905fffff
[ 29.063277] PREFETCH window: disabled.
[ 29.071074] PCI: Bridge: 0000:00:1c.5
[ 29.078350] IO window: disabled.
[ 29.085109] MEM window: 90600000-906fffff
[ 29.093424] PREFETCH window: disabled.
[ 29.101223] PCI: Bridge: 0000:00:1e.0
[ 29.108498] IO window: disabled.
[ 29.115258] MEM window: 90000000-900fffff
[ 29.123573] PREFETCH window: disabled.
[ 29.131388] ACPI (acpi_bus-0192): Device `PEX0]is not power manageable [20060310]
[ 29.146298] GSI 16 sharing vector 0xA9 and IRQ 16
[ 29.155653] ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 17 (level, low) -> IRQ 169
[ 29.170556] PCI: Setting latency timer of device 0000:00:1c.0 to 64
[ 29.183037] ACPI (acpi_bus-0192): Device `PEX2]is not power manageable [20060310]
[ 29.197947] GSI 17 sharing vector 0xB1 and IRQ 17
[ 29.207300] ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 177
[ 29.222200] PCI: Setting latency timer of device 0000:00:1c.2 to 64
[ 29.234681] ACPI (acpi_bus-0192): Device `PEX3]is not power manageable [20060310]
[ 29.249591] GSI 18 sharing vector 0xB9 and IRQ 18
[ 29.258942] ACPI: PCI Interrupt 0000:00:1c.3[D] -> GSI 19 (level, low) -> IRQ 185
[ 29.273841] PCI: Setting latency timer of device 0000:00:1c.3 to 64
[ 29.286320] ACPI (acpi_bus-0192): Device `PEX4]is not power manageable [20060310]
[ 29.301230] ACPI: PCI Interrupt 0000:00:1c.4[A] -> GSI 17 (level, low) -> IRQ 169
[ 29.316128] PCI: Setting latency timer of device 0000:00:1c.4 to 64
[ 29.328607] ACPI (acpi_bus-0192): Device `PEX5]is not power manageable [20060310]
[ 29.343515] GSI 19 sharing vector 0xC1 and IRQ 19
[ 29.352868] ACPI: PCI Interrupt 0000:00:1c.5[B] -> GSI 16 (level, low) -> IRQ 193
[ 29.367767] PCI: Setting latency timer of device 0000:00:1c.5 to 64
[ 29.380241] PCI: Setting latency timer of device 0000:00:1e.0 to 64
[ 29.392709] Calling initcall 0xffffffff80577008: inet_init+0x0/0x331()
[ 29.405796] NET: Registered protocol family 2
[ 29.508841] IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
[ 29.523569] TCP established hash table entries: 131072 (order: 10, 4194304 bytes)
[ 29.541890] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
[ 29.556348] TCP: Hash tables configured (established 131072 bind 65536)
[ 29.569519] TCP reno registered
[ 29.575845] Calling initcall 0xffffffff8010c770: time_init_device+0x0/0x22()
[ 29.590030] Calling initcall 0xffffffff8055a51c: add_pcspkr+0x0/0x43()
[ 29.603165] Calling initcall 0xffffffff8055b67e: init_timer_sysfs+0x0/0x22()
[ 29.617310] Calling initcall 0xffffffff8055b65c: i8259A_init_sysfs+0x0/0x22()
[ 29.631632] Calling initcall 0xffffffff8055bb4d: vsyscall_init+0x0/0x9b()
[ 29.645166] Calling initcall 0xffffffff8055c093: sbf_init+0x0/0xd7()
[ 29.657824] Calling initcall 0xffffffff8055cc54: i8237A_init_sysfs+0x0/0x22()
[ 29.672142] Calling initcall 0xffffffff8055d18b: mce_init_device+0x0/0x76()
[ 29.686332] Calling initcall 0xffffffff8055cfb1: periodic_mcheck_init+0x0/0x24()
[ 29.701075] Calling initcall 0xffffffff8055df35: msr_init+0x0/0xfa()
[ 29.713951] Calling initcall 0xffffffff8055e02f: cpuid_init+0x0/0xfa()
[ 29.727167] Calling initcall 0xffffffff8055f302: init_lapic_sysfs+0x0/0x33()
[ 29.741313] Calling initcall 0xffffffff80560109: ioapic_init_sysfs+0x0/0xb6()
[ 29.755635] Calling initcall 0xffffffff80563d56: cache_sysfs_init+0x0/0x5a()
[ 29.770281] Calling initcall 0xffffffff805642d2: x8664_sysctl_init+0x0/0x19()
[ 29.784514] Calling initcall 0xffffffff80564a8c: ia32_binfmt_init+0x0/0x19()
[ 29.798562] Calling initcall 0xffffffff80564aa5: init_syscall32+0x0/0x5a()
[ 29.812258] Calling initcall 0xffffffff80564aff: init_aout_binfmt+0x0/0x12()
[ 29.826298] Calling initcall 0xffffffff805657b9: create_proc_profile+0x0/0x246()
[ 29.841033] Calling initcall 0xffffffff80565a7c: ioresources_init+0x0/0x42()
[ 29.855077] Calling initcall 0xffffffff80565bb7: timekeeping_init_device+0x0/0x22()
[ 29.870427] Calling initcall 0xffffffff80565cca: uid_cache_init+0x0/0x8c()
[ 29.884154] Calling initcall 0xffffffff80565faa: param_sysfs_init+0x0/0x15d()
[ 29.903349] Calling initcall 0xffffffff80566107: init_posix_timers+0x0/0x94()
[ 29.917604] Calling initcall 0xffffffff805661ca: init_posix_cpu_timers+0x0/0x69()
[ 29.932512] Calling initcall 0xffffffff80566273: init_clocksource_sysfs+0x0/0x50()
[ 29.947688] Calling initcall 0xffffffff80566358: init_jiffies_clocksource+0x0/0x12()
[ 29.963115] Calling initcall 0xffffffff8056636a: init+0x0/0x6c()
[ 29.975147] Calling initcall 0xffffffff805663d6: proc_dma_init+0x0/0x25()
[ 29.988769] Calling initcall 0xffffffff8014362e: percpu_modinit+0x0/0x73()
[ 30.002473] Calling initcall 0xffffffff805663fb: kallsyms_init+0x0/0x28()
[ 30.015996] Calling initcall 0xffffffff8056644c: ikconfig_init+0x0/0x3c()
[ 30.029523] Calling initcall 0xffffffff805664fa: audit_init+0x0/0xab()
[ 30.042524] audit: initializing netlink socket (disabled)
[ 30.054554] audit(1149099139.660:1): initialized
[ 30.063734] Calling initcall 0xffffffff805665a5: init_kprobes+0x0/0x52()
[ 30.077094] Calling initcall 0xffffffff805672ee: init_per_zone_pages_min+0x0/0x41()
[ 30.092353] Calling initcall 0xffffffff80567a74: pdflush_init+0x0/0x1a()
[ 30.105803] Calling initcall 0xffffffff80567a8e: readahead_init+0x0/0xa6()
[ 30.119552] Calling initcall 0xffffffff80567b59: kswapd_init+0x0/0x2b()
[ 30.132792] Calling initcall 0xffffffff80567bc8: procswaps_init+0x0/0x25()
[ 30.146490] Calling initcall 0xffffffff80567ca7: kprefetchd_init+0x0/0x3d()
[ 30.160397] Calling initcall 0xffffffff80567d17: hugetlb_init+0x0/0x63()
[ 30.173746] Total HugeTLB memory allocated, 0
[ 30.182405] Calling initcall 0xffffffff80567d7a: init_tmpfs+0x0/0xe1()
[ 30.195445] Calling initcall 0xffffffff80567e5b: cpucache_init+0x0/0x37()
[ 30.208972] Calling initcall 0xffffffff8056851f: fasync_init+0x0/0x2d()
[ 30.222173] Calling initcall 0xffffffff80568b3c: aio_setup+0x0/0x67()
[ 30.235121] Calling initcall 0xffffffff80568ba3: inotify_setup+0x0/0x12()
[ 30.248646] Calling initcall 0xffffffff80568bb5: inotify_user_setup+0x0/0xbc()
[ 30.263092] Calling initcall 0xffffffff80568c71: eventpoll_init+0x0/0xd0()
[ 30.276840] Calling initcall 0xffffffff80568d41: init_sys32_ioctl+0x0/0x95()
[ 30.290910] Calling initcall 0xffffffff80568e36: dnotify_init+0x0/0x2d()
[ 30.304287] Calling initcall 0xffffffff805692d2: configfs_init+0x0/0x98()
[ 30.317839] Calling initcall 0xffffffff8056936a: init_devpts_fs+0x0/0x3a()
[ 30.331549] Calling initcall 0xffffffff805693a4: init_ext3_fs+0x0/0x5b()
[ 30.344917] Calling initcall 0xffffffff8056947d: journal_init+0x0/0xc2()
[ 30.358361] Calling initcall 0xffffffff8056953f: init_ext2_fs+0x0/0x5a()
[ 30.371732] Calling initcall 0xffffffff80569599: init_cramfs_fs+0x0/0x17()
[ 30.385432] Calling initcall 0xffffffff805695b0: init_ramfs_fs+0x0/0x12()
[ 30.398956] Calling initcall 0xffffffff805695d4: init_hugetlbfs_fs+0x0/0x7f()
[ 30.413201] Calling initcall 0xffffffff8056968b: init_fat_fs+0x0/0x50()
[ 30.426425] Calling initcall 0xffffffff805696db: init_msdos_fs+0x0/0x12()
[ 30.439948] Calling initcall 0xffffffff805696ed: init_vfat_fs+0x0/0x12()
[ 30.453294] Calling initcall 0xffffffff805696ff: init_iso9660_fs+0x0/0x6e()
[ 30.467187] Calling initcall 0xffffffff805697d8: init_nls_cp437+0x0/0x12()
[ 30.480881] Calling initcall 0xffffffff805697ea: init_nls_cp850+0x0/0x12()
[ 30.494572] Calling initcall 0xffffffff805697fc: init_nls_ascii+0x0/0x12()
[ 30.508267] Calling initcall 0xffffffff8056980e: init_nls_iso8859_1+0x0/0x12()
[ 30.522652] Calling initcall 0xffffffff80569820: init_nls_iso8859_15+0x0/0x12()
[ 30.537213] Calling initcall 0xffffffff80569832: init_nls_utf8+0x0/0x25()
[ 30.550733] Calling initcall 0xffffffff80569857: init_romfs_fs+0x0/0x5a()
[ 30.565557] Calling initcall 0xffffffff805698fa: ipc_init+0x0/0x17()
[ 30.578240] Calling initcall 0xffffffff80569adb: init_mqueue_fs+0x0/0xe9()
[ 30.591984] Calling initcall 0xffffffff80569d4e: noop_init+0x0/0x12()
[ 30.604813] io scheduler noop registered
[ 30.612616] Calling initcall 0xffffffff80569d60: as_init+0x0/0x57()
[ 30.625118] io scheduler anticipatory registered
[ 30.634306] Calling initcall 0xffffffff80569db7: deadline_init+0x0/0x58()
[ 30.647855] io scheduler deadline registered
[ 30.656349] Calling initcall 0xffffffff80569e0f: cfq_init+0x0/0xcd()
[ 30.669074] io scheduler cfq registered (default)
[ 30.678444] Calling initcall 0xffffffff802015a8: pci_init+0x0/0x32()
[ 30.691114] 0000:00:1d.0: uhci_check_and_reset_hc: legsup = 0x0f10
[ 30.703578] 0000:00:1d.0: Performing full reset
[ 30.712770] 0000:00:1d.1: uhci_check_and_reset_hc: legsup = 0x0010
[ 30.725234] 0000:00:1d.1: Performing full reset
[ 30.734424] 0000:00:1d.2: uhci_check_and_reset_hc: legsup = 0x0010
[ 30.746887] 0000:00:1d.2: Performing full reset
[ 30.756076] 0000:00:1d.3: uhci_check_and_reset_hc: legsup = 0x0010
[ 30.768541] 0000:00:1d.3: Performing full reset
[ 30.777984] Calling initcall 0xffffffff8056a85e: pci_sysfs_init+0x0/0x37()
[ 30.791791] Calling initcall 0xffffffff8056a895: pci_proc_init+0x0/0x6f()
[ 30.805367] Calling initcall 0xffffffff8056a904: pcie_portdrv_init+0x0/0x2b()
[ 30.819758] ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 17 (level, low) -> IRQ 169
[ 30.834658] PCI: Setting latency timer of device 0000:00:1c.0 to 64
[ 30.847164] assign_interrupt_mode Found MSI capability
[ 30.857475] Allocate Port Service[0000:00:1c.0:pcie00]
[ 30.867816] Allocate Port Service[0000:00:1c.0:pcie02]
[ 30.878165] ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 177
[ 30.893064] PCI: Setting latency timer of device 0000:00:1c.2 to 64
[ 30.905569] assign_interrupt_mode Found MSI capability
[ 30.915860] Allocate Port Service[0000:00:1c.2:pcie00]
[ 30.926191] Allocate Port Service[0000:00:1c.2:pcie02]
[ 30.936534] ACPI: PCI Interrupt 0000:00:1c.3[D] -> GSI 19 (level, low) -> IRQ 185
[ 30.951433] PCI: Setting latency timer of device 0000:00:1c.3 to 64
[ 30.963938] assign_interrupt_mode Found MSI capability
[ 30.974228] Allocate Port Service[0000:00:1c.3:pcie00]
[ 30.984554] Allocate Port Service[0000:00:1c.3:pcie02]
[ 30.994897] ACPI: PCI Interrupt 0000:00:1c.4[A] -> GSI 17 (level, low) -> IRQ 169
[ 31.009804] PCI: Setting latency timer of device 0000:00:1c.4 to 64
[ 31.022308] assign_interrupt_mode Found MSI capability
[ 31.032598] Allocate Port Service[0000:00:1c.4:pcie00]
[ 31.042932] Allocate Port Service[0000:00:1c.4:pcie02]
[ 31.053272] ACPI: PCI Interrupt 0000:00:1c.5[B] -> GSI 16 (level, low) -> IRQ 193
[ 31.068174] PCI: Setting latency timer of device 0000:00:1c.5 to 64
[ 31.080679] assign_interrupt_mode Found MSI capability
[ 31.090969] Allocate Port Service[0000:00:1c.5:pcie00]
[ 31.101302] Allocate Port Service[0000:00:1c.5:pcie02]
[ 31.111650] Calling initcall 0xffffffff8056a92f: pci_hotplug_init+0x0/0x57()
[ 31.125702] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 31.136783] Calling initcall 0xffffffff8056af93: fb_console_init+0x0/0x6a()
[ 31.150652] Calling initcall 0xffffffff8056b7c4: vesafb_init+0x0/0x235()
[ 31.164237] vesafb: framebuffer at 0x80000000, mapped to 0xffffc20000080000, using 5120k, total 7872k
[ 31.182585] vesafb: mode is 1280x1024x16, linelength=2560, pages=2
[ 31.194877] vesafb: scrolling: redraw
[ 31.202154] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[ 31.260457] Console: switching to colour frame buffer device 160x64
[ 31.320013] fb0: VESA VGA frame buffer device
[ 31.328916] Calling initcall 0xffffffff8056bbab: vga16fb_init+0x0/0xb1()
[ 31.342853] vga16fb: initializing
[ 31.349618] vga16fb: mapped to 0xffff8100000a0000
[ 31.359368] fb1: VGA16 VGA frame buffer device
[ 31.368445] Calling initcall 0xffffffff8056c82d: acpi_ac_init+0x0/0x60()
[ 31.382190] Calling initcall 0xffffffff8056c88d: acpi_battery_init+0x0/0x60()
[ 31.396816] Calling initcall 0xffffffff8056c8ed: acpi_button_init+0x0/0x60()
[ 31.411273] ACPI: Power Button (FF) [PWRF]
[ 31.419655] ACPI: Sleep Button (CM) [SLPB]
[ 31.428026] Calling initcall 0xffffffff8056cf2e: acpi_fan_init+0x0/0x60()
[ 31.441935] Calling initcall 0xffffffff8056cf8e: acpi_video_init+0x0/0x60()
[ 31.456455] Calling initcall 0xffffffff8056cfee: hotkey_init+0x0/0x21d()
[ 31.470178] Using specific hotkey driver
[ 31.478180] Calling initcall 0xffffffff8056d2e8: irqrouter_init_sysfs+0x0/0x38()
[ 31.493427] Calling initcall 0xffffffff8056d492: acpi_processor_init+0x0/0x80()
[ 31.509012] ACPI Error (acpi_processor-0474): Getting cpuindex for acpiid 0x3 [20060310]
[ 31.525593] ACPI Error (acpi_processor-0474): Getting cpuindex for acpiid 0x4 [20060310]
[ 31.542165] Calling initcall 0xffffffff8056d512: acpi_container_init+0x0/0x40()
[ 31.561015] Calling initcall 0xffffffff8056d552: acpi_thermal_init+0x0/0x60()
[ 31.575651] Calling initcall 0xffffffff8056e02c: rand_initialize+0x0/0x2c()
[ 31.589929] Calling initcall 0xffffffff8056e0b9: tty_init+0x0/0x1cd()
[ 31.609984] Calling initcall 0xffffffff8056e286: pty_init+0x0/0x43d()
[ 31.683014] Calling initcall 0xffffffff8056ec8d: lp_init_module+0x0/0x253()
[ 31.697397] lp: driver loaded but no devices found
[ 31.707184] Calling initcall 0xffffffff8056eee0: hpet_init+0x0/0x6b()
[ 31.720507] Calling initcall 0xffffffff8056ef4b: rtc_generic_init+0x0/0x65()
[ 31.734949] Generic RTC Driver v1.07
[ 31.742347] Calling initcall 0xffffffff8056efb0: nvram_init+0x0/0x89()
[ 31.755821] Non-volatile memory driver v1.2
[ 31.764359] Calling initcall 0xffffffff8056f039: ppdev_init+0x0/0xcb()
[ 31.777826] ppdev: user-space parallel port driver
[ 31.787615] Calling initcall 0xffffffff8056f104: watchdog_init+0x0/0xb4()
[ 31.801616] Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec (nowayout= 0)
[ 31.820456] Calling initcall 0xffffffff8056f1b8: agp_init+0x0/0x26()
[ 31.833472] Linux agpgart interface v0.101 (c) Dave Jones
[ 31.844491] Calling initcall 0xffffffff8056f2e1: drm_core_init+0x0/0x140()
[ 31.858588] [drm] Initialized drm 1.0.1 20051102
[ 31.868011] Calling initcall 0xffffffff8056f4d5: hangcheck_init+0x0/0x7e()
[ 31.891941] Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
[ 31.920508] Hangcheck: Using monotonic_clock().
[ 31.940326] Calling initcall 0xffffffff8056f553: cn_init+0x0/0xc4()
[ 31.964092] Calling initcall 0xffffffff8056f617: cn_proc_init+0x0/0x3a()
[ 31.988759] Calling initcall 0xffffffff8056fa77: serial8250_init+0x0/0x13a()
[ 32.014276] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[ 32.041916] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 32.066625] Calling initcall 0xffffffff805700da: parport_default_proc_register+0x0/0x1d()
[ 32.095493] Calling initcall 0xffffffff805703ed: parport_pc_init+0x0/0x189()
[ 32.122329] parport: PnPBIOS parport detected.
[ 32.144066] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
[ 32.246535] lp0: using parport0 (interrupt-driven).
[ 32.269604] lp0: console ready
[ 32.289304] Calling initcall 0xffffffff8057068b: firmware_class_init+0x0/0x70()
[ 32.317882] Calling initcall 0xffffffff805706fb: topology_sysfs_init+0x0/0x4f()
[ 32.346576] Calling initcall 0xffffffff805709e0: floppy_init+0x0/0x9cc()
[ 32.374245] isa bounce pool size: 16 pages
[ 32.396788] Floppy drive(s): fd0 is 1.44M
[ 32.439721] FDC 0 is a post-1991 82077
[ 32.462942] Calling initcall 0xffffffff805713ac: rd_init+0x0/0x1c7()
[ 32.492645] RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
[ 32.522977] Calling initcall 0xffffffff805715cc: loop_init+0x0/0x2c9()
[ 32.552729] loop: loaded (max 8 devices)
[ 32.576389] Calling initcall 0xffffffff80571895: pkt_init+0x0/0xe8()
[ 32.605189] Calling initcall 0xffffffff8057197d: mm_init+0x0/0x1a0()
[ 32.633698] v2.3 : Micro Memory(tm) PCI memory board block driver
[ 32.661727] MM: desc_per_page = 128
[ 32.684296] Calling initcall 0xffffffff80571b1d: e1000_init_module+0x0/0x45()
[ 32.714528] Intel(R) PRO/1000 Network Driver - version 7.0.38-k4
[ 32.742536] Copyright (c) 1999-2006 Intel Corporation.
[ 32.768884] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 193
[ 32.800120] PCI: Setting latency timer of device 0000:01:00.0 to 64
[ 32.909145] e1000: 0000:01:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1) 00:13:20:e3:97:02
[ 33.023464] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
[ 33.053958] Calling initcall 0xffffffff80571bf5: net_olddevs_init+0x0/0xb7()
[ 33.085102] Calling initcall 0xffffffff80571d81: dummy_init_module+0x0/0xb9()
[ 33.116386] Calling initcall 0xffffffff80571e3a: tun_init+0x0/0x64()
[ 33.145936] tun: Universal TUN/TAP device driver, 1.6
[ 33.172747] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[ 33.201906] Calling initcall 0xffffffff802b4568: init_netconsole+0x0/0x5e()
[ 33.232729] netconsole: device eth0 not up yet, forcing it
[ 36.489028] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
[ 36.500245] [<0000000000000000>] stext+0x7feff0e8/0xe8
[ 36.549518] PGD 0
[ 36.570488] Oops: 0010 [1] SMP
[ 36.593713] last sysfs file:
[ 36.616496] CPU 0
[ 36.637392] Modules linked in:
[ 36.660367] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #1
[ 36.688549] RIP: 0010:[<0000000000000000>] [<0000000000000000>] stext+0x7feff0e8/0xe8
[ 36.704388] RSP: 0000:ffffffff804f4f98 EFLAGS: 00010006
[ 36.749115] RAX: 0000000000001d00 RBX: ffffffff8054fec8 RCX: 0000000000000000
[ 36.780475] RDX: ffffffff8054fec8 RSI: ffffffff80544d00 RDI: 000000000000003a
[ 36.811700] RBP: ffffffff804f4fb0 R08: ffffffff8054e000 R09: 000000000000002f
[ 36.842745] R10: ffff810003002970 R11: ffffffff80512300 R12: 000000000000003a
[ 36.873626] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 36.904373] FS: 0000000000000000(0000) GS:ffffffff80542000(0000) knlGS:0000000000000000
[ 36.937031] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 36.964797] CR2: 0000000000000000 CR3: 0000000000101000 CR4: 00000000000006e0
[ 36.995261] Process idle (pid: 0, threadinfo ffffffff8054e000, task ffffffff80441800)
[ 37.027224] Stack: ffffffff8010b711 ffffffff80107d21 0000000000000000 ffffffff8054fef0
[ 37.043298] ffffffff80109708 <EOI> 000020250cff65fa 10250c8b4865c900 1fd8e98148000000
[ 37.076996] 0003582444f70000 00fe6ebf12740000
[ 37.103370] Call Trace:
[ 37.140640] <IRQ> [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
[ 37.167285] [<ffffffff80107d21>] mwait_idle+0x0/0x53
[ 37.193322] [<ffffffff80109708>] ret_from_intr+0x0/0xa
[ 37.219723] <EOI>
[ 37.239638]
[ 37.239639] Code: Bad RIP value.
[ 37.280189] RIP [<0000000000000000>] stext+0x7feff0e8/0xe8 RSP <ffffffff804f4f98>
[ 37.310891] CR2: 0000000000000000
[ 37.332934] <0>Kernel panic - not syncing: Aiee, killing interrupt handler!
[ 37.362625] BUG: warning at kernel/panic.c:138/panic()
[ 37.388627]
[ 37.388629] Call Trace:
[ 37.426958] <IRQ> [<ffffffff8012a29b>] panic+0x1f9/0x21e
[ 37.453041] [<ffffffff801f7dd8>] __up_read+0xaa/0xb2
[ 37.478499] [<ffffffff80137d51>] blocking_notifier_call_chain+0x47/0x51
[ 37.507365] [<ffffffff8012ca06>] do_exit+0x8e/0x8e1
[ 37.532615] [<ffffffff803b03ce>] do_page_fault+0x77a/0x806
[ 37.559092] [<ffffffff801244b4>] move_tasks+0xf1/0x2a8
[ 37.584878] [<ffffffff803ae0a3>] _spin_unlock+0x9/0xb
[ 37.610360] [<ffffffff80109edd>] error_exit+0x0/0x84
[ 37.635490] [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
[ 37.659887] [<ffffffff80107d21>] mwait_idle+0x0/0x53
[ 37.684661] [<ffffffff80109708>] ret_from_intr+0x0/0xa
[ 37.709657] <EOI>




---
~Randy


Attachments:
config-2617-rc5mm1 (39.54 kB)

2006-06-01 01:43:46

by Suresh Siddha

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, May 31, 2006 at 06:25:07PM -0700, Randy.Dunlap wrote:
> [ 36.489028] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
> [ 36.500245] [<0000000000000000>] stext+0x7feff0e8/0xe8
> [ 36.549518] PGD 0
> [ 36.570488] Oops: 0010 [1] SMP
> [ 36.593713] last sysfs file:
> [ 36.616496] CPU 0
> [ 36.637392] Modules linked in:
> [ 36.660367] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #1
> [ 36.688549] RIP: 0010:[<0000000000000000>] [<0000000000000000>] stext+0x7feff0e8/0xe8
> [ 36.704388] RSP: 0000:ffffffff804f4f98 EFLAGS: 00010006
> [ 36.749115] RAX: 0000000000001d00 RBX: ffffffff8054fec8 RCX: 0000000000000000
> [ 36.780475] RDX: ffffffff8054fec8 RSI: ffffffff80544d00 RDI: 000000000000003a
> [ 36.811700] RBP: ffffffff804f4fb0 R08: ffffffff8054e000 R09: 000000000000002f
> [ 36.842745] R10: ffff810003002970 R11: ffffffff80512300 R12: 000000000000003a
> [ 36.873626] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> [ 36.904373] FS: 0000000000000000(0000) GS:ffffffff80542000(0000) knlGS:0000000000000000
> [ 36.937031] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> [ 36.964797] CR2: 0000000000000000 CR3: 0000000000101000 CR4: 00000000000006e0
> [ 36.995261] Process idle (pid: 0, threadinfo ffffffff8054e000, task ffffffff80441800)
> [ 37.027224] Stack: ffffffff8010b711 ffffffff80107d21 0000000000000000 ffffffff8054fef0
> [ 37.043298] ffffffff80109708 <EOI> 000020250cff65fa 10250c8b4865c900 1fd8e98148000000
> [ 37.076996] 0003582444f70000 00fe6ebf12740000
> [ 37.103370] Call Trace:
> [ 37.140640] <IRQ> [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
> [ 37.167285] [<ffffffff80107d21>] mwait_idle+0x0/0x53
> [ 37.193322] [<ffffffff80109708>] ret_from_intr+0x0/0xa
> [ 37.219723] <EOI>

changes mentioned in this thread should help..

http://www.ussg.iu.edu/hypermail/linux/kernel/0605.3/1991.html

2006-06-01 01:38:53

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 31 May 2006 18:25:07 -0700
"Randy.Dunlap" <[email protected]> wrote:

> On Tue, 30 May 2006 02:29:25 -0700 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm1/
>
>
> Some odd panic, reproducible. .config attached.
> Machine is Pentium-D with 2 GB RAM and SATA drives.
>

There's nothing odd about a panic in that kernel.

> [ 33.232729] netconsole: device eth0 not up yet, forcing it
> [ 36.489028] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
> [ 36.500245] [<0000000000000000>] stext+0x7feff0e8/0xe8
> [ 36.549518] PGD 0
> [ 36.570488] Oops: 0010 [1] SMP
> [ 36.593713] last sysfs file:
> [ 36.616496] CPU 0
> [ 36.637392] Modules linked in:
> [ 36.660367] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #1
> [ 36.688549] RIP: 0010:[<0000000000000000>] [<0000000000000000>] stext+0x7feff0e8/0xe8
> [ 36.704388] RSP: 0000:ffffffff804f4f98 EFLAGS: 00010006
> [ 36.749115] RAX: 0000000000001d00 RBX: ffffffff8054fec8 RCX: 0000000000000000
> [ 36.780475] RDX: ffffffff8054fec8 RSI: ffffffff80544d00 RDI: 000000000000003a
> [ 36.811700] RBP: ffffffff804f4fb0 R08: ffffffff8054e000 R09: 000000000000002f
> [ 36.842745] R10: ffff810003002970 R11: ffffffff80512300 R12: 000000000000003a
> [ 36.873626] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> [ 36.904373] FS: 0000000000000000(0000) GS:ffffffff80542000(0000) knlGS:0000000000000000
> [ 36.937031] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> [ 36.964797] CR2: 0000000000000000 CR3: 0000000000101000 CR4: 00000000000006e0
> [ 36.995261] Process idle (pid: 0, threadinfo ffffffff8054e000, task ffffffff80441800)
> [ 37.027224] Stack: ffffffff8010b711 ffffffff80107d21 0000000000000000 ffffffff8054fef0
> [ 37.043298] ffffffff80109708 <EOI> 000020250cff65fa 10250c8b4865c900 1fd8e98148000000
> [ 37.076996] 0003582444f70000 00fe6ebf12740000
> [ 37.103370] Call Trace:
> [ 37.140640] <IRQ> [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
> [ 37.167285] [<ffffffff80107d21>] mwait_idle+0x0/0x53
> [ 37.193322] [<ffffffff80109708>] ret_from_intr+0x0/0xa
> [ 37.219723] <EOI>
> [ 37.239638]
> [ 37.239639] Code: Bad RIP value.
> [ 37.280189] RIP [<0000000000000000>] stext+0x7feff0e8/0xe8 RSP <ffffffff804f4f98>
> [ 37.310891] CR2: 0000000000000000
> [ 37.332934] <0>Kernel panic - not syncing: Aiee, killing interrupt handler!
> [ 37.362625] BUG: warning at kernel/panic.c:138/panic()
> [ 37.388627]
> [ 37.388629] Call Trace:
> [ 37.426958] <IRQ> [<ffffffff8012a29b>] panic+0x1f9/0x21e
> [ 37.453041] [<ffffffff801f7dd8>] __up_read+0xaa/0xb2
> [ 37.478499] [<ffffffff80137d51>] blocking_notifier_call_chain+0x47/0x51
> [ 37.507365] [<ffffffff8012ca06>] do_exit+0x8e/0x8e1
> [ 37.532615] [<ffffffff803b03ce>] do_page_fault+0x77a/0x806
> [ 37.559092] [<ffffffff801244b4>] move_tasks+0xf1/0x2a8
> [ 37.584878] [<ffffffff803ae0a3>] _spin_unlock+0x9/0xb
> [ 37.610360] [<ffffffff80109edd>] error_exit+0x0/0x84
> [ 37.635490] [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
> [ 37.659887] [<ffffffff80107d21>] mwait_idle+0x0/0x53
> [ 37.684661] [<ffffffff80109708>] ret_from_intr+0x0/0xa
> [ 37.709657] <EOI>

OK, I think Martin said something about the machine going down early
inside the CPU scheduler.

Are you able to work out what file-n-line move_tasks+0xf1/0x2a8 is at?

gdb vmlinux
(gdb) l *0xffffffff801244b4

Or, if CONFIG_DEBUG_INFO wasn't set:

- Enable CONFIG_DEBUG_INFO
- make vmlinux
- gdb vmlinux
(gdb) p move_tasks
(gdb) l *(0x<address of move_tasks> + 0xf1)

2006-06-01 02:15:15

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.17-rc5-mm1

On Wed, 31 May 2006 18:40:46 -0700 Siddha, Suresh B wrote:

> On Wed, May 31, 2006 at 06:25:07PM -0700, Randy.Dunlap wrote:
> > [ 36.489028] Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
> > [ 36.500245] [<0000000000000000>] stext+0x7feff0e8/0xe8
> > [ 36.549518] PGD 0
> > [ 36.570488] Oops: 0010 [1] SMP
> > [ 36.593713] last sysfs file:
> > [ 36.616496] CPU 0
> > [ 36.637392] Modules linked in:
> > [ 36.660367] Pid: 0, comm: idle Not tainted 2.6.17-rc5-mm1 #1
> > [ 36.688549] RIP: 0010:[<0000000000000000>] [<0000000000000000>] stext+0x7feff0e8/0xe8
> > [ 36.704388] RSP: 0000:ffffffff804f4f98 EFLAGS: 00010006
> > [ 36.749115] RAX: 0000000000001d00 RBX: ffffffff8054fec8 RCX: 0000000000000000
> > [ 36.780475] RDX: ffffffff8054fec8 RSI: ffffffff80544d00 RDI: 000000000000003a
> > [ 36.811700] RBP: ffffffff804f4fb0 R08: ffffffff8054e000 R09: 000000000000002f
> > [ 36.842745] R10: ffff810003002970 R11: ffffffff80512300 R12: 000000000000003a
> > [ 36.873626] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> > [ 36.904373] FS: 0000000000000000(0000) GS:ffffffff80542000(0000) knlGS:0000000000000000
> > [ 36.937031] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> > [ 36.964797] CR2: 0000000000000000 CR3: 0000000000101000 CR4: 00000000000006e0
> > [ 36.995261] Process idle (pid: 0, threadinfo ffffffff8054e000, task ffffffff80441800)
> > [ 37.027224] Stack: ffffffff8010b711 ffffffff80107d21 0000000000000000 ffffffff8054fef0
> > [ 37.043298] ffffffff80109708 <EOI> 000020250cff65fa 10250c8b4865c900 1fd8e98148000000
> > [ 37.076996] 0003582444f70000 00fe6ebf12740000
> > [ 37.103370] Call Trace:
> > [ 37.140640] <IRQ> [<ffffffff8010b711>] do_IRQ+0x4f/0x5e
> > [ 37.167285] [<ffffffff80107d21>] mwait_idle+0x0/0x53
> > [ 37.193322] [<ffffffff80109708>] ret_from_intr+0x0/0xa
> > [ 37.219723] <EOI>
>
> changes mentioned in this thread should help..
>
> http://www.ussg.iu.edu/hypermail/linux/kernel/0605.3/1991.html

Ack, thanks, fixed.

---
~Randy