ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
It took me over two solid days to get this lot compiling and booting on a few
boxes. This required around ninety fixup patches and patch droppings. There
are several bugs in here which I know of (details below) and presumably many
more which I don't know of. I have to say that this just isn't working any
more.
- The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
I didn't drop that patch because the iommu patch series depends on it.
- The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
- And it hangs during suspend-to-RAM, due to git-acpi.patch
- Huge churn in networking. Many wireless drivers will be busted, and b44.c
has been disabled altogether. If you need b44, then good luck working out
what was done to it.
- Added Peter's writeback balancing changes. Might help people who are
seeing large latency during heavy writeback.
- Major changes in the basically-unmaintained IPC code. Needs careful
testing and reviewing.
- Matthias fixed the mm-to-git importer, so the below-referenced git tree
should hopefully be working again.
- Pleeeeeze do try to cc the appropriate developer(s) and mailing lists
when reporting problems, thanks.
Boilerplate:
- See the `hot-fixes' directory for any important updates to this patchset.
- To fetch an -mm tree using git, use (for example)
git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1
- -mm kernel commit activity can be reviewed by subscribing to the
mm-commits mailing list.
echo "subscribe mm-commits" | mail [email protected]
- If you hit a bug in -mm and it is not obvious which patch caused it, it is
most valuable if you can perform a bisection search to identify which patch
introduced the bug. Instructions for this process are at
http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt
But beware that this process takes some time (around ten rebuilds and
reboots), so consider reporting the bug first and if we cannot immediately
identify the faulty patch, then perform the bisection search.
- When reporting bugs, please try to Cc: the relevant maintainer and mailing
list on any email.
- When reporting bugs in this kernel via email, please also rewrite the
email Subject: in some manner to reflect the nature of the bug. Some
developers filter by Subject: when looking for messages to read.
- Occasional snapshots of the -mm lineup are uploaded to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
the mm-commits list.
Changes since 2.6.23-rc4-mm1:
origin.patch
git-acpi.patch
git-alsa.patch
git-arm.patch
git-audit-master.patch
git-avr32.patch
git-cifs.patch
git-cpufreq.patch
git-powerpc.patch
git-drm.patch
git-dvb.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-hid.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-jg-misc.patch
git-kbuild.patch
git-kvm.patch
git-libata-all.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-net.patch
git-tehuti.patch
git-backlight.patch
git-nfs.patch
git-nfsd.patch
git-ocfs2.patch
git-r8169.patch
git-selinux.patch
git-s390.patch
git-sh.patch
git-scsi-misc.patch
git-block.patch
git-unionfs.patch
git-v9fs.patch
git-watchdog.patch
git-wireless.patch
git-ipwireless_cs.patch
git-newsetup.patch
git-xfs.patch
git-cryptodev.patch
git-kgdb.patch
git trees
-quote-fix-infinite-loop.patch
-spi_mpc83xx-hang-fix.patch
-drivers-edac-fix-printk-level-down-to-debug-from-emerg.patch
-drivers-edac-fix-e752x-correct-return-code.patch
-bcm1480-serial-build-fix.patch
-pnp-remove-smcf010-quirk.patch
-update-gitignore.patch
-md-fix-some-bugs-with-growing-raid5-raid6-arrays.patch
-mntput-called-before-dput-in-afs.patch
-fix-dac960-driver-on-machines-which-dont-support-64-bit-dma.patch
-documentation-00-index-notice-ecryptfstxt-moved.patch
-x86_64-add-parenthesis-to-irq-vector-macros.patch
-h8-300-fix-misnamed-config_blkdev_reserve_address-kconfig-variable.patch
-alsa-cs5535audio-correctly-set-dma-substream.patch
-alsa-cs5535audio-fix-prd-register-save-restore-power-management-race.patch
-alsa-cs5535audio-update-pci-device-handling-in-suspend-resume.patch
-alsa-cs5535audio-fix-acc_bm_cmd-register-handling.patch
-alsa-cs5535audio-drop-unused-bus-master-stuff.patch
-arm-extern-inline-static-inline.patch
-arm-cleanup-struct-irqaction-initializers.patch
-fix-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
-ivtv-fbc-bugfix.patch
-hwmon-coretemp-remove-bogus-__cpuinitdata-etc-cleanup.patch
-pci-x-pci-express-read-control-interfaces-mthca.patch
-applesmc-switch-to-using-input-polldev.patch
-ams-switch-to-using-input-polldev.patch
-10-dots-braille-keyboards.patch
-de-dosify-iforce-protocoltxt.patch
-ide-mpc8xx-only-build-mpc8xx-on-arch_ppc.patch
-ide-ide-fix-pci-refcounting.patch
-ide-pdc202xx_new-fix-pci-refcounting.patch
-ide-hpt366-fix-pci-clock-detection-for-hpt374-take-4.patch
-ide-ide-add-ide_dev_is_sata-helper-take-2.patch
-ide-hpt366-ultradma-filter-for-sata-cards-take-2.patch
-ide-pdc202xx_new-pll-detection-fix.patch
-tty-add-the-new-ioctls-and-definitionto-the-mips.patch
-mips-qemu-network-work-again.patch
-drivers-mtd-mtdbdic-is-no-longer-an-own-module.patch
-ocfs2-warning-fix.patch
-gregkh-pci-pci-aer-fix-warnings-when-pcieaer-n.patch
-gregkh-pci-pci-remove-devinit-from-pci_read_bridge_bases.patch
-gregkh-pci-pci-remove-__devinit-from-pcibios_get_irq_routing_table.patch
-gregkh-pci-pci-unhide-smbus-on-compaq-deskpro-ep-401963-001-motherboard.patch
-gregkh-pci-pci-disable-decode-of-io-memory-during-bar-sizing.patch
-gregkh-pci-pci-piggy-bus.patch
-use-menuconfig-objects-fusion.patch
-drivers-message-fusion-mptctlc-mostly-kmalloc-memset-conversion-to-kzalloc.patch
-mpt-fusion-fix-two-potential-mem-leaks.patch
-message-fusion-remove-redundant-memset.patch
-hptiop-use-pci-vendor-symbol.patch
-drivers-scsi-advansysc-ld-error-re-2623-rc3-mm1.patch
-hptiop-add-new-firmware-interface-and-more-pci-device-ids.patch
-git-unionfs-build-fix.patch
-gregkh-usb-usb-oti6858-remove-broken-ioctl-code-in-mm-tree-and-also-the-broken-fixes.patch
-gregkh-usb-usb-iphone-charge.patch
-git-wireless-printk-fixes.patch
-x86_64-mm-cflags-probe.patch
-x86_64-mm-less-stack-alignment.patch
-x86_64-mm-vdso-install-unstripped-copies-on-disk.patch
-x86_64-mm-vdso-do-something-more-with-unstripped-copies-on-disk.patch
-x86_64-mm-fix-leak-of-__-kernel-from-top-level-directory-in-makefile.patch
-x86_64-get-boot_cpu_id-as-early-for-k8_scan_nodes.patch
-x86_64-family-10h-and-11h-to-k8topology.patch
-x86_64-get-mp_bus_to_node-as-early-v3.patch
-x86_64-get-mp_bus_to_node-as-early-v3-update.patch
-x86_64-use-bus-conf-in-nb-conf-fun1-to-get-bus-range-on-node.patch
-try-parent-numa_node-at-first-before-using-default.patch
-net-use-numa_node-in-net_devcice-dev-instead-of-parent.patch
-i386-optimize-memset-of-6-and-8-bytes.patch
-intel_cacheinfo-misc-section-annotation-fixes-fix.patch
-git-xfs-build-fix.patch
-serio-fix-modpost-warning.patch
-nfs-fix-oops-re-sysctls-and-v4-support.patch
-pcmcia-cistpl-use-get_unaligned-in-cis-parsing.patch
-atl1-disable-broken-64-bit-dma.patch
-therm_throtc-fix-section-mismatch.patch
-paravirt-fix-preemptible-lazy-mode-bug.patch
-uml-use-64-bits-for-block-size-on-x86_64.patch
Merged into mainline or a subsystem tree
+fix-dac960-driver-on-machines-which-dont-support-64-bit-dma-fix.patch
+uml-use-correct-type-in-blkgetsize-ioctl.patch
+atyfb-force-29mhz-xtal-on-g3-powerbooks.patch
+fix-failure-to-resume-from-initrds.patch
+fix-uts-corruption-during-cloneclone_newuts.patch
+rtc-ds1742c-should-use-resource_size_t-for-base-address.patch
+rtc-rtc-ds1553c-should-use-resource_size_t-for-base.patch
+mspec-handle-shrinking-virtual-memory-areas.patch
+mspec-handle-shrinking-virtual-memory-areas-3.patch
+pci-fix-unterminated-pci_device_id-lists.patch
+pci-fix-unterminated-pci_device_id-lists-fix.patch
+xen-dont-bother-trying-to-set-cr4.patch
+intelfb-fix-bug-in-dpll-disable.patch
+intel-agp-fix-i830-mask-variable-that-changed-with-g33-support.patch
+dir_index-error-out-instead-of-bug-on-corrupt-dx-dirs.patch
+nfs-fix-oops-re-sysctls-and-v4-support.patch
+disable-sys_timerfd-for-2623.patch
2.6.23 queue
+ext34-ensure-do_split-leaves-enough-free-space-in-both-blocks.patch
+kernel-userc-use-list_for_each_entry-instead-of-list_for_each.patch
+convert-uid-hash-to-hlist.patch
+fix-user-namespace-exiting-oops.patch
+fix-numa-memory-policy-reference-counting.patch
2.6.23 maybe-queue
+git-acpi-fixup.patch
Fix rejects in git-acpi.patch
+alsa-procfs-fix.patch
+git-alsa-sc6000-build-fix.patch
+generic-ac97-mixer-modem-oss-use-list_for_each_entry.patch
+ess-maestro-1-2-2e-sound-card-use-list_for_each_entry.patch
+routines-for-effect-processor-fx8010-use-list_for_each_entry.patch
alsa fixes
+arm-unbalanced-parenthesis-fix.patch
arm fix
-git-powerpc-fixup.patch
Unneeded
+powerpc-proper-defconfig-for-crosscompiles.patch
+powerpc-proper-defconfig-for-crosscompiles-fix.patch
powerpc fixes
-gregkh-driver-block-device.patch
-revert-gregkh-driver-block-device.patch
Dropped
+gregkh-driver-driver-core-add-config_uevent_helper_path.patch
+gregkh-driver-driver-core-remove-subsys_set_kset.patch
+gregkh-driver-driver-core-remove-kset_set_kset_s.patch
+gregkh-driver-driver-core-remove-subsys_put.patch
+gregkh-driver-driver-core-remove-subsys_get.patch
+gregkh-driver-driver-core-remove-put_bus.patch
+gregkh-driver-driver-core-remove-get_bus.patch
+gregkh-driver-kobjects-fix-up-improper-use-of-the-kobject-name-field.patch
+gregkh-driver-cdev-remove-unneeded-setting-of-cdev-names.patch
+gregkh-driver-drivers-clean-up-direct-setting-of-the-name-of-a-kset.patch
+gregkh-driver-kobject-remove-the-static-array-for-the-name.patch
+gregkh-driver-driver-core-make-platform_deviceid-an-int.patch
+gregkh-driver-sysfs-spit-a-warning-to-users-when-they-try-to-create-a-duplicate-sysfs-file.patch
driver tree updates
+fix-gregkh-driver-sysfs-spit-a-warning-to-users-when-they-try-to-create-a-duplicate-sysfs-file.patch
+fix-gregkh-driver-kobject-remove-the-static-array-for-the-name.patch
+fix-2--gregkh-driver-drivers-clean-up-direct-setting-of-the-name-of-a-kset.patch
+fix-gregkh-driver-drivers-clean-up-direct-setting-of-the-name-of-a-kset.patch
+drivers-char-nozomic-__devexit_p-usage-build-fix.patch
Fix it
+git-dvb-build-fix.patch
Fix git-dvb
+oops-in-pwc-v4l-driver.patch
v4l fix
+jdelvare-i2c-i2c-pcf8574-no-init.patch
+jdelvare-i2c-i2c-document-i2c_msg.patch
I2C tree updates
+i2c-i801-documentation-patch-for-intel-tolapai.patch
+i2c-i801-smbus-patch-for-intel-tolapai.patch
+i2c-i801-smbus-patch-for-intel-tolapai-fix.patch
+bfin_twi-remove-useless-twi_lock-mutex.patch
i2c stuff
+applesmc-for-mac-pro-2-x-quad-core.patch
hwmon driver update (needs work)
+ia64-tree-wide-misc-__cpuinitdata-init-exit-fix.patch
Fix ia64-tree-wide-misc-__cpuinitdata-init-exit.patch
+ia64-perfmon-remove-exit_pfm_fs.patch
ia64 fix
+git-input-fixup.patch
Fix git-input.patch
-pass-g-to-assembler-under-config_debug_info.patch
-pass-g-to-assembler-under-config_debug_info-fix.patch
These broek
+git-jg-misc-fix.patch
Fix git-jg-isc
+git-kbuild-fixup.patch
Fix git-kbuild.patch
+tristate-choices-with-mixed-tristate-and-boolean.patch
kbuild tweak
+drivers-ata-pata_ixp4xx_cfc-ioremap-return-code-check.patch
+ahci-raid-mode-sata-patch-for-intel-tolapai.patch
+ata-increase-allowed-config-flags.patch
+ata_piix-replace-spaces-with-tabs.patch
ata things
+ide-ide-pci-use-pci-dev-revision.patch
+ide-ide-use-io-ops-directly-part-2-take-2.patch
+ide-aec62xx-remove-init-setup.patch
+ide-cmd64x-remove-init-setup.patch
+ide-hpt366-remove-init-setup.patch
+ide-pdc202xx_new-remove-init-setup.patch
+ide-pdc202xx_old-remove-init-setup.patch
+ide-scc_pata-remove-init-setup.patch
+ide-serverworks-remove-init-setup.patch
+ide-ide-remove-init-setup-from-ide-pci-device-t.patch
+ide-aec62xx-no-need-to-disable-udma-in-init-hwif-method-for-atp850uf.patch
+ide-pdc202xx_new-add-declare-pdcnew-dev-macro.patch
+ide-pdc202xx_old-add-declare-pdc2026x-dev-macro.patch
+ide-piix-add-declare-ich-dev-macro.patch
+ide-ide-add-ide-hflag-error-stops-fifo.patch
+ide-ide-add-ide-hflag-serialize.patch
+ide-ide-add-ide-hflag-legacy-irqs.patch
+ide-alim15x3-always-tune-pio.patch
+ide-cs5520-always-tune-pio.patch
+ide-cy82c693-always-tune-pio.patch
+ide-opti621-always-tune-pio.patch
+ide-triflex-always-tune-pio.patch
+ide-ide-set-drive-autotune-in-ide-pci-setup-ports.patch
+ide-cmd64x-always-set-hwif-chipset-for-cmd646.patch
+ide-ide-fix-disabled-ports-reporting-for-pci-controllers.patch
+ide-rz1000-set-serialized-flag-only-if-mate-interface-exists.patch
+ide-serverworks-remove-dead-code-from-svwks-set-dma-mode.patch
+ide-ide-add-hwif-register-devices-helper.patch
+ide-ide-remove-unused-next-field-from-ide-pci-device-t.patch
+ide-ide-add-chipset-field-to-ide-pci-device-t.patch
+ide-ide-add-ide-hflag-force-legacy-irqs.patch
+ide-ide-add-ide-hflag-rqsize-256.patch
+ide-ide-add-ide-hflag-io-32bit-unmask-irqs-host-flags.patch
IDE tree updates
+git-mips-fixup.patch
Fix git-mips.patch
+mips-add-gpio-support-to-the-bcm947xx-platform-update.patch
Fix mips-add-gpio-support-to-the-bcm947xx-platform.patch
+mmc-fix-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
Fix mmc tree for driver tree changes
-nommu-present-backing-device-capabilities-for-mtd.patch
-nommu-add-support-for-direct-mapping-through-mtdconcat.patch
-mtd-add-module-license-to-mtdbdi.patch
Dropped
+blackfin-on-chip-nand-flash-controller-driver.patch
MTD driver
-git-netdev-all.patch
-e1000e-build-fix.patch
+git-net.patch
+git-net-fixup.patch
+git-net-fix-2.patch
+nit-net-skge-build-fix.patch
-sundance-phy-address-form-0-only-for-device-id-0x0200.patch
+net-atm-lecc-printk-warning-fix.patch
+document-the-fact-that-smsc-ircc2-will-not-use-pnp-by-default.patch
+net-myri10ge-force-select-inet_lro.patch
+net-use-numa_node-in-net_devcice-dev-instead-of-parent.patch
+git-net-af_iucv-fixes.patch
+git-net-sgiseeq-fix.patch
+git-net-fix-ibmveth.patch
-uli526x-add-suspend-and-resume-routines.patch
-add-3c59x-maintainer.patch
-3c59x-check-return-of-pci_enable_device.patch
-ioc3-program-uart-predividers.patch
-sky2-fe-chip-support.patch
-sky2-use-debugfs-rename.patch
-sky2-document-gphy_ctrl-bits.patch
-sky2-dont-restrict-config-space-access.patch
-sky2-advanced-error-reporting.patch
-sky2-use-pci_config-access-functions.patch
-sky2-use-net_device-internal-stats.patch
-ktime_sub_ns-analog-of-ktime_add_ns.patch
-sky2-hardware-receive-timestamp-counter.patch
+skge-remove-broken-and-unused-phy_m_pc_mdi_xmode-macro.patch
+fix-a-potential-null-pointer-dereference-in-uli526x_interrupt.patch
+sb1250-macc-de-typedef-de-volatile-de-etc.patch
+net_sb1250_mac-update-kconfig-entry.patch
+net_sb1250_mac-rename-to-sb1250_mac.patch
+ipg-add-ip1000a-driver-to-kernel-tree.patch
+git-net-broke-ipg-add-ip1000a-driver-to-kernel-tree.patch
+git-tehuti.patch
+git-tehuti-vs-git-net.patch
-git-net.patch
-git-net-fixup.patch
-net-atm-lecc-printk-warning-fix.patch
-e1000e-incorporate-napi_struct-changes-from-net-2624git.patch
+git-net-vs-git-wireless.patch
+git-net-vs-git-wireless-2.patch
+ath5k-panic-fix.patch
+git-net-vs-git-wireless-3.patch
+git-net-broke-git-wireless.patch
+iwl3945-is-bust.patch
+more-wireless-borkage.patch
+more-wireless-borkage-2.patch
+more-wireless-borkage-3.patch
+p54pci-terminate-pci-table.patch
+git-wireless-fix-99.patch
+git-wireless-b44-is-bust.patch
Networking churn. It is indescribable, so I won't.
+git-backlight-build-fix.patch
+git-backlight-dependency-fix.patch
Fix git-backlight.patch
+git-net-vs-git-nfs.patch
+git-nfs-make-nfs_wb_page_priority-static.patch
Fix git-nfs.patch
+git-nfsd-fixup.patch
Fix git-nfsd.patch
+pcmcia-cistpl-use-get_unaligned-in-cis-parsing.patch
+add-support-for-pcmcia-card-sierra-wireless-ac850.patch
+introduce-dma_mask_none-as-a-signal-for-unable-to-do.patch
+pcmcia-use-dma_mask_none-for-the-default-for-all.patch
pcmcia stuff
+wake-up-from-a-serial-port.patch
Wake up machine over the serial port
+gregkh-pci-pci-fix-boot-time-hang-on-g31-g33-pc.patch
+gregkh-pci-cpqphp-use-pci_class_revision-instead-of-pci_revision_id-for-read.patch
+gregkh-pci-pci-quirk-amd_8131_mmrbc-omit-reading-pci-revision-id.patch
+gregkh-pci-pci-quirk_vt82c586_acpi-omit-reading-pci-revision-id.patch
+gregkh-pci-pci-re-enable-onboard-sound-on-msi-k8t-neo2-fir.patch
PCI tree updates
+i386-compaq-evo-n800c-needs-pci-bus-renumbering.patch
+i386-compaq-evo-n800c-needs-pci-bus-renumbering-fix.patch
PCI things
+sched-use-show_regs-to-improve-__schedule_bug-output.patch
sched cleanup
+git-scsi-misc-fixup.patch
+git-scsi-misc-arcmsr-build-fix.patch
fix git-scsi-misc
+scsi-early-detection-of-medium-not-present-updated.patch
+scsi-use-notifier-chain-for-asynchronous-event.patch
scsi fixes
+git-block-fix-u14-34f.patch
+git-block-fix-qlogicpti-build.patch
Fix git-block.patch
+sparc-fix-build-due-to-termios-changes.patch
Now-unneeded sparc64 fix
+gregkh-usb-usb-remove-unneeded-pointer-intf-from-speedtch_upload_firmware.patch
+gregkh-usb-usb-fix-location-of-statement-label-in-dummy-hcd.patch
+gregkh-usb-usb-usb-storage-initialize-huawei-e220-properly.patch
+gregkh-usb-usb-elan-u132-host-controller-driver-convert-sw_lock-to-mutex.patch
+gregkh-usb-usb-fix-errornous-assumption-in-the-usb-serial-framework-revealed-by-iuu_phoenix.patch
+gregkh-usb-usb-sisusbvga-fix-bug-and-build-warnings.patch
+gregkh-usb-usb-amd5536-use-pdev-revision.patch
+gregkh-usb-usb-get-rid-of-annoying-endpoint-release-message.patch
+gregkh-usb-usb-move-decision-to-ignore-freeze-events.patch
+gregkh-usb-usb-break-apart-flush_endpoint-and-disable_endpoint.patch
+gregkh-usb-usb-flush-outstanding-urbs-when-suspending.patch
+gregkh-usb-usb-usb-serial-ch341c-make-4-functions-static.patch
USB tree updates
-9p-build-fix.patch
-9p-is-bust.patch
-9p-is-still-bust.patch
Unneeded
+x86_64-mm-defconfig-update.patch
+x86_64-mm-vdso-compat-install-unstripped-copies-on-disk.patch
+x86_64-mm-vdso-64bit-install-unstripped-copies-on-disk.patch
+x86_64-mm-implement-missing-x86_64-function-smp_call_function_mask.patch
+x86_64-mm-eliminate-result-signage-problem-in-asm-x86_64-bitops_h.patch
+x86_64-mm-add-parenthesis-to-irq-vector-macros.patch
+x86_64-mm-export-i386-smp_call_function_mask-to-modules.patch
+x86_64-mm-remove-duplicated-nsec-update.patch
+x86_64-mm-remove-stub-early_printk_c.patch
+x86_64-mm-honor-_page_pse-bit-on-page-walks.patch
+x86_64-mm-remove-some-dead-code.patch
+x86_64-mm-honor-notify_die-returning-notify_stop.patch
+x86_64-mm-optionally-show-last-exception-from-to-register-contents-v2.patch
+x86_64-mm-rename-_i-assembler-includes-to-_h.patch
x86 tree updates
+voyager-include-asm-smph-to-fix-compile-error.patch
+therm_throtc-fix-section-mismatch.patch
+optimize-x86-page-faults-like-all-other-achitectures-and-kill-notifier-cruft.patch
+optimize-x86-page-faults-like-all-other-achitectures-and-kill-notifier-cruft-fix.patch
+hpet-force-enable-on-vt8235-37-chipsets.patch
+x86_64-check-msr-to-get-mmconfig-for-amd-family-10h-opteron.patch
+x86_64-check-and-enable-mmconfig-for-amd-family-10h-opteron.patch
+x86_64-check-and-enable-mmconfig-for-amd-family-10h-opteron-fix.patch
+x86_64-set-cfg_size-for-amd-family-10h-in-case-mmconfig-is.patch
+x86_64-set-cfg_size-for-amd-family-10h-in-case-mmconfig-is-fix.patch
+i386-cpuid_count-fix-argument-signedness-warnings.patch
+voyager-dont-try-to-support-unprocessor-builds.patch
+i386-fix-section-mismatch-warning-in-intelc.patch
+x86-misc-constifications.patch
+x86-constify-wd_ops.patch
+x86-multi-byte-single-instruction-nops.patch
x86 stuff
-hpet-force-enable-on-vt8235-37-chipsets.patch
-hpet-force-enable-on-vt8235-37-chipsets-fix.patch
Dropped
+convert-cpu_sibling_map-to-be-a-per-cpu-variable.patch
+convert-cpu_sibling_map-to-a-per_cpu-data-array-ia64.patch
+convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64.patch
+convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64-fix.patch
+convert-cpu_sibling_map-to-a-per_cpu-data-array-sparc64.patch
per-cpuification
+scsi-use-lock-per-host-instead-of-per-device-for-shared-queue-tag-host.patch
+x86_64-nx-bit-handling-in-change_page_attr.patch
+driver-core-fix-deprectated-sysfs-structure-for-nested-class-devices.patch
Maybe-2.6.23 patches
+use-vm_read-write-exec-to-set-vm_page_prot.patch
+prevent-kswapd-from-freeing-excessive-amounts-of-lowmem.patch
+mem-policy-add-mpol_f_mems_allowed-get_mempolicy-flag.patch
+update-n_high_memory-node-state-for-memory-hotadd.patch
+update-n_high_memory-node-state-for-memory-hotadd-fix.patch
+fix-panic-of-cpu-online-with-memory-less-node.patch
+slub-do-not-use-page-mapping-fix.patch
+add-node-states-sysfs-class-attributes-v5.patch
+nfs-remove-congestion_end.patch
+lib-percpu_counter_add.patch
+lib-percpu_counter_sub.patch
+lib-percpu_counter-variable-batch.patch
+lib-make-percpu_counter_add-take-s64.patch
+lib-percpu_counter_set.patch
+lib-percpu_counter_sum_positive.patch
+lib-percpu_count_sum.patch
+lib-percpu_counter_init-error-handling.patch
+lib-percpu_counter_init_irq.patch
+mm-bdi-init-hooks.patch
+mm-scalable-bdi-statistics-counters.patch
+mm-count-reclaimable-pages-per-bdi.patch
+mm-count-writeback-pages-per-bdi.patch
+mm-expose-bdi-statistics-in-sysfs.patch
+lib-floating-proportions.patch
+mm-per-device-dirty-threshold.patch
+mm-per-device-dirty-threshold-warning-fix.patch
+mm-dirty-balancing-for-tasks.patch
+mm-dirty-balancing-for-tasks-warning-fix.patch
+debug-sysfs-files-for-the-current-ratio-size-total.patch
+slub-simplify-irq-off-handling.patch
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters.patch
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters-fix.patch
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters-fix-2.patch
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters-vs-unionfs.patch
MM updates
+alpha-convert-to-generic-sys_ptrace.patch
alpha fix
+hibernation-check-if-acpi-is-enabled-during-restore-in-the-right-place.patch
+hibernation-enter-platform-hibernation-state-in-a-consistent-way-rev-4.patch
+hibernation-enter-platform-hibernation-state-in-a-consistent-way-rev-4-fix.patch
PM updates
+m32r-serial-remove-m32r_sio_share_irqs.patch
m32r cleanup
+uml-remove-unneeded-void-cast.patch
+uml-remove-unused-file.patch
+uml-more-idiomatic-parameter-parsing.patch
UML updates
+i-oat-add-support-for-msi-and-msi-x-fix.patch
Fix i-oat-add-support-for-msi-and-msi-x.patch
+softlockup-improve-debug-output-fix.patch
Fix softlockup-improve-debug-output.patch
-add-all-thread-stats-for-taskstats_cmd_attr_tgid.patch
Dropped
+ufs-fix-sun-state-fix-mount-check-in-ufs_fill_super.patch
Fix ufs-fix-sun-state.patch
+i386-and-x86_64-randomize-brk.patch
+i386-and-x86_64-randomize-brk-fix.patch
brk randomisation
+add-vmcore-cleanup-the-coding-style-according-to-andrews-comments.patch
+add-vmcore-add-nodemask_ts-size-and-nr_free_pagess-value-to-vmcoreinfo_data.patch
+add-vmcore-use-the-existing-ia64_tpa-instead-of-asm-code.patch
+add-vmcore-add-a-prefix-vmcoreinfo_-to-the-vmcoreinfo-macros.patch
Fix add-vmcoreinfo.patch
+send-quota-messages-via-netlink-fix.patch
+send-quota-messages-via-netlink-fix-fix.patch
Fix send-quota-messages-via-netlink.patch
+add-a-rounddown_pow_of_two-routine-to-log2hpatch-fix.patch
Fix add-a-rounddown_pow_of_two-routine-to-log2h.patch
+handle-recursive-calls-to-bust_spinlocks.patch
+store-__setup_str_-in-a-more-compact-way.patch
+constify-string-array-kparam-tracking-structures.patch
+avoid-negative-and-full-width-shifts-in-radix-treec.patch
+futex_compat-simplify-pointer-magic.patch
+futex_compat-update-to-match-native-version.patch
+add-config_vt_unicode.patch
+update-checkpatchpl-to-version-010.patch
+pvrusb2-hdw-terminate-usb-device-id-table-differently.patch
+i2o-fix-defined-but-not-used-build-warnings.patch
+i2o-fix-defined-but-not-used-build-warnings-fix.patch
+ipc-namespace-remove-config-ipc-ns-fix.patch
+spelling-fix-weired-weird.patch
+mutex-documentation-is-unclear-about-software-interrupts-tasklets-and-timers.patch
+dcache-trivial-comment-fix.patch
+procfs-detect-duplicate-names.patch
+procfs-detect-duplicate-names-fix.patch
+procfs-detect-duplicate-names-fix-fix-2.patch
+remove-dma_cache_wbackinvwback_inv-functions.patch
+maintainers-linux-omap-list-is-subscribers-only.patch
+try-to-reap-reiserfs-pages-left-around-by-invalidatepage.patch
+keys-make-request_key-and-co-fundamentally-asynchronous.patch
+keys-make-request_key-and-co-fundamentally-asynchronous-vs-git-mmc.patch
+make-the-pr_-family-of-macros-in-kernelh-complete.patch
+doc-about-email-clients-for-linux-patches.patch
+jbd-slab-cleanups.patch
+reiserfs-fix-kernel-panic-on-corrupted-directory.patch
+lib-iomapcbad_io_access-print-0x-hex-prefix.patch
+lk201-remove-obsolete-driver.patch
Misc
+ext2-reservations-fix-for-percpu_counter-changes.patch
Update ext2-reservations.patch
+ecryptfs-use-generic_file_splice_read.patch
ecryptfs update
+rtc-make-rtc-ds1553-driver-hotplug-aware-take-3.patch
+rtc-make-rtc-ds1742-driver-hotplug-aware-take-2.patch
+rtc-pcf8583-check-for-i2c-adapter-functionality.patch
rtc updates
+uvesafb-the-driver-core-dont-access-vga-registers-directly-when-running-on-non-x86.patch
+s3c2410fb-byte-ordering-fixes.patch
+intel-fb-support-for-interlaced-video-modes.patch
+fbdev-find-mode-with-the-highest-safest-refresh-rate-in-fb_find_mode.patch
+nvidiafb-add-boot-option-to-reverse-i2c-port-assignment.patch
+fbdev-support-for-byte-reversed-framebuffer-formats.patch
+ps3-fix-black-and-white-stripes.patch
+ps3fb-fix-spurious-mode-change-failures.patch
+fbdev-update-documentation-fb-00-index.patch
+tdfxfb-replace-busy-waiting-with-cpu_relax.patch
+pm2fb-replace-busy-waiting-with-cpu_relax.patch
+pm3fb-replace-busy-waiting-with-cpu_relax.patch
+tdfxfb-checkpatch-fixes.patch
+drivers-video-kconfig-fix-fb_pmagb_b-dependencies.patch
+export-font_vga_8x16.patch
fbdev updates
-drivers-video-geode-lxfb_corec-fix-lxfb_setup-warning-fix.patch
Folded into drivers-video-geode-lxfb_corec-fix-lxfb_setup-warning.patch
+bitmaph-remove-dead-artifacts.patch
RAID cleanup
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters-vs-revoke.patch
Fix revoke for slab changes
+documentation-add-entries-to-filesystems-00-index-for-several-untracked-files.patch
+add-a-missing-00-index-file-for-documentation-vm.patch
+add-a-00-index-file-to-documentation-mips.patch
+add-a-00-index-file-to-documentation-sysctl.patch
+add-a-00-index-file-to-documentation-telephony.patch
+kernel-doc-fix-doc-blocks-and-html.patch
+documentation-delete-unreferenced-xterm-linuxxpm-file.patch
+express-relocatability-of-kernel-on-x86_64-in-documentation.patch
+express-relocatability-of-kernel-on-x86_64-in.patch
+express-new-elf32-mechanisms-in-documentation.patch
+add-reset_devices-to-the-recommended-parameters.patch
documentation
+sysctl-deprecate-sys_sysctl-in-a-user-space-visible-fashion-fix.patch
Fix sysctl-deprecate-sys_sysctl-in-a-user-space-visible-fashion.patch
+mxser-fix-compiler-warning-when-building-withoug-config_pci.patch
+mxser-fix-compiler-warning-when-building-withoug-config_pci-fix.patch
mxser updates
+task-containersv11-basic-task-container-framework-containers-fix-refcount-bug.patch
Fix task-containersv11-basic-task-container-framework-fix.patch
+task-containersv11-add-container_clone-interface-containers-fix-refcount-bug.patch
Fix task-containersv11-add-container_clone-interface.patch
+task-containersv11-add-procfs-interface-containers-bdi-init-hooks.patch
Fix task-containersv11-add-procfs-interface.patch
+task-containers-enable-containers-by-default-in-some-configs.patch
Containers Kconfig tweak
-kernel-userc-use-list_for_each_entry-instead-of-list_for_each.patch
Dropped (I think)
+memory-controller-memory-accounting-v7-fix.patch
+memory-controller-memory-accounting-v7-fix-swapoff-breakage-however.patch
Fix memory-controller-memory-accounting-v7.patch
+memory-controller-add-per-container-lru-and-reclaim-v7-fix-2.patch
+memory-controller-add-per-container-lru-and-reclaim-v7-cleanup.patch
+memory-controller-improve-user-interface.patch
Fix memory-controller-add-per-container-lru-and-reclaim-v7.patch some more
+memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7-cleanup.patch
+memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7-fix-2.patch
Fix memory-controller-add-switch-to-control-what-type-of-pages-to-limit-v7.patch
+memory-controller-make-charging-gfp-mask-aware.patch
+memory-controller-make-charging-gfp-mask-aware-fix.patch
+memory-controller-bug_on.patch
Memory controller fixes
+cyclades-avoid-label-defined-but-not-used-warning.patch
cyclades cleanup
+remove-asm-bitopsh-includes.patch
+forbid-asm-bitopsh-direct-inclusion.patch
cleanups
cyber2000fb-rename-bit-macro.patch
+cyber2000fb-checkpatch-fixes.patch
More fbdev things
+use-helpers-to-obtain-task-pid-in-printks-drm-fix.patch
Fix use-helpers-to-obtain-task-pid-in-printks.patch
+alpha-lock-bitops-fix.patch
Fix alpha-lock-bitops.patch
+powerpc-lock-bitops-fix.patch
Fix powerpc-lock-bitops.patch
-fs-cramfs-inodec-remove-error-variable.patch
Dropped
+ipc-store-ipcs-into-idrs.patch
+ipc-unify-the-syscalls-code.patch
+ipc-remove-the-ipc_get-routine.patch
+ipc-integrate-ipc_checkid-into-ipc_lock.patch
+ipc-integrate-ipc_checkid-into-ipc_lock-fix.patch
+storing-ipcs-into-idrs.patch
+ipc-introduce-the-ipcid_to_idx-macro.patch
+ipc-inline-ipc_buildid.patch
Major IPC cleanups
+remove-asm-bitopsh-includes-reiser4.patch
+git-nfsd-broke-reiser4.patch
+slab-api-remove-useless-ctor-parameter-and-reorder-parameters-vs-reiser4.patch
upbreak reiser4 for various things
+add-a-refcount-check-in-dput.patch
New debug check.
4641 commits in 1872 patch files
All patches:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/patch-list
On Tue, 18 Sep 2007 01:18:41 -0700 Andrew Morton <[email protected]> wrote:
> - And it hangs during suspend-to-RAM, due to git-acpi.patch
Make that "suspend-to-disk".
Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
>
<snip>
Hi Andrew,
The 2.6.23-rc6-mm1build fails at
CC drivers/pci/hotplug/rpadlpar_core.o
CC drivers/pci/hotplug/rpadlpar_sysfs.o
drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name' specified in initializer
drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member named `name'
make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
make[2]: *** [drivers/pci/hotplug] Error 2
make[1]: *** [drivers/pci] Error 2
make: *** [drivers] Error 2
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
On Tue, 18 Sep 2007 14:43:48 +0530 Kamalesh Babulal <[email protected]> wrote:
> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> >
> >
> <snip>
>
> Hi Andrew,
>
> The 2.6.23-rc6-mm1build fails at
>
> CC drivers/pci/hotplug/rpadlpar_core.o
> CC drivers/pci/hotplug/rpadlpar_sysfs.o
> drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name' specified in initializer
> drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member named `name'
> make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> make[2]: *** [drivers/pci/hotplug] Error 2
> make[1]: *** [drivers/pci] Error 2
> make: *** [drivers] Error 2
>
Probably this:
--- a/drivers/pci/hotplug/rpadlpar_sysfs.c~a
+++ a/drivers/pci/hotplug/rpadlpar_sysfs.c
@@ -129,8 +129,7 @@ struct kobj_type ktype_dlpar_io = {
};
struct kset dlpar_io_kset = {
- .kobj = {.name = DLPAR_KOBJ_NAME,
- .ktype = &ktype_dlpar_io,
+ .kobj = {.ktype = &ktype_dlpar_io,
.parent = &pci_hotplug_slots_subsys.kobj},
.ktype = &ktype_dlpar_io,
};
_
But I'm fed up with fixing that patch. It's Greg's turn.
On Tue, 18 Sep 2007, Andrew Morton wrote:
> On Tue, 18 Sep 2007 14:43:48 +0530 Kamalesh Babulal <[email protected]> wrote:
>
> > Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> > >
> > > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> > >
> > >
> > <snip>
> >
> > Hi Andrew,
> >
> > The 2.6.23-rc6-mm1build fails at
> >
> > CC drivers/pci/hotplug/rpadlpar_core.o
> > CC drivers/pci/hotplug/rpadlpar_sysfs.o
> > drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name' specified in initializer
> > drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> > drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member named `name'
> > make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> > make[2]: *** [drivers/pci/hotplug] Error 2
> > make[1]: *** [drivers/pci] Error 2
> > make: *** [drivers] Error 2
> >
>
> Probably this:
>
> --- a/drivers/pci/hotplug/rpadlpar_sysfs.c~a
> +++ a/drivers/pci/hotplug/rpadlpar_sysfs.c
> @@ -129,8 +129,7 @@ struct kobj_type ktype_dlpar_io = {
> };
>
> struct kset dlpar_io_kset = {
> - .kobj = {.name = DLPAR_KOBJ_NAME,
> - .ktype = &ktype_dlpar_io,
> + .kobj = {.ktype = &ktype_dlpar_io,
> .parent = &pci_hotplug_slots_subsys.kobj},
> .ktype = &ktype_dlpar_io,
> };
> _
>
> But I'm fed up with fixing that patch. It's Greg's turn.
But wait ... isn't that a statically-allocated kobject, which were
supposed to be "naughty" in the first place?
On Tue, Sep 18, 2007 at 02:43:48PM +0530, Kamalesh Babulal wrote:
> Andrew Morton wrote:
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> >2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> >
> >
> <snip>
>
> Hi Andrew,
>
> The 2.6.23-rc6-mm1build fails at
>
> CC drivers/pci/hotplug/rpadlpar_core.o
> CC drivers/pci/hotplug/rpadlpar_sysfs.o
> drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name'
> specified in initializer
> drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member
> named `name'
> make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> make[2]: *** [drivers/pci/hotplug] Error 2
> make[1]: *** [drivers/pci] Error 2
> make: *** [drivers] Error 2
This seems to be occuring across a number of the powerpc systems we test
with. That driver is a power dynamic lpar IO partitioning driver.
Relevant Cc: added.
-apw
On Tue, 2007-09-18 at 10:34 +0100, Andy Whitcroft wrote:
> On Tue, Sep 18, 2007 at 02:43:48PM +0530, Kamalesh Babulal wrote:
> > Andrew Morton wrote:
> > >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> > >
> > >2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> > >
> > >
> > <snip>
> >
> > Hi Andrew,
> >
> > The 2.6.23-rc6-mm1build fails at
> >
> > CC drivers/pci/hotplug/rpadlpar_core.o
> > CC drivers/pci/hotplug/rpadlpar_sysfs.o
> > drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name'
> > specified in initializer
> > drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> > drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member
> > named `name'
> > make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> > make[2]: *** [drivers/pci/hotplug] Error 2
> > make[1]: *** [drivers/pci] Error 2
> > make: *** [drivers] Error 2
>
> This seems to be occuring across a number of the powerpc systems we test
> with. That driver is a power dynamic lpar IO partitioning driver.
>
> Relevant Cc: added.
That's because somebody is breaking sysfs/kobject interfaces without
fixing all users :-) (Fair enough... it's just that we need to make sure
whoever takes care of that driver nowadays is aware of the breakage).
Ben.
Benjamin Herrenschmidt wrote:
> On Tue, 2007-09-18 at 10:34 +0100, Andy Whitcroft wrote:
>
>> On Tue, Sep 18, 2007 at 02:43:48PM +0530, Kamalesh Babulal wrote:
>>
>>> Andrew Morton wrote:
>>>
>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>>>>
>>>> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>>>>
>>>>
>>>>
>>> <snip>
>>>
>>> Hi Andrew,
>>>
>>> The 2.6.23-rc6-mm1build fails at
>>>
>>> CC drivers/pci/hotplug/rpadlpar_core.o
>>> CC drivers/pci/hotplug/rpadlpar_sysfs.o
>>> drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name'
>>> specified in initializer
>>> drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
>>> drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member
>>> named `name'
>>> make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
>>> make[2]: *** [drivers/pci/hotplug] Error 2
>>> make[1]: *** [drivers/pci] Error 2
>>> make: *** [drivers] Error 2
>>>
>> This seems to be occuring across a number of the powerpc systems we test
>> with. That driver is a power dynamic lpar IO partitioning driver.
>>
>> Relevant Cc: added.
>>
>
> That's because somebody is breaking sysfs/kobject interfaces without
> fixing all users :-) (Fair enough... it's just that we need to make sure
> whoever takes care of that driver nowadays is aware of the breakage).
>
> Ben.
>
Hi Andrew,
Using the kobject_set_name function to set the kobject k_name.
Signed-off-by: Kamalesh Babulal <[email protected]>
---
--- linux-2.6.23-rc6/drivers/pci/hotplug/rpadlpar_sysfs.c
2007-09-18 14:56:05.000000000 +0530
+++ linux-2.6.23-rc6/drivers/pci/hotplug/~rpadlpar_sysfs.c
2007-09-18 16:51:55.000000000 +0530
@@ -129,17 +129,17 @@ struct kobj_type ktype_dlpar_io = {
};
struct kset dlpar_io_kset = {
- .kobj = {.name = DLPAR_KOBJ_NAME,
- .ktype = &ktype_dlpar_io,
- .parent = &pci_hotplug_slots_subsys.kobj},
+ .kobj = {.ktype = &ktype_dlpar_io,
+ .parent = &pci_hotplug_slots_subsys.kobj},
.ktype = &ktype_dlpar_io,
};
int dlpar_sysfs_init(void)
{
+ kobject_set_name(&dlpar_io_kset.kobj, DLPAR_KOBJ_NAME);
if (kset_register(&dlpar_io_kset)) {
printk(KERN_ERR "rpadlpar_io: cannot register kset for
%s\n",
- dlpar_io_kset.kobj.name);
+ dlpar_io_kset.kobj.k_name);
return -EINVAL;
}
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
On Tue, 18 Sep 2007 01:18:41 PDT, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> +gregkh-driver-driver-core-add-config_uevent_helper_path.patch
So I do a 'make silentoldconfig', and I get:
*
* Generic Driver Options
*
path to uevent helper (UEVENT_HELPER_PATH) [/sbin/hotplug] (NEW)
(Hey wow - the patch has a 'help' section, but no '?' listed because it's not a
bool or tristate. You can apparently get help during 'make menuconfig' but not
'make *oldconfig'. That rocks. ;)
Yeeh. Hah. I don't *have* a /sbin/hotplug on this udev-based Fedora box. But
wait, reading the patch says that's usually during early boot. Now to figure
out what /sbin/nash does with its onboard 'hotplug' command... ;)
(In other words, this *really* needs some better help documentation, to explain
who needs this, and who doesn't need it, and what happens if you select it
and you shouldn't have, and what happens if you leave it out when you should
have set it....)
Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
crash, and the bash display settings have to be reset.
Miles
On 9/18/07, Miles Lane <[email protected]> wrote:
> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> crash, and the bash display settings have to be reset.
There seem to be a lot of config option help screens that are crashing
"make menuconfig".
I poked around a little and found a couple more:
Under CPU Scaling Frequency, "'userspace' governer for userspace
frequency scaling" help causes a crash.
Under IO Schedulers, if you have:
<M> Anticipatory I/O scheduler
<M> Deadline I/O scheduler
<*> CFQ I/O scheduler
Default I/O scheduler (CFQ) --->
and then select "Default I/O Scheduler (CFQ)" and then select help,
you'll get a crash.
I got another crash when I selected help for "Symmetric
multi-processing support".
It seems likely that there are loads more.
Hi,
I get modpost errors here :
...
ERROR: "dvb_dmx_init" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_unregister_adapter" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_register_frontend" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_unregister_frontend" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_net_release" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_frontend_detach" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_dmxdev_release" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_dmx_swfilter" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_net_init" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_dmx_release" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_register_adapter" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "dvb_dmxdev_init" [drivers/media/video/video-buf-dvb.ko] undefined!
ERROR: "mt2131_attach" [drivers/media/video/cx23885/cx23885.ko] undefined!
ERROR: "s5h1409_attach" [drivers/media/video/cx23885/cx23885.ko] undefined!
CC arch/i386/boot/mca.o
CC arch/i386/boot/memory.o
CC arch/i386/boot/pm.o
make[1]: *** [__modpost] Fehler 1
make: *** [modules] Fehler 2
...
config there : http://194.231.229.228/MM/2.6.23-rc6-mm1/config-modpost-errors
Regards,
Gabriel
On Tue, Sep 18, 2007 at 11:07:23AM -0400, [email protected] wrote:
> On Tue, 18 Sep 2007 01:18:41 PDT, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> > +gregkh-driver-driver-core-add-config_uevent_helper_path.patch
>
> So I do a 'make silentoldconfig', and I get:
>
> *
> * Generic Driver Options
> *
> path to uevent helper (UEVENT_HELPER_PATH) [/sbin/hotplug] (NEW)
>
> (Hey wow - the patch has a 'help' section, but no '?' listed because it's not a
> bool or tristate. You can apparently get help during 'make menuconfig' but not
> 'make *oldconfig'. That rocks. ;)
Please cc: relevant people next time you complain about kconfig.
Thanks,
Sam
On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> crash, and the bash display settings have to be reset.
Please cc: relevant people next time.
I will take a look.
Thanks,
Sam
Please cc: relevant people.
On Tue, Sep 18, 2007 at 05:43:35PM +0200, Gabriel C wrote:
> Hi,
>
> I get modpost errors here :
>
> ...
>
> ERROR: "dvb_dmx_init" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_unregister_adapter" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_register_frontend" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_unregister_frontend" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_net_release" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_frontend_detach" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_dmxdev_release" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_dmx_swfilter" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_net_init" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_dmx_release" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_register_adapter" [drivers/media/video/video-buf-dvb.ko] undefined!
> ERROR: "dvb_dmxdev_init" [drivers/media/video/video-buf-dvb.ko] undefined!
dvb issue so dvb added.
> ERROR: "mt2131_attach" [drivers/media/video/cx23885/cx23885.ko] undefined!
> ERROR: "s5h1409_attach" [drivers/media/video/cx23885/cx23885.ko] undefined!
Was not sure who maintain this stuff..
It's not in the git-tree I had around.
Sam
> CC arch/i386/boot/mca.o
> CC arch/i386/boot/memory.o
> CC arch/i386/boot/pm.o
> make[1]: *** [__modpost] Fehler 1
> make: *** [modules] Fehler 2
>
> ...
>
>
> config there : http://194.231.229.228/MM/2.6.23-rc6-mm1/config-modpost-errors
>
>
> Regards,
>
> Gabriel
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
Hi Andrew,
PPC64 failed to build with the driver drivers/net/ehea with the
following error
CC [M] drivers/net/ehea/ehea_main.o
drivers/net/ehea/ehea_main.c: In function `ehea_open':
drivers/net/ehea/ehea_main.c:2322: error: implicit declaration of function `port_napi_enable'
drivers/net/ehea/ehea_main.c: At top level:
drivers/net/ehea/ehea_main.c:2340: error: conflicting types for 'port_napi_enable'
drivers/net/ehea/ehea_main.c:2322: error: previous implicit declaration of 'port_napi_enable' was here
make[1]: *** [drivers/net/ehea/ehea_main.o] Error 1
It's buried in git-net.patch and I've cc'd a potential owner based simply
on the mention of EHEA in a leader. I've included a candidate fix for the
error. It seems to be a simple case of port_napi_enable being defined in
the wrong place.
Signed-off-by: Mel Gorman <[email protected]>
---
ehea_main.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-005_fix-rpadlpar_sysfs/drivers/net/ehea/ehea_main.c linux-2.6.23-rc6-mm1-010_fix_ehea_main/drivers/net/ehea/ehea_main.c
--- linux-2.6.23-rc6-mm1-005_fix-rpadlpar_sysfs/drivers/net/ehea/ehea_main.c 2007-09-18 11:29:28.000000000 +0100
+++ linux-2.6.23-rc6-mm1-010_fix_ehea_main/drivers/net/ehea/ehea_main.c 2007-09-18 17:15:27.000000000 +0100
@@ -2307,6 +2307,22 @@ out:
return ret;
}
+static void port_napi_disable(struct ehea_port *port)
+{
+ int i;
+
+ for (i = 0; i < port->num_def_qps; i++)
+ napi_disable(&port->port_res[i].napi);
+}
+
+static void port_napi_enable(struct ehea_port *port)
+{
+ int i;
+
+ for (i = 0; i < port->num_def_qps; i++)
+ napi_enable(&port->port_res[i].napi);
+}
+
static int ehea_open(struct net_device *dev)
{
int ret;
@@ -2328,22 +2344,6 @@ static int ehea_open(struct net_device *
return ret;
}
-static void port_napi_disable(struct ehea_port *port)
-{
- int i;
-
- for (i = 0; i < port->num_def_qps; i++)
- napi_disable(&port->port_res[i].napi);
-}
-
-static void port_napi_enable(struct ehea_port *port)
-{
- int i;
-
- for (i = 0; i < port->num_def_qps; i++)
- napi_enable(&port->port_res[i].napi);
-}
-
static int ehea_down(struct net_device *dev)
{
int ret;
My apologies for the repost, this should have gone to netdev and Dave Miller
as well.
On (18/09/07 17:20), Mel Gorman didst pronounce:
> Hi Andrew,
>
> PPC64 failed to build with the driver drivers/net/ehea with the
> following error
>
> CC [M] drivers/net/ehea/ehea_main.o
> drivers/net/ehea/ehea_main.c: In function `ehea_open':
> drivers/net/ehea/ehea_main.c:2322: error: implicit declaration of function `port_napi_enable'
> drivers/net/ehea/ehea_main.c: At top level:
> drivers/net/ehea/ehea_main.c:2340: error: conflicting types for 'port_napi_enable'
> drivers/net/ehea/ehea_main.c:2322: error: previous implicit declaration of 'port_napi_enable' was here
> make[1]: *** [drivers/net/ehea/ehea_main.o] Error 1
>
> It's buried in git-net.patch and I've cc'd a potential owner based simply
> on the mention of EHEA in a leader. I've included a candidate fix for the
> error. It seems to be a simple case of port_napi_enable being defined in
> the wrong place.
>
> Signed-off-by: Mel Gorman <[email protected]>
>
> ---
> ehea_main.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-005_fix-rpadlpar_sysfs/drivers/net/ehea/ehea_main.c linux-2.6.23-rc6-mm1-010_fix_ehea_main/drivers/net/ehea/ehea_main.c
> --- linux-2.6.23-rc6-mm1-005_fix-rpadlpar_sysfs/drivers/net/ehea/ehea_main.c 2007-09-18 11:29:28.000000000 +0100
> +++ linux-2.6.23-rc6-mm1-010_fix_ehea_main/drivers/net/ehea/ehea_main.c 2007-09-18 17:15:27.000000000 +0100
> @@ -2307,6 +2307,22 @@ out:
> return ret;
> }
>
> +static void port_napi_disable(struct ehea_port *port)
> +{
> + int i;
> +
> + for (i = 0; i < port->num_def_qps; i++)
> + napi_disable(&port->port_res[i].napi);
> +}
> +
> +static void port_napi_enable(struct ehea_port *port)
> +{
> + int i;
> +
> + for (i = 0; i < port->num_def_qps; i++)
> + napi_enable(&port->port_res[i].napi);
> +}
> +
> static int ehea_open(struct net_device *dev)
> {
> int ret;
> @@ -2328,22 +2344,6 @@ static int ehea_open(struct net_device *
> return ret;
> }
>
> -static void port_napi_disable(struct ehea_port *port)
> -{
> - int i;
> -
> - for (i = 0; i < port->num_def_qps; i++)
> - napi_disable(&port->port_res[i].napi);
> -}
> -
> -static void port_napi_enable(struct ehea_port *port)
> -{
> - int i;
> -
> - for (i = 0; i < port->num_def_qps; i++)
> - napi_enable(&port->port_res[i].napi);
> -}
> -
> static int ehea_down(struct net_device *dev)
> {
> int ret;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
Sam Ravnborg wrote:
> Please cc: relevant people.
>
> On Tue, Sep 18, 2007 at 05:43:35PM +0200, Gabriel C wrote:
>
>> Hi,
>>
>> I get modpost errors here :
>>
>> ...
>>
>> ERROR: "dvb_dmx_init" [drivers/media/video/video-buf-dvb.ko] undefined!
>> ERROR: "dvb_unregister_adapter" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_register_frontend" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_unregister_frontend" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_net_release" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_frontend_detach" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_dmxdev_release" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_dmx_swfilter" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_net_init" [drivers/media/video/video-buf-dvb.ko] undefined!
>> ERROR: "dvb_dmx_release" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_register_adapter" [drivers/media/video/video-buf-dvb.ko]
undefined!
>> ERROR: "dvb_dmxdev_init" [drivers/media/video/video-buf-dvb.ko]
undefined!
>>
>
> dvb issue so dvb added.
>
>
>> ERROR: "mt2131_attach" [drivers/media/video/cx23885/cx23885.ko]
undefined!
>> ERROR: "s5h1409_attach" [drivers/media/video/cx23885/cx23885.ko]
undefined!
>>
>
> Was not sure who maintain this stuff..
> It's not in the git-tree I had around.
Sam,
This stuff is in -mm only right now.
It was a dependency problem, where a new driver (cx23885) is missing the
dependency on DVB_CORE.
The fix is in this changeset:
http://linuxtv.org/hg/~mkrufky/build-fix/rev/67acaa106a99
Mauro,
Please pull from:
http://linuxtv.org/hg/~mkrufky/build-fix
for:
- VIDEO_CX23885 depends on DVB_CORE
Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Regards,
Mike Krufky
On Tue, 18 Sep 2007 17:37:58 +0530 Kamalesh Babulal <[email protected]> wrote:
> Benjamin Herrenschmidt wrote:
> > On Tue, 2007-09-18 at 10:34 +0100, Andy Whitcroft wrote:
> >
> >> On Tue, Sep 18, 2007 at 02:43:48PM +0530, Kamalesh Babulal wrote:
> >>
> >>> Andrew Morton wrote:
> >>>
> >>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >>>>
> >>>> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> >>>>
> >>>>
> >>>>
> >>> <snip>
> >>>
> >>> Hi Andrew,
> >>>
> >>> The 2.6.23-rc6-mm1build fails at
> >>>
> >>> CC drivers/pci/hotplug/rpadlpar_core.o
> >>> CC drivers/pci/hotplug/rpadlpar_sysfs.o
> >>> drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name'
> >>> specified in initializer
> >>> drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> >>> drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member
> >>> named `name'
> >>> make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> >>> make[2]: *** [drivers/pci/hotplug] Error 2
> >>> make[1]: *** [drivers/pci] Error 2
> >>> make: *** [drivers] Error 2
> >>>
> >> This seems to be occuring across a number of the powerpc systems we test
> >> with. That driver is a power dynamic lpar IO partitioning driver.
> >>
> >> Relevant Cc: added.
> >>
> >
> > That's because somebody is breaking sysfs/kobject interfaces without
> > fixing all users :-) (Fair enough... it's just that we need to make sure
> > whoever takes care of that driver nowadays is aware of the breakage).
> >
> > Ben.
> >
> Hi Andrew,
>
> Using the kobject_set_name function to set the kobject k_name.
>
> Signed-off-by: Kamalesh Babulal <[email protected]>
> ---
> --- linux-2.6.23-rc6/drivers/pci/hotplug/rpadlpar_sysfs.c
> 2007-09-18 14:56:05.000000000 +0530
> +++ linux-2.6.23-rc6/drivers/pci/hotplug/~rpadlpar_sysfs.c
> 2007-09-18 16:51:55.000000000 +0530
> @@ -129,17 +129,17 @@ struct kobj_type ktype_dlpar_io = {
> };
>
> struct kset dlpar_io_kset = {
> - .kobj = {.name = DLPAR_KOBJ_NAME,
> - .ktype = &ktype_dlpar_io,
> - .parent = &pci_hotplug_slots_subsys.kobj},
> + .kobj = {.ktype = &ktype_dlpar_io,
> + .parent = &pci_hotplug_slots_subsys.kobj},
> .ktype = &ktype_dlpar_io,
> };
>
> int dlpar_sysfs_init(void)
> {
> + kobject_set_name(&dlpar_io_kset.kobj, DLPAR_KOBJ_NAME);
> if (kset_register(&dlpar_io_kset)) {
> printk(KERN_ERR "rpadlpar_io: cannot register kset for
> %s\n",
> - dlpar_io_kset.kobj.name);
> + dlpar_io_kset.kobj.k_name);
> return -EINVAL;
> }
>
Thanks.
Your email client replaces tabs with spaces, and is performing wordwrapping.
LD .tmp_vmlinux1
drivers/built-in.o: In function `acpi_ac_remove':
ac.c:(.text+0x3eeec): undefined reference to `power_supply_unregister'
drivers/built-in.o: In function `acpi_ac_add':
ac.c:(.text+0x3f10b): undefined reference to `power_supply_register'
make: *** [.tmp_vmlinux1] Error 1
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc6-mm1
# Tue Sep 18 12:42:42 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_USER_NS=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_CONTAINERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=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_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_KPAGEMAP=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
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
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBD=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=m
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"
CONFIG_PREEMPT_NOTIFIERS=y
#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
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_PARAVIRT=y
CONFIG_XEN=y
CONFIG_VMI=y
# 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=y
# CONFIG_MCORE2 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# 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_MVIAC7 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_HPET_TIMER=y
CONFIG_NR_CPUS=2
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=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_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_EFI_VARS is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
#
# Memory hotplug is currently incompatible with Software Suspend
#
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_EFI=y
CONFIG_IRQBALANCE=y
CONFIG_BOOT_IOREMAP=y
# CONFIG_SECCOMP is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
CONFIG_COMPAT_VDSO=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_SMP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_SMP_POSSIBLE=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_THERMAL is not set
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=2001
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DEBUG_FUNC_TRACE=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
# CONFIG_APM is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
#
# CPU idle PM support
#
CONFIG_CPU_IDLE=y
#
# Governors
#
CONFIG_CPU_IDLE_GOV_LADDER=m
CONFIG_CPU_IDLE_GOV_MENU=m
#
# 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=y
CONFIG_HOTPLUG_PCI_PCIE=m
# CONFIG_PCIEAER is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_PCCARD=m
CONFIG_PCMCIA_DEBUG=y
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y
#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=m
CONFIG_HOTPLUG_PCI=m
CONFIG_HOTPLUG_PCI_FAKE=m
CONFIG_HOTPLUG_PCI_COMPAQ=m
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
CONFIG_HOTPLUG_PCI_IBM=m
CONFIG_HOTPLUG_PCI_ACPI=m
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
CONFIG_XFRM_MIGRATE=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=m
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IP_VS is not set
CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
CONFIG_INET6_XFRM_MODE_TUNNEL=y
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_DEBUG=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK_ENABLED=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
# CONFIG_IPX is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_CLS_ROUTE=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUGFS is not set
CONFIG_MAC80211_DEBUG=y
CONFIG_MAC80211_VERBOSE_DEBUG=y
CONFIG_MAC80211_LOWTX_FRAME_DUMP=y
CONFIG_TKIP_DEBUG=y
CONFIG_MAC80211_DEBUG_COUNTERS=y
CONFIG_MAC80211_IBSS_DEBUG=y
CONFIG_MAC80211_VERBOSE_PS_DEBUG=y
CONFIG_IEEE80211=m
CONFIG_IEEE80211_DEBUG=y
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
CONFIG_IEEE80211_SOFTMAC_DEBUG=y
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=m
CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
CONFIG_MTD_CONCAT=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
CONFIG_MTD_REDBOOT_PARTS_READONLY=y
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
# CONFIG_MTD_OOPS is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_MAP_BANK_WIDTH_8=y
CONFIG_MTD_MAP_BANK_WIDTH_16=y
CONFIG_MTD_MAP_BANK_WIDTH_32=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_I4=y
CONFIG_MTD_CFI_I8=y
CONFIG_MTD_OTP=y
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_PHYSMAP=m
CONFIG_MTD_PHYSMAP_START=0x8000000
CONFIG_MTD_PHYSMAP_LEN=0x0
CONFIG_MTD_PHYSMAP_BANKWIDTH=2
CONFIG_MTD_PNC2000=m
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
CONFIG_MTD_TS5500=m
CONFIG_MTD_SBC_GXX=m
CONFIG_MTD_AMD76XROM=m
CONFIG_MTD_ICHXROM=m
CONFIG_MTD_ESB2ROM=m
CONFIG_MTD_CK804XROM=m
CONFIG_MTD_SCB2_FLASH=m
CONFIG_MTD_NETtel=m
CONFIG_MTD_DILNETPC=m
CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000
CONFIG_MTD_L440GX=m
CONFIG_MTD_PCI=m
CONFIG_MTD_PLATRAM=m
#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
CONFIG_MTD_PMC551_BUGFIX=y
CONFIG_MTD_PMC551_DEBUG=y
CONFIG_MTD_DATAFLASH=m
CONFIG_MTD_M25P80=m
CONFIG_MTD_SLRAM=m
CONFIG_MTD_PHRAM=m
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
CONFIG_MTD_DOC2000=m
CONFIG_MTD_DOC2001=m
CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
CONFIG_MTD_DOCPROBE_ADVANCED=y
CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
CONFIG_MTD_DOCPROBE_HIGH=y
CONFIG_MTD_DOCPROBE_55AA=y
CONFIG_MTD_NAND=m
CONFIG_MTD_NAND_VERIFY_WRITE=y
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND_MUSEUM_IDS=y
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_DISKONCHIP=m
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0
CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y
CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
CONFIG_MTD_NAND_CAFE=m
CONFIG_MTD_NAND_CS553X=m
CONFIG_MTD_NAND_NANDSIM=m
CONFIG_MTD_NAND_PLATFORM=m
# CONFIG_MTD_ALAUDA is not set
CONFIG_MTD_ONENAND=m
CONFIG_MTD_ONENAND_VERIFY_WRITE=y
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
CONFIG_MTD_ONENAND_SIM=m
#
# UBI - Unsorted block images
#
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=1
CONFIG_MTD_UBI_GLUEBI=y
#
# UBI debugging options
#
CONFIG_MTD_UBI_DEBUG=y
CONFIG_MTD_UBI_DEBUG_MSG=y
CONFIG_MTD_UBI_DEBUG_PARANOID=y
CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y
CONFIG_MTD_UBI_DEBUG_USERSPACE_IO=y
CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS=y
CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES=y
CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES=y
#
# Additional UBI debugging messages
#
CONFIG_MTD_UBI_DEBUG_MSG_BLD=y
CONFIG_MTD_UBI_DEBUG_MSG_EBA=y
CONFIG_MTD_UBI_DEBUG_MSG_WL=y
CONFIG_MTD_UBI_DEBUG_MSG_IO=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=y
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
CONFIG_EEPROM_93CX6=m
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=m
CONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_PROC_FS is not set
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_FC_TGT_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
# CONFIG_SCSI_SAS_ATA is not set
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIL24 is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PCMCIA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_CRYPT is not set
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=y
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_SBP2=m
# CONFIG_IEEE1394 is not set
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=m
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_NETDEVICES_MULTIQUEUE=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_IP1000 is not set
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_ICPLUS_PHY=m
# CONFIG_FIXED_PHY is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 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_FORCEDETH is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
CONFIG_NET_POCKET=y
CONFIG_ATP=m
CONFIG_DE600=m
CONFIG_DE620=m
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_IPW2100 is not set
CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
# CONFIG_IPW2200_QOS is not set
CONFIG_IPW2200_DEBUG=y
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
CONFIG_HERMES=y
CONFIG_PLX_HERMES=y
CONFIG_TMD_HERMES=y
CONFIG_NORTEL_HERMES=y
CONFIG_PCI_HERMES=y
# CONFIG_USB_ATMEL is not set
# CONFIG_PCMCIA_HERMES is not set
# CONFIG_PCMCIA_SPECTRUM is not set
CONFIG_ATMEL=y
CONFIG_PCI_ATMEL=y
# CONFIG_PCMCIA_ATMEL is not set
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
CONFIG_PRISM54=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_BCM43XX is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
# CONFIG_RT2X00 is not set
# CONFIG_ZD1211RW_MAC80211 is not set
#
# USB Network Adapters
#
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET_MII=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
CONFIG_XEN_NETDEV_FRONTEND=y
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
CONFIG_PPPOL2TP=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_POLLDEV=m
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=m
# 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_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
CONFIG_TABLET_USB_GTCO=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_WACOM=m
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC 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 is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_UNICODE is not set
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CS=m
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=y
CONFIG_SERIAL_CORE_CONSOLE=y
# 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
CONFIG_HVC_DRIVER=y
CONFIG_HVC_XEN=y
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_INTEL=m
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_GEODE is not set
# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=m
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
CONFIG_AGP=y
# 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=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
CONFIG_DRM_I915=y
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
CONFIG_IPWIRELESS_CS=m
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
CONFIG_HPET_RTC_IRQ=y
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=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_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
# CONFIG_I2C_NFORCE2 is not set
CONFIG_I2C_OCORES=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC 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_TAOS_EVM is not set
CONFIG_I2C_STUB=m
CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
# CONFIG_DS1682 is not set
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
CONFIG_SENSORS_TSL2550=m
# 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=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m
CONFIG_SPI_BUTTERFLY=m
CONFIG_SPI_LM70_LLP=m
#
# SPI Protocol Masters
#
CONFIG_SPI_AT25=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_TLE62X0=m
CONFIG_W1=m
CONFIG_W1_CON=y
#
# 1-wire Bus Masters
#
CONFIG_W1_MASTER_MATROX=m
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2760=m
CONFIG_POWER_SUPPLY=m
CONFIG_POWER_SUPPLY_DEBUG=y
CONFIG_PDA_POWER=m
CONFIG_BATTERY_DS2760=m
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
# CONFIG_SENSORS_ADT7470 is not set
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_F71805F=m
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
CONFIG_SENSORS_APPLESMC=m
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_CORE=m
CONFIG_WATCHDOG_DEBUG_CORE=y
#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_SC520_WDT=m
CONFIG_EUROTECH_WDT=m
CONFIG_IB700_WDT=m
CONFIG_IBMASR=m
CONFIG_WAFER_WDT=m
CONFIG_I6300ESB_WDT=m
CONFIG_ITCO_WDT=m
CONFIG_ITCO_VENDOR_SUPPORT=y
CONFIG_SC1200_WDT=m
CONFIG_PC87413_WDT=m
CONFIG_60XX_WDT=m
CONFIG_SBC8360_WDT=m
CONFIG_CPU5_WDT=m
CONFIG_SMSC37B787_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83697HF_WDT=m
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
CONFIG_SBC_EPX_C3_WATCHDOG=m
#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m
# CONFIG_WDT_501_PCI is not set
#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=m
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
CONFIG_SSB_PCMCIAHOST=y
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
#
# Multifunction device drivers
#
CONFIG_MFD_SM501=m
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_MSP3400=m
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_SAA6588=m
CONFIG_VIDEO_BWQCAM=m
CONFIG_VIDEO_CQCAM=m
# CONFIG_VIDEO_W9966 is not set
CONFIG_VIDEO_CPIA=m
CONFIG_VIDEO_CPIA_PP=m
CONFIG_VIDEO_CPIA_USB=m
CONFIG_VIDEO_CPIA2=m
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_CX88 is not set
# CONFIG_VIDEO_CX23885 is not set
# CONFIG_VIDEO_IVTV is not set
# CONFIG_VIDEO_CAFE_CCIC is not set
CONFIG_V4L_USB_DRIVERS=y
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_USBVISION is not set
# CONFIG_USB_VICAM is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_KONICAWC is not set
# CONFIG_USB_QUICKCAM_MESSENGER is not set
# CONFIG_USB_ET61X251 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
# CONFIG_USB_W9968CF is not set
CONFIG_USB_OV511=m
CONFIG_USB_SE401=m
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_STV680 is not set
# CONFIG_USB_ZC0301 is not set
# CONFIG_USB_PWC is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STK11XX is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_TUNER=m
# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
CONFIG_TUNER_MT20XX=m
CONFIG_TUNER_TDA8290=m
CONFIG_TUNER_TEA5761=m
CONFIG_TUNER_TEA5767=m
CONFIG_TUNER_SIMPLE=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_DAB=y
# CONFIG_USB_DABUSB is not set
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_LTV350QV is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PROGEAR=y
#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=y
#
# Display hardware drivers
#
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# 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_UVESA is not set
CONFIG_FB_VESA=y
# CONFIG_FB_EFI is not set
# CONFIG_FB_IMAC is not set
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_LE80578 is not set
CONFIG_FB_INTEL=m
CONFIG_FB_INTEL_DEBUG=y
CONFIG_FB_INTEL_I2C=y
# 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_S3 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_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_SM501 is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_FONT_6x11=y
CONFIG_FONT_7x14=y
CONFIG_FONT_PEARL_8x8=y
CONFIG_FONT_ACORN_8x8=y
CONFIG_FONT_MINI_4x6=y
CONFIG_FONT_SUN8x16=y
CONFIG_FONT_SUN12x22=y
CONFIG_FONT_10x18=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
CONFIG_SOUND=m
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_DEBUG_DETECT=y
CONFIG_SND_PCM_XRUN_DEBUG=y
#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_DUMMY is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_PORTMAN2X4=m
#
# 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_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_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=m
CONFIG_SND_INTEL8X0M=m
# 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
# CONFIG_SND_AC97_POWER_SAVE is not set
#
# SPI devices
#
#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
# CONFIG_SND_USB_CAIAQ_INPUT is not set
#
# PCMCIA devices
#
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set
#
# SoC Audio support for SuperH
#
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
CONFIG_USB_HID=m
# 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_SUPPORT=y
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_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
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=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
CONFIG_USB_MON=y
#
# USB port drivers
#
CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
CONFIG_USB_BERRY_CHARGE=m
CONFIG_USB_LED=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_PHIDGET=m
CONFIG_USB_PHIDGETKIT=m
CONFIG_USB_PHIDGETMOTORCONTROL=m
CONFIG_USB_PHIDGETSERVO=m
CONFIG_USB_IDMOUSE=m
CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_APPLEDISPLAY=m
# CONFIG_USB_SISUSBVGA is not set
CONFIG_USB_LD=m
CONFIG_USB_TRANCEVIBRATOR=m
CONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not set
# CONFIG_USB_GOTEMP is not set
#
# USB DSL modem support
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
CONFIG_MMC=m
CONFIG_MMC_DEBUG=y
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_PASSWORDS is not set
#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
#
# MMC/SD Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
#
# LED drivers
#
#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
CONFIG_DMADEVICES=y
#
# DMA Devices
#
CONFIG_INTEL_IOATDMA=m
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
CONFIG_NET_DMA=y
CONFIG_DCA=m
# CONFIG_AUXDISPLAY is not set
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
# CONFIG_KVM_AMD is not set
#
# Userspace I/O
#
# CONFIG_UIO is not set
# CONFIG_LGUEST is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_EXT4DEV_FS=m
CONFIG_EXT4DEV_FS_XATTR=y
# CONFIG_EXT4DEV_FS_POSIX_ACL is not set
# CONFIG_EXT4DEV_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISER4_FS=m
# CONFIG_REISER4_DEBUG is not set
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=m
# CONFIG_JFS_POSIX_ACL is not set
# CONFIG_JFS_SECURITY is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
CONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_NOLOCK is not set
# CONFIG_GFS2_FS_LOCKING_DLM 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=y
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
# CONFIG_MSDOS_FS is not set
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=y
#
# Layered filesystems
#
# CONFIG_ECRYPT_FS is not set
CONFIG_UNION_FS=m
CONFIG_UNION_FS_XATTR=y
CONFIG_UNION_FS_DEBUG=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_JFFS2_FS_SECURITY=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_JFFS2_CMODE_FAVOURLZO 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 is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DEBUG2=y
CONFIG_CIFS_EXPERIMENTAL=y
# CONFIG_CIFS_UPCALL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_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=y
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=y
CONFIG_LDM_DEBUG=y
# 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
# CONFIG_SYSV68_PARTITION is not set
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 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=y
CONFIG_NLS_ISO8859_1=y
# 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=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
#
# Distributed Lock Manager
#
CONFIG_DLM=m
CONFIG_DLM_DEBUG=y
CONFIG_INSTRUMENTATION=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_KPROBES=y
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
CONFIG_SLUB_DEBUG_ON=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_LIST=y
CONFIG_FRAME_POINTER=y
CONFIG_UNWIND_INFO=y
CONFIG_STACK_UNWIND=y
# CONFIG_PROFILE_LIKELY is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
# CONFIG_KGDB_ATTACH_WAIT is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
#
# 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=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_CAPABILITIES=y
CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_SELINUX is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=m
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=m
# CONFIG_CRYPTO_AES_586 is not set
# 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_SEED=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_LZO_COMPRESS=m
CONFIG_LZO_DECOMPRESS=m
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
On Tue, 18 Sep 2007 01:18:41 -0700 Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> Changes since 2.6.23-rc4-mm1:
>
> git-watchdog.patch
Still complains with:
drivers/watchdog/core/watchdog_dev.c:84: warning: format '%i' expects type 'int', but argument 5 has type 'size_t'
which Satyam posted a patch for:
http://lkml.org/lkml/2007/9/3/212
and Wim replied that he had applied it... ???
http://lkml.org/lkml/2007/9/4/145 (maybe to wrong tree/branch ?)
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
On Tue, 18 Sep 2007 10:18:39 -0700 Randy Dunlap wrote:
> On Tue, 18 Sep 2007 01:18:41 -0700 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
> > Changes since 2.6.23-rc4-mm1:
> >
> > git-watchdog.patch
>
> Still complains with:
>
> drivers/watchdog/core/watchdog_dev.c:84: warning: format '%i' expects type 'int', but argument 5 has type 'size_t'
Please ignore. wrong directory :(
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
Hi Andrew,
IA64 failed to build in kgdb with the messages
arch/ia64/kernel/kgdb.c: In function 'kgdb_arch_set_breakpoint':
arch/ia64/kernel/kgdb.c:555: warning: large integer implicitly truncated to unsigned type
arch/ia64/kernel/kgdb.c: At top level:
arch/ia64/kernel/kgdb.c:673: error: static declaration of 'kgdb_hwbreak_sstep' follows non-static declaration
include/asm/kgdb.h:33: error: previous declaration of 'kgdb_hwbreak_sstep' was here
make[1]: *** [arch/ia64/kernel/kgdb.o] Error 1
make: *** [arch/ia64/kernel] Error 2
make: *** Waiting for unfinished jobs....
It's buried in git-kgdb.patch and I've cc'd who might be the owner. A candidate
fix is below. The build error seems to be a simple case of a badly placed
static. The warning about large integer truncating does not have an obvious
fix and I didn't want to hide the warning with a real bug.
Signed-off-by: Mel Gorman <[email protected]>
---
kgdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-010_fix_ehea_main/arch/ia64/kernel/kgdb.c linux-2.6.23-rc6-mm1-015_fix_ia64_kgdb/arch/ia64/kernel/kgdb.c
--- linux-2.6.23-rc6-mm1-010_fix_ehea_main/arch/ia64/kernel/kgdb.c 2007-09-18 11:29:26.000000000 +0100
+++ linux-2.6.23-rc6-mm1-015_fix_ia64_kgdb/arch/ia64/kernel/kgdb.c 2007-09-18 17:33:36.000000000 +0100
@@ -670,7 +670,7 @@ void kgdb_roundup_cpus(unsigned long fla
smp_send_nmi_allbutself();
}
-static volatile int kgdb_hwbreak_sstep[NR_CPUS];
+volatile int kgdb_hwbreak_sstep[NR_CPUS];
static int kgdb_notify(struct notifier_block *self, unsigned long cmd,
void *ptr)
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
On (18/09/07 13:20), Miles Lane didst pronounce:
> LD .tmp_vmlinux1
> drivers/built-in.o: In function `acpi_ac_remove':
> ac.c:(.text+0x3eeec): undefined reference to `power_supply_unregister'
> drivers/built-in.o: In function `acpi_ac_add':
> ac.c:(.text+0x3f10b): undefined reference to `power_supply_register'
> make: *** [.tmp_vmlinux1] Error 1
>
Hi Miles,
The problem appears to be that ACPI_AC is compiled in but POWER_SUPPLY is
a module. You could workaround it by making them both modules but I believe
the root cause may be a dependency problem. I've included a patch below that
when you apply and run make oldconfig should allow you to build your kernel.
ACPI folks, is this a fix? If so, there may be other dependency issues that
allow a compiled-in feature to depend on a module.
Signed-off-by: Mel Gorman <[email protected]>
---
Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-015_fix_ia64_kgdb/drivers/acpi/Kconfig linux-2.6.23-rc6-mm1-020_fix_acpi/drivers/acpi/Kconfig
--- linux-2.6.23-rc6-mm1-015_fix_ia64_kgdb/drivers/acpi/Kconfig 2007-09-11 03:50:29.000000000 +0100
+++ linux-2.6.23-rc6-mm1-020_fix_acpi/drivers/acpi/Kconfig 2007-09-18 19:03:32.000000000 +0100
@@ -88,7 +88,7 @@ config ACPI_PROC_EVENT
config ACPI_AC
tristate "AC Adapter"
- depends on X86
+ depends on X86 && POWER_SUPPLY
default y
help
This driver adds support for the AC Adapter object, which indicates
From: [email protected] (Mel Gorman)
Date: Tue, 18 Sep 2007 17:20:39 +0100
> Hi Andrew,
>
> PPC64 failed to build with the driver drivers/net/ehea with the
> following error
>
> CC [M] drivers/net/ehea/ehea_main.o
> drivers/net/ehea/ehea_main.c: In function `ehea_open':
> drivers/net/ehea/ehea_main.c:2322: error: implicit declaration of function `port_napi_enable'
> drivers/net/ehea/ehea_main.c: At top level:
> drivers/net/ehea/ehea_main.c:2340: error: conflicting types for 'port_napi_enable'
> drivers/net/ehea/ehea_main.c:2322: error: previous implicit declaration of 'port_napi_enable' was here
> make[1]: *** [drivers/net/ehea/ehea_main.o] Error 1
>
> It's buried in git-net.patch and I've cc'd a potential owner based simply
> on the mention of EHEA in a leader. I've included a candidate fix for the
> error. It seems to be a simple case of port_napi_enable being defined in
> the wrong place.
>
> Signed-off-by: Mel Gorman <[email protected]>
Thanks for this fix, I'll merge it into the net-2.6.24 tree.
On Tue, Sep 18, 2007 at 05:37:58PM +0530, Kamalesh Babulal wrote:
> Benjamin Herrenschmidt wrote:
>> On Tue, 2007-09-18 at 10:34 +0100, Andy Whitcroft wrote:
>>
>>> On Tue, Sep 18, 2007 at 02:43:48PM +0530, Kamalesh Babulal wrote:
>>>
>>>> Andrew Morton wrote:
>>>>
>>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>>>>>
>>>>> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>>>>>
>>>>>
>>>> <snip>
>>>>
>>>> Hi Andrew,
>>>>
>>>> The 2.6.23-rc6-mm1build fails at
>>>>
>>>> CC drivers/pci/hotplug/rpadlpar_core.o
>>>> CC drivers/pci/hotplug/rpadlpar_sysfs.o
>>>> drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name'
>>>> specified in initializer
>>>> drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
>>>> drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member
>>>> named `name'
>>>> make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
>>>> make[2]: *** [drivers/pci/hotplug] Error 2
>>>> make[1]: *** [drivers/pci] Error 2
>>>> make: *** [drivers] Error 2
>>>>
>>> This seems to be occuring across a number of the powerpc systems we test
>>> with. That driver is a power dynamic lpar IO partitioning driver.
>>>
>>> Relevant Cc: added.
>>>
>>
>> That's because somebody is breaking sysfs/kobject interfaces without
>> fixing all users :-) (Fair enough... it's just that we need to make sure
>> whoever takes care of that driver nowadays is aware of the breakage).
>>
>> Ben.
>>
> Hi Andrew,
>
> Using the kobject_set_name function to set the kobject k_name.
Close, you should also use the kobject_name() function when referencing
it.
I'll fix this up in the patch, thanks.
Oh, and sorry for breaking this, I could only test all of the modules
build on x86 due to traveling while creating this patch. I need to set
up some cross-compilers on my laptop to fix this issue :(
thanks,
greg k-h
On Tue, Sep 18, 2007 at 03:04:48PM +0530, Satyam Sharma wrote:
>
>
> On Tue, 18 Sep 2007, Andrew Morton wrote:
>
> > On Tue, 18 Sep 2007 14:43:48 +0530 Kamalesh Babulal <[email protected]> wrote:
> >
> > > Andrew Morton wrote:
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> > > >
> > > > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> > > >
> > > >
> > > <snip>
> > >
> > > Hi Andrew,
> > >
> > > The 2.6.23-rc6-mm1build fails at
> > >
> > > CC drivers/pci/hotplug/rpadlpar_core.o
> > > CC drivers/pci/hotplug/rpadlpar_sysfs.o
> > > drivers/pci/hotplug/rpadlpar_sysfs.c:132: error: unknown field `name' specified in initializer
> > > drivers/pci/hotplug/rpadlpar_sysfs.c: In function `dlpar_sysfs_init':
> > > drivers/pci/hotplug/rpadlpar_sysfs.c:142: error: structure has no member named `name'
> > > make[3]: *** [drivers/pci/hotplug/rpadlpar_sysfs.o] Error 1
> > > make[2]: *** [drivers/pci/hotplug] Error 2
> > > make[1]: *** [drivers/pci] Error 2
> > > make: *** [drivers] Error 2
> > >
> >
> > Probably this:
> >
> > --- a/drivers/pci/hotplug/rpadlpar_sysfs.c~a
> > +++ a/drivers/pci/hotplug/rpadlpar_sysfs.c
> > @@ -129,8 +129,7 @@ struct kobj_type ktype_dlpar_io = {
> > };
> >
> > struct kset dlpar_io_kset = {
> > - .kobj = {.name = DLPAR_KOBJ_NAME,
> > - .ktype = &ktype_dlpar_io,
> > + .kobj = {.ktype = &ktype_dlpar_io,
> > .parent = &pci_hotplug_slots_subsys.kobj},
> > .ktype = &ktype_dlpar_io,
> > };
> > _
> >
> > But I'm fed up with fixing that patch. It's Greg's turn.
>
> But wait ... isn't that a statically-allocated kobject, which were
> supposed to be "naughty" in the first place?
Yes it is, if you want to dynamically create it, please do. But there's
a lot of these in the kernel and I didn't want to break _all_ of them at
once, it's a multiple-stage set of patches to get us there (this name
array change is just the first in the set of these steps...)
thanks,
greg k-h
Hi Miles.
On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> crash, and the bash display settings have to be reset.
Not reproduceable here.
But I noticed that we pass a null pointer to a vsprintf function which
in the cases you pointed out printed a (null) at my system.
Could you plase try if attached patch fix your system.
Thanks,
Sam
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 2ee12a7..1935818 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -357,8 +357,9 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
bool hit;
struct property *prop;
- str_printf(r, "Symbol: %s [=%s]\n", sym->name,
- sym_get_string_value(sym));
+ if (sym && sym->name)
+ str_printf(r, "Symbol: %s [=%s]\n", sym->name,
+ sym_get_string_value(sym));
for_all_prompts(sym, prop)
get_prompt_str(r, prop);
hit = false;
On Tue, 18 Sep 2007 01:18:41 PDT, Andrew Morton said:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
% uname -a
Linux turing-police.cc.vt.edu 2.6.23-rc6-mm1 #1 SMP PREEMPT Tue Sep 18 12:32:13 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
% uptime
15:11:48 up 36 min, 1 user, load average: 0.05, 0.11, 0.09
Had a few issues, all self-inflicted (the biggie was 2 iptables modules that
needed fixing for the net namespace changes in git-net.patch - stuck an
&init_net in the right 2 places, a new #include line, and all was good).
I *did* have an odd issue with an out-of-tree GPL driver for a webcam.
(It's from http://mxhaard.free.fr/ if anybody cares).
The Makefile does this:
make -C /lib/modules/`uname -r`/build SUBDIRS=/home/valdis/src/gspcav1-20070508 CC=cc modules
and has this sort of stuff in it:
DEFINES += -DGSPCA_ENABLE_DEBUG
DEFINES += -DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__
DEFINES += -DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION=\"$(VERSION)\"
In -rc4-mm1, $DEFINES got added to the compile command - in -rc6-mm1, I
had to namually add a 'CFLAGS += $(DEFINES)' or GSPCA_VERSION came up undefined.
The actual problematic code in the Makefile:
-- begin Makefile snippet
ifneq ($(KERNELRELEASE),) # We were called by kbuild
CFLAGS += $(DEFINES)
obj-m += gspca.o
gspca-objs := gspca_core.o decoder/gspcadecoder.o
else # We were called from command line
KERNEL_VERSION = `uname -r`
KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build
PWD := $(shell pwd)
MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
MODULE_INSTALLDIR2 = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/
default:
$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules
install:
mkdir -p $(MODULE_INSTALLDIR)
rm -f $(MODULE_INSTALLDIR)spca5xx.ko
rm -f $(MODULE_INSTALLDIR2)gspca.ko
install -c -m 0644 gspca.ko $(MODULE_INSTALLDIR)
/sbin/depmod -ae
uninstall:
rm -f $(MODULE_INSTALLDIR)gspca.ko
/sbin/depmod -aq
endif
--- end Makefile snippet
The Make definitely falls into the 'else' part (verified by adding an 'echo'
to the default: target). Adding the CFLAGS += to the else, or moving the line
above the if, makes it work.
On 9/18/07, Sam Ravnborg <[email protected]> wrote:
> Hi Miles.
> On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
> > Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> > crash, and the bash display settings have to be reset.
>
> Not reproduceable here.
> But I noticed that we pass a null pointer to a vsprintf function which
> in the cases you pointed out printed a (null) at my system.
> Could you plase try if attached patch fix your system.
Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
development version of the distro). Maybe I should try "make
mrproper" first?
ncurses 5.6+20070716-1ubuntu1
bash 3.2-0ubuntu9
GNU Make 3.81
On Tuesday, 18 September 2007 10:18, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
> It took me over two solid days to get this lot compiling and booting on a few
> boxes. This required around ninety fixup patches and patch droppings. There
> are several bugs in here which I know of (details below) and presumably many
> more which I don't know of. I have to say that this just isn't working any
> more.
>
> - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
> I didn't drop that patch because the iommu patch series depends on it.
>
> - The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
>
> - And it hangs during suspend-to-RAM, due to git-acpi.patch
On my HP nx6325 it only boots with "noacpitimer nohpet" on the command line,
but then it works. Suspend-to-RAM and hibernation work too. :-)
Since 2.6.23-rc4-mm1 only booted with nohpet because of
x86_64-convert-to-clockevents.patch
I guess that the boot problems with this one result from the same patch.
Greetings,
Rafael
On Tue, Sep 18, 2007 at 03:42:58PM -0400, Miles Lane wrote:
> On 9/18/07, Sam Ravnborg <[email protected]> wrote:
> > Hi Miles.
> > On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
> > > Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> > > crash, and the bash display settings have to be reset.
> >
> > Not reproduceable here.
> > But I noticed that we pass a null pointer to a vsprintf function which
> > in the cases you pointed out printed a (null) at my system.
> > Could you plase try if attached patch fix your system.
>
> Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
> development version of the distro). Maybe I should try "make
> mrproper" first?
make mrproper should not do any difference here.
I rather think you hit some ncurses bug.
If you could add '-g' to HOSTCFLAGS in top-level Makefile
and then do:
rm scripts/kconfig/mconf.o scripts/kconfig/mconf
make menuconfig
(to build mconf and to check that the error is still reproduceable).
And then run it in a debugger like this:
gdb scripts/kconfig/mconf
run arch/x86_64/Kconfig
^^^^^^ replace with your actual arch
Provoke the error and get a back-trace with 'bt'.
Thanks,
Sam
On Tue, Sep 18, 2007 at 03:32:57PM -0400, [email protected] wrote:
> On Tue, 18 Sep 2007 01:18:41 PDT, Andrew Morton said:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> % uname -a
> Linux turing-police.cc.vt.edu 2.6.23-rc6-mm1 #1 SMP PREEMPT Tue Sep 18 12:32:13 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> % uptime
> 15:11:48 up 36 min, 1 user, load average: 0.05, 0.11, 0.09
>
> Had a few issues, all self-inflicted (the biggie was 2 iptables modules that
> needed fixing for the net namespace changes in git-net.patch - stuck an
> &init_net in the right 2 places, a new #include line, and all was good).
>
> I *did* have an odd issue with an out-of-tree GPL driver for a webcam.
> (It's from http://mxhaard.free.fr/ if anybody cares).
>
> The Makefile does this:
>
> make -C /lib/modules/`uname -r`/build SUBDIRS=/home/valdis/src/gspcav1-20070508 CC=cc modules
>
> and has this sort of stuff in it:
>
> DEFINES += -DGSPCA_ENABLE_DEBUG
> DEFINES += -DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__
> DEFINES += -DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION=\"$(VERSION)\"
>
> In -rc4-mm1, $DEFINES got added to the compile command - in -rc6-mm1, I
> had to namually add a 'CFLAGS += $(DEFINES)' or GSPCA_VERSION came up undefined.
>
> The actual problematic code in the Makefile:
>
> -- begin Makefile snippet
> ifneq ($(KERNELRELEASE),) # We were called by kbuild
> CFLAGS += $(DEFINES)
> obj-m += gspca.o
> gspca-objs := gspca_core.o decoder/gspcadecoder.o
So the external module were fiddeling with CFLAGS which is wrong.
Yes - it worked before by accident.
>From Documentation/kbuild/makefiles.txt:
=====================================================================
--- 3.7 Compilation flags
EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS
All the EXTRA_ variables apply only to the kbuild makefile
where they are assigned. The EXTRA_ variables apply to all
commands executed in the kbuild makefile.
$(EXTRA_CFLAGS) specifies options for compiling C files with
$(CC).
Example:
# drivers/sound/emu10k1/Makefile
EXTRA_CFLAGS += -I$(obj)
ifdef DEBUG
EXTRA_CFLAGS += -DEMU10K1_DEBUG
endif
This variable is necessary because the top Makefile owns the
variable $(KBUILD_CFLAGS) and uses it for compilation flags for the
entire tree.
=====================================================================
Nowhere are the use of CFLAGS documented.
The use of EXTRA_CFLAGS has been working as far back as I remember so
there is no backward compatibility issues to my best knowledge.
Pelase ask the author of the module to either fix it or even better
submit the driver for inclusion because then we will find it during
the review pahse.
But anyway - thanks for reporting an issue related to an external module.
Sam
On Tuesday, 18 September 2007 22:21, Rafael J. Wysocki wrote:
> On Tuesday, 18 September 2007 10:18, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> >
> > It took me over two solid days to get this lot compiling and booting on a few
> > boxes. This required around ninety fixup patches and patch droppings. There
> > are several bugs in here which I know of (details below) and presumably many
> > more which I don't know of. I have to say that this just isn't working any
> > more.
> >
> > - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
> > I didn't drop that patch because the iommu patch series depends on it.
> >
> > - The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
> >
> > - And it hangs during suspend-to-RAM, due to git-acpi.patch
Sorry, I was wrong.
> On my HP nx6325 it only boots with "noacpitimer nohpet" on the command line,
> but then it works.
It _sometimes_ boots with "noacpitimer nohpet" and that's if I press the power
button for a couple of times during boot (before any messages appear on the
console).
> Suspend-to-RAM and hibernation work too. :-)
No, they don't (I must have booted -rc6 instead of it by mistake, sigh).
> Since 2.6.23-rc4-mm1 only booted with nohpet because of
>
> x86_64-convert-to-clockevents.patch
>
> I guess that the boot problems with this one result from the same patch.
Not sure any more ...
I'll try to compile it with NO_HZ and HIGH_RES_TIMERS unset.
Greetings,
Rafael
Hello,
I got the following error when building 2.6.23-rc6-mm1 on sparc:
/opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc -Wp,-MD,drivers/serial/.serial_core.o.d -nostdinc -isystem /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/lib/gcc/sparc-unknown-linux-gnu/4.1.1/include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/compudj/git/linux-2.6-lttng/include -include include/linux/autoconf.h -I/home/compudj/git/linux-2.6-lttng/drivers/serial -Idrivers/serial -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial_core)" -D"KBUILD_MODNAME=KBUILD_STR(serial_core)" -c -o drivers/serial/.tmp_serial_core.o /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c
/home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_suspend_port':
/home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:1980: error: implicit declaration of function 'enable_irq_wake'
/home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_resume_port':
/home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:2035: error: implicit declaration of function 'disable_irq_wake'
make[3]: *** [drivers/serial/serial_core.o] Error 1
make[2]: *** [drivers/serial] Error 2
make[1]: *** [drivers] Error 2
make: *** [_all] Error 2
config:
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc6-mm1
# Tue Sep 18 11:06:46 2007
#
CONFIG_MMU=y
CONFIG_HIGHMEM=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_OF=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CONTAINERS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=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_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_KPAGEMAP=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_UNLOAD is not set
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG 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"
#
# General machine setup
#
# CONFIG_SMP is not set
CONFIG_SPARC=y
CONFIG_SPARC32=y
CONFIG_SBUS=y
CONFIG_SBUSCHAR=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_SUN_AUXIO=y
CONFIG_SUN_IO=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_EMULATED_CMPXCHG=y
CONFIG_SUN_PM=y
# CONFIG_SUN4 is not set
# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
CONFIG_NO_DMA=y
CONFIG_SUN_OPENPROMFS=m
# CONFIG_SPARC_LED is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=m
CONFIG_SUNOS_EMUL=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 is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=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 is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_LRO=m
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
CONFIG_DECNET=m
# CONFIG_DECNET_ROUTER is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
# CONFIG_DEV_APPLETALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
# CONFIG_MISC_DEVICES is not set
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
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
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
CONFIG_DUMMY=m
CONFIG_BONDING=m
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_NET_ETHERNET is not set
CONFIG_NETDEV_1000=y
CONFIG_MYRI_SBUS=m
CONFIG_NETDEV_10000=y
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_PPPOL2TP is not set
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=m
CONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
#
# 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 is not set
# 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_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_UNICODE is not set
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
#
# Non-8250 serial port support
#
CONFIG_SERIAL_SUNCORE=y
# CONFIG_SERIAL_SUNZILOG is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_I2C is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set
#
# Frame buffer hardware drivers
#
CONFIG_FB_SBUS=y
# CONFIG_FB_BW2 is not set
# CONFIG_FB_CG3 is not set
# CONFIG_FB_CG6 is not set
CONFIG_FB_TCX=y
# CONFIG_FB_CG14 is not set
# CONFIG_FB_P9100 is not set
CONFIG_FB_LEO=y
# CONFIG_FB_IGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_PROM_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE is not set
# CONFIG_LOGO is not set
#
# Sound
#
# CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
# CONFIG_USB_SUPPORT is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_RTC_CLASS is not set
#
# Userspace I/O
#
# CONFIG_UIO is not set
#
# Misc Linux/SPARC drivers
#
CONFIG_SUN_OPENPROMIO=m
CONFIG_SUN_MOSTEK_RTC=y
# CONFIG_SUN_BPP is not set
# CONFIG_SUN_VIDEOPIX is not set
# CONFIG_TADPOLE_TS102_UCTRL is not set
# CONFIG_SUN_JSFLASH is not set
#
# Unix98 PTY support
#
CONFIG_UNIX98_PTY_COUNT=256
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
#
# Layered filesystems
#
# CONFIG_UNION_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
CONFIG_AFFS_FS=m
# 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=m
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
CONFIG_HPFS_FS=m
# CONFIG_QNX4FS_FS is not set
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=m
# CONFIG_NFSD_V3 is not set
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=y
CONFIG_EXPORTFS=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
CONFIG_CODA_FS=m
# CONFIG_CODA_FS_OLD_API is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_SUN_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 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 is not set
# CONFIG_NLS_ISO8859_1 is not set
# 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 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
CONFIG_INSTRUMENTATION=y
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_UNWIND_INFO is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB_ATTACH_WAIT is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
# CONFIG_CRYPTO is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
On Tue, 18 Sep 2007 16:54:03 -0400
Mathieu Desnoyers <[email protected]> wrote:
> I got the following error when building 2.6.23-rc6-mm1 on sparc:
>
>
> /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc -Wp,-MD,drivers/serial/.serial_core.o.d -nostdinc -isystem /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/lib/gcc/sparc-unknown-linux-gnu/4.1.1/include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/compudj/git/linux-2.6-lttng/include -include include/linux/autoconf.h -I/home/compudj/git/linux-2.6-lttng/drivers/serial -Idrivers/serial -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial_core)" -D"KBUILD_MODNAME=KBUILD_STR(serial_core)" -c -o drivers/serial/.tmp_serial_core.o /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c
> /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_suspend_port':
> /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:1980: error: implicit declaration of function 'enable_irq_wake'
> /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_resume_port':
> /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:2035: error: implicit declaration of function 'disable_irq_wake'
hm, I wonder why I didn't hit that.
enable_irq_wake() was added by wake-up-from-a-serial-port.patch
I note that git-input adds a call too, and might have a problem
with !CONFIG_GENERIC_HARDIRQS.
Not sure what the best fix is here. We could sprinkle ifdefs all
over the code, or just add the suitable empty stubs for enable_irq_wake(),
etc.
On Tuesday, 18 September 2007 22:54, Rafael J. Wysocki wrote:
> On Tuesday, 18 September 2007 22:21, Rafael J. Wysocki wrote:
> > On Tuesday, 18 September 2007 10:18, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> > >
> > > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> > >
> > > It took me over two solid days to get this lot compiling and booting on a few
> > > boxes. This required around ninety fixup patches and patch droppings. There
> > > are several bugs in here which I know of (details below) and presumably many
> > > more which I don't know of. I have to say that this just isn't working any
> > > more.
> > >
> > > - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
> > > I didn't drop that patch because the iommu patch series depends on it.
> > >
> > > - The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
> > >
> > > - And it hangs during suspend-to-RAM, due to git-acpi.patch
>
> Sorry, I was wrong.
>
> > On my HP nx6325 it only boots with "noacpitimer nohpet" on the command line,
> > but then it works.
>
> It _sometimes_ boots with "noacpitimer nohpet" and that's if I press the power
> button for a couple of times during boot (before any messages appear on the
> console).
>
> > Suspend-to-RAM and hibernation work too. :-)
>
> No, they don't (I must have booted -rc6 instead of it by mistake, sigh).
>
> > Since 2.6.23-rc4-mm1 only booted with nohpet because of
> >
> > x86_64-convert-to-clockevents.patch
> >
> > I guess that the boot problems with this one result from the same patch.
>
> Not sure any more ...
>
> I'll try to compile it with NO_HZ and HIGH_RES_TIMERS unset.
OK, in that configuration it's much better.
It boots with nohpet alone and suspend/hibernation seem to work (still,
it didn't want to boot right after hibernation, but booted after I'd switched
it off/on manually).
Unfortunately, I get this in dmesg:
ALSA /home/rafael/src/mm/linux-2.6.23-rc6-mm1/sound/pci/hda/hda_intel.c:1758: hda-intel: ioremap error
and (obviously) the sound card doesn't work.
Additionally, I've got a couple of these:
WARNING: at /home/rafael/src/mm/linux-2.6.23-rc6-mm1/drivers/usb/core/driver.c:1
217 usb_autopm_do_device()
Call Trace:
[<ffffffff8813885e>] :usbcore:usb_autopm_do_device+0x60/0xe9
[<ffffffff88138910>] :usbcore:usb_autosuspend_device+0xc/0xe
[<ffffffff88131aa8>] :usbcore:usb_disconnect+0x15f/0x18c
[<ffffffff88133305>] :usbcore:hub_thread+0x691/0x10a1
[<ffffffff8024a077>] autoremove_wake_function+0x0/0x38
[<ffffffff88132c74>] :usbcore:hub_thread+0x0/0x10a1
[<ffffffff80249f50>] kthread+0x49/0x79
[<ffffffff8020ce98>] child_rip+0xa/0x12
[<ffffffff80249f07>] kthread+0x0/0x79
[<ffffffff8020ce8e>] child_rip+0x0/0x12
Greetings,
Rafael
On Tue, 2007-09-18 at 12:16 -0700, Greg KH wrote:
> Oh, and sorry for breaking this, I could only test all of the modules
> build on x86 due to traveling while creating this patch. I need to
> set
> up some cross-compilers on my laptop to fix this issue :(
Yuck :-) Oh well, I hope you have a _FAST_ laptop :-)
Cheers,
Ben.
Hello,
I wrote a simple script that finds all modules in /lib/modules/`uname -r`
and performs sth like 'modprobe $x; rmmod $x;' for every of them. The result is the
output below. This actually happens when rmmod'ing a module.
I narrowed it down to modules mmc_core and firewire_core. To reproduce that just
rmmod them.
PS. X doesn't work but that's another story.
Regards,
Mariusz
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c567>] kref_get+0x40/0x42
[<c024b81e>] kobject_get+0x12/0x17
[<c02d5800>] bus_get+0x11/0x22
[<c02d5a89>] bus_remove_file+0xe/0x27
[<c02d5ab2>] remove_probe_files+0x10/0x1f
[<c02d5afc>] bus_unregister+0x3b/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c567>] kref_get+0x40/0x42
[<c024b81e>] kobject_get+0x12/0x17
[<c02d5800>] bus_get+0x11/0x22
[<c02d5a89>] bus_remove_file+0xe/0x27
[<c02d5abe>] remove_probe_files+0x1c/0x1f
[<c02d5afc>] bus_unregister+0x3b/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c5b5>] kref_put+0x4c/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b809>] unlink+0x3b/0x3e
[<c024b886>] kobject_del+0x16/0x19
[<c024b8a4>] kobject_unregister+0x1b/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c02d5b04>] bus_unregister+0x43/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c5b5>] kref_put+0x4c/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b809>] unlink+0x3b/0x3e
[<c024b886>] kobject_del+0x16/0x19
[<c024b8a4>] kobject_unregister+0x1b/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c02d5b0f>] bus_unregister+0x4e/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c567>] kref_get+0x40/0x42
[<c024b81e>] kobject_get+0x12/0x17
[<c02d5800>] bus_get+0x11/0x22
[<c02d5a89>] bus_remove_file+0xe/0x27
[<c02d5b1b>] bus_unregister+0x5a/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c5b5>] kref_put+0x4c/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b809>] unlink+0x3b/0x3e
[<c024b886>] kobject_del+0x16/0x19
[<c024b8a4>] kobject_unregister+0x1b/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c024b8c7>] subsystem_unregister+0x8/0xa
[<c02d5b23>] bus_unregister+0x62/0x66
[<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
------------[ cut here ]------------
kernel BUG at mm/slab.c:592!
invalid opcode: 0000 [#1] PREEMPT
last sysfs file: /block/hdc/removable
Modules linked in: mmc_core pcmcia option usbserial firmware_class 8139too 8250_pci yenta_socket 8250 serial_core rsrc_nonstatic pcmcia_core
Sep 19 05:51:23 orion kernel:
Pid: 6048, comm: rmmod Not tainted (2.6.23-rc6-mm1 #1)
EIP: 0060:[<c015dabb>] EFLAGS: 00010046 CPU: 0
EIP is at kfree+0xad/0xc0
EAX: 00000400 EBX: c05caa48 ECX: 00000000 EDX: c1009e00
ESI: 00000000 EDI: c04f0815 EBP: c2a11e88 ESP: c2a11e78
DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Process rmmod (pid: 6048, ti=c2a10000 task=c28f2030 task.ti=c2a10000)
last branch before last exception/interrupt
from c015da5c (kfree+0x4e/0xc0)
to c015dabb (kfree+0xad/0xc0)
Stack: 00000286 c05caa48 00000000 00000000 c2a11ea0 c024b7b5 00000000 c05caa4c
c024b7c1 c05caa20 c2a11ea8 c024b7cc c2a11ec8 c024c596 c1815800 c181e1c0
c2a11ed0 00000286 dee431b0 c05caa90 c2a11ed0 c024b74e c2a11ee8 c024b79d
Call Trace:
[<c024b7b5>] kobject_cleanup+0x65/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b79d>] kobject_cleanup+0x4d/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b8ab>] kobject_unregister+0x22/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c024b8c7>] subsystem_unregister+0x8/0xa
[<c02d5b23>] bus_unregister+0x62/0x66
[<dee3906f>] mmc_unregister_bus+0xd/0xf [mmc_core]
[<dee3d677>] mmc_exit+0x17/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
INFO: lockdep is turned off.
Code: ff ff 75 f0 9d 83 c4 04 5b 5e 5f 5d c3 ff 75 f0 9d e8 87 51 fd ff 83 c4 04 5b 5e 5f 5d c3 89 da 89 f0 e8 96 fe ff ff 8b 03 eb bf <0f> 0b eb fe 8b 52 0c eb 94 8b 52 0c 8b 0a e9 7c ff ff ff 55 89
EIP: [<c015dabb>] kfree+0xad/0xc0 SS:ESP 0068:c2a11e78
BUG: sleeping function called from invalid context at kernel/rwsem.c:20
in_atomic():0, irqs_disabled():1
INFO: lockdep is turned off.
irq event stamp: 2530
hardirqs last enabled at (2529): [<c015da91>] kfree+0x83/0xc0
hardirqs last disabled at (2530): [<c015da28>] kfree+0x1a/0xc0
softirqs last enabled at (2396): [<c011dc2f>] __do_softirq+0xa4/0xb2
softirqs last disabled at (2371): [<c011dc88>] do_softirq+0x4b/0x4d
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c0114c6d>] __might_sleep+0xb7/0xc9
[<c012db84>] down_read+0x18/0x4b
[<c0140792>] acct_collect+0x3b/0x145
[<c011c0e6>] do_exit+0x12f/0x89a
[<c0105089>] do_trap+0x0/0xa9
[<c010510c>] do_trap+0x83/0xa9
[<c01053f1>] do_invalid_op+0x88/0x92
[<c0420b1a>] error_code+0x6a/0x70
[<c015dabb>] kfree+0xad/0xc0
[<c024b7b5>] kobject_cleanup+0x65/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b79d>] kobject_cleanup+0x4d/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b8ab>] kobject_unregister+0x22/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c024b8c7>] subsystem_unregister+0x8/0xa
[<c02d5b23>] bus_unregister+0x62/0x66
[<dee3906f>] mmc_unregister_bus+0xd/0xf [mmc_core]
[<dee3d677>] mmc_exit+0x17/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
modprobing: aes-i586
modprobing: twofish-i586
modprobing: anubis
modprobing: blowfish
modprobing: camellia
modprobing: cast5
modprobing: cast6
modprobing: cbc
modprobing: crc32c
modprobing: crypto_hash
modprobing: crypto_null
modprobing: deflate
modprobing: des
modprobing: fcrypt
modprobing: gf128mul
modprobing: hmac
modprobing: khazad
modprobing: lrw
modprobing: md4
modprobing: md5
modprobing: michael_mic
modprobing: pcbc
modprobing: serpent
modprobing: sha1
modprobing: sha256
modprobing: sha512
modprobing: tea
modprobing: tgr192
modprobing: twofish
modprobing: twofish_common
modprobing: wp512
modprobing: xcbc
modprobing: firmware_class
modprobing: sonypi
sonypi: Sony Programmable I/O Controller Driver v1.26.
sonypi: please try the sony-laptop module instead and report failures, see also http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
sonypi: detected type2 model, verbose = 0, fnkeyinit = off, camera = off, compat = off, mask = 0xffffffff, useinput = on, acpi = on
sonypi: enabled at irq=11, port1=0x1080, port2=0x1084
sonypi: device allocated minor is 63
input: Sony Vaio Jogdial as /class/input/input7
input: Sony Vaio Keys as /class/input/input8
sonypi command failed at drivers/char/sonypi.c : sonypi_call1 (line 652)
sonypi command failed at drivers/char/sonypi.c : sonypi_call2 (line 663)
sonypi command failed at drivers/char/sonypi.c : sonypi_call2 (line 665)
sonypi command failed at drivers/char/sonypi.c : sonypi_call1 (line 652)
sonypi command failed at drivers/char/sonypi.c : sonypi_call2 (line 663)
sonypi command failed at drivers/char/sonypi.c : sonypi_call2 (line 665)
sonypi: removed.
modprobing: amd-rng
modprobing: geode-rng
modprobing: intel-rng
modprobing: rng-core
modprobing: via-rng
modprobing: geode-aes
modprobing: padlock-aes
padlock: VIA PadLock not detected.
modprobing: padlock-sha
padlock: VIA PadLock Hash Engine not detected.
modprobing: firewire-core
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c567>] kref_get+0x40/0x42
[<c024b81e>] kobject_get+0x12/0x17
[<c024b97b>] kobject_init+0x43/0x82
[<c024b9c8>] kset_init+0xe/0x2e
[<c024be4f>] kset_register+0x15/0x38
[<c024be7a>] subsystem_register+0x8/0xa
[<c02d6008>] bus_register+0x65/0x209
[<ded6300d>] fw_core_init+0xd/0x99 [firewire_core]
[<c013aceb>] sys_init_module+0x125/0x1612
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
------------[ cut here ]------------
kernel BUG at mm/slab.c:592!
invalid opcode: 0000 [#2] PREEMPT
last sysfs file: /class/input/input7/modalias
Modules linked in: firewire_core crc_itu_t rng_core gf128mul crypto_hash zlib_deflate zlib_inflate libcrc32c mmc_core pcmcia option usbserial firmware_class 8139too 8250_pci yenta_socket 8250 serial_core rsrc_nonstatic pcmcia_core
Sep 19 05:51:48 orion kernel:
Pid: 6881, comm: rmmod Tainted: G D (2.6.23-rc6-mm1 #1)
EIP: 0060:[<c015dabb>] EFLAGS: 00010046 CPU: 0
EIP is at kfree+0xad/0xc0
EAX: 00000400 EBX: c05caa48 ECX: 00000000 EDX: c1009e00
ESI: 00000000 EDI: c04f0815 EBP: c2683e90 ESP: c2683e80
DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Process rmmod (pid: 6881, ti=c2682000 task=c18d6030 task.ti=c2682000)
last branch before last exception/interrupt
from c015da5c (kfree+0x4e/0xc0)
to c015dabb (kfree+0xad/0xc0)
Stack: 00000286 c05caa48 00000000 00000000 c2683ea8 c024b7b5 00000000 c05caa4c
c024b7c1 c05caa20 c2683eb0 c024b7cc c2683ed0 c024c596 c1815800 c181e1c0
c2683ed8 00000286 dee09bd0 c05caa90 c2683ed8 c024b74e c2683ef0 c024b79d
Call Trace:
[<c024b7b5>] kobject_cleanup+0x65/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b79d>] kobject_cleanup+0x4d/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b8ab>] kobject_unregister+0x22/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c024b8c7>] subsystem_unregister+0x8/0xa
[<c02d5b23>] bus_unregister+0x62/0x66
[<dee0531c>] fw_core_cleanup+0x1c/0x1e [firewire_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
INFO: lockdep is turned off.
Code: ff ff 75 f0 9d 83 c4 04 5b 5e 5f 5d c3 ff 75 f0 9d e8 87 51 fd ff 83 c4 04 5b 5e 5f 5d c3 89 da 89 f0 e8 96 fe ff ff 8b 03 eb bf <0f> 0b eb fe 8b 52 0c eb 94 8b 52 0c 8b 0a e9 7c ff ff ff 55 89
EIP: [<c015dabb>] kfree+0xad/0xc0 SS:ESP 0068:c2683e80
BUG: sleeping function called from invalid context at kernel/rwsem.c:20
in_atomic():0, irqs_disabled():1
INFO: lockdep is turned off.
irq event stamp: 0
hardirqs last enabled at (0): [<00000000>] 0x0
hardirqs last disabled at (0): [<c011743e>] copy_process+0x412/0x1395
softirqs last enabled at (0): [<c011745c>] copy_process+0x430/0x1395
softirqs last disabled at (0): [<00000000>] 0x0
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c0114c6d>] __might_sleep+0xb7/0xc9
[<c012db84>] down_read+0x18/0x4b
[<c0140792>] acct_collect+0x3b/0x145
[<c011c0e6>] do_exit+0x12f/0x89a
[<c0105089>] do_trap+0x0/0xa9
[<c010510c>] do_trap+0x83/0xa9
[<c01053f1>] do_invalid_op+0x88/0x92
[<c0420b1a>] error_code+0x6a/0x70
[<c015dabb>] kfree+0xad/0xc0
[<c024b7b5>] kobject_cleanup+0x65/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b79d>] kobject_cleanup+0x4d/0x71
[<c024b7cc>] kobject_release+0xb/0xd
[<c024c596>] kref_put+0x2d/0xa7
[<c024b74e>] kobject_put+0x14/0x16
[<c024b8ab>] kobject_unregister+0x22/0x25
[<c024b8bd>] kset_unregister+0xf/0x11
[<c024b8c7>] subsystem_unregister+0x8/0xa
[<c02d5b23>] bus_unregister+0x62/0x66
[<dee0531c>] fw_core_cleanup+0x1c/0x1e [firewire_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
modprobing: mmc_block
BUG: sleeping function called from invalid context at mm/slab.c:3051
in_atomic():1, irqs_disabled():0
INFO: lockdep is turned off.
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c0114c6d>] __might_sleep+0xb7/0xc9
[<c015e09a>] kmem_cache_alloc+0x78/0xac
[<c023623f>] do_shmat+0x195/0x377
[<c0107e8a>] sys_ipc+0x138/0x240
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
BUG: scheduling while atomic: X/6941/0x00000005
INFO: lockdep is turned off.
irq event stamp: 0
hardirqs last enabled at (0): [<00000000>] 0x0
hardirqs last disabled at (0): [<c011743e>] copy_process+0x412/0x1395
softirqs last enabled at (0): [<c011745c>] copy_process+0x430/0x1395
softirqs last disabled at (0): [<00000000>] 0x0
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c01158b2>] __schedule_bug+0x6e/0x75
[<c041dbba>] __sched_text_start+0x2ca/0x3c0
[<c010418a>] work_resched+0x5/0x25
[<ffffe410>] 0xffffe410
=======================
note: X[6941] exited with preempt_count 7
BUG: scheduling while atomic: X/6941/0x10000008
INFO: lockdep is turned off.
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c01158b2>] __schedule_bug+0x6e/0x75
[<c041dbba>] __sched_text_start+0x2ca/0x3c0
[<c01158da>] __cond_resched+0x21/0x3b
[<c041e30a>] cond_resched+0x2a/0x31
[<c0150469>] unmap_vmas+0x411/0x454
[<c0152d79>] exit_mmap+0x68/0xf6
[<c0116f62>] mmput+0x3f/0xdc
[<c011aaac>] exit_mm+0x75/0xd1
[<c011c101>] do_exit+0x14a/0x89a
[<c011c879>] do_group_exit+0x28/0x6e
[<c0123c61>] get_signal_to_deliver+0x298/0x45c
[<c01035cd>] do_notify_resume+0x89/0x758
[<c01041bd>] work_notifysig+0x13/0x1a
[<080c4b54>] 0x80c4b54
=======================
BUG: scheduling while atomic: X/6941/0x1000000a
INFO: lockdep is turned off.
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c01158b2>] __schedule_bug+0x6e/0x75
[<c041dbba>] __sched_text_start+0x2ca/0x3c0
[<c01158da>] __cond_resched+0x21/0x3b
[<c041e30a>] cond_resched+0x2a/0x31
[<c011aee2>] put_files_struct+0xbb/0xd3
[<c011c142>] do_exit+0x18b/0x89a
[<c011c879>] do_group_exit+0x28/0x6e
[<c0123c61>] get_signal_to_deliver+0x298/0x45c
[<c01035cd>] do_notify_resume+0x89/0x758
[<c01041bd>] work_notifysig+0x13/0x1a
[<080c4b54>] 0x80c4b54
=======================
BUG: scheduling while atomic: X/6941/0x1000000a
INFO: lockdep is turned off.
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c01158b2>] __schedule_bug+0x6e/0x75
[<c041dbba>] __sched_text_start+0x2ca/0x3c0
[<c01158da>] __cond_resched+0x21/0x3b
[<c041e30a>] cond_resched+0x2a/0x31
[<c011aee2>] put_files_struct+0xbb/0xd3
[<c011c142>] do_exit+0x18b/0x89a
[<c011c879>] do_group_exit+0x28/0x6e
[<c0123c61>] get_signal_to_deliver+0x298/0x45c
[<c01035cd>] do_notify_resume+0x89/0x758
[<c01041bd>] work_notifysig+0x13/0x1a
[<080c4b54>] 0x80c4b54
=======================
On Tue, 18 Sep 2007 22:32:39 +0200, Sam Ravnborg said:
> So the external module were fiddeling with CFLAGS which is wrong.
> Yes - it worked before by accident.
OK, I can deal with that diagnosis. ;)
> Pelase ask the author of the module to either fix it or even better
> submit the driver for inclusion because then we will find it during
> the review pahse.
I'll take it up with the author, and see what happens...
> But anyway - thanks for reporting an issue related to an external module.
I had a few issues with some other modules, but they're evil binaries so
I'm taking those up directly with the companies involved.. ;)
Applied at my -git tree.
Cheers,
Mauro.
Em Ter, 2007-09-18 às 12:37 -0400, [email protected] escreveu:
> Sam Ravnborg wrote:
> > Please cc: relevant people.
> >
> > On Tue, Sep 18, 2007 at 05:43:35PM +0200, Gabriel C wrote:
> >
> >> Hi,
> >>
> >> I get modpost errors here :
> >>
> >> ...
> >>
> >> ERROR: "dvb_dmx_init" [drivers/media/video/video-buf-dvb.ko] undefined!
> >> ERROR: "dvb_unregister_adapter" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_register_frontend" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_unregister_frontend" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_net_release" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_frontend_detach" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_dmxdev_release" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_dmx_swfilter" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_net_init" [drivers/media/video/video-buf-dvb.ko] undefined!
> >> ERROR: "dvb_dmx_release" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_register_adapter" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >> ERROR: "dvb_dmxdev_init" [drivers/media/video/video-buf-dvb.ko]
> undefined!
> >>
> >
> > dvb issue so dvb added.
> >
> >
> >> ERROR: "mt2131_attach" [drivers/media/video/cx23885/cx23885.ko]
> undefined!
> >> ERROR: "s5h1409_attach" [drivers/media/video/cx23885/cx23885.ko]
> undefined!
> >>
> >
> > Was not sure who maintain this stuff..
> > It's not in the git-tree I had around.
>
> Sam,
>
> This stuff is in -mm only right now.
>
> It was a dependency problem, where a new driver (cx23885) is missing the
> dependency on DVB_CORE.
>
> The fix is in this changeset:
>
> http://linuxtv.org/hg/~mkrufky/build-fix/rev/67acaa106a99
>
> Mauro,
>
> Please pull from:
>
> http://linuxtv.org/hg/~mkrufky/build-fix
>
> for:
>
> - VIDEO_CX23885 depends on DVB_CORE
>
> Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Regards,
>
> Mike Krufky
Sam Ravnborg wrote:
> On Tue, Sep 18, 2007 at 03:42:58PM -0400, Miles Lane wrote:
>> On 9/18/07, Sam Ravnborg <[email protected]> wrote:
>>> Hi Miles.
>>> On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
>>>> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
>>>> crash, and the bash display settings have to be reset.
>>> Not reproduceable here.
>>> But I noticed that we pass a null pointer to a vsprintf function which
>>> in the cases you pointed out printed a (null) at my system.
>>> Could you plase try if attached patch fix your system.
>> Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
>> development version of the distro). Maybe I should try "make
>> mrproper" first?
>
> make mrproper should not do any difference here.
> I rather think you hit some ncurses bug.
>
> If you could add '-g' to HOSTCFLAGS in top-level Makefile
> and then do:
> rm scripts/kconfig/mconf.o scripts/kconfig/mconf
> make menuconfig
>
> (to build mconf and to check that the error is still reproduceable).
> And then run it in a debugger like this:
> gdb scripts/kconfig/mconf
> run arch/x86_64/Kconfig
> ^^^^^^ replace with your actual arch
>
> Provoke the error and get a back-trace with 'bt'.
Hi Sam,
I can reproduce this bug on Frugalware Linux.
Here the bt:
Program received signal SIGSEGV, Segmentation fault.
0xb7dc4143 in strlen () from /lib/libc.so.6
(gdb) bt
#0 0xb7dc4143 in strlen () from /lib/libc.so.6
#1 0x0804fd60 in str_append (gs=0xbfe4f6e8, s=0x0) at scripts/kconfig/util.c:87
#2 0x0804e0cb in expr_print (e=0x8e22df8, fn=0x804fda0 <expr_print_gstr_helper>, data=0xbfe4f6e8, prevtoken=0) at scripts/kconfig/expr.c:1037
#3 0x0804e1e7 in expr_gstr_print (e=0x8e22df8, gs=0xbfe4f6e8) at scripts/kconfig/expr.c:1099
#4 0x0804a07e in get_symbol_str (r=0xbfe4f6e8, sym=0x8b54ee8) at scripts/kconfig/mconf.c:334
#5 0x0804a363 in show_help (menu=0x8b54f88) at scripts/kconfig/mconf.c:738
#6 0x0804acec in conf (menu=0x8b69480) at scripts/kconfig/mconf.c:781
#7 0x0804a971 in conf (menu=0x8063c40) at scripts/kconfig/mconf.c:703
#8 0x0804af8a in main (ac=Cannot access memory at address 0x0
) at scripts/kconfig/mconf.c:917
Looks somewhat strange -> http://194.231.229.228/menuconfig.png
PS: Is without the patch you posted , I'll try with in a bit
>
> Thanks,
> Sam
Gabriel
Gabriel C wrote:
> Sam Ravnborg wrote:
>> On Tue, Sep 18, 2007 at 03:42:58PM -0400, Miles Lane wrote:
>>> On 9/18/07, Sam Ravnborg <[email protected]> wrote:
>>>> Hi Miles.
>>>> On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
>>>>> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
>>>>> crash, and the bash display settings have to be reset.
>>>> Not reproduceable here.
>>>> But I noticed that we pass a null pointer to a vsprintf function which
>>>> in the cases you pointed out printed a (null) at my system.
>>>> Could you plase try if attached patch fix your system.
>>> Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
>>> development version of the distro). Maybe I should try "make
>>> mrproper" first?
>> make mrproper should not do any difference here.
>> I rather think you hit some ncurses bug.
>>
>> If you could add '-g' to HOSTCFLAGS in top-level Makefile
>> and then do:
>> rm scripts/kconfig/mconf.o scripts/kconfig/mconf
>> make menuconfig
>>
>> (to build mconf and to check that the error is still reproduceable).
>> And then run it in a debugger like this:
>> gdb scripts/kconfig/mconf
>> run arch/x86_64/Kconfig
>> ^^^^^^ replace with your actual arch
>>
>> Provoke the error and get a back-trace with 'bt'.
>
> Hi Sam,
>
> I can reproduce this bug on Frugalware Linux.
>
> Here the bt:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7dc4143 in strlen () from /lib/libc.so.6
> (gdb) bt
> #0 0xb7dc4143 in strlen () from /lib/libc.so.6
> #1 0x0804fd60 in str_append (gs=0xbfe4f6e8, s=0x0) at scripts/kconfig/util.c:87
> #2 0x0804e0cb in expr_print (e=0x8e22df8, fn=0x804fda0 <expr_print_gstr_helper>, data=0xbfe4f6e8, prevtoken=0) at scripts/kconfig/expr.c:1037
> #3 0x0804e1e7 in expr_gstr_print (e=0x8e22df8, gs=0xbfe4f6e8) at scripts/kconfig/expr.c:1099
> #4 0x0804a07e in get_symbol_str (r=0xbfe4f6e8, sym=0x8b54ee8) at scripts/kconfig/mconf.c:334
> #5 0x0804a363 in show_help (menu=0x8b54f88) at scripts/kconfig/mconf.c:738
> #6 0x0804acec in conf (menu=0x8b69480) at scripts/kconfig/mconf.c:781
> #7 0x0804a971 in conf (menu=0x8063c40) at scripts/kconfig/mconf.c:703
> #8 0x0804af8a in main (ac=Cannot access memory at address 0x0
> ) at scripts/kconfig/mconf.c:917
>
>
> Looks somewhat strange -> http://194.231.229.228/menuconfig.png
>
> PS: Is without the patch you posted , I'll try with in a bit
The crash is still there but the (null)'s are all fixed by this patch.
Gabriel
On Tue, 2007-09-18 at 23:37 +0200, Rafael J. Wysocki wrote:
> > > > - The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
> > > >
> > > > - And it hangs during suspend-to-RAM, due to git-acpi.patch
> >
> > Sorry, I was wrong.
> >
> > > On my HP nx6325 it only boots with "noacpitimer nohpet" on the command line,
> > > but then it works.
> >
> > It _sometimes_ boots with "noacpitimer nohpet" and that's if I press the power
> > button for a couple of times during boot (before any messages appear on the
> > console).
> >
> > > Suspend-to-RAM and hibernation work too. :-)
> >
> > No, they don't (I must have booted -rc6 instead of it by mistake, sigh).
> >
> > > Since 2.6.23-rc4-mm1 only booted with nohpet because of
> > >
> > > x86_64-convert-to-clockevents.patch
> > >
> > > I guess that the boot problems with this one result from the same patch.
> >
> > Not sure any more ...
> >
> > I'll try to compile it with NO_HZ and HIGH_RES_TIMERS unset.
>
> OK, in that configuration it's much better.
>
> It boots with nohpet alone and suspend/hibernation seem to work (still,
> it didn't want to boot right after hibernation, but booted after I'd switched
> it off/on manually).
Can you please check, whether
http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
works for you ?
tglx
On Tue, Sep 18, 2007 at 06:03:28PM -0400, [email protected] wrote:
> On Tue, 18 Sep 2007 22:32:39 +0200, Sam Ravnborg said:
>
> > So the external module were fiddeling with CFLAGS which is wrong.
> > Yes - it worked before by accident.
>
> OK, I can deal with that diagnosis. ;)
>
> > Pelase ask the author of the module to either fix it or even better
> > submit the driver for inclusion because then we will find it during
> > the review pahse.
>
> I'll take it up with the author, and see what happens...
>
> > But anyway - thanks for reporting an issue related to an external module.
>
> I had a few issues with some other modules, but they're evil binaries so
> I'm taking those up directly with the companies involved.. ;)
How annoying is this - and is this the CFLAGS thing again?
We could introduce some workaraound so we continue to respect
the CFLAGS settings in a Makefile for a while.
But at the end of the day we should convince the external module people
to follow the Kbuild docs. So it will then be temporary.
Opinion?
Sam
On Tue, 18 Sep 2007 23:45:13 +0200,
Mariusz Kozlowski <[email protected]> wrote:
> Hello,
>
> I wrote a simple script that finds all modules in /lib/modules/`uname -r`
> and performs sth like 'modprobe $x; rmmod $x;' for every of them. The result is the
> output below. This actually happens when rmmod'ing a module.
>
> I narrowed it down to modules mmc_core and firewire_core. To reproduce that just
> rmmod them.
Hm, does that mean you can reproduce this when you modprobe/rmmod
either of them on a fresh boot? (There could be follow-on errors...)
Could you try with DEBUG_KOBJECT set?
> PS. X doesn't work but that's another story.
>
> Regards,
>
> Mariusz
>
> WARNING: at lib/kref.c:33 kref_get()
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c567>] kref_get+0x40/0x42
> [<c024b81e>] kobject_get+0x12/0x17
> [<c02d5800>] bus_get+0x11/0x22
> [<c02d5a89>] bus_remove_file+0xe/0x27
> [<c02d5ab2>] remove_probe_files+0x10/0x1f
> [<c02d5afc>] bus_unregister+0x3b/0x66
> [<dee3c2bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<dee3d66d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
Is this the first error message you see? This looks like the embedded
kset had its refcount decreased too much. (Or was the sdio bus never
registered? Don't see how this could happen if mmc_init was successful,
though.)
(The next errors seem to have the same cause.)
> modprobing: firewire-core
> WARNING: at lib/kref.c:33 kref_get()
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c567>] kref_get+0x40/0x42
> [<c024b81e>] kobject_get+0x12/0x17
> [<c024b97b>] kobject_init+0x43/0x82
> [<c024b9c8>] kset_init+0xe/0x2e
> [<c024be4f>] kset_register+0x15/0x38
> [<c024be7a>] subsystem_register+0x8/0xa
> [<c02d6008>] bus_register+0x65/0x209
> [<ded6300d>] fw_core_init+0xd/0x99 [firewire_core]
> [<c013aceb>] sys_init_module+0x125/0x1612
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
Strange. Can't see how this can happen except as a follow-on error.
(Next ones are follow-on errors from this one.)
> modprobing: mmc_block
(Following errors don't look like they could have anything to do with
the driver core.)
I am seeing this strange link error from a PowerMac G5 (powerpc):
[...]
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux.o
ld: dynreloc miscount for fs/built-in.o, section .opd
ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
Compiler version below.
root@elm3b19:~# gcc -v
Using built-in specs.
Target: powerpc-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-java-awt=gtk-default
--enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre
--enable-mpfr --disable-softfloat
--enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32
--disable-werror --enable-checking=release powerpc-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
-apw
Seeing the following panic booting an old powerpc LPAR:
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc000000000047b48
cpu 0x0: Vector: 300 (Data Access) at [c0000000006a3750]
pc: c000000000047b48: .pSeries_log_error+0x364/0x420
lr: c000000000047acc: .pSeries_log_error+0x2e8/0x420
sp: c0000000006a39d0
msr: 8000000000001032
dar: 0
dsisr: 42000000
current = 0xc0000000005acab0
paca = 0xc0000000005ad700
pid = 0, comm = swapper
enter ? for help
[c0000000006a3af0] c000000000021164 .rtas_call+0x200/0x250
[c0000000006a3ba0] c000000000049d50 .early_enable_eeh+0x168/0x360
[c0000000006a3c70] c00000000002f674 .traverse_pci_devices+0x8c/0x138
[c0000000006a3d10] c000000000560ce8 .eeh_init+0x1a8/0x200
[c0000000006a3db0] c00000000055fb70 .pSeries_setup_arch+0x128/0x234
[c0000000006a3e40] c00000000054f830 .setup_arch+0x214/0x24c
[c0000000006a3ee0] c000000000546a38 .start_kernel+0xd4/0x3e4
[c0000000006a3f90] c00000000045adc4 .start_here_common+0x54/0x58
0:mon>
This machine is:
# cat /proc/cpuinfo
processor : 0
cpu : POWER4+ (gq)
clock : 1703.965296MHz
revision : 19.0
[...]
machine : CHRP IBM,7040-681
-apw
On 09/18/2007 10:18 AM, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
> It took me over two solid days to get this lot compiling and booting on a few
> boxes. This required around ninety fixup patches and patch droppings. There
> are several bugs in here which I know of (details below) and presumably many
> more which I don't know of. I have to say that this just isn't working any
> more.
>
> - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
> I didn't drop that patch because the iommu patch series depends on it.
No matter whether slub/slab is selected someone gets a page and moves/adds its
.lru head to some list after being in the deffered_pages list yet -- this breaks
the deffered_pages list and loops forever in list_for_each (unless LIST_DEBUG is
selected, which produces a BUG).
Any ideas who could be the one pushing the page to some other list?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On 09/19/2007 01:43 PM, Jiri Slaby wrote:
> On 09/18/2007 10:18 AM, Andrew Morton wrote:
>> - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
>> I didn't drop that patch because the iommu patch series depends on it.
>
> No matter whether slub/slab is selected someone gets a page and moves/adds its
Oh, only adds, if it moves, it won't break the list. Going to check for
POISON1/2 in __list_add, will get results (if any) in few moments...
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On 09/19/2007 01:53 PM, Jiri Slaby wrote:
> On 09/19/2007 01:43 PM, Jiri Slaby wrote:
>> On 09/18/2007 10:18 AM, Andrew Morton wrote:
>>> - The Vaio hangs when quitting X due to x86_64-mm-cpa-clflush.patch, but
>>> I didn't drop that patch because the iommu patch series depends on it.
>> No matter whether slub/slab is selected someone gets a page and moves/adds its
>
> Oh, only adds, if it moves, it won't break the list. Going to check for
> POISON1/2 in __list_add, will get results (if any) in few moments...
Huh, it took longer than I expect :). Changed this:
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c
index 836c218..cd8499c 100644
--- a/arch/x86_64/mm/pageattr.c
+++ b/arch/x86_64/mm/pageattr.c
@@ -112,7 +112,14 @@ static inline void save_page(struct page *fpage, int data)
return;
SetPageFlush(fpage);
}
+ printk("ADD (%s): E=%p, H=%p, H->N=%p, N->P=%p, N->N=%p; PREV0=%p, "
+ "NEXT0=%p, ",
+ current->comm, &fpage->lru,
+ &deferred_pages, deferred_pages.next,
+ deferred_pages.next->prev, deferred_pages.next->next,
+ fpage->lru.prev, fpage->lru.next);
list_add(&fpage->lru, &deferred_pages);
+ printk("PREV1=%p, NEXT1=%p\n", fpage->lru.prev, fpage->lru.next);
}
/*
@@ -274,6 +281,7 @@ void global_flush_tlb(void)
down_read(&init_mm.mmap_sem);
arg.full_flush = full_flush;
full_flush = 0;
+ printk("FLUSH\n");
list_replace_init(&deferred_pages, &arg.l);
up_read(&init_mm.mmap_sem);
diff --git a/include/linux/list.h b/include/linux/list.h
index f29fc9c..1add963 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -265,6 +265,8 @@ static inline void list_del_init(struct list_head *entry)
static inline void list_move(struct list_head *list, struct list_head *head)
{
__list_del(list->prev, list->next);
+ list->next = LIST_POISON1;
+ list->prev = LIST_POISON2;
list_add(list, head);
}
@@ -277,6 +279,8 @@ static inline void list_move_tail(struct list_head *list,
struct list_head *head)
{
__list_del(list->prev, list->next);
+ list->next = LIST_POISON1;
+ list->prev = LIST_POISON2;
list_add_tail(list, head);
}
diff --git a/lib/list_debug.c b/lib/list_debug.c
index 4350ba9..57573d5 100644
--- a/lib/list_debug.c
+++ b/lib/list_debug.c
@@ -15,15 +15,34 @@
* This is only for internal list manipulation where we know
* the prev/next entries already!
*/
-
+#include <linux/sched.h>
void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next)
{
+ static unsigned int a, b;
+ unsigned long off;
+
+ if (unlikely(!a && current && current->comm[0] == 'X'))
+ a++;
+
+ if (unlikely(a && !b && (void *)new >= (void *)mem_map &&
+ (void *)new < (void *)(mem_map + 1048576) &&
+ (new->prev != LIST_POISON2 || new->next != LIST_POISON1) &&
+ (new->prev != NULL || new->next != NULL) &&
+ (new->prev != new || new->next != new))) {
+ off = ((void *)new - (void *)mem_map) % sizeof(struct page);
+ if (off == offsetof(struct page, lru)) {
+ printk(KERN_DEBUG "POISONS (%p): "
+ "%p, %p\n", new, new->prev, new->next);
+ dump_stack();
+ }
+ }
if (unlikely(next->prev != prev)) {
printk(KERN_ERR "list_add corruption. next->prev should be "
"prev (%p), but was %p. (next=%p).\n",
prev, next->prev, next);
+ b++;
BUG();
}
if (unlikely(prev->next != next)) {
---------8<---------8<---------8<---------8<---------8<---------8<----
and got this:
ADD (X): E=ffff81000115b9e0, H=ffffffff80673aa0, H->N=ffff8100011573e0,
N->P=ffffffff80673aa0, N->N=ffff81000115ba18; PREV0=0000000000200200,
NEXT0=0000000000100100, PREV1=ffffffff80673aa0, NEXT1=ffff8100011573e0
/----------------------------------------------------------\
this (^^^^) was output from unmap path, see (1) below
and here (vvvv) follows output from free_page path, see (2)
\----------------------------------------------------------/
POISONS (ffff81000115b9e0): ffffffff80673aa0, ffff8100011573e0
Call Trace:
[<ffffffff80328c06>] __list_add+0xf6/0x190
[<ffffffff80328cac>] list_add+0xc/0x10
[<ffffffff8026e46d>] free_hot_cold_page+0xfd/0x170
[<ffffffff8026e52b>] free_hot_page+0xb/0x10
[<ffffffff8026e555>] __free_pages+0x25/0x30
[<ffffffff8026e58b>] free_pages+0x2b/0x40
[<ffffffff8037cf16>] agp_generic_destroy_page+0x56/0x70
[<ffffffff8037d9d5>] agp_free_memory+0x65/0xd0
[<ffffffff8037c0e9>] agp_free_memory_wrap+0x39/0x60
[<ffffffff8037c79b>] agp_release+0xdb/0x1c0
[<ffffffff80291440>] __fput+0xc0/0x1b0
[<ffffffff802915b6>] fput+0x16/0x20
[<ffffffff8028e516>] filp_close+0x56/0x90
[<ffffffff8023a552>] put_files_struct+0xc2/0xd0
[<ffffffff8023ba55>] do_exit+0x1e5/0x990
[<ffffffff8023c237>] do_group_exit+0x37/0x90
[<ffffffff8023c2a2>] sys_exit_group+0x12/0x20
[<ffffffff8020bd0e>] system_call+0x7e/0x83
ADD (X): E=ffff81000115b9a8, H=ffffffff80673aa0, H->N=ffff81000115b9e0,
N->P=ffffffff8067ef50, N->N=ffff81000115ba18; PREV0=0000000000200200,
NEXT0=0000000000100100, <3>list_add corruption. next->prev should be prev
(ffffffff80673aa0), but was ffffffff8067ef50. (next=ffff81000115b9e0).
------------[ cut here ]------------
kernel BUG at /home/l/latest/xxx/lib/list_debug.c:46!
invalid opcode: 0000 [1] SMP
last sysfs file: /devices/pci0000:00/0000:00:02.0/enable
CPU 1
Modules linked in: ipv6 floppy sr_mod ehci_hcd cdrom rtc_cmos usbhid rtc_core
rtc_lib
Pid: 1603, comm: X Not tainted 2.6.23-rc6-mm1_64 #51
RIP: 0010:[<ffffffff80328c73>] [<ffffffff80328c73>] __list_add+0x163/0x190
RSP: 0018:ffff810004e31c38 EFLAGS: 00010202
RAX: 0000000000000079 RBX: ffff81000115b9a8 RCX: ffffffff80673f68
RDX: ffffffff80673f68 RSI: 0000000000000086 RDI: ffffffff80673f60
RBP: ffff810004e31c58 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff80673aa0
R13: ffff81000115b9e0 R14: 0000000000006350 R15: ffff810006211a80
FS: 0000000000000000(0000) GS:ffff810003016500(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000514cc0 CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process X (pid: 1603, threadinfo ffff810004e30000, task ffff810003b26bd0)
last branch before last exception/interrupt
from [<ffffffff80238a83>] printk+0xa3/0xb0
to [<ffffffff80328c6c>] __list_add+0x15c/0x190
Stack: ffffffff8067ef50 ffff81000115b9a8 ffff81000115b980 ffff8100011573b8
ffff810004e31c68 ffffffff80328cac ffff810004e31d08 ffffffff80225b28
ffff81000115ba18 0000000000200200 0000000000100100 ffffffff8067ee80
Call Trace:
[<ffffffff80328cac>] list_add+0xc/0x10
[<ffffffff80225b28>] __change_page_attr+0x478/0x4a0
[<ffffffff80225bf6>] change_page_attr_addr+0xa6/0x140
[<ffffffff80225cc3>] change_page_attr+0x33/0x40
[<ffffffff8037cf04>] agp_generic_destroy_page+0x44/0x70
[<ffffffff8037d9d5>] agp_free_memory+0x65/0xd0
[<ffffffff8037c0e9>] agp_free_memory_wrap+0x39/0x60
[<ffffffff8037c79b>] agp_release+0xdb/0x1c0
[<ffffffff80291440>] __fput+0xc0/0x1b0
[<ffffffff802915b6>] fput+0x16/0x20
[<ffffffff8028e516>] filp_close+0x56/0x90
[<ffffffff8023a552>] put_files_struct+0xc2/0xd0
[<ffffffff8023ba55>] do_exit+0x1e5/0x990
[<ffffffff8023c237>] do_group_exit+0x37/0x90
[<ffffffff8023c2a2>] sys_exit_group+0x12/0x20
[<ffffffff8020bd0e>] system_call+0x7e/0x83
Code: 0f 0b eb fe 80 ba e2 02 00 00 58 b8 01 00 00 00 0f 45 05 c6
RIP [<ffffffff80328c73>] __list_add+0x163/0x190
RSP <ffff810004e31c38>
Fixing recursive fault but reboot is needed!
---------8<---------8<---------8<---------8<---------8<---------8<----
That means
void agp_generic_destroy_page(void *addr)
{
struct page *page;
if (addr == NULL)
return;
page = virt_to_page(addr);
(1) unmap_page_from_agp(page);
put_page(page);
(2) free_page((unsigned long)addr);
atomic_dec(&agp_bridge->current_memory_agp);
}
(1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
__change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
(2) free_page -> free_pages -> __free_pages -> free_hot_page ->
free_hot_cold_page -> list_add(&page->lru, &pcp->list);
any ideas how to fix this?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Wed, 19 Sep 2007 09:34:02 +0200, Sam Ravnborg said:
> > I had a few issues with some other modules, but they're evil binaries so
> > I'm taking those up directly with the companies involved.. ;)
>
> How annoying is this - and is this the CFLAGS thing again?
The other issues were VMWare and the removal of EXPORT_SYMBOL(set_dumpable),
and NVidia graphics driver not playing nice with x86_64-mm-cpa-clflush.patch
(these actually broke back around -rc[34]-mm1, so it's not a new issue). I
just had to spend 5 minutes re-checking that my workarounds did/didn't need
refreshing. Like I said, their problems (and mine), not lkml's.
> We could introduce some workaraound so we continue to respect
> the CFLAGS settings in a Makefile for a while.
> But at the end of the day we should convince the external module people
> to follow the Kbuild docs. So it will then be temporary.
I already sent the author a patch for the broken Makefile. I don't think an
in-tree workaround is the right thing here. I've vote for an entry in the
"What's new in 2.6.2X" document when the kbuild changes go mainline, since
fixing it to use EXTRA_CFLAGS worked perfectly. External module maintainers
have (presumably) already read stable-API-nonsense, and should be used to
fixing code for new releases, so a 1 or 2 line Makefile tweak shouldn't be a
hardship.
On (18/09/07 18:44), Mel Gorman didst pronounce:
> Hi Andrew,
>
> IA64 failed to build in kgdb with the messages
>
ppc64 kgdb support is also broken but in a much more fundamental manner.
allmodconfig shows up
In file included from include/linux/kgdb.h:22,
from arch/powerpc/kernel/legacy_serial.c:15:
include/asm/kgdb.h:34: error: 'debugger' redeclared as different kind of symbol
include/asm/system.h:85: error: previous definition of 'debugger' was here
include/asm/kgdb.h:35: error: 'debugger_bpt' redeclared as different kind of symbol
include/asm/system.h:87: error: previous definition of 'debugger_bpt' was here
include/asm/kgdb.h:36: error: 'debugger_sstep' redeclared as different kind of symbol
include/asm/system.h:88: error: previous definition of 'debugger_sstep' was here
include/asm/kgdb.h:37: error: 'debugger_iabr_match' redeclared as different kind of symbol
include/asm/system.h:89: error: previous definition of 'debugger_iabr_match' was here
include/asm/kgdb.h:38: error: 'debugger_dabr_match' redeclared as different kind of symbol
include/asm/system.h:90: error: previous definition of 'debugger_dabr_match' was here
include/asm/kgdb.h:39: error: 'debugger_fault_handler' redeclared as different kind of symbol
include/asm/system.h:91: error: previous definition of 'debugger_fault_handler' was here
In file included from arch/powerpc/kernel/legacy_serial.c:15:
include/linux/kgdb.h:69: error: `BREAK_INSTR_SIZE' undeclared here (not in a function)
make[1]: *** [arch/powerpc/kernel/legacy_serial.o] Error 1
make: *** [arch/powerpc/kernel] Error 2
I cleared the redeclarations up and put in some defines but there is
much more fundamental breakage like
kernel/kgdb.c:122: error: `BUFMAX' undeclared here (not in a function)
kernel/kgdb.c:128: error: `NUMCRITREGBYTES' undeclared here (not in a function)
kernel/kgdb.c: In function `write_mem_msg':
kernel/kgdb.c:554: error: `CACHE_FLUSH_IS_SAFE' undeclared (first use in this function)
kernel/kgdb.c:554: error: (Each undeclared identifier is reported only once
kernel/kgdb.c:554: error: for each function it appears in.)
kernel/kgdb.c: In function `getthread':
kernel/kgdb.c:615: error: implicit declaration of function `kgdb_get_shadow_thread'
kernel/kgdb.c:616: warning: return makes pointer from integer without a cast
kernel/kgdb.c: In function `kgdb_activate_sw_breakpoints':
kernel/kgdb.c:719: error: `CACHE_FLUSH_IS_SAFE' undeclared (first use in this function)
kernel/kgdb.c: In function `kgdb_deactivate_sw_breakpoints':
kernel/kgdb.c:784: error: `CACHE_FLUSH_IS_SAFE' undeclared (first use in this function)
kernel/kgdb.c: In function `kgdb_handle_exception':
kernel/kgdb.c:956: error: implicit declaration of function `kgdb_skipexception'
kernel/kgdb.c:1036: error: implicit declaration of function `kgdb_disable_hw_debug'
kernel/kgdb.c:1072: error: implicit declaration of function `kgdb_post_master_code'
kernel/kgdb.c:1153: error: implicit declaration of function `kgdb_shadow_regs'
kernel/kgdb.c:1156: warning: assignment makes pointer from integer without a cast
kernel/kgdb.c:1333: error: implicit declaration of function `kgdb_shadowinfo'
kernel/kgdb.c: In function `breakpoint':
kernel/kgdb.c:1891: error: implicit declaration of function `BREAKPOINT'
kernel/kgdb.c: At top level:
kernel/kgdb.c:122: error: storage size of `remcom_in_buffer' isn't known
kernel/kgdb.c:123: error: storage size of `remcom_out_buffer' isn't known
kernel/kgdb.c:129: error: storage size of `kgdb_fault_jmp_regs' isn't known
kernel/kgdb.c:853: error: storage size of `gdbmsgbuf' isn't known
kernel/kgdb.c:122: warning: 'remcom_in_buffer' defined but not used
kernel/kgdb.c:123: warning: 'remcom_out_buffer' defined but not used
kernel/kgdb.c:853: warning: 'gdbmsgbuf' defined but not used
make[1]: *** [kernel/kgdb.o] Error 1
make: *** [kernel] Error 2
Even with the defines fixed up, I don't know what to do about
kgdb_skipexception() and friends because frankly I don't know what I'm
doing with kgdb. linuxppc-dev added to cc list this time in case they have
something useful.
The best I was able to come up with as a candidate fix was to disable
kgdb on ppc64 altogether. This is a cop-out, not a fix, sorry.
Signed-off-by: Mel Gorman <[email protected]>
---
Kconfig.kgdb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-020_fix_acpi/lib/Kconfig.kgdb linux-2.6.23-rc6-mm1-025_fix_ppc64_kgdb/lib/Kconfig.kgdb
--- linux-2.6.23-rc6-mm1-020_fix_acpi/lib/Kconfig.kgdb 2007-09-18 11:29:30.000000000 +0100
+++ linux-2.6.23-rc6-mm1-025_fix_ppc64_kgdb/lib/Kconfig.kgdb 2007-09-19 15:54:23.000000000 +0100
@@ -14,7 +14,7 @@ config KGDB
bool "KGDB: kernel debugging with remote gdb"
select WANT_EXTRA_DEBUG_INFORMATION
select KGDB_ARCH_HAS_SHADOW_INFO if X86_64
- depends on DEBUG_KERNEL && (ARM || X86 || MIPS || (SUPERH && !SUPERH64) || IA64 || PPC)
+ depends on DEBUG_KERNEL && (ARM || X86 || MIPS || (SUPERH && !SUPERH64) || IA64)
help
If you say Y here, it will be possible to remotely debug the
kernel using gdb. Documentation of kernel debugger is available
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
> I am seeing this strange link error from a PowerMac G5 (powerpc):
>
> [...]
> KSYM .tmp_kallsyms2.S
> AS .tmp_kallsyms2.o
> LD vmlinux.o
> ld: dynreloc miscount for fs/built-in.o, section .opd
> ld: can not edit opd Bad value
> make: *** [vmlinux.o] Error 1
>
> Compiler version below.
It's an ld error, could you show us your ld version instead? And
please try with current mainline ld, too?
Segher
Seems I have a case of a largish i386 NUMA (NUMA-Q) which has a mkfs
stuck in a 'D' wait:
=======================
mkfs.ext2 D c10220f4 0 6233 6222
c344fc80 00000082 00000286 c10220f4 c344fc90 002ed099 c2963340 c2b9f640
c142bce0 c2b9f640 c344fc90 002ed099 c344fcfc c344fcc0 c1219563 c1109bf2
c344fcc4 c186e4d4 c186e4d4 002ed099 c1022612 c2b9f640 c186e000 c104000c
Call Trace:
[<c10220f4>] lock_timer_base+0x19/0x35
[<c1219563>] schedule_timeout+0x70/0x8d
[<c1109bf2>] prop_fraction_single+0x37/0x5d
[<c1022612>] process_timeout+0x0/0x5
[<c104000c>] task_dirty_limit+0x3a/0xb5
[<c12194da>] io_schedule_timeout+0x1e/0x28
[<c10454b4>] congestion_wait+0x62/0x7a
[<c102b021>] autoremove_wake_function+0x0/0x33
[<c10402af>] get_dirty_limits+0x16a/0x172
[<c102b021>] autoremove_wake_function+0x0/0x33
[<c104040b>] balance_dirty_pages+0x154/0x1be
[<c103bda3>] generic_perform_write+0x168/0x18a
[<c103be38>] generic_file_buffered_write+0x73/0x107
[<c103c346>] __generic_file_aio_write_nolock+0x47a/0x4a5
[<c11b0fef>] do_sock_write+0x92/0x99
[<c11b1048>] sock_aio_write+0x52/0x5e
[<c103c3b9>] generic_file_aio_write_nolock+0x48/0x9b
[<c105d2d6>] do_sync_write+0xbf/0xfc
[<c102b021>] autoremove_wake_function+0x0/0x33
[<c1010311>] do_page_fault+0x2cc/0x739
[<c105d3a0>] vfs_write+0x8d/0x108
[<c105d4c3>] sys_write+0x41/0x67
[<c100260a>] syscall_call+0x7/0xb
=======================
This machine and others have run numerous test runs on this kernel and
this is the first time I've see a hang like this.
I wonder if this is the ultimate cause of the couple of mainline hangs
which were seen, but not diagnosed.
-apw
Hello,
> > I wrote a simple script that finds all modules in /lib/modules/`uname -r`
> > and performs sth like 'modprobe $x; rmmod $x;' for every of them. The result is the
> > output below. This actually happens when rmmod'ing a module.
> >
> > I narrowed it down to modules mmc_core and firewire_core. To reproduce that just
> > rmmod them.
>
> Hm, does that mean you can reproduce this when you modprobe/rmmod
> either of them on a fresh boot? (There could be follow-on errors...)
On fresh boot it happens with mmc_core. On the next fresh boot it didn't happen with
firewire_core. So you can be right that some of them are follow-on errors. Anyway to
trigger it just run these commands:
# logger -t "foobar" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# modprobe mmc_core
# rmmod mmc_core
# logger -t "foobar" "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
> Could you try with DEBUG_KOBJECT set?
Please find it attached below.
Regards,
Mariusz
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
kobject mmc_core: registering. parent: <NULL>, set: module
kobject holders: registering. parent: mmc_core, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
kobject_uevent_env
fill_kobj_path: path = '/module/mmc_core'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xded0c1b0) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject mmc: registering. parent: <NULL>, set: bus
kobject_uevent_env
fill_kobj_path: path = '/bus/mmc'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xded0c290) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject devices: registering. parent: mmc, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xded0c220) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject drivers: registering. parent: mmc, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_host_class'@(0xded0c4f8) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_host_class'@(0xded0c470) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject mmc_host: registering. parent: <NULL>, set: class
kobject_uevent_env
fill_kobj_path: path = '/class/mmc_host'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xded0c790) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject sdio: registering. parent: <NULL>, set: bus
kobject_uevent_env
fill_kobj_path: path = '/bus/sdio'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xded0c870) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject devices: registering. parent: sdio, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xded0c800) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject drivers: registering. parent: sdio, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject devices: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject devices: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject sdio: unregistering
kobject_uevent_env
fill_kobj_path: path = '/bus/sdio'
kobject sdio: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6cf>] kref_get+0x40/0x42
[<c024b852>] kobject_get+0x12/0x17
[<c02d5970>] bus_get+0x11/0x22
[<c02d5bf9>] bus_remove_file+0xe/0x27
[<c02d5c22>] remove_probe_files+0x10/0x1f
[<c02d5c6c>] bus_unregister+0x3b/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6cf>] kref_get+0x40/0x42
[<c024b852>] kobject_get+0x12/0x17
[<c02d5970>] bus_get+0x11/0x22
[<c02d5bf9>] bus_remove_file+0xe/0x27
[<c02d5c2e>] remove_probe_files+0x1c/0x1f
[<c02d5c6c>] bus_unregister+0x3b/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject <NULL>: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c71d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83d>] unlink+0x3b/0x3e
[<c024b8ba>] kobject_del+0x16/0x19
[<c024b8ef>] kobject_unregister+0x32/0x3f
[<c024b90b>] kset_unregister+0xf/0x11
[<c02d5c74>] bus_unregister+0x43/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c71d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83d>] unlink+0x3b/0x3e
[<c024b8ba>] kobject_del+0x16/0x19
[<c024b8ef>] kobject_unregister+0x32/0x3f
[<c024b90b>] kset_unregister+0xf/0x11
[<c02d5c7f>] bus_unregister+0x4e/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6cf>] kref_get+0x40/0x42
[<c024b852>] kobject_get+0x12/0x17
[<c02d5970>] bus_get+0x11/0x22
[<c02d5bf9>] bus_remove_file+0xe/0x27
[<c02d5c8b>] bus_unregister+0x5a/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject <NULL>: unregistering
kobject_uevent_env
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c71d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83d>] unlink+0x3b/0x3e
[<c024b8ba>] kobject_del+0x16/0x19
[<c024b8ef>] kobject_unregister+0x32/0x3f
[<c024b90b>] kset_unregister+0xf/0x11
[<c024b915>] subsystem_unregister+0x8/0xa
[<c02d5c93>] bus_unregister+0x62/0x66
[<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject mmc_host: unregistering
kobject_uevent_env
fill_kobj_path: path = '/class/mmc_host'
kobject mmc_host: cleaning up
kobject drivers: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject devices: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject devices: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject mmc: unregistering
kobject_uevent_env
fill_kobj_path: path = '/bus/mmc'
kobject mmc: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject holders: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject holders: cleaning up
kobject mmc_core: unregistering
kobject_uevent_env
fill_kobj_path: path = '/module/mmc_core'
kobject mmc_core: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
On Wed, Sep 19, 2007 at 06:36:29PM +0200, Segher Boessenkool wrote:
> >I am seeing this strange link error from a PowerMac G5 (powerpc):
> >
> > [...]
> > KSYM .tmp_kallsyms2.S
> > AS .tmp_kallsyms2.o
> > LD vmlinux.o
> > ld: dynreloc miscount for fs/built-in.o, section .opd
> > ld: can not edit opd Bad value
> > make: *** [vmlinux.o] Error 1
> >
> >Compiler version below.
>
> It's an ld error, could you show us your ld version instead? And
> please try with current mainline ld, too?
root@elm3b19:~# ld -v
GNU ld version 2.16.91 20060118 Debian GNU/Linux
Getting the compiler suite changed on here is going to be a lot
tricker. One of the reasons we keep it back there is those versions
are supposed to be supported and we want to test those combinations.
-apw
On Wednesday, 19 September 2007 09:06, Thomas Gleixner wrote:
> On Tue, 2007-09-18 at 23:37 +0200, Rafael J. Wysocki wrote:
> > > > > - The Vaio also hangs during resume-from-RAM, due to git-acpi.patch
> > > > >
> > > > > - And it hangs during suspend-to-RAM, due to git-acpi.patch
> > >
> > > Sorry, I was wrong.
> > >
> > > > On my HP nx6325 it only boots with "noacpitimer nohpet" on the command line,
> > > > but then it works.
> > >
> > > It _sometimes_ boots with "noacpitimer nohpet" and that's if I press the power
> > > button for a couple of times during boot (before any messages appear on the
> > > console).
> > >
> > > > Suspend-to-RAM and hibernation work too. :-)
> > >
> > > No, they don't (I must have booted -rc6 instead of it by mistake, sigh).
> > >
> > > > Since 2.6.23-rc4-mm1 only booted with nohpet because of
> > > >
> > > > x86_64-convert-to-clockevents.patch
> > > >
> > > > I guess that the boot problems with this one result from the same patch.
> > >
> > > Not sure any more ...
> > >
> > > I'll try to compile it with NO_HZ and HIGH_RES_TIMERS unset.
> >
> > OK, in that configuration it's much better.
> >
> > It boots with nohpet alone and suspend/hibernation seem to work (still,
> > it didn't want to boot right after hibernation, but booted after I'd switched
> > it off/on manually).
>
> Can you please check, whether
>
> http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
>
> works for you ?
Nope. It's a total disaster. :-(
Doesn't boot at all, even with "noacpitimer nohpet", and that's with
NO_HZ and HIGH_RES_TIMERS unset.
If you have a bisectable patch series, I can try to identify the responsible
patch.
Greetings,
Rafael
On Wed, Sep 19, 2007 at 11:53:23AM -0400, [email protected] wrote:
> On Wed, 19 Sep 2007 09:34:02 +0200, Sam Ravnborg said:
>
> > > I had a few issues with some other modules, but they're evil binaries so
> > > I'm taking those up directly with the companies involved.. ;)
> >
> > How annoying is this - and is this the CFLAGS thing again?
>
> The other issues were VMWare and the removal of EXPORT_SYMBOL(set_dumpable),
> and NVidia graphics driver not playing nice with x86_64-mm-cpa-clflush.patch
> (these actually broke back around -rc[34]-mm1, so it's not a new issue). I
> just had to spend 5 minutes re-checking that my workarounds did/didn't need
> refreshing. Like I said, their problems (and mine), not lkml's.
>
> > We could introduce some workaraound so we continue to respect
> > the CFLAGS settings in a Makefile for a while.
> > But at the end of the day we should convince the external module people
> > to follow the Kbuild docs. So it will then be temporary.
>
> I already sent the author a patch for the broken Makefile. I don't think an
> in-tree workaround is the right thing here. I've vote for an entry in the
> "What's new in 2.6.2X" document when the kbuild changes go mainline, since
> fixing it to use EXTRA_CFLAGS worked perfectly.
Very good suggestion. I will try to make it happen when this hit mainline.
Thanks!
> External module maintainers
> have (presumably) already read stable-API-nonsense, and should be used to
> fixing code for new releases, so a 1 or 2 line Makefile tweak shouldn't be a
> hardship.
No but then on the other hand I do not want to make life too dificult for
the (non-binary) external modules.
I will keep an eye out for additional CFLAGS mis-use and if I get no more than
a few report I will no do the backward compatibility thing.
Sam
On Wed, Sep 19, 2007 at 10:28:48AM +0100, Andy Whitcroft wrote:
> I am seeing this strange link error from a PowerMac G5 (powerpc):
>
> [...]
> KSYM .tmp_kallsyms2.S
> AS .tmp_kallsyms2.o
> LD vmlinux.o
> ld: dynreloc miscount for fs/built-in.o, section .opd
> ld: can not edit opd Bad value
> make: *** [vmlinux.o] Error 1
We have had this issue before.
Try to see:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=045e72acf16054c4ed2760e9a8edb19a08053af1
Here it was caused by a weak declaration that was superflous.
I expect the workaround to be equally simple this time - or I hope so.
Sam
On Wed, 19 Sep 2007 18:43:54 +0200,
Mariusz Kozlowski <[email protected]> wrote:
> On fresh boot it happens with mmc_core. On the next fresh boot it didn't happen with
> firewire_core. So you can be right that some of them are follow-on errors.
OK, this seems to point to mmc_core then. (I couldn't reproduce it with
other modules registering a bus type like iucv either, so it doesn't
seem to be a generic type of bug...)
> Anyway to
> trigger it just run these commands:
>
> # logger -t "foobar" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
> # modprobe mmc_core
> # rmmod mmc_core
> # logger -t "foobar" "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
Unfortunately this would involve setting up a non-s390 test box, which
I currently don't have time to do :(
>
> > Could you try with DEBUG_KOBJECT set?
>
> Please find it attached below.
Thanks.
> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> kobject mmc_core: registering. parent: <NULL>, set: module
> kobject holders: registering. parent: mmc_core, set: <NULL>
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject_uevent_env
> fill_kobj_path: path = '/module/mmc_core'
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'mmc_bus_type'@(0xded0c1b0) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject mmc: registering. parent: <NULL>, set: bus
> kobject_uevent_env
> fill_kobj_path: path = '/bus/mmc'
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'mmc_bus_type'@(0xded0c290) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject devices: registering. parent: mmc, set: <NULL>
> kobject_uevent_env
> kobject filter function caused the event to drop!
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'mmc_bus_type'@(0xded0c220) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject drivers: registering. parent: mmc, set: <NULL>
> kobject_uevent_env
> kobject filter function caused the event to drop!
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'mmc_host_class'@(0xded0c4f8) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'mmc_host_class'@(0xded0c470) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject mmc_host: registering. parent: <NULL>, set: class
> kobject_uevent_env
> fill_kobj_path: path = '/class/mmc_host'
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'sdio_bus_type'@(0xded0c790) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject sdio: registering. parent: <NULL>, set: bus
> kobject_uevent_env
> fill_kobj_path: path = '/bus/sdio'
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'sdio_bus_type'@(0xded0c870) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject devices: registering. parent: sdio, set: <NULL>
> kobject_uevent_env
> kobject filter function caused the event to drop!
> ---- begin silly warning ----
> This is a janitorial warning, not a kernel bug.
> The kobject at, or inside 'sdio_bus_type'@(0xded0c800) is not dynamically allocated.
> kobjects must be dynamically allocated, not static
> ---- end silly warning ----
> kobject drivers: registering. parent: sdio, set: <NULL>
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject drivers: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject drivers: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
<Unrelated side note: We should probably save the kobject's name for
printing this debug message, it looks a bit odd :)>
> kobject devices: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject devices: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject sdio: unregistering
> kobject_uevent_env
> fill_kobj_path: path = '/bus/sdio'
> kobject sdio: cleaning up
And now for some reason the reference count for the sdio bus has
already dropped to 0. Strange, since the addition/removal of stuff
below it looks symmetric, and it doesn't seem to do anything different
from other bus types.
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> WARNING: at lib/kref.c:33 kref_get()
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c6cf>] kref_get+0x40/0x42
> [<c024b852>] kobject_get+0x12/0x17
> [<c02d5970>] bus_get+0x11/0x22
> [<c02d5bf9>] bus_remove_file+0xe/0x27
> [<c02d5c22>] remove_probe_files+0x10/0x1f
> [<c02d5c6c>] bus_unregister+0x3b/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
The bus_get()/bus_put() stuff will lead to repeated calls to the
release function in this error case, that explains the following
errors. (By the way, isn't the bus_get()/but_pus() pair in
bus_remove_file() superfluous? The caller should hold a reference
anyway.)
What completely confuses me here is that the devices/drivers ksets have
already been unregistered (see above), when remove_probe_files() should
have been called before that...
> kobject <NULL>: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> WARNING: at lib/kref.c:33 kref_get()
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c6cf>] kref_get+0x40/0x42
> [<c024b852>] kobject_get+0x12/0x17
> [<c02d5970>] bus_get+0x11/0x22
> [<c02d5bf9>] bus_remove_file+0xe/0x27
> [<c02d5c2e>] remove_probe_files+0x1c/0x1f
> [<c02d5c6c>] bus_unregister+0x3b/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
> kobject <NULL>: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject <NULL>: unregistering
And here sdio is unregistered *again*. (The <NULL> indicates that this
is a kobject for which kobject_cleanup() has already been called.)
> kobject_uevent_env
> kobject filter function caused the event to drop!
> BUG: atomic counter underflow at:
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c71d>] kref_put+0x4c/0xaf
> [<c024b74e>] kobject_put+0x14/0x16
> [<c024b83d>] unlink+0x3b/0x3e
> [<c024b8ba>] kobject_del+0x16/0x19
> [<c024b8ef>] kobject_unregister+0x32/0x3f
> [<c024b90b>] kset_unregister+0xf/0x11
> [<c02d5c74>] bus_unregister+0x43/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
> kobject <NULL>: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> BUG: atomic counter underflow at:
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c71d>] kref_put+0x4c/0xaf
> [<c024b74e>] kobject_put+0x14/0x16
> [<c024b83d>] unlink+0x3b/0x3e
> [<c024b8ba>] kobject_del+0x16/0x19
> [<c024b8ef>] kobject_unregister+0x32/0x3f
> [<c024b90b>] kset_unregister+0xf/0x11
> [<c02d5c7f>] bus_unregister+0x4e/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
> WARNING: at lib/kref.c:33 kref_get()
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c6cf>] kref_get+0x40/0x42
> [<c024b852>] kobject_get+0x12/0x17
> [<c02d5970>] bus_get+0x11/0x22
> [<c02d5bf9>] bus_remove_file+0xe/0x27
> [<c02d5c8b>] bus_unregister+0x5a/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
> kobject <NULL>: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject <NULL>: unregistering
> kobject_uevent_env
> BUG: atomic counter underflow at:
> [<c0104a1c>] dump_trace+0x202/0x22b
> [<c0104a5f>] show_trace_log_lvl+0x1a/0x30
> [<c0105608>] show_trace+0x12/0x14
> [<c010572c>] dump_stack+0x15/0x17
> [<c024c71d>] kref_put+0x4c/0xaf
> [<c024b74e>] kobject_put+0x14/0x16
> [<c024b83d>] unlink+0x3b/0x3e
> [<c024b8ba>] kobject_del+0x16/0x19
> [<c024b8ef>] kobject_unregister+0x32/0x3f
> [<c024b90b>] kset_unregister+0xf/0x11
> [<c024b915>] subsystem_unregister+0x8/0xa
> [<c02d5c93>] bus_unregister+0x62/0x66
> [<ded052bd>] sdio_unregister_bus+0xd/0xf [mmc_core]
> [<ded0666d>] mmc_exit+0xd/0x23 [mmc_core]
> [<c013c9d6>] sys_delete_module+0x154/0x202
> [<c010406a>] sysenter_past_esp+0x5f/0x99
> [<ffffe410>] 0xffffe410
> =======================
> kobject mmc_host: unregistering
> kobject_uevent_env
> fill_kobj_path: path = '/class/mmc_host'
> kobject mmc_host: cleaning up
> kobject drivers: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject drivers: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject devices: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject devices: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject mmc: unregistering
> kobject_uevent_env
> fill_kobj_path: path = '/bus/mmc'
> kobject mmc: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> kobject holders: unregistering
> kobject_uevent_env
> kobject filter function caused the event to drop!
> kobject holders: cleaning up
> kobject mmc_core: unregistering
> kobject_uevent_env
> fill_kobj_path: path = '/module/mmc_core'
> kobject mmc_core: cleaning up
> kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-ECONFUSED. Perhaps DEBUG_DRIVER may help some more. Or /me getting
some sleep.
> Hi Sam,
>
> I can reproduce this bug on Frugalware Linux.
>
> Here the bt:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7dc4143 in strlen () from /lib/libc.so.6
> (gdb) bt
> #0 0xb7dc4143 in strlen () from /lib/libc.so.6
> #1 0x0804fd60 in str_append (gs=0xbfe4f6e8, s=0x0) at scripts/kconfig/util.c:87
So the string is null and we call strlen(null) => boom.
Thanks - will post a fix in a few minutes.
Need to investigate a bit more why I do not see the crash even
though I updated to ubuntu gutsy to check it out?!?
Sam
On Wed, 19 Sep 2007 16:59:04 +0200 Jiri Slaby <[email protected]> wrote:
> ---------8<---------8<---------8<---------8<---------8<---------8<----
> That means
> void agp_generic_destroy_page(void *addr)
> {
> struct page *page;
>
> if (addr == NULL)
> return;
>
> page = virt_to_page(addr);
> (1) unmap_page_from_agp(page);
> put_page(page);
> (2) free_page((unsigned long)addr);
> atomic_dec(&agp_bridge->current_memory_agp);
> }
>
> (1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
> __change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
> (2) free_page -> free_pages -> __free_pages -> free_hot_page ->
> free_hot_cold_page -> list_add(&page->lru, &pcp->list);
that'll hurt.
> any ideas how to fix this?
We should hold a single reference on the page for its membership in
deferred_pages.
On Wed, 2007-09-19 at 19:44 +0200, Rafael J. Wysocki wrote:
> > > It boots with nohpet alone and suspend/hibernation seem to work (still,
> > > it didn't want to boot right after hibernation, but booted after I'd switched
> > > it off/on manually).
> >
> > Can you please check, whether
> >
> > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
> >
> > works for you ?
>
> Nope. It's a total disaster. :-(
True. I have instrumented it to the point where the broadcast device is
programmed, but no interrupt comes in for totally unknown reasons.
> Doesn't boot at all, even with "noacpitimer nohpet", and that's with
> NO_HZ and HIGH_RES_TIMERS unset.
> If you have a bisectable patch series, I can try to identify the responsible
> patch.
http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patches.tar.bz2
The first patches in the queue are the mainline fixups.
tglx
On Wed, Sep 19, 2007 at 12:10:17PM -0700, Andrew Morton wrote:
> On Wed, 19 Sep 2007 16:59:04 +0200 Jiri Slaby <[email protected]> wrote:
>
> > ---------8<---------8<---------8<---------8<---------8<---------8<----
> > That means
> > void agp_generic_destroy_page(void *addr)
> > {
> > struct page *page;
> >
> > if (addr == NULL)
> > return;
> >
> > page = virt_to_page(addr);
> > (1) unmap_page_from_agp(page);
> > put_page(page);
> > (2) free_page((unsigned long)addr);
> > atomic_dec(&agp_bridge->current_memory_agp);
> > }
> >
> > (1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
> > __change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
> > (2) free_page -> free_pages -> __free_pages -> free_hot_page ->
> > free_hot_cold_page -> list_add(&page->lru, &pcp->list);
>
> that'll hurt.
>
> > any ideas how to fix this?
>
> We should hold a single reference on the page for its membership in
> deferred_pages.
The code is broken anyways. If you free pages without flushing
them first some other innocent user allocating them will end up
with possible uncached pages for some time.
Does this simple patch help?
-Andi
Flush uncached AGP pages before freeing
Signed-off-by: Andi Kleen <[email protected]>
Index: linux/drivers/char/agp/generic.c
===================================================================
--- linux.orig/drivers/char/agp/generic.c
+++ linux/drivers/char/agp/generic.c
@@ -1185,6 +1185,7 @@ void agp_generic_destroy_page(void *addr
page = virt_to_page(addr);
unmap_page_from_agp(page);
+ flush_agp_mappings();
put_page(page);
free_page((unsigned long)addr);
atomic_dec(&agp_bridge->current_memory_agp);
On Wed, Sep 19, 2007 at 12:48:26AM +0200, Gabriel C wrote:
> Gabriel C wrote:
> > Sam Ravnborg wrote:
> >> On Tue, Sep 18, 2007 at 03:42:58PM -0400, Miles Lane wrote:
> >>> On 9/18/07, Sam Ravnborg <[email protected]> wrote:
> >>>> Hi Miles.
> >>>> On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
> >>>>> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
> >>>>> crash, and the bash display settings have to be reset.
> >>>> Not reproduceable here.
> >>>> But I noticed that we pass a null pointer to a vsprintf function which
> >>>> in the cases you pointed out printed a (null) at my system.
> >>>> Could you plase try if attached patch fix your system.
> >>> Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
> >>> development version of the distro). Maybe I should try "make
> >>> mrproper" first?
> >> make mrproper should not do any difference here.
> >> I rather think you hit some ncurses bug.
> >>
> >> If you could add '-g' to HOSTCFLAGS in top-level Makefile
> >> and then do:
> >> rm scripts/kconfig/mconf.o scripts/kconfig/mconf
> >> make menuconfig
> >>
> >> (to build mconf and to check that the error is still reproduceable).
> >> And then run it in a debugger like this:
> >> gdb scripts/kconfig/mconf
> >> run arch/x86_64/Kconfig
> >> ^^^^^^ replace with your actual arch
> >>
> >> Provoke the error and get a back-trace with 'bt'.
> >
> > Hi Sam,
> >
> > I can reproduce this bug on Frugalware Linux.
> >
> > Here the bt:
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xb7dc4143 in strlen () from /lib/libc.so.6
> > (gdb) bt
> > #0 0xb7dc4143 in strlen () from /lib/libc.so.6
> > #1 0x0804fd60 in str_append (gs=0xbfe4f6e8, s=0x0) at scripts/kconfig/util.c:87
> > #2 0x0804e0cb in expr_print (e=0x8e22df8, fn=0x804fda0 <expr_print_gstr_helper>, data=0xbfe4f6e8, prevtoken=0) at scripts/kconfig/expr.c:1037
> > #3 0x0804e1e7 in expr_gstr_print (e=0x8e22df8, gs=0xbfe4f6e8) at scripts/kconfig/expr.c:1099
> > #4 0x0804a07e in get_symbol_str (r=0xbfe4f6e8, sym=0x8b54ee8) at scripts/kconfig/mconf.c:334
> > #5 0x0804a363 in show_help (menu=0x8b54f88) at scripts/kconfig/mconf.c:738
> > #6 0x0804acec in conf (menu=0x8b69480) at scripts/kconfig/mconf.c:781
> > #7 0x0804a971 in conf (menu=0x8063c40) at scripts/kconfig/mconf.c:703
> > #8 0x0804af8a in main (ac=Cannot access memory at address 0x0
> > ) at scripts/kconfig/mconf.c:917
> >
> >
> > Looks somewhat strange -> http://194.231.229.228/menuconfig.png
> >
> > PS: Is without the patch you posted , I'll try with in a bit
>
> The crash is still there but the (null)'s are all fixed by this patch.
Got it. We sometimes get a numm pointer when printing the expression (in expr.c).
I have queued following fix.
Thanks for reporting!
Sam
Patch is copy'n'pased due to temporary setup troubles after upgradign to Gutsy.
Will be at kbuil.git in a few minutes.
>From 69d39ec036b4fca541efc3c9ee31ec65d6b95bd4 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Wed, 19 Sep 2007 21:23:09 +0200
Subject: [PATCH] kconfig: fix segv fault in menuconfig
With specific configurations requesting help for certain
menu lines caused menuconfig to crash.
This was tracked down to a null pointer bug.
Thanks to "Miles Lane" <[email protected]> for inital reporting
and to Gabriel C <[email protected]> for the backtrace
that helped me locating the bug.
Signed-off-by: Sam Ravnborg <[email protected]>
---
scripts/kconfig/mconf.c | 5 +++--
scripts/kconfig/util.c | 13 ++++++++-----
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 2ee12a7..1935818 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -357,8 +357,9 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
bool hit;
struct property *prop;
- str_printf(r, "Symbol: %s [=%s]\n", sym->name,
- sym_get_string_value(sym));
+ if (sym && sym->name)
+ str_printf(r, "Symbol: %s [=%s]\n", sym->name,
+ sym_get_string_value(sym));
for_all_prompts(sym, prop)
get_prompt_str(r, prop);
hit = false;
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index e3f28b9..e1cad92 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -84,12 +84,15 @@ void str_free(struct gstr *gs)
/* Append to growable string */
void str_append(struct gstr *gs, const char *s)
{
- size_t l = strlen(gs->s) + strlen(s) + 1;
- if (l > gs->len) {
- gs->s = realloc(gs->s, l);
- gs->len = l;
+ size_t l;
+ if (s) {
+ l = strlen(gs->s) + strlen(s) + 1;
+ if (l > gs->len) {
+ gs->s = realloc(gs->s, l);
+ gs->len = l;
+ }
+ strcat(gs->s, s);
}
- strcat(gs->s, s);
}
/* Append printf formatted string to growable string */
On 09/19/2007 09:24 PM, Andi Kleen wrote:
> On Wed, Sep 19, 2007 at 12:10:17PM -0700, Andrew Morton wrote:
>> On Wed, 19 Sep 2007 16:59:04 +0200 Jiri Slaby <[email protected]> wrote:
>>
>>> ---------8<---------8<---------8<---------8<---------8<---------8<----
>>> That means
>>> void agp_generic_destroy_page(void *addr)
>>> {
>>> struct page *page;
>>>
>>> if (addr == NULL)
>>> return;
>>>
>>> page = virt_to_page(addr);
>>> (1) unmap_page_from_agp(page);
>>> put_page(page);
>>> (2) free_page((unsigned long)addr);
>>> atomic_dec(&agp_bridge->current_memory_agp);
>>> }
>>>
>>> (1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
>>> __change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
>>> (2) free_page -> free_pages -> __free_pages -> free_hot_page ->
>>> free_hot_cold_page -> list_add(&page->lru, &pcp->list);
>> that'll hurt.
>>
>>> any ideas how to fix this?
>> We should hold a single reference on the page for its membership in
>> deferred_pages.
>
> The code is broken anyways. If you free pages without flushing
> them first some other innocent user allocating them will end up
> with possible uncached pages for some time.
>
> Does this simple patch help?
Yeah. (But X doesn't run -- this is maybe the known issue in this release).
> Flush uncached AGP pages before freeing
>
> Signed-off-by: Andi Kleen <[email protected]>
Tested-by: Jiri Slaby <[email protected]>
>
> Index: linux/drivers/char/agp/generic.c
> ===================================================================
> --- linux.orig/drivers/char/agp/generic.c
> +++ linux/drivers/char/agp/generic.c
> @@ -1185,6 +1185,7 @@ void agp_generic_destroy_page(void *addr
>
> page = virt_to_page(addr);
> unmap_page_from_agp(page);
> + flush_agp_mappings();
> put_page(page);
> free_page((unsigned long)addr);
> atomic_dec(&agp_bridge->current_memory_agp);
>
thanks,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
What do you mean with not run?
-Andi
On 09/19/2007 09:54 PM, Andi Kleen wrote:
>> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
>
> What do you mean with not run?
(II) intel(0): Initializing HW Cursor
(II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
(WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
at offset 0x5ff000 failed (Invalid argument)
Fatal server error:
Couldn't bind memory for front buffer
I thought I'd seen a thread about this issue, but I can't find it now. Is it
known or am I seeing ghosts yet, Andrew?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On 09/19/2007 09:57 PM, Jiri Slaby wrote:
> On 09/19/2007 09:54 PM, Andi Kleen wrote:
>>> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
>> What do you mean with not run?
>
> (II) intel(0): Initializing HW Cursor
> (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
> (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
> at offset 0x5ff000 failed (Invalid argument)
>
> Fatal server error:
> Couldn't bind memory for front buffer
Further info:
4690 write(0, "(II) intel(0): Initializing HW C"..., 38) = 38
4690 write(0, "(II) intel(0): xf86BindGARTMemor"..., 76) = 76
4690 ioctl(9, AGPIOC_BIND, 0x7fffbe1cb850) = -1 EINVAL (Invalid argument)
4690 write(0, "(WW) intel(0): xf86BindGARTMemor"..., 115) = 115
4690 write(2, "\nFatal server error:\n", 21) = 21
> I thought I'd seen a thread about this issue, but I can't find it now. Is it
> known or am I seeing ghosts yet, Andrew?
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Wed, 19 Sep 2007, Andy Whitcroft wrote:
> Seems I have a case of a largish i386 NUMA (NUMA-Q) which has a mkfs
> stuck in a 'D' wait:
>
> =======================
> mkfs.ext2 D c10220f4 0 6233 6222
> [<c12194da>] io_schedule_timeout+0x1e/0x28
> [<c10454b4>] congestion_wait+0x62/0x7a
> [<c10402af>] get_dirty_limits+0x16a/0x172
> [<c104040b>] balance_dirty_pages+0x154/0x1be
> [<c103bda3>] generic_perform_write+0x168/0x18a
> [<c103be38>] generic_file_buffered_write+0x73/0x107
> [<c103c346>] __generic_file_aio_write_nolock+0x47a/0x4a5
> [<c103c3b9>] generic_file_aio_write_nolock+0x48/0x9b
> [<c105d2d6>] do_sync_write+0xbf/0xfc
> [<c105d3a0>] vfs_write+0x8d/0x108
> [<c105d4c3>] sys_write+0x41/0x67
> [<c100260a>] syscall_call+0x7/0xb
> =======================
[edited out some bogus lines from stale stack]
> This machine and others have run numerous test runs on this kernel and
> this is the first time I've see a hang like this.
I've been seeing something like that on 4-way PPC64: in my case I've
shells hanging in D state trying to append to kernel build log on ext3
(the builds themselves going on elsewhere, in tmpfs): one of the shells
holding i_mutex and stuck doing congestion_waits from balance_dirty_pages.
> I wonder if this is the ultimate cause of the couple of mainline hangs
> which were seen, but not diagnosed.
My *guess* is that this is peculiar to 2.6.23-rc6-mm1, and from Peter's
mm-per-device-dirty-threshold.patch. printks showed bdi_nr_reclaimable
0, bdi_nr_writeback 24, bdi_thresh 1 in balance_dirty_pages (though I've
not done enough to check if those really correlate with the hangs),
and I'm wondering if the bdi_stat_sum business is needed on the
!nr_reclaimable path.
So I'm running now with the patch below, good so far, but can't judge
until tomorrow whether it has actually addressed the problem seen.
Not-yet-Signed-off-by: Hugh Dickins <[email protected]>
---
mm/page-writeback.c | 53 +++++++++++++++++++-----------------------
1 file changed, 24 insertions(+), 29 deletions(-)
--- 2.6.23-rc6-mm1/mm/page-writeback.c 2007-09-18 12:28:25.000000000 +0100
+++ linux/mm/page-writeback.c 2007-09-19 20:00:46.000000000 +0100
@@ -379,7 +379,7 @@ static void balance_dirty_pages(struct a
bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
- break;
+ break;
if (!bdi->dirty_exceeded)
bdi->dirty_exceeded = 1;
@@ -392,39 +392,34 @@ static void balance_dirty_pages(struct a
*/
if (bdi_nr_reclaimable) {
writeback_inodes(&wbc);
-
+ pages_written += write_chunk - wbc.nr_to_write;
get_dirty_limits(&background_thresh, &dirty_thresh,
&bdi_thresh, bdi);
+ }
- /*
- * In order to avoid the stacked BDI deadlock we need
- * to ensure we accurately count the 'dirty' pages when
- * the threshold is low.
- *
- * Otherwise it would be possible to get thresh+n pages
- * reported dirty, even though there are thresh-m pages
- * actually dirty; with m+n sitting in the percpu
- * deltas.
- */
- if (bdi_thresh < 2*bdi_stat_error(bdi)) {
- bdi_nr_reclaimable =
- bdi_stat_sum(bdi, BDI_RECLAIMABLE);
- bdi_nr_writeback =
- bdi_stat_sum(bdi, BDI_WRITEBACK);
- } else {
- bdi_nr_reclaimable =
- bdi_stat(bdi, BDI_RECLAIMABLE);
- bdi_nr_writeback =
- bdi_stat(bdi, BDI_WRITEBACK);
- }
+ /*
+ * In order to avoid the stacked BDI deadlock we need
+ * to ensure we accurately count the 'dirty' pages when
+ * the threshold is low.
+ *
+ * Otherwise it would be possible to get thresh+n pages
+ * reported dirty, even though there are thresh-m pages
+ * actually dirty; with m+n sitting in the percpu
+ * deltas.
+ */
+ if (bdi_thresh < 2*bdi_stat_error(bdi)) {
+ bdi_nr_reclaimable = bdi_stat_sum(bdi, BDI_RECLAIMABLE);
+ bdi_nr_writeback = bdi_stat_sum(bdi, BDI_WRITEBACK);
+ } else if (bdi_nr_reclaimable) {
+ bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
+ bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
+ }
- if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
- break;
+ if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
+ break;
+ if (pages_written >= write_chunk)
+ break; /* We've done our duty */
- pages_written += write_chunk - wbc.nr_to_write;
- if (pages_written >= write_chunk)
- break; /* We've done our duty */
- }
congestion_wait(WRITE, HZ/10);
}
On Wed, 19 Sep 2007 21:57:27 +0200, Jiri Slaby said:
> On 09/19/2007 09:54 PM, Andi Kleen wrote:
> >> Yeah. (But X doesn't run -- this is maybe the known issue in this release)
.
> >
> > What do you mean with not run?
>
> (II) intel(0): Initializing HW Cursor
> (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
> (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
> at offset 0x5ff000 failed (Invalid argument)
>
> Fatal server error:
> Couldn't bind memory for front buffer
>
> I thought I'd seen a thread about this issue, but I can't find it now. Is it
> known or am I seeing ghosts yet, Andrew?
That would probably have been me, saying that x86_64-mm-cpa-clflush.patch broke
the NVidia graphics driver in 23-rc3-mm1. Is it breaking *other* X drivers as
well?
Sam Ravnborg wrote:
> On Wed, Sep 19, 2007 at 12:48:26AM +0200, Gabriel C wrote:
>> Gabriel C wrote:
>>> Sam Ravnborg wrote:
>>>> On Tue, Sep 18, 2007 at 03:42:58PM -0400, Miles Lane wrote:
>>>>> On 9/18/07, Sam Ravnborg <[email protected]> wrote:
>>>>>> Hi Miles.
>>>>>> On Tue, Sep 18, 2007 at 11:27:23AM -0400, Miles Lane wrote:
>>>>>>> Selecting Help for "Subarchitecture Type" causes "make menuconfig" to
>>>>>>> crash, and the bash display settings have to be reset.
>>>>>> Not reproduceable here.
>>>>>> But I noticed that we pass a null pointer to a vsprintf function which
>>>>>> in the cases you pointed out printed a (null) at my system.
>>>>>> Could you plase try if attached patch fix your system.
>>>>> Sorry, it still crashes. I am running Ubuntu pre-6.10 (Gutsy -- the
>>>>> development version of the distro). Maybe I should try "make
>>>>> mrproper" first?
>>>> make mrproper should not do any difference here.
>>>> I rather think you hit some ncurses bug.
>>>>
>>>> If you could add '-g' to HOSTCFLAGS in top-level Makefile
>>>> and then do:
>>>> rm scripts/kconfig/mconf.o scripts/kconfig/mconf
>>>> make menuconfig
>>>>
>>>> (to build mconf and to check that the error is still reproduceable).
>>>> And then run it in a debugger like this:
>>>> gdb scripts/kconfig/mconf
>>>> run arch/x86_64/Kconfig
>>>> ^^^^^^ replace with your actual arch
>>>>
>>>> Provoke the error and get a back-trace with 'bt'.
>>> Hi Sam,
>>>
>>> I can reproduce this bug on Frugalware Linux.
>>>
>>> Here the bt:
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> 0xb7dc4143 in strlen () from /lib/libc.so.6
>>> (gdb) bt
>>> #0 0xb7dc4143 in strlen () from /lib/libc.so.6
>>> #1 0x0804fd60 in str_append (gs=0xbfe4f6e8, s=0x0) at scripts/kconfig/util.c:87
>>> #2 0x0804e0cb in expr_print (e=0x8e22df8, fn=0x804fda0 <expr_print_gstr_helper>, data=0xbfe4f6e8, prevtoken=0) at scripts/kconfig/expr.c:1037
>>> #3 0x0804e1e7 in expr_gstr_print (e=0x8e22df8, gs=0xbfe4f6e8) at scripts/kconfig/expr.c:1099
>>> #4 0x0804a07e in get_symbol_str (r=0xbfe4f6e8, sym=0x8b54ee8) at scripts/kconfig/mconf.c:334
>>> #5 0x0804a363 in show_help (menu=0x8b54f88) at scripts/kconfig/mconf.c:738
>>> #6 0x0804acec in conf (menu=0x8b69480) at scripts/kconfig/mconf.c:781
>>> #7 0x0804a971 in conf (menu=0x8063c40) at scripts/kconfig/mconf.c:703
>>> #8 0x0804af8a in main (ac=Cannot access memory at address 0x0
>>> ) at scripts/kconfig/mconf.c:917
>>>
>>>
>>> Looks somewhat strange -> http://194.231.229.228/menuconfig.png
>>>
>>> PS: Is without the patch you posted , I'll try with in a bit
>> The crash is still there but the (null)'s are all fixed by this patch.
>
> Got it. We sometimes get a numm pointer when printing the expression (in expr.c).
> I have queued following fix.
>
Patch is fine , fixes the problem here.
> Thanks for reporting!
>
> Sam
>
> Patch is copy'n'pased due to temporary setup troubles after upgradign to Gutsy.
> Will be at kbuil.git in a few minutes.
>
>>From 69d39ec036b4fca541efc3c9ee31ec65d6b95bd4 Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <[email protected]>
> Date: Wed, 19 Sep 2007 21:23:09 +0200
> Subject: [PATCH] kconfig: fix segv fault in menuconfig
>
> With specific configurations requesting help for certain
> menu lines caused menuconfig to crash.
> This was tracked down to a null pointer bug.
> Thanks to "Miles Lane" <[email protected]> for inital reporting
> and to Gabriel C <[email protected]> for the backtrace
> that helped me locating the bug.
>
> Signed-off-by: Sam Ravnborg <[email protected]>
> ---
> scripts/kconfig/mconf.c | 5 +++--
> scripts/kconfig/util.c | 13 ++++++++-----
> 2 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
> index 2ee12a7..1935818 100644
> --- a/scripts/kconfig/mconf.c
> +++ b/scripts/kconfig/mconf.c
> @@ -357,8 +357,9 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
> bool hit;
> struct property *prop;
>
> - str_printf(r, "Symbol: %s [=%s]\n", sym->name,
> - sym_get_string_value(sym));
> + if (sym && sym->name)
> + str_printf(r, "Symbol: %s [=%s]\n", sym->name,
> + sym_get_string_value(sym));
> for_all_prompts(sym, prop)
> get_prompt_str(r, prop);
> hit = false;
> diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
> index e3f28b9..e1cad92 100644
> --- a/scripts/kconfig/util.c
> +++ b/scripts/kconfig/util.c
> @@ -84,12 +84,15 @@ void str_free(struct gstr *gs)
> /* Append to growable string */
> void str_append(struct gstr *gs, const char *s)
> {
> - size_t l = strlen(gs->s) + strlen(s) + 1;
> - if (l > gs->len) {
> - gs->s = realloc(gs->s, l);
> - gs->len = l;
> + size_t l;
> + if (s) {
> + l = strlen(gs->s) + strlen(s) + 1;
> + if (l > gs->len) {
> + gs->s = realloc(gs->s, l);
> + gs->len = l;
> + }
> + strcat(gs->s, s);
> }
> - strcat(gs->s, s);
> }
>
> /* Append printf formatted string to growable string */
>
>
> >
> > Got it. We sometimes get a numm pointer when printing the expression (in expr.c).
> > I have queued following fix.
> >
>
> Patch is fine , fixes the problem here.
Thanks for testing.
Sam
On Wed, 19 Sep 2007 21:03:19 +0100 (BST) Hugh Dickins
<[email protected]> wrote:
> On Wed, 19 Sep 2007, Andy Whitcroft wrote:
> > Seems I have a case of a largish i386 NUMA (NUMA-Q) which has a mkfs
> > stuck in a 'D' wait:
> >
> > =======================
> > mkfs.ext2 D c10220f4 0 6233 6222
> > [<c12194da>] io_schedule_timeout+0x1e/0x28
> > [<c10454b4>] congestion_wait+0x62/0x7a
> > [<c10402af>] get_dirty_limits+0x16a/0x172
> > [<c104040b>] balance_dirty_pages+0x154/0x1be
> > [<c103bda3>] generic_perform_write+0x168/0x18a
> > [<c103be38>] generic_file_buffered_write+0x73/0x107
> > [<c103c346>] __generic_file_aio_write_nolock+0x47a/0x4a5
> > [<c103c3b9>] generic_file_aio_write_nolock+0x48/0x9b
> > [<c105d2d6>] do_sync_write+0xbf/0xfc
> > [<c105d3a0>] vfs_write+0x8d/0x108
> > [<c105d4c3>] sys_write+0x41/0x67
> > [<c100260a>] syscall_call+0x7/0xb
> > =======================
>
> [edited out some bogus lines from stale stack]
>
> > This machine and others have run numerous test runs on this kernel and
> > this is the first time I've see a hang like this.
>
> I've been seeing something like that on 4-way PPC64: in my case I've
> shells hanging in D state trying to append to kernel build log on ext3
> (the builds themselves going on elsewhere, in tmpfs): one of the shells
> holding i_mutex and stuck doing congestion_waits from balance_dirty_pages.
>
> > I wonder if this is the ultimate cause of the couple of mainline hangs
> > which were seen, but not diagnosed.
>
> My *guess* is that this is peculiar to 2.6.23-rc6-mm1, and from Peter's
> mm-per-device-dirty-threshold.patch. printks showed bdi_nr_reclaimable
> 0, bdi_nr_writeback 24, bdi_thresh 1 in balance_dirty_pages (though I've
> not done enough to check if those really correlate with the hangs),
> and I'm wondering if the bdi_stat_sum business is needed on the
> !nr_reclaimable path.
FWIW my tired brain seems to think it the !nr_reclaimable path needs it
just the same. So this change seems to make sense for now :-)
> So I'm running now with the patch below, good so far, but can't judge
> until tomorrow whether it has actually addressed the problem seen.
>
> Not-yet-Signed-off-by: Hugh Dickins <[email protected]>
> ---
> mm/page-writeback.c | 53 +++++++++++++++++++-----------------------
> 1 file changed, 24 insertions(+), 29 deletions(-)
>
> --- 2.6.23-rc6-mm1/mm/page-writeback.c 2007-09-18 12:28:25.000000000 +0100
> +++ linux/mm/page-writeback.c 2007-09-19 20:00:46.000000000 +0100
> @@ -379,7 +379,7 @@ static void balance_dirty_pages(struct a
> bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
> bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> - break;
> + break;
>
> if (!bdi->dirty_exceeded)
> bdi->dirty_exceeded = 1;
> @@ -392,39 +392,34 @@ static void balance_dirty_pages(struct a
> */
> if (bdi_nr_reclaimable) {
> writeback_inodes(&wbc);
> -
> + pages_written += write_chunk - wbc.nr_to_write;
> get_dirty_limits(&background_thresh, &dirty_thresh,
> &bdi_thresh, bdi);
> + }
>
> - /*
> - * In order to avoid the stacked BDI deadlock we need
> - * to ensure we accurately count the 'dirty' pages when
> - * the threshold is low.
> - *
> - * Otherwise it would be possible to get thresh+n pages
> - * reported dirty, even though there are thresh-m pages
> - * actually dirty; with m+n sitting in the percpu
> - * deltas.
> - */
> - if (bdi_thresh < 2*bdi_stat_error(bdi)) {
> - bdi_nr_reclaimable =
> - bdi_stat_sum(bdi, BDI_RECLAIMABLE);
> - bdi_nr_writeback =
> - bdi_stat_sum(bdi, BDI_WRITEBACK);
> - } else {
> - bdi_nr_reclaimable =
> - bdi_stat(bdi, BDI_RECLAIMABLE);
> - bdi_nr_writeback =
> - bdi_stat(bdi, BDI_WRITEBACK);
> - }
> + /*
> + * In order to avoid the stacked BDI deadlock we need
> + * to ensure we accurately count the 'dirty' pages when
> + * the threshold is low.
> + *
> + * Otherwise it would be possible to get thresh+n pages
> + * reported dirty, even though there are thresh-m pages
> + * actually dirty; with m+n sitting in the percpu
> + * deltas.
> + */
> + if (bdi_thresh < 2*bdi_stat_error(bdi)) {
> + bdi_nr_reclaimable = bdi_stat_sum(bdi, BDI_RECLAIMABLE);
> + bdi_nr_writeback = bdi_stat_sum(bdi, BDI_WRITEBACK);
> + } else if (bdi_nr_reclaimable) {
> + bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
> + bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> + }
>
> - if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> - break;
> + if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> + break;
> + if (pages_written >= write_chunk)
> + break; /* We've done our duty */
>
> - pages_written += write_chunk - wbc.nr_to_write;
> - if (pages_written >= write_chunk)
> - break; /* We've done our duty */
> - }
> congestion_wait(WRITE, HZ/10);
> }
>
On 09/19/2007 10:32 PM, [email protected] wrote:
> On Wed, 19 Sep 2007 21:57:27 +0200, Jiri Slaby said:
>> On 09/19/2007 09:54 PM, Andi Kleen wrote:
>>>> Yeah. (But X doesn't run -- this is maybe the known issue in this release)
> .
>>> What do you mean with not run?
>> (II) intel(0): Initializing HW Cursor
>> (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
>> (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
>> at offset 0x5ff000 failed (Invalid argument)
>>
>> Fatal server error:
>> Couldn't bind memory for front buffer
>>
>> I thought I'd seen a thread about this issue, but I can't find it now. Is it
>> known or am I seeing ghosts yet, Andrew?
>
> That would probably have been me, saying that x86_64-mm-cpa-clflush.patch broke
> the NVidia graphics driver in 23-rc3-mm1. Is it breaking *other* X drivers as
> well?
Yes, the issue is there from rc3-mm1, see (intel and radeon cards are affected
in my case):
http://lkml.org/lkml/2007/9/9/51
But now I'm talking about another issue -- a regression since rc4-mm1, where X
server is unable to bind agp memory (those x logs above). The clflush issue has
solved andi in
http://lkml.org/lkml/2007/9/19/334
recently
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Wed, 19 Sep 2007 22:01:59 +0200
Jiri Slaby <[email protected]> wrote:
> On 09/19/2007 09:57 PM, Jiri Slaby wrote:
> > On 09/19/2007 09:54 PM, Andi Kleen wrote:
> >>> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
> >> What do you mean with not run?
> >
> > (II) intel(0): Initializing HW Cursor
> > (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
> > (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
> > at offset 0x5ff000 failed (Invalid argument)
> >
> > Fatal server error:
> > Couldn't bind memory for front buffer
>
> Further info:
> 4690 write(0, "(II) intel(0): Initializing HW C"..., 38) = 38
> 4690 write(0, "(II) intel(0): xf86BindGARTMemor"..., 76) = 76
> 4690 ioctl(9, AGPIOC_BIND, 0x7fffbe1cb850) = -1 EINVAL (Invalid argument)
> 4690 write(0, "(WW) intel(0): xf86BindGARTMemor"..., 115) = 115
> 4690 write(2, "\nFatal server error:\n", 21) = 21
>
This might be a Dave thing and not an Andi thing.
In my usual -mm-testing I only test X on the one machine (the Vaio,
natch). Check that it runs glxgears, check suspend/resume to mem and disk.
It has intel graphics and I'm not seeing any such problems.
Have you time to bisect it?
http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt
describes how.
As a quick test, perhaps build a tree with just
2.6.23-rc6+origin.patch+git-drm.patch? Fortunately git-agpgart.patch is
presently empty.
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc6-mm1
# Wed Sep 19 21:01:48 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION="-testing"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_CONTAINERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=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_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_KPAGEMAP=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBD=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_LSF=y
CONFIG_BLK_DEV_BSG=y
#
# 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=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_PREEMPT_NOTIFIERS=y
#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
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_PARAVIRT=y
CONFIG_XEN=y
CONFIG_VMI=y
# 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=y
# CONFIG_MCORE2 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# 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_MVIAC7 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_POPULATES_NODE_MAP=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_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_IRQBALANCE=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_SMP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_SMP_POSSIBLE=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_DOCK=m
# CONFIG_ACPI_BAY is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
# CONFIG_ACPI_SBS is not set
# CONFIG_APM is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_GX_SUSPMOD=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
CONFIG_X86_SPEEDSTEP_ICH=m
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_X86_CPUFREQ_NFORCE2=m
CONFIG_X86_LONGRUN=m
CONFIG_X86_LONGHAUL=m
CONFIG_X86_E_POWERSAVER=m
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=m
CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
#
# CPU idle PM support
#
CONFIG_CPU_IDLE=y
#
# Governors
#
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
#
# 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=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_K8_NB=y
# CONFIG_PCCARD is not set
# 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_PACKET=m
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
CONFIG_XFRM_SUB_POLICY=y
CONFIG_XFRM_MIGRATE=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
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=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# 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=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_DEFAULT_BIC is not set
# CONFIG_DEFAULT_CUBIC is not set
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
CONFIG_DEFAULT_RENO=y
CONFIG_DEFAULT_TCP_CONG="reno"
CONFIG_TCP_MD5SIG=y
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK_ENABLED=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
#
# Bridge: Netfilter Configuration
#
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_ACKVEC=y
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP_CCID2=m
CONFIG_IP_DCCP_CCID2_DEBUG=y
CONFIG_IP_DCCP_CCID3=m
CONFIG_IP_DCCP_TFRC_LIB=m
CONFIG_IP_DCCP_CCID3_DEBUG=y
CONFIG_IP_DCCP_CCID3_RTO=100
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
CONFIG_X25=m
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_STANDALONE is not set
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
# CONFIG_PARIDE is not set
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=64000
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD_WCACHE=y
CONFIG_ATA_OVER_ETH=m
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
CONFIG_EEPROM_93CX6=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=m
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_NETLINK=y
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=m
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m
CONFIG_SCSI_SAS_LIBSAS=m
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_3W_9XXX=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=5000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_AIC79XX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC94XX=m
CONFIG_AIC94XX_DEBUG=y
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
CONFIG_SCSI_ARCMSR_AER=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_OMIT_FLASHPOINT is not set
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_EATA=m
CONFIG_SCSI_EATA_TAGGED_QUEUE=y
CONFIG_SCSI_EATA_LINKED_COMMANDS=y
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
CONFIG_SCSI_STEX=m
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=m
CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA_FC=m
CONFIG_SCSI_QLA_ISCSI=m
CONFIG_SCSI_LPFC=m
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_NSP32=m
CONFIG_SCSI_DEBUG=m
# CONFIG_SCSI_SRP is not set
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_AHCI=m
CONFIG_SATA_SVW=m
CONFIG_ATA_PIIX=m
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_PDC_ADMA=m
CONFIG_SATA_QSTOR=m
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SX4=m
CONFIG_SATA_SIL=m
CONFIG_SATA_SIL24=m
CONFIG_SATA_SIS=m
CONFIG_SATA_ULI=m
CONFIG_SATA_VIA=m
CONFIG_SATA_VITESSE=m
CONFIG_SATA_INIC162X=m
CONFIG_PATA_ALI=m
CONFIG_PATA_AMD=m
CONFIG_PATA_ARTOP=m
CONFIG_PATA_ATIIXP=m
CONFIG_PATA_CMD640_PCI=m
CONFIG_PATA_CMD64X=m
CONFIG_PATA_CS5520=m
CONFIG_PATA_CS5530=m
CONFIG_PATA_CS5535=m
CONFIG_PATA_CYPRESS=m
CONFIG_PATA_EFAR=m
# CONFIG_ATA_GENERIC is not set
CONFIG_PATA_HPT366=m
CONFIG_PATA_HPT37X=m
CONFIG_PATA_HPT3X2N=m
CONFIG_PATA_HPT3X3=m
# CONFIG_PATA_HPT3X3_DMA is not set
CONFIG_PATA_IT821X=m
CONFIG_PATA_IT8213=m
CONFIG_PATA_JMICRON=m
CONFIG_PATA_TRIFLEX=m
CONFIG_PATA_MARVELL=m
CONFIG_PATA_MPIIX=m
# CONFIG_PATA_OLDPIIX is not set
CONFIG_PATA_NETCELL=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_OPTIDMA=m
CONFIG_PATA_PDC_OLD=m
CONFIG_PATA_RADISYS=m
CONFIG_PATA_RZ1000=m
CONFIG_PATA_SC1200=m
CONFIG_PATA_SERVERWORKS=m
CONFIG_PATA_PDC2027X=m
CONFIG_PATA_SIL680=m
CONFIG_PATA_SIS=m
CONFIG_PATA_VIA=m
CONFIG_PATA_WINBOND=m
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_RAID5_RESHAPE=y
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_EMC=m
CONFIG_DM_MULTIPATH_RDAC=m
# CONFIG_DM_DELAY is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_SBP2=m
# CONFIG_IEEE1394 is not set
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=m
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_MACVLAN=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
CONFIG_VETH=m
# CONFIG_NET_SB1000 is not set
CONFIG_IP1000=m
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_ICPLUS_PHY=m
CONFIG_FIXED_PHY=m
CONFIG_FIXED_MII_10_FDX=y
CONFIG_FIXED_MII_100_FDX=y
CONFIG_FIXED_MII_1000_FDX=y
CONFIG_FIXED_MII_AMNT=1
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
CONFIG_TULIP_NAPI=y
CONFIG_TULIP_NAPI_HW_MITIGATION=y
CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_HP100=m
CONFIG_NET_PCI=y
CONFIG_PCNET32=m
# CONFIG_PCNET32_NAPI is not set
CONFIG_AMD8111_ETH=m
# CONFIG_AMD8111E_NAPI is not set
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_ADAPTEC_STARFIRE_NAPI=y
CONFIG_FORCEDETH=m
# CONFIG_FORCEDETH_NAPI is not set
CONFIG_DGRS=m
CONFIG_EEPRO100=m
CONFIG_E100=m
CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NE2K_PCI=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_SIS900=m
CONFIG_EPIC100=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_TLAN=m
CONFIG_VIA_RHINE=m
# CONFIG_VIA_RHINE_MMIO is not set
CONFIG_VIA_RHINE_NAPI=y
CONFIG_SC92031=m
# CONFIG_NET_POCKET is not set
CONFIG_NETDEV_1000=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=y
CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_E1000E is not set
CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
CONFIG_R8169_NAPI=y
CONFIG_R8169_VLAN=y
CONFIG_SIS190=m
CONFIG_SKGE=m
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
# CONFIG_SK98LIN is not set
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
CONFIG_QLA3XXX=m
CONFIG_ATL1=m
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 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_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
CONFIG_XEN_NETDEV_FRONTEND=y
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
CONFIG_PPPOL2TP=m
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=m
CONFIG_SLIP_SMART=y
CONFIG_SLIP_MODE_SLIP6=y
# CONFIG_NET_FC is not set
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_ISDN=m
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_IPPP_FILTER=y
CONFIG_ISDN_PPP_BSDCOMP=m
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y
CONFIG_ISDN_X25=y
#
# ISDN feature submodules
#
CONFIG_ISDN_DIVERSION=m
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#
CONFIG_ISDN_DRV_HISAX=m
#
# D-channel protocol features
#
CONFIG_HISAX_EURO=y
CONFIG_DE_AOC=y
# CONFIG_HISAX_NO_SENDCOMPLETE is not set
# CONFIG_HISAX_NO_LLC is not set
# CONFIG_HISAX_NO_KEYPAD is not set
CONFIG_HISAX_1TR6=y
CONFIG_HISAX_NI1=y
CONFIG_HISAX_MAX_CARDS=8
#
# HiSax supported cards
#
CONFIG_HISAX_16_3=y
CONFIG_HISAX_TELESPCI=y
CONFIG_HISAX_S0BOX=y
CONFIG_HISAX_FRITZPCI=y
CONFIG_HISAX_AVM_A1_PCMCIA=y
CONFIG_HISAX_ELSA=y
CONFIG_HISAX_DIEHLDIVA=y
CONFIG_HISAX_SEDLBAUER=y
CONFIG_HISAX_NETJET=y
CONFIG_HISAX_NETJET_U=y
CONFIG_HISAX_NICCY=y
CONFIG_HISAX_BKM_A4T=y
CONFIG_HISAX_SCT_QUADRO=y
CONFIG_HISAX_GAZEL=y
CONFIG_HISAX_HFC_PCI=y
CONFIG_HISAX_W6692=y
CONFIG_HISAX_HFC_SX=y
CONFIG_HISAX_ENTERNOW_PCI=y
CONFIG_HISAX_DEBUG=y
#
# HiSax PCMCIA card service modules
#
#
# HiSax sub driver modules
#
CONFIG_HISAX_ST5481=m
CONFIG_HISAX_HFCUSB=m
CONFIG_HISAX_HFC4S8S=m
CONFIG_HISAX_FRITZ_PCIPNP=m
CONFIG_HISAX_HDLC=y
#
# Active cards
#
# CONFIG_HYSDN is not set
CONFIG_ISDN_DRV_GIGASET=m
CONFIG_GIGASET_BASE=m
CONFIG_GIGASET_M105=m
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_DEBUG=y
CONFIG_GIGASET_UNDOCREQ=y
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_CAPI_TRACE=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#
CONFIG_CAPI_AVM=y
CONFIG_ISDN_DRV_AVMB1_B1PCI=m
CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
CONFIG_ISDN_DRV_AVMB1_T1PCI=m
CONFIG_ISDN_DRV_AVMB1_C4=m
CONFIG_CAPI_EICON=y
CONFIG_ISDN_DIVAS=m
CONFIG_ISDN_DIVAS_BRIPCI=y
CONFIG_ISDN_DIVAS_PRIPCI=y
CONFIG_ISDN_DIVAS_DIVACAPI=m
CONFIG_ISDN_DIVAS_USERIDI=m
CONFIG_ISDN_DIVAS_MAINT=m
CONFIG_PHONE=m
CONFIG_PHONE_IXJ=m
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_POLLDEV=m
#
# 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=m
CONFIG_INPUT_TSDEV_SCREEN_X=240
CONFIG_INPUT_TSDEV_SCREEN_Y=320
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_SUNKBD=m
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_XTKBD=m
CONFIG_KEYBOARD_NEWTON=m
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
CONFIG_INPUT_WISTRON_BTNS=m
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
CONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PARKBD=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
CONFIG_GAMEPORT_L4=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_UNICODE=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
CONFIG_HVC_DRIVER=y
CONFIG_HVC_XEN=y
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_NVRAM=m
CONFIG_RTC=y
CONFIG_R3964=m
CONFIG_APPLICOM=m
CONFIG_SONYPI=m
CONFIG_AGP=m
CONFIG_AGP_ALI=m
CONFIG_AGP_ATI=m
CONFIG_AGP_AMD=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
CONFIG_AGP_NVIDIA=m
CONFIG_AGP_SIS=m
CONFIG_AGP_SWORKS=m
CONFIG_AGP_VIA=m
CONFIG_AGP_EFFICEON=m
CONFIG_DRM=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_I915=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
CONFIG_MWAVE=m
CONFIG_PC8736x_GPIO=m
CONFIG_NSC_GPIO=m
CONFIG_CS5535_GPIO=m
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=4096
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=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=m
CONFIG_I2C_ALI1563=m
CONFIG_I2C_ALI15X3=m
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
CONFIG_I2C_SIMTEC=m
CONFIG_SCx200_ACB=m
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_STUB=m
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_VOODOO3=m
#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
CONFIG_DS1682=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
CONFIG_SENSORS_TSL2550=m
# 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=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m
CONFIG_SPI_BUTTERFLY=m
CONFIG_SPI_LM70_LLP=m
#
# SPI Protocol Masters
#
CONFIG_SPI_AT25=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_TLE62X0=m
CONFIG_W1=m
#
# 1-wire Bus Masters
#
CONFIG_W1_MASTER_MATROX=m
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2760=m
CONFIG_POWER_SUPPLY=m
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
CONFIG_BATTERY_DS2760=m
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_F71882FG=m
CONFIG_SENSORS_F75375S=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
CONFIG_SENSORS_APPLESMC=m
# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=m
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
#
# Multifunction device drivers
#
CONFIG_MFD_SM501=m
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
# CONFIG_DAB is not set
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_LTV350QV=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_PROGEAR is not set
#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=m
#
# Display hardware drivers
#
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
CONFIG_FB_SYS_FOPS=m
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
CONFIG_FB_CIRRUS=m
CONFIG_FB_PM2=m
CONFIG_FB_PM2_FIFO_DISCONNECT=y
CONFIG_FB_CYBER2000=m
CONFIG_FB_ARC=m
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not set
CONFIG_FB_NVIDIA_BACKLIGHT=y
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
CONFIG_FB_RIVA_BACKLIGHT=y
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
# CONFIG_FB_LE80578 is not set
CONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not set
CONFIG_FB_INTEL_I2C=y
CONFIG_FB_MATROX=y
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_MATROX_MULTIHEAD=y
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set
CONFIG_FB_ATY=m
CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GENERIC_LCD=y
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y
CONFIG_FB_S3=m
CONFIG_FB_SAVAGE=m
CONFIG_FB_SAVAGE_I2C=y
CONFIG_FB_SAVAGE_ACCEL=y
CONFIG_FB_SIS=m
CONFIG_FB_SIS_300=y
CONFIG_FB_SIS_315=y
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
CONFIG_FB_3DFX=m
CONFIG_FB_3DFX_ACCEL=y
CONFIG_FB_VOODOO1=m
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_SM501 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_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
CONFIG_SOUND=m
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_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=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
# CONFIG_SND_DEBUG_DETECT is not set
# CONFIG_SND_PCM_XRUN_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
# CONFIG_SND_MTS64 is not set
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
# CONFIG_SND_PORTMAN2X4 is not set
CONFIG_SND_SB_COMMON=m
CONFIG_SND_SB16_DSP=m
#
# PCI devices
#
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS5530=m
CONFIG_SND_CS5535AUDIO=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_FM801=m
# CONFIG_SND_FM801_TEA575X_BOOL is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
# CONFIG_SND_HDA_POWER_SAVE is not set
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y
CONFIG_SND_AC97_POWER_SAVE=y
#
# SPI devices
#
#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set
#
# SoC Audio support for SuperH
#
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
CONFIG_USB_SUPPORT=y
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_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_U132_HCD is not set
CONFIG_USB_SL811_HCD=m
CONFIG_USB_R8A66597_HCD=m
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
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=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
CONFIG_USB_MON=y
#
# USB port drivers
#
CONFIG_USB_USS720=m
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP2101=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
CONFIG_USB_BERRY_CHARGE=m
CONFIG_USB_LED=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_PHIDGET=m
CONFIG_USB_PHIDGETKIT=m
CONFIG_USB_PHIDGETMOTORCONTROL=m
CONFIG_USB_PHIDGETSERVO=m
CONFIG_USB_IDMOUSE=m
CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
# CONFIG_USB_TRANCEVIBRATOR is not set
CONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not set
CONFIG_USB_GOTEMP=m
#
# USB DSL modem support
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
#
# LED drivers
#
#
# LED Triggers
#
# CONFIG_LEDS_TRIGGERS is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC=y
#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I82860=m
CONFIG_EDAC_R82600=m
CONFIG_EDAC_I5000=m
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF8563=m
CONFIG_RTC_DRV_PCF8583=m
CONFIG_RTC_DRV_M41T80=m
CONFIG_RTC_DRV_M41T80_WDT=y
#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_STK17TA8=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_M48T86=m
CONFIG_RTC_DRV_M48T59=m
CONFIG_RTC_DRV_V3020=m
#
# on-CPU RTC drivers
#
CONFIG_DMADEVICES=y
#
# DMA Devices
#
CONFIG_INTEL_IOATDMA=m
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
CONFIG_NET_DMA=y
CONFIG_DCA=m
# CONFIG_AUXDISPLAY is not set
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
#
# Userspace I/O
#
# CONFIG_UIO is not set
CONFIG_LGUEST=m
CONFIG_LGUEST_GUEST=y
CONFIG_LGUEST_NET=y
CONFIG_LGUEST_BLOCK=y
#
# File systems
#
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_FS_XIP=y
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=m
CONFIG_JBD_DEBUG=y
CONFIG_FS_MBCACHE=m
# CONFIG_REISER4_FS is not set
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
CONFIG_JFS_STATISTICS=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_MINIX_FS=y
CONFIG_ROMFS_FS=m
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
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=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
CONFIG_NTFS_DEBUG=y
CONFIG_NTFS_RW=y
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=m
#
# Layered filesystems
#
# CONFIG_ECRYPT_FS is not set
# CONFIG_UNION_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
# 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=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
# CONFIG_SUNRPC_BIND34 is not set
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
CONFIG_CIFS_STATS2=y
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_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=y
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
CONFIG_KARMA_PARTITION=y
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
#
# Distributed Lock Manager
#
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set
CONFIG_INSTRUMENTATION=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_KPROBES=y
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_SLUB_DEBUG_ON is not set
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_LOCKDEP is not set
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FRAME_POINTER=y
CONFIG_UNWIND_INFO=y
CONFIG_STACK_UNWIND=y
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_FORCED_INLINING is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_LKDTM is not set
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
# CONFIG_KGDB_ATTACH_WAIT is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
#
# 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=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
# CONFIG_SECURITY_SELINUX is not set
CONFIG_XOR_BLOCKS=m
CONFIG_ASYNC_CORE=m
CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ABLKCIPHER=m
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_BLOWFISH=m
# CONFIG_CRYPTO_TWOFISH is not set
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_586=m
CONFIG_CRYPTO_SERPENT=m
# CONFIG_CRYPTO_AES is not set
CONFIG_CRYPTO_AES_586=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
On Thu, 20 Sep 2007 01:02:06 +0200
Tilman Schmidt <[email protected]> wrote:
> I get several "duplicate file name" messages.
> Hope Greg's the right one to cc on these.
>
> <4>[ 21.211942] Duplicate file names "rtc" detected. [dump_trace+100/498] dump_trace+0x64/0x1f2
> <4>[ 21.216801] [show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
> <4>[ 21.221639] [show_trace+18/20] show_trace+0x12/0x14
> <4>[ 21.226307] [dump_stack+22/24] dump_stack+0x16/0x18
> <4>[ 21.231063] [proc_register+315/332] proc_register+0x13b/0x14c
> <4>[ 21.235814] [create_proc_entry+114/135] create_proc_entry+0x72/0x87
> <4>[ 21.240562] [<faa1d123>] rtc_proc_add_device+0x1d/0x39 [rtc_core]
> <4>[ 21.245304] [<faa1c1f9>] rtc_device_register+0x170/0x207 [rtc_core]
> <4>[ 21.250077] [<faa3c5db>] cmos_do_probe+0x8d/0x1ee [rtc_cmos]
> <4>[ 21.254715] [<faa3c77d>] cmos_pnp_probe+0x41/0x44 [rtc_cmos]
> <4>[ 21.259477] [pnp_device_probe+102/135] pnp_device_probe+0x66/0x87
> <4>[ 21.264206] [driver_probe_device+233/362] driver_probe_device+0xe9/0x16a
> <4>[ 21.268738] [__driver_attach+108/165] __driver_attach+0x6c/0xa5
> <4>[ 21.273387] [bus_for_each_dev+54/91] bus_for_each_dev+0x36/0x5b
> <4>[ 21.277975] [driver_attach+25/27] driver_attach+0x19/0x1b
> <4>[ 21.282501] [bus_add_driver+115/429] bus_add_driver+0x73/0x1ad
> <4>[ 21.286984] [driver_register+103/108] driver_register+0x67/0x6c
> <4>[ 21.291269] [pnp_register_driver+23/25] pnp_register_driver+0x17/0x19
> <4>[ 21.295661] [<faa4000d>] cmos_init+0xd/0xf [rtc_cmos]
> <4>[ 21.300044] [sys_init_module+5544/5953] sys_init_module+0x15a8/0x1741
> <4>[ 21.304406] [sysenter_past_esp+107/181] sysenter_past_esp+0x6b/0xb5
> <4>[ 21.308749] [phys_startup_32+3085673488/3221225472] 0xb7fba410
> <4>[ 21.313108] =======================
Nah, that's an rtc-specific problem.
I think David says that it's actually not a problem, but I didn't
really understand how this can be?
Perhaps I'll need to drop that debugging patch. Which would be a shame,
because it can detect real bugs. Perhaps it needs a strcmp("rtc") to
filter out the (surprising) false positive.
On 09/19/2007 07:24 PM, Andrew Morton wrote:
>
> Nah, that's an rtc-specific problem.
>
> I think David says that it's actually not a problem, but I didn't
> really understand how this can be?
>
> Perhaps I'll need to drop that debugging patch. Which would be a shame,
> because it can detect real bugs. Perhaps it needs a strcmp("rtc") to
> filter out the (surprising) false positive.
AFAICT the rtc problem is caused by misconfiguration: both the new
and old rtc driver have been built and they are both trying to load.
> From: Andrew Morton <[email protected]>
> > <4>[ 21.211942] Duplicate file names "rtc" detected
>
> Nah, that's an rtc-specific problem.
RTC-related ... but it's a procfs bug, since it's procfs which doesn't
even bother to check for duplicate names before it registers files.
And it's that duplication which is the problem. Try the patch in
this message
http://lkml.org/lkml/2007/9/19/18
> I think David says that it's actually not a problem, but I didn't
> really understand how this can be?
I said it's not an RTC problem ... it's a procfs problem.
Trying to fix procfs bugs by changing RTC code is futile. ;)
> From: Chuck Ebbert <[email protected]>
>
> AFAICT the rtc problem is caused by misconfiguration: both the new
> and old rtc driver have been built and they are both trying to load.
That _shouldn't_ be a problem at all; only one of them should be
able to bind to that hardware.
The only problem I see in these messages is that procfs bug.
- Dave
On Wednesday, 19 September 2007 21:21, Thomas Gleixner wrote:
> On Wed, 2007-09-19 at 19:44 +0200, Rafael J. Wysocki wrote:
> > > > It boots with nohpet alone and suspend/hibernation seem to work (still,
> > > > it didn't want to boot right after hibernation, but booted after I'd switched
> > > > it off/on manually).
> > >
> > > Can you please check, whether
> > >
> > > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
> > >
> > > works for you ?
> >
> > Nope. It's a total disaster. :-(
>
> True. I have instrumented it to the point where the broadcast device is
> programmed, but no interrupt comes in for totally unknown reasons.
>
> > Doesn't boot at all, even with "noacpitimer nohpet", and that's with
> > NO_HZ and HIGH_RES_TIMERS unset.
>
> > If you have a bisectable patch series, I can try to identify the responsible
> > patch.
>
> http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patches.tar.bz2
>
> The first patches in the queue are the mainline fixups.
It's x86_64-convert-to-clockevents.patch (ie. after applying it the box stops
to boot).
I haven't had the time to check if any special command line arguments help.
Will check tomorrow.
Greetings,
Rafael
Am 20.09.2007 01:28 schrieb Chuck Ebbert:
> AFAICT the rtc problem is caused by misconfiguration: both the new
> and old rtc driver have been built and they are both trying to load.
Rats. Sorry. I remember now. That's not the first time I am hit by
that one. I had even made a resolution to try and find out the correct
options to set. So what are they? CONFIG_RTC=y and CONFIG_RTC_DRV_CMOS=n?
Guess I should try that combination in my next round of tests.
Anyway, shouldn't there be a warning or at least some clear instructions?
As it is, both the old and the new driver claim in Kconfig that you need
them in order to access your RTC, and none of them even mentions the
other, so it's way too easy to end up enabling both of them.
So are all my other woes a consequence of that one?
Thanks,
T.
--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)
On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1
[patch submitter cc'd]
I had to reverse
convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64.patch (and the
fix on top of it) to get past this error on 32bit powerpc:
make[1]: Entering directory `/usr/src/ctesiphon/linux-2.6.23-rc6-mm1'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CC arch/powerpc/kernel/asm-offsets.s
In file included from include/linux/smp.h:19,
from include/linux/sched.h:67,
from arch/powerpc/kernel/asm-offsets.c:17:
include/asm/smp.h:63: error: expected declaration specifiers or ‘...’ before ‘cpu_sibling_map’
include/asm/smp.h:63: warning: data definition has no type or storage class
include/asm/smp.h:63: warning: type defaults to ‘int’ in declaration of ‘DECLARE_PER_CPU’
make[2]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1
I dunno if this will build or work with these reverted (I'm still
looking at other build failures) but backing these out got the build
moving again.
My .config is attached.
--
Joseph Fannin
[email protected]
On Wed, 19 Sep 2007 16:44:48 -0700
David Brownell <[email protected]> wrote:
> > > <4>[ 21.211942] Duplicate file names "rtc" detected
> >
> > Nah, that's an rtc-specific problem.
>
> RTC-related ... but it's a procfs bug, since it's procfs which doesn't
> even bother to check for duplicate names before it registers files.
So you keep on claiming, but I don't think I've yet seen a description of
the *reason* why two copies of this file are being created, and a
description of why that is an OK thing for the kernel to be doing.
> > From: Chuck Ebbert <[email protected]>
> >
> > AFAICT the rtc problem is caused by misconfiguration: both the new
> > and old rtc driver have been built and they are both trying to load.
>
> That _shouldn't_ be a problem at all; only one of them should be
> able to bind to that hardware.
>
> The only problem I see in these messages is that procfs bug.
>
It's not obvious that this is only a procfs bug. If some part of the
kernel tries to add a procfs file which is already there, that's often a
bug in the caller.
Yes, procfs should have been checking for this. But it is too late now for
us to just fail out of the procfs registration code. Because this can
cause previously buggy-but-works-ok code to now fail completely.
So I think the best we can do now is to retain the runtime warning and to
continue to "succeed" and to identify all the problematic codesites and to
either fix them or to convince ourselves that they really are working as
intended.
On Wed, 19 Sep 2007 19:58:28 -0400
[email protected] (Joseph Fannin) wrote:
> On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1
>
> [patch submitter cc'd]
>
> I had to reverse
> convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64.patch (and the
> fix on top of it) to get past this error on 32bit powerpc:
>
> make[1]: Entering directory `/usr/src/ctesiphon/linux-2.6.23-rc6-mm1'
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> CC arch/powerpc/kernel/asm-offsets.s
> In file included from include/linux/smp.h:19,
> from include/linux/sched.h:67,
> from arch/powerpc/kernel/asm-offsets.c:17:
> include/asm/smp.h:63: error: expected declaration specifiers or ___...___ before ___cpu_sibling_map___
> include/asm/smp.h:63: warning: data definition has no type or storage class
> include/asm/smp.h:63: warning: type defaults to ___int___ in declaration of ___DECLARE_PER_CPU___
> make[2]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1
>
> I dunno if this will build or work with these reverted (I'm still
> looking at other build failures) but backing these out got the build
> moving again.
This, methinks.
--- a/include/asm-powerpc/smp.h~convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64-fix-2
+++ a/include/asm-powerpc/smp.h
@@ -25,8 +25,8 @@
#ifdef CONFIG_PPC64
#include <asm/paca.h>
-#include <asm/percpu.h>
#endif
+#include <asm/percpu.h>
extern int boot_cpuid;
(conditional includes are evil)
On 9/20/07, Andi Kleen <[email protected]> wrote:
> On Wed, Sep 19, 2007 at 12:10:17PM -0700, Andrew Morton wrote:
> > On Wed, 19 Sep 2007 16:59:04 +0200 Jiri Slaby <[email protected]> wrote:
> >
> > > ---------8<---------8<---------8<---------8<---------8<---------8<----
> > > That means
> > > void agp_generic_destroy_page(void *addr)
> > > {
> > > struct page *page;
> > >
> > > if (addr == NULL)
> > > return;
> > >
> > > page = virt_to_page(addr);
> > > (1) unmap_page_from_agp(page);
> > > put_page(page);
> > > (2) free_page((unsigned long)addr);
> > > atomic_dec(&agp_bridge->current_memory_agp);
> > > }
> > >
> > > (1) unmap_page_from_agp -> change_page_attr -> change_page_attr_addr ->
> > > __change_page_attr -> save_page -> list_add(&fpage->lru, &deferred_pages);
> > > (2) free_page -> free_pages -> __free_pages -> free_hot_page ->
> > > free_hot_cold_page -> list_add(&page->lru, &pcp->list);
> >
> > that'll hurt.
> >
> > > any ideas how to fix this?
> >
> > We should hold a single reference on the page for its membership in
> > deferred_pages.
>
> The code is broken anyways. If you free pages without flushing
> them first some other innocent user allocating them will end up
> with possible uncached pages for some time.
>
> Does this simple patch help?
>
> -Andi
>
>
> Flush uncached AGP pages before freeing
In theory this should be handled by the caller, so as to avoid the
overhead of continuous flushing however I can see a potential race
condition here if the pages are put back into the kernel before the
caller flushes the mappings..
Do we need some sort of two step approach here? as flushing after each
page would be a major overhead for dynamic agp stuff in the new memory
manager..
Dave.
>
> Signed-off-by: Andi Kleen <[email protected]>
>
> Index: linux/drivers/char/agp/generic.c
> ===================================================================
> --- linux.orig/drivers/char/agp/generic.c
> +++ linux/drivers/char/agp/generic.c
> @@ -1185,6 +1185,7 @@ void agp_generic_destroy_page(void *addr
>
> page = virt_to_page(addr);
> unmap_page_from_agp(page);
> + flush_agp_mappings();
> put_page(page);
> free_page((unsigned long)addr);
> atomic_dec(&agp_bridge->current_memory_agp);
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
> The code is broken anyways. If you free pages without flushing
> them first some other innocent user allocating them will end up
> with possible uncached pages for some time.
>
> Does this simple patch help?
>
I've attached a more complicated patch that does a 2 stage effort to
unmapping and freeing pages. My kernel no longer hangs with this
patch...
Jiri can you confirm?
I'll look at the other issue separately..
Dave.
On 9/20/07, Jiri Slaby <[email protected]> wrote:
> On 09/19/2007 09:54 PM, Andi Kleen wrote:
> >> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
> >
> > What do you mean with not run?
>
> (II) intel(0): Initializing HW Cursor
> (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
> (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
> at offset 0x5ff000 failed (Invalid argument)
>
> Fatal server error:
> Couldn't bind memory for front buffer
>
> I thought I'd seen a thread about this issue, but I can't find it now. Is it
> known or am I seeing ghosts yet, Andrew?
>
Can you send me a complete Xorg log file?
and lspci -vv?
my 945 works fine with my drm tree on top of Linus with clflush + my
agp fix I just sent out ..
Dave.
On Thu, 20 Sep 2007 11:42:29 +1000 "Dave Airlie" <[email protected]> wrote:
> From 225696d75e7ec0bafbb47b935bd700e3fbeefbde Mon Sep 17 00:00:00 2001
> From: Dave Airlie <[email protected]>
> Date: Thu, 20 Sep 2007 11:30:41 +1000
> Subject: [PATCH] agp: fix race condition between unmapping and freeing pages
This fixes the hang-when-quitting-X on the Vaio.
On Wednesday 19 September 2007, Andrew Morton wrote:
> On Wed, 19 Sep 2007 16:44:48 -0700
> David Brownell <[email protected]> wrote:
>
> > > > <4>[ 21.211942] Duplicate file names "rtc" detected
> > >
> > > Nah, that's an rtc-specific problem.
> >
> > RTC-related ... but it's a procfs bug, since it's procfs which doesn't
> > even bother to check for duplicate names before it registers files.
>
> So you keep on claiming, but I don't think I've yet seen a description of
> the *reason* why two copies of this file are being created,
Yes you did .... most recently in http://lkml.org/lkml/2007/9/19/18 is:
> > The missing step seems to be that proc_register() doesn't bother
> > to check whether there's already an entry for that file. Which
> > is what the appended *UNTESTED* patch does (it compiles though).
Although maybe you meant me to parse that differently ... as in,
not "why is procfs doing this broken thing?" but rather "how is it
that procfs fault (non)handling code ended up getting used?".
That's always seemed self-evident: the RTC framework was creating
it for /dev/rtc0 (presumably, rtc-cmos), while at the same time the
legacy drivers/char/rtc.c was creating it for /dev/rtc.
Workaround by configuring just one, and the problem goes away.
(Although it *ought* to be OK to configure both, with all the normal
resource exclusions kicking in to ensure only one will run.)
> and a
> description of why that is an OK thing for the kernel to be doing.
It's not a wrong thing, at any rate. This is a fairly basic task
in any filesystem: mutual exclusion. Code is allowed to rely on
filesystems acting correctly...
> > > From: Chuck Ebbert <[email protected]>
> > >
> > > AFAICT the rtc problem is caused by misconfiguration: both the new
> > > and old rtc driver have been built and they are both trying to load.
> >
> > That _shouldn't_ be a problem at all; only one of them should be
> > able to bind to that hardware.
> >
> > The only problem I see in these messages is that procfs bug.
> >
>
> It's not obvious that this is only a procfs bug. If some part of the
> kernel tries to add a procfs file which is already there, that's often a
> bug in the caller.
Not really; procfs is supposed to not create it if it's already there!!
Reasonable callers will cope with "it didn't get created", and that's
all they should really need to do.
> Yes, procfs should have been checking for this. But it is too late now for
> us to just fail out of the procfs registration code. Because this can
> cause previously buggy-but-works-ok code to now fail completely.
What do you mean by too late "now" ... just-before-2.6.23?
I'm a bit puzzled why this issue cropped up suddenly, when the
"two RTC drivers" configs have been behaving fine (presumably
failing properly, but at least not generating problem reports)
for some time. One of the procfs changes must have caused this
trouble.
And what would an example be of buggy-but-works code, which would
then be broken if the procfs stopped being buggy?
> So I think the best we can do now is to retain the runtime warning and to
> continue to "succeed" and to identify all the problematic codesites and to
> either fix them or to convince ourselves that they really are working as
> intended.
At a micro level, both the relevant call sites already have code
to tolerate the "couldn't create that file" error, which looked
correct at a quick reading.
- Dave
On Wed, 19 Sep 2007 21:43:14 -0700 David Brownell <[email protected]> wrote:
> On Wednesday 19 September 2007, Andrew Morton wrote:
> > On Wed, 19 Sep 2007 16:44:48 -0700
> > David Brownell <[email protected]> wrote:
> >
> > > > > <4>[ 21.211942] Duplicate file names "rtc" detected
> > > >
> > > > Nah, that's an rtc-specific problem.
> > >
> > > RTC-related ... but it's a procfs bug, since it's procfs which doesn't
> > > even bother to check for duplicate names before it registers files.
> >
> > So you keep on claiming, but I don't think I've yet seen a description of
> > the *reason* why two copies of this file are being created,
>
> Yes you did .... most recently in http://lkml.org/lkml/2007/9/19/18 is:
>
> > > The missing step seems to be that proc_register() doesn't bother
> > > to check whether there's already an entry for that file. Which
> > > is what the appended *UNTESTED* patch does (it compiles though).
>
> Although maybe you meant me to parse that differently ... as in,
> not "why is procfs doing this broken thing?" but rather "how is it
> that procfs fault (non)handling code ended up getting used?".
>
> That's always seemed self-evident: the RTC framework was creating
> it for /dev/rtc0 (presumably, rtc-cmos), while at the same time the
> legacy drivers/char/rtc.c was creating it for /dev/rtc.
>
> Workaround by configuring just one, and the problem goes away.
> (Although it *ought* to be OK to configure both, with all the normal
> resource exclusions kicking in to ensure only one will run.)
Head still spinning.
a) "rtc0" != "rtc" ??
b) The kernel is trying to register two procfs files of the same name!
If that's a configuration error then we have a Kconfiguration bug.
>
> > and a
> > description of why that is an OK thing for the kernel to be doing.
>
> It's not a wrong thing, at any rate. This is a fairly basic task
> in any filesystem: mutual exclusion. Code is allowed to rely on
> filesystems acting correctly...
>
We're relying on procfs behaviour to prevent registration of two rtc
devices? That's a strange means of arbitration. And what happens
when CONFIG_PROC_FS=n?
>
> > > > From: Chuck Ebbert <[email protected]>
> > > >
> > > > AFAICT the rtc problem is caused by misconfiguration: both the new
> > > > and old rtc driver have been built and they are both trying to load.
> > >
> > > That _shouldn't_ be a problem at all; only one of them should be
> > > able to bind to that hardware.
> > >
> > > The only problem I see in these messages is that procfs bug.
> > >
> >
> > It's not obvious that this is only a procfs bug. If some part of the
> > kernel tries to add a procfs file which is already there, that's often a
> > bug in the caller.
>
> Not really; procfs is supposed to not create it if it's already there!!
> Reasonable callers will cope with "it didn't get created", and that's
> all they should really need to do.
>
>
> > Yes, procfs should have been checking for this. But it is too late now for
> > us to just fail out of the procfs registration code. Because this can
> > cause previously buggy-but-works-ok code to now fail completely.
>
> What do you mean by too late "now" ... just-before-2.6.23?
No.
What I mean is that we cannot change procfs as you propose until we have
located and fixed all places in the kernel which can cause duplicated
procfs names. (Good luck with that).
Because we've had this happening before, and *the driver kept working*
(apart from, presumably, some of their procfs features which, presumably,
nobody used much).
With the change which you propose, these drivers will probably stop
working, because they will newly find their procfs registration failed.
> I'm a bit puzzled why this issue cropped up suddenly, when the
> "two RTC drivers" configs have been behaving fine (presumably
> failing properly, but at least not generating problem reports)
> for some time. One of the procfs changes must have caused this
> trouble.
I'm not sure that anything _has_ changed. It's just that a few people have
suddenly noticed duplicated rtc entris in /proc. Perhaps theye were there
for some time.
> And what would an example be of buggy-but-works code, which would
> then be broken if the procfs stopped being buggy?
>
A driver which checks the return value from procfs registration and which
then errors out (as it should) if that registration fails.
>
> > So I think the best we can do now is to retain the runtime warning and to
> > continue to "succeed" and to identify all the problematic codesites and to
> > either fix them or to convince ourselves that they really are working as
> > intended.
>
> At a micro level, both the relevant call sites already have code
> to tolerate the "couldn't create that file" error, which looked
> correct at a quick reading.
>
> - Dave
On Thu, 2007-09-20 at 02:06 +0200, Rafael J. Wysocki wrote:
> On Wednesday, 19 September 2007 21:21, Thomas Gleixner wrote:
> > On Wed, 2007-09-19 at 19:44 +0200, Rafael J. Wysocki wrote:
> > > > > It boots with nohpet alone and suspend/hibernation seem to work (still,
> > > > > it didn't want to boot right after hibernation, but booted after I'd switched
> > > > > it off/on manually).
> > > >
> > > > Can you please check, whether
> > > >
> > > > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
> > > >
> > > > works for you ?
> > >
> > > Nope. It's a total disaster. :-(
> >
> > True. I have instrumented it to the point where the broadcast device is
> > programmed, but no interrupt comes in for totally unknown reasons.
> >
> > > Doesn't boot at all, even with "noacpitimer nohpet", and that's with
> > > NO_HZ and HIGH_RES_TIMERS unset.
> >
> > > If you have a bisectable patch series, I can try to identify the responsible
> > > patch.
> >
> > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patches.tar.bz2
> >
> > The first patches in the queue are the mainline fixups.
>
> It's x86_64-convert-to-clockevents.patch (ie. after applying it the box stops
> to boot).
>
> I haven't had the time to check if any special command line arguments help.
> Will check tomorrow.
Can you please disable the patches, which I sent Linus wards:
timekeeping-access-rtc-outside-xtime-lock.patch
xtime-supsend-resume-fixup.patch
acpi-reevaluate-c-p-t-states.patch
clockevents-enforce-broadcast-on-resume.patch
clockevents-do-not-shutdown-broadcast-device-in-oneshot-mode.patch
clockevents-prevent-stale-tick-update-on-offline-cpu.patch
Without those patches you get the state of rc4-mm1. It would be
interesting to know which one interferes with the acpi stuff.
tglx
On 09/20/2007 04:24 AM, Andrew Morton wrote:
> On Thu, 20 Sep 2007 11:42:29 +1000 "Dave Airlie" <[email protected]> wrote:
>
>> From 225696d75e7ec0bafbb47b935bd700e3fbeefbde Mon Sep 17 00:00:00 2001
>> From: Dave Airlie <[email protected]>
>> Date: Thu, 20 Sep 2007 11:30:41 +1000
>> Subject: [PATCH] agp: fix race condition between unmapping and freeing pages
>
> This fixes the hang-when-quitting-X on the Vaio.
Checked.
On 09/20/2007 03:51 AM, Dave Airlie wrote:
> On 9/20/07, Jiri Slaby <[email protected]> wrote:
>> On 09/19/2007 09:54 PM, Andi Kleen wrote:
>>>> Yeah. (But X doesn't run -- this is maybe the known issue in this release).
>>> What do you mean with not run?
>> (II) intel(0): Initializing HW Cursor
>> (II) intel(0): xf86BindGARTMemory: bind key 0 at 0x005ff000 (pgoffset 1535)
>> (WW) intel(0): xf86BindGARTMemory: binding of gart memory with key 0
>> at offset 0x5ff000 failed (Invalid argument)
>>
>> Fatal server error:
>> Couldn't bind memory for front buffer
>>
>> I thought I'd seen a thread about this issue, but I can't find it now. Is it
>> known or am I seeing ghosts yet, Andrew?
>>
>
> Can you send me a complete Xorg log file?
Maybe you are rather interested in these dmesg lines:
Linux agpgart interface v0.102
agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
agpgart: Detected an Intel G33 Chipset.
agpgart: Detected 8192K stolen memory.
agpgart: AGP aperture is 256M @ 0xd0000000
[drm] Initialized drm 1.1.0 20060810
ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
[drm] Initialized i915 1.6.0 20060119 on minor 0
...
set status page addr 0x00033000
agpgart: pg_start == 0x000005ff,intel_private.gtt_entries == 0x00000800
agpgart: Trying to insert into local/stolen memory
So the problem is, that X passes too low start.
The X log:
http://www.fi.muni.cz/~xslaby/sklad/Xorg.0.log.old
> and lspci -vv?
# lspci -vvx
00:00.0 Host bridge: Intel Corporation DRAM Controller (rev 02)
Subsystem: Intel Corporation DRAM Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ >SERR- <PERR-
Latency: 0
Capabilities: [e0] Vendor Specific Information
00: 86 80 c0 29 06 00 90 20 02 00 00 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 c0 29
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
00:02.0 VGA compatible controller: Intel Corporation Integrated Graphics
Controller (rev 02) (prog-if 00 [VGA])
Subsystem: Intel Corporation Integrated Graphics Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 0: Memory at ffa80000 (32-bit, non-prefetchable) [size=512K]
Region 1: I/O ports at ec00 [size=8]
Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Region 3: Memory at ff900000 (32-bit, non-prefetchable) [size=1M]
Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0
Enable-
Address: 00000000 Data: 0000
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: 86 80 c2 29 07 00 90 00 02 00 00 03 00 00 00 00
10: 00 00 a8 ff 01 ec 00 00 08 00 00 d0 00 00 90 ff
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 c2 29
30: 00 00 00 00 90 00 00 00 00 00 00 00 0a 01 00 00
00:03.0 Communication controller: Intel Corporation MEI Controller (rev 02)
Subsystem: Intel Corporation MEI Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 10
Region 0: Memory at ffa7bc00 (64-bit, non-prefetchable) [size=16]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
Address: 0000000000000000 Data: 0000
00: 86 80 c4 29 06 00 10 00 02 00 80 07 00 00 80 00
10: 04 bc a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 c4 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00
00:03.2 IDE interface: Intel Corporation PT IDER Controller (rev 02) (prog-if 85
[Master SecO PriO])
Subsystem: Intel Corporation PT IDER Controller
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 12
Region 0: I/O ports at e880 [size=8]
Region 1: I/O ports at e800 [size=4]
Region 2: I/O ports at e480 [size=8]
Region 3: I/O ports at e400 [size=4]
Region 4: I/O ports at e080 [size=16]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
Address: 0000000000000000 Data: 0000
00: 86 80 c6 29 05 00 b0 00 02 85 01 01 00 00 00 00
10: 81 e8 00 00 01 e8 00 00 81 e4 00 00 01 e4 00 00
20: 81 e0 00 00 00 00 00 00 00 00 00 00 86 80 c6 29
30: 00 00 00 00 c8 00 00 00 00 00 00 00 0c 03 00 00
00:03.3 Serial controller: Intel Corporation Serial KT Controller (rev 02)
(prog-if 02 [16550])
Subsystem: Intel Corporation Serial KT Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at e000 [size=8]
Region 1: Memory at ffa7a000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [c8] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
Address: 0000000000000000 Data: 0000
00: 86 80 c7 29 07 00 b0 00 02 02 00 07 00 00 00 00
10: 01 e0 00 00 00 a0 a7 ff 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 c7 29
30: 00 00 00 00 c8 00 00 00 00 00 00 00 05 02 00 00
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network
Connection (rev 02)
Subsystem: Intel Corporation Unknown device 0000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 318
Region 0: Memory at ffa40000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at ffa79000 (32-bit, non-prefetchable) [size=4K]
Region 2: I/O ports at dc00 [size=32]
Capabilities: [c8] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [d0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable+
Address: 00000000fee0300c Data: 4199
Capabilities: [e0] Vendor Specific Information
00: 86 80 bd 10 07 04 10 00 02 00 00 02 00 00 00 00
10: 00 00 a4 ff 00 90 a7 ff 01 dc 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
30: 00 00 00 00 c8 00 00 00 00 00 00 00 0f 01 00 00
00:1a.0 USB Controller: Intel Corporation USB UHCI Controller #4 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #4
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 4: I/O ports at d880 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 37 29 05 00 90 02 02 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 81 d8 00 00 00 00 00 00 00 00 00 00 86 80 37 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00
00:1a.1 USB Controller: Intel Corporation USB UHCI Controller #5 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #5
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 21
Region 4: I/O ports at d800 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 38 29 05 00 90 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d8 00 00 00 00 00 00 00 00 00 00 86 80 38 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0e 02 00 00
00:1a.2 USB Controller: Intel Corporation USB UHCI Controller #6 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #6
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 18
Region 4: I/O ports at d480 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 39 29 05 00 90 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 81 d4 00 00 00 00 00 00 00 00 00 00 86 80 39 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0c 03 00 00
00:1a.7 USB Controller: Intel Corporation USB2 EHCI Controller #2 (rev 02)
(prog-if 20 [EHCI])
Subsystem: Intel Corporation USB2 EHCI Controller #2
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 19
Region 0: Memory at ffa7b400 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port
Capabilities: [98] Vendor Specific Information
00: 86 80 3c 29 06 00 90 02 02 20 03 0c 00 00 00 00
10: 00 b4 a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 3c 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 03 04 00 00
00:1b.0 Audio device: Intel Corporation HD Audio Controller (rev 02)
Subsystem: Intel Corporation HD Audio Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 22
Region 0: Memory at ffa70000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express Unknown type IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <64ns, L1 <1us
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed unknown, Width x0, ASPM unknown, Port 0
Link: Latency L0s <64ns, L1 <1us
Link: ASPM Disabled CommClk- ExtSynch-
Link: Speed unknown, Width x0
Capabilities: [100] Virtual Channel
Capabilities: [130] Unknown (5)
00: 86 80 3e 29 06 00 10 00 02 00 03 04 08 00 00 00
10: 04 00 a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 3e 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 07 01 00 00
00:1d.0 USB Controller: Intel Corporation USB UHCI Controller #1 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #1
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 23
Region 4: I/O ports at d400 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 34 29 05 00 90 02 02 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d4 00 00 00 00 00 00 00 00 00 00 86 80 34 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00
00:1d.1 USB Controller: Intel Corporation USB UHCI Controller #2 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #2
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 19
Region 4: I/O ports at d080 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 35 29 05 00 90 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 81 d0 00 00 00 00 00 00 00 00 00 00 86 80 35 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 03 02 00 00
00:1d.2 USB Controller: Intel Corporation USB UHCI Controller #3 (rev 02)
(prog-if 00 [UHCI])
Subsystem: Intel Corporation USB UHCI Controller #3
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 16
Region 4: I/O ports at d000 [size=32]
Capabilities: [50] Vendor Specific Information
00: 86 80 36 29 05 00 90 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d0 00 00 00 00 00 00 00 00 00 00 86 80 36 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 04 00 00
00:1d.7 USB Controller: Intel Corporation USB2 EHCI Controller #1 (rev 02)
(prog-if 20 [EHCI])
Subsystem: Intel Corporation USB2 EHCI Controller #1
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 23
Region 0: Memory at ffa7b000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Debug port
Capabilities: [98] Vendor Specific Information
00: 86 80 3a 29 06 00 90 02 02 20 03 0c 00 00 00 00
10: 00 b0 a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 3a 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) (prog-if 01
[Subtractive decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
Memory behind bridge: ff600000-ff6fffff
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
Capabilities: [50] Subsystem: Intel Corporation 82801 PCI Bridge
00: 86 80 4e 24 06 01 10 00 92 01 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 01 01 20 f0 00 80 22
20: 60 ff 60 ff f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 02 00
00:1f.0 ISA bridge: Intel Corporation LPC Interface Controller (rev 02)
Subsystem: Intel Corporation LPC Interface Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Capabilities: [e0] Vendor Specific Information
00: 86 80 10 29 07 00 10 02 02 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 10 29
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
00:1f.2 SATA controller: Intel Corporation 6 port SATA AHCI Controller (rev 02)
(prog-if 01 [AHCI 1.0])
Subsystem: Intel Corporation 6 port SATA AHCI Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 319
Region 0: I/O ports at cc00 [size=8]
Region 1: I/O ports at c880 [size=4]
Region 2: I/O ports at c800 [size=8]
Region 3: I/O ports at c480 [size=4]
Region 4: I/O ports at c400 [size=32]
Region 5: Memory at ffa78800 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit- Queue=0/4
Enable+
Address: fee0300c Data: 4169
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a8] #12 [0010]
Capabilities: [b0] Vendor Specific Information
00: 86 80 22 29 07 04 b0 02 02 01 06 01 00 00 00 00
10: 01 cc 00 00 81 c8 00 00 01 c8 00 00 81 c4 00 00
20: 01 c4 00 00 00 88 a7 ff 00 00 00 00 86 80 22 29
30: 00 00 00 00 80 00 00 00 00 00 00 00 03 02 00 00
00:1f.3 SMBus: Intel Corporation SMBus Controller (rev 02)
Subsystem: Intel Corporation SMBus Controller
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin C routed to IRQ 18
Region 0: Memory at ffa7b800 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 0400 [size=32]
00: 86 80 30 29 03 00 80 02 02 00 05 0c 00 00 00 00
10: 04 b8 a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 04 00 00 00 00 00 00 00 00 00 00 86 80 30 29
30: 00 00 00 00 00 00 00 00 00 00 00 00 03 03 00 00
00:1f.5 IDE interface: Intel Corporation 2 port SATA IDE Controller (rev 02)
(prog-if 85 [Master SecO PriO])
Subsystem: Intel Corporation 2 port SATA IDE Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 19
Region 0: I/O ports at c000 [size=8]
Region 1: I/O ports at bc00 [size=4]
Region 2: I/O ports at b880 [size=8]
Region 3: I/O ports at b800 [size=4]
Region 4: I/O ports at b480 [size=16]
Region 5: I/O ports at b400 [size=16]
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] Vendor Specific Information
00: 86 80 26 29 07 00 b0 02 02 85 01 01 00 00 00 00
10: 01 c0 00 00 01 bc 00 00 81 b8 00 00 01 b8 00 00
20: 81 b4 00 00 01 b4 00 00 00 00 00 00 86 80 26 29
30: 00 00 00 00 70 00 00 00 00 00 00 00 03 02 00 00
00:1f.6 Signal processing controller: Intel Corporation Thermal Subsystem (rev 02)
Subsystem: Intel Corporation Thermal Subsystem
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Interrupt: pin C routed to IRQ 12
Region 0: Memory at ffa6f000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00: 86 80 32 29 02 00 10 00 02 00 80 11 00 00 00 00
10: 04 f0 a6 ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 32 29
30: 00 00 00 00 50 00 00 00 00 00 00 00 0c 03 00 00
01:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC
(rev 01)
Subsystem: Wistron NeWeb Corp. CM9 Wireless a/b/g MiniPCI Adapter
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (2500ns min, 7000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 14
Region 0: Memory at ff6f0000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-
00: 8c 16 13 00 16 00 90 02 01 00 00 02 08 40 00 00
10: 00 00 6f ff 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 01 50 00 00 5f 18 12 10
30: 00 00 00 00 44 00 00 00 00 00 00 00 0e 01 0a 1c
> my 945 works fine with my drm tree on top of Linus with clflush + my
> agp fix I just sent out ..
Should I try?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
> >> Fatal server error:
> >> Couldn't bind memory for front buffer
> >>
> >> I thought I'd seen a thread about this issue, but I can't find it now. Is it
> >> known or am I seeing ghosts yet, Andrew?
> >>
> >
> > Can you send me a complete Xorg log file?
>
> Maybe you are rather interested in these dmesg lines:
> Linux agpgart interface v0.102
> agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
> on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
> agpgart: Detected an Intel G33 Chipset.
> agpgart: Detected 8192K stolen memory.
> agpgart: AGP aperture is 256M @ 0xd0000000
> [drm] Initialized drm 1.1.0 20060810
> ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
> [drm] Initialized i915 1.6.0 20060119 on minor 0
> ...
> set status page addr 0x00033000
> agpgart: pg_start == 0x000005ff,intel_private.gtt_entries == 0x00000800
> agpgart: Trying to insert into local/stolen memory
>
> So the problem is, that X passes too low start.
>
> The X log:
> http://www.fi.muni.cz/~xslaby/sklad/Xorg.0.log.old
>
I've cc'd Zhenyu who might be able to shed some light on this? can you
try 2.6.23-rc7 as maybe the G33 support still needs some work.. or
maybe I'm missing a patch in the drm..
Dave.
On Wed, 19 Sep 2007 20:02:05 +0200,
Cornelia Huck <[email protected]> wrote:
> > kobject drivers: cleaning up
> > kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
>
> <Unrelated side note: We should probably save the kobject's name for
> printing this debug message, it looks a bit odd :)>
kobject: Temporarily save k_name on cleanup for debug message.
Signed-off-by: Cornelia Huck <[email protected]>
---
lib/kobject.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
--- linux-2.6.orig/lib/kobject.c
+++ linux-2.6/lib/kobject.c
@@ -498,9 +498,9 @@ void kobject_cleanup(struct kobject * ko
struct kobj_type * t = get_ktype(kobj);
struct kset * s = kobj->kset;
struct kobject * parent = kobj->parent;
+ const char *k_name = kobj->k_name;
pr_debug("kobject %s: cleaning up\n",kobject_name(kobj));
- kfree(kobj->k_name);
kobj->k_name = NULL;
if (t && t->release)
t->release(kobj);
@@ -508,8 +508,8 @@ void kobject_cleanup(struct kobject * ko
pr_debug("kobject '%s' does not have a release() function, "
"if this is not a directory kobject, it is broken "
"and must be fixed.\n",
- kobject_name(kobj));
-
+ k_name);
+ kfree(k_name);
if (s)
kset_put(s);
kobject_put(parent);
On Wed, 19 Sep 2007 20:02:05 +0200,
Cornelia Huck <[email protected]> wrote:
> > kobject drivers: cleaning up
> > kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
>
> <Unrelated side note: We should probably save the kobject's name for
> printing this debug message, it looks a bit odd :)>
kobject: Temporarily save k_name on cleanup for debug message.
Signed-off-by: Cornelia Huck <[email protected]>
---
lib/kobject.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
--- linux-2.6.orig/lib/kobject.c
+++ linux-2.6/lib/kobject.c
@@ -498,9 +498,9 @@ void kobject_cleanup(struct kobject * ko
struct kobj_type * t = get_ktype(kobj);
struct kset * s = kobj->kset;
struct kobject * parent = kobj->parent;
+ const char *k_name = kobj->k_name;
pr_debug("kobject %s: cleaning up\n",kobject_name(kobj));
- kfree(kobj->k_name);
kobj->k_name = NULL;
if (t && t->release)
t->release(kobj);
@@ -508,8 +508,8 @@ void kobject_cleanup(struct kobject * ko
pr_debug("kobject '%s' does not have a release() function, "
"if this is not a directory kobject, it is broken "
"and must be fixed.\n",
- kobject_name(kobj));
-
+ k_name);
+ kfree(k_name);
if (s)
kset_put(s);
kobject_put(parent);
On 9/20/07, Andrew Morton <[email protected]> wrote:
> On Wed, 19 Sep 2007 21:43:14 -0700 David Brownell <[email protected]> wrote:
>
> > On Wednesday 19 September 2007, Andrew Morton wrote:
> > > On Wed, 19 Sep 2007 16:44:48 -0700
> > > David Brownell <[email protected]> wrote:
> > >
> > > > > > <4>[ 21.211942] Duplicate file names "rtc" detected
> > > > >
> > > > > Nah, that's an rtc-specific problem.
> > > >
> > > > RTC-related ... but it's a procfs bug, since it's procfs which doesn't
> > > > even bother to check for duplicate names before it registers files.
> > >
> > > So you keep on claiming, but I don't think I've yet seen a description of
> > > the *reason* why two copies of this file are being created,
> >
> > Yes you did .... most recently in http://lkml.org/lkml/2007/9/19/18 is:
> >
> > > > The missing step seems to be that proc_register() doesn't bother
> > > > to check whether there's already an entry for that file. Which
> > > > is what the appended *UNTESTED* patch does (it compiles though).
> >
> > Although maybe you meant me to parse that differently ... as in,
> > not "why is procfs doing this broken thing?" but rather "how is it
> > that procfs fault (non)handling code ended up getting used?".
> >
> > That's always seemed self-evident: the RTC framework was creating
> > it for /dev/rtc0 (presumably, rtc-cmos), while at the same time the
> > legacy drivers/char/rtc.c was creating it for /dev/rtc.
> >
> > Workaround by configuring just one, and the problem goes away.
> > (Although it *ought* to be OK to configure both, with all the normal
> > resource exclusions kicking in to ensure only one will run.)
>
> Head still spinning.
>
> a) "rtc0" != "rtc" ??
>
> b) The kernel is trying to register two procfs files of the same name!
> If that's a configuration error then we have a Kconfiguration bug.
>
> >
> > > and a
> > > description of why that is an OK thing for the kernel to be doing.
> >
> > It's not a wrong thing, at any rate. This is a fairly basic task
> > in any filesystem: mutual exclusion. Code is allowed to rely on
> > filesystems acting correctly...
> >
>
> We're relying on procfs behaviour to prevent registration of two rtc
> devices? That's a strange means of arbitration. And what happens
> when CONFIG_PROC_FS=n?
>
> >
> > > > > From: Chuck Ebbert <[email protected]>
> > > > >
> > > > > AFAICT the rtc problem is caused by misconfiguration: both the new
> > > > > and old rtc driver have been built and they are both trying to load.
> > > >
> > > > That _shouldn't_ be a problem at all; only one of them should be
> > > > able to bind to that hardware.
> > > >
> > > > The only problem I see in these messages is that procfs bug.
> > > >
> > >
> > > It's not obvious that this is only a procfs bug. If some part of the
> > > kernel tries to add a procfs file which is already there, that's often a
> > > bug in the caller.
> >
> > Not really; procfs is supposed to not create it if it's already there!!
> > Reasonable callers will cope with "it didn't get created", and that's
> > all they should really need to do.
> >
> >
> > > Yes, procfs should have been checking for this. But it is too late now for
> > > us to just fail out of the procfs registration code. Because this can
> > > cause previously buggy-but-works-ok code to now fail completely.
> >
> > What do you mean by too late "now" ... just-before-2.6.23?
>
> No.
>
> What I mean is that we cannot change procfs as you propose until we have
> located and fixed all places in the kernel which can cause duplicated
> procfs names. (Good luck with that).
>
> Because we've had this happening before, and *the driver kept working*
> (apart from, presumably, some of their procfs features which, presumably,
> nobody used much).
>
> With the change which you propose, these drivers will probably stop
> working, because they will newly find their procfs registration failed.
>
> > I'm a bit puzzled why this issue cropped up suddenly, when the
> > "two RTC drivers" configs have been behaving fine (presumably
> > failing properly, but at least not generating problem reports)
> > for some time. One of the procfs changes must have caused this
> > trouble.
>
> I'm not sure that anything _has_ changed. It's just that a few people have
> suddenly noticed duplicated rtc entris in /proc. Perhaps theye were there
> for some time.
>
> > And what would an example be of buggy-but-works code, which would
> > then be broken if the procfs stopped being buggy?
> >
>
> A driver which checks the return value from procfs registration and which
> then errors out (as it should) if that registration fails.
Isn't that all caused by the rtc driver registering itself without
checking if it is able to grab the device? Wouldn't moving the
request_resource() before doing any device registration do the magic?
Kay
Hello !
Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
make-access-to-tasks-nsproxy-lighter.patch breaks unshare()
when called from unshare(), switch_task_namespaces() takes an
extra refcount on the nsproxy, leading to a memory leak of
nsproxy objects.
Now the problem is that we still need that extra ref when called
from daemonize(). Here's an ugly fix for it.
Signed-off-by: Cedric Le Goater <[email protected]>
---
include/linux/nsproxy.h | 5 +++++
kernel/exit.c | 2 ++
kernel/nsproxy.c | 7 -------
3 files changed, 7 insertions(+), 7 deletions(-)
Index: 2.6.23-rc6-mm1/kernel/nsproxy.c
===================================================================
--- 2.6.23-rc6-mm1.orig/kernel/nsproxy.c
+++ 2.6.23-rc6-mm1/kernel/nsproxy.c
@@ -25,11 +25,6 @@ static struct kmem_cache *nsproxy_cachep
struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);
-static inline void get_nsproxy(struct nsproxy *ns)
-{
- atomic_inc(&ns->count);
-}
-
/*
* creates a copy of "orig" with refcount 1.
*/
@@ -208,8 +203,6 @@ void switch_task_namespaces(struct task_
if (ns == new)
return;
- if (new)
- get_nsproxy(new);
rcu_assign_pointer(p->nsproxy, new);
if (ns && atomic_dec_and_test(&ns->count)) {
Index: 2.6.23-rc6-mm1/kernel/exit.c
===================================================================
--- 2.6.23-rc6-mm1.orig/kernel/exit.c
+++ 2.6.23-rc6-mm1/kernel/exit.c
@@ -408,6 +408,8 @@ void daemonize(const char *name, ...)
current->fs = fs;
atomic_inc(&fs->count);
+ if (current->nsproxy != init_task.nsproxy)
+ get_nsproxy(init_task.nsproxy);
switch_task_namespaces(current, init_task.nsproxy);
exit_files(current);
Index: 2.6.23-rc6-mm1/include/linux/nsproxy.h
===================================================================
--- 2.6.23-rc6-mm1.orig/include/linux/nsproxy.h
+++ 2.6.23-rc6-mm1/include/linux/nsproxy.h
@@ -77,6 +77,11 @@ static inline void put_nsproxy(struct ns
}
}
+static inline void get_nsproxy(struct nsproxy *ns)
+{
+ atomic_inc(&ns->count);
+}
+
#ifdef CONFIG_CONTAINER_NS
int ns_container_clone(struct task_struct *tsk);
#else
On Wed, 19 Sep 2007 23:11:21 -0700
Andrew Morton <[email protected]> wrote:
> b) The kernel is trying to register two procfs files of the same name!
> If that's a configuration error then we have a Kconfiguration bug.
I guess the best solution would be to have Kconfig avoid that. I'll try
to code something as soon as I get back home.
--
Best regards,
Alessandro Zummo,
Tower Technologies - Torino, Italy
http://www.towertech.it
Looks sane :)
[snip]
> Index: 2.6.23-rc6-mm1/kernel/exit.c
> ===================================================================
> --- 2.6.23-rc6-mm1.orig/kernel/exit.c
> +++ 2.6.23-rc6-mm1/kernel/exit.c
> @@ -408,6 +408,8 @@ void daemonize(const char *name, ...)
> current->fs = fs;
> atomic_inc(&fs->count);
>
> + if (current->nsproxy != init_task.nsproxy)
> + get_nsproxy(init_task.nsproxy);
> switch_task_namespaces(current, init_task.nsproxy);
shouldn't we make the switch under this if() as well?
Pavel Emelyanov wrote:
> Looks sane :)
>
> [snip]
>
>> Index: 2.6.23-rc6-mm1/kernel/exit.c
>> ===================================================================
>> --- 2.6.23-rc6-mm1.orig/kernel/exit.c
>> +++ 2.6.23-rc6-mm1/kernel/exit.c
>> @@ -408,6 +408,8 @@ void daemonize(const char *name, ...)
>> current->fs = fs;
>> atomic_inc(&fs->count);
>>
>> + if (current->nsproxy != init_task.nsproxy)
>> + get_nsproxy(init_task.nsproxy);
>> switch_task_namespaces(current, init_task.nsproxy);
>
> shouldn't we make the switch under this if() as well?
right. we can probably simplify switch_task_namespaces() and remove :
if (ns == new)
return;
I'll cook a better one today.
Thanks !
C.
On 2007.09.20 17:33:45 +0000, Dave Airlie wrote:
> > Maybe you are rather interested in these dmesg lines:
> > Linux agpgart interface v0.102
> > agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
> > on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
> > agpgart: Detected an Intel G33 Chipset.
> > agpgart: Detected 8192K stolen memory.
> > agpgart: AGP aperture is 256M @ 0xd0000000
> > [drm] Initialized drm 1.1.0 20060810
> > ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
> > [drm] Initialized i915 1.6.0 20060119 on minor 0
> > ...
> > set status page addr 0x00033000
> > agpgart: pg_start == 0x000005ff,intel_private.gtt_entries == 0x00000800
> > agpgart: Trying to insert into local/stolen memory
> >
> > So the problem is, that X passes too low start.
> >
> > The X log:
> > http://www.fi.muni.cz/~xslaby/sklad/Xorg.0.log.old
Could you try current xf86-video-intel driver? just do
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel
My G33 was just verified broken today... so I'll try to reproduce it on
another one tomorrow.
>
> I've cc'd Zhenyu who might be able to shed some light on this? can you
> try 2.6.23-rc7 as maybe the G33 support still needs some work.. or
> maybe I'm missing a patch in the drm..
>
yep, should try 2.6.23-rc7 first, and it seems not drm relate.
On Wed, 19 Sep 2007, Peter Zijlstra wrote:
> On Wed, 19 Sep 2007 21:03:19 +0100 (BST) Hugh Dickins
> <[email protected]> wrote:
>
> > On Wed, 19 Sep 2007, Andy Whitcroft wrote:
> > > Seems I have a case of a largish i386 NUMA (NUMA-Q) which has a mkfs
> > > stuck in a 'D' wait:
> > >
> > > =======================
> > > mkfs.ext2 D c10220f4 0 6233 6222
> > > [<c12194da>] io_schedule_timeout+0x1e/0x28
> > > [<c10454b4>] congestion_wait+0x62/0x7a
> > > [<c10402af>] get_dirty_limits+0x16a/0x172
> > > [<c104040b>] balance_dirty_pages+0x154/0x1be
> > > [<c103bda3>] generic_perform_write+0x168/0x18a
> > > [<c103be38>] generic_file_buffered_write+0x73/0x107
> > > [<c103c346>] __generic_file_aio_write_nolock+0x47a/0x4a5
> > > [<c103c3b9>] generic_file_aio_write_nolock+0x48/0x9b
> > > [<c105d2d6>] do_sync_write+0xbf/0xfc
> > > [<c105d3a0>] vfs_write+0x8d/0x108
> > > [<c105d4c3>] sys_write+0x41/0x67
> > > [<c100260a>] syscall_call+0x7/0xb
> > > =======================
> >
> > [edited out some bogus lines from stale stack]
> >
> > > This machine and others have run numerous test runs on this kernel and
> > > this is the first time I've see a hang like this.
> >
> > I've been seeing something like that on 4-way PPC64: in my case I've
> > shells hanging in D state trying to append to kernel build log on ext3
> > (the builds themselves going on elsewhere, in tmpfs): one of the shells
> > holding i_mutex and stuck doing congestion_waits from balance_dirty_pages.
> >
> > > I wonder if this is the ultimate cause of the couple of mainline hangs
> > > which were seen, but not diagnosed.
> >
> > My *guess* is that this is peculiar to 2.6.23-rc6-mm1, and from Peter's
> > mm-per-device-dirty-threshold.patch. printks showed bdi_nr_reclaimable
> > 0, bdi_nr_writeback 24, bdi_thresh 1 in balance_dirty_pages (though I've
> > not done enough to check if those really correlate with the hangs),
> > and I'm wondering if the bdi_stat_sum business is needed on the
> > !nr_reclaimable path.
>
> FWIW my tired brain seems to think it the !nr_reclaimable path needs it
> just the same. So this change seems to make sense for now :-)
Thanks.
> > So I'm running now with the patch below, good so far, but can't judge
> > until tomorrow whether it has actually addressed the problem seen.
Last night's run went well: that patch does indeed seem to have fixed it.
Looking at the timings (some variance but _very_ much less than the night
before), there does appear to be some other occasional slight slowdown -
but I've no reason to suspect your patch for it, nor to suppose it's
something new: it may just be an artifact of my heavy swap thrashing.
[PATCH mm] mm per-device dirty threshold fix
Fix occasional hang when a task couldn't get out of balance_dirty_pages:
mm-per-device-dirty-threshold.patch needs to reevaluate bdi_nr_writeback
across all cpus when bdi_thresh is low, even in the case when there was
no bdi_nr_reclaimable.
Signed-off-by: Hugh Dickins <[email protected]>
---
mm/page-writeback.c | 53 +++++++++++++++++++-----------------------
1 file changed, 24 insertions(+), 29 deletions(-)
--- 2.6.23-rc6-mm1/mm/page-writeback.c 2007-09-18 12:28:25.000000000 +0100
+++ linux/mm/page-writeback.c 2007-09-19 20:00:46.000000000 +0100
@@ -379,7 +379,7 @@ static void balance_dirty_pages(struct a
bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
- break;
+ break;
if (!bdi->dirty_exceeded)
bdi->dirty_exceeded = 1;
@@ -392,39 +392,34 @@ static void balance_dirty_pages(struct a
*/
if (bdi_nr_reclaimable) {
writeback_inodes(&wbc);
-
+ pages_written += write_chunk - wbc.nr_to_write;
get_dirty_limits(&background_thresh, &dirty_thresh,
&bdi_thresh, bdi);
+ }
- /*
- * In order to avoid the stacked BDI deadlock we need
- * to ensure we accurately count the 'dirty' pages when
- * the threshold is low.
- *
- * Otherwise it would be possible to get thresh+n pages
- * reported dirty, even though there are thresh-m pages
- * actually dirty; with m+n sitting in the percpu
- * deltas.
- */
- if (bdi_thresh < 2*bdi_stat_error(bdi)) {
- bdi_nr_reclaimable =
- bdi_stat_sum(bdi, BDI_RECLAIMABLE);
- bdi_nr_writeback =
- bdi_stat_sum(bdi, BDI_WRITEBACK);
- } else {
- bdi_nr_reclaimable =
- bdi_stat(bdi, BDI_RECLAIMABLE);
- bdi_nr_writeback =
- bdi_stat(bdi, BDI_WRITEBACK);
- }
+ /*
+ * In order to avoid the stacked BDI deadlock we need
+ * to ensure we accurately count the 'dirty' pages when
+ * the threshold is low.
+ *
+ * Otherwise it would be possible to get thresh+n pages
+ * reported dirty, even though there are thresh-m pages
+ * actually dirty; with m+n sitting in the percpu
+ * deltas.
+ */
+ if (bdi_thresh < 2*bdi_stat_error(bdi)) {
+ bdi_nr_reclaimable = bdi_stat_sum(bdi, BDI_RECLAIMABLE);
+ bdi_nr_writeback = bdi_stat_sum(bdi, BDI_WRITEBACK);
+ } else if (bdi_nr_reclaimable) {
+ bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
+ bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
+ }
- if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
- break;
+ if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
+ break;
+ if (pages_written >= write_chunk)
+ break; /* We've done our duty */
- pages_written += write_chunk - wbc.nr_to_write;
- if (pages_written >= write_chunk)
- break; /* We've done our duty */
- }
congestion_wait(WRITE, HZ/10);
}
On Thu, 20 Sep 2007 12:31:39 +0100 (BST) Hugh Dickins
<[email protected]> wrote:
Thanks Hugh!
> [PATCH mm] mm per-device dirty threshold fix
>
> Fix occasional hang when a task couldn't get out of balance_dirty_pages:
> mm-per-device-dirty-threshold.patch needs to reevaluate bdi_nr_writeback
> across all cpus when bdi_thresh is low, even in the case when there was
> no bdi_nr_reclaimable.
>
> Signed-off-by: Hugh Dickins <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
> ---
> mm/page-writeback.c | 53 +++++++++++++++++++-----------------------
> 1 file changed, 24 insertions(+), 29 deletions(-)
>
> --- 2.6.23-rc6-mm1/mm/page-writeback.c 2007-09-18 12:28:25.000000000 +0100
> +++ linux/mm/page-writeback.c 2007-09-19 20:00:46.000000000 +0100
> @@ -379,7 +379,7 @@ static void balance_dirty_pages(struct a
> bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
> bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> - break;
> + break;
>
> if (!bdi->dirty_exceeded)
> bdi->dirty_exceeded = 1;
> @@ -392,39 +392,34 @@ static void balance_dirty_pages(struct a
> */
> if (bdi_nr_reclaimable) {
> writeback_inodes(&wbc);
> -
> + pages_written += write_chunk - wbc.nr_to_write;
> get_dirty_limits(&background_thresh, &dirty_thresh,
> &bdi_thresh, bdi);
> + }
>
> - /*
> - * In order to avoid the stacked BDI deadlock we need
> - * to ensure we accurately count the 'dirty' pages when
> - * the threshold is low.
> - *
> - * Otherwise it would be possible to get thresh+n pages
> - * reported dirty, even though there are thresh-m pages
> - * actually dirty; with m+n sitting in the percpu
> - * deltas.
> - */
> - if (bdi_thresh < 2*bdi_stat_error(bdi)) {
> - bdi_nr_reclaimable =
> - bdi_stat_sum(bdi, BDI_RECLAIMABLE);
> - bdi_nr_writeback =
> - bdi_stat_sum(bdi, BDI_WRITEBACK);
> - } else {
> - bdi_nr_reclaimable =
> - bdi_stat(bdi, BDI_RECLAIMABLE);
> - bdi_nr_writeback =
> - bdi_stat(bdi, BDI_WRITEBACK);
> - }
> + /*
> + * In order to avoid the stacked BDI deadlock we need
> + * to ensure we accurately count the 'dirty' pages when
> + * the threshold is low.
> + *
> + * Otherwise it would be possible to get thresh+n pages
> + * reported dirty, even though there are thresh-m pages
> + * actually dirty; with m+n sitting in the percpu
> + * deltas.
> + */
> + if (bdi_thresh < 2*bdi_stat_error(bdi)) {
> + bdi_nr_reclaimable = bdi_stat_sum(bdi, BDI_RECLAIMABLE);
> + bdi_nr_writeback = bdi_stat_sum(bdi, BDI_WRITEBACK);
> + } else if (bdi_nr_reclaimable) {
> + bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
> + bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> + }
>
> - if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> - break;
> + if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> + break;
> + if (pages_written >= write_chunk)
> + break; /* We've done our duty */
>
> - pages_written += write_chunk - wbc.nr_to_write;
> - if (pages_written >= write_chunk)
> - break; /* We've done our duty */
> - }
> congestion_wait(WRITE, HZ/10);
> }
>
Provide {enable,disable}_irq_wakeup dummies for undefined
CONFIG_GENERIC_HARDIRQS case. Completely untested, as I don't even have
cross-compilers for platforms without CONFIG_GENERIC_HARDIRQS.
Signed-off-by: Guennadi Liakhovetski <[email protected]>
---
On Tue, 18 Sep 2007, Andrew Morton wrote:
> On Tue, 18 Sep 2007 16:54:03 -0400
> Mathieu Desnoyers <[email protected]> wrote:
>
> > I got the following error when building 2.6.23-rc6-mm1 on sparc:
> >
> >
> > /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc -Wp,-MD,drivers/serial/.serial_core.o.d -nostdinc -isystem /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/lib/gcc/sparc-unknown-linux-gnu/4.1.1/include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/compudj/git/linux-2.6-lttng/include -include include/linux/autoconf.h -I/home/compudj/git/linux-2.6-lttng/drivers/serial -Idrivers/serial -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial_core)" -D"KBUILD_MODNAME=KBUILD_STR(serial_core)" -c -o drivers/serial/.tmp_serial_core.o /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c
> > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_suspend_port':
> > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:1980: error: implicit declaration of function 'enable_irq_wake'
> > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_resume_port':
> > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:2035: error: implicit declaration of function 'disable_irq_wake'
>
> hm, I wonder why I didn't hit that.
>
> enable_irq_wake() was added by wake-up-from-a-serial-port.patch
>
> I note that git-input adds a call too, and might have a problem
> with !CONFIG_GENERIC_HARDIRQS.
>
> Not sure what the best fix is here. We could sprinkle ifdefs all
> over the code, or just add the suitable empty stubs for enable_irq_wake(),
> etc.
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 5323f62..ecade41 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -205,6 +205,9 @@ static inline int disable_irq_wake(unsigned int irq)
enable_irq(irq)
# endif
+#define enable_irq_wake(irq) ({ (void)(irq); 0; })
+#define disable_irq_wake(irq) ({ (void)(irq); 0; })
+
#endif /* CONFIG_GENERIC_HARDIRQS */
#ifndef __ARCH_SET_SOFTIRQ_PENDING
PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
doesn't show up on other arches because this driver is specific to the
architecture.
drivers/ata/pata_scc.c: In function `scc_bmdma_status':
drivers/ata/pata_scc.c:734: error: structure has no member named `active_tag'
drivers/ata/pata_scc.c: In function `scc_pata_prereset':
drivers/ata/pata_scc.c:866: warning: passing arg 1 of `ata_std_prereset' from incompatible pointer type
drivers/ata/pata_scc.c: In function `scc_error_handler':
drivers/ata/pata_scc.c:908: warning: passing arg 2 of `ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c:908: warning: passing arg 3 of `ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c:908: warning: passing arg 5 of `ata_bmdma_drive_eh' from incompatible pointer type
make[2]: *** [drivers/ata/pata_scc.o] Error 1
make[1]: *** [drivers/ata] Error 2
make: *** [drivers] Error 2
The problem seems to be in git-libata-all.patch but based on similar
changes in this patch, the following patch should be the fix.
Signed-off-by: Mel Gorman <[email protected]>
---
drivers/ata/pata_scc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-025_fix_ppc64_kgdb/drivers/ata/pata_scc.c linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/ata/pata_scc.c
--- linux-2.6.23-rc6-mm1-025_fix_ppc64_kgdb/drivers/ata/pata_scc.c 2007-09-18 11:29:26.000000000 +0100
+++ linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/ata/pata_scc.c 2007-09-20 11:51:01.000000000 +0100
@@ -731,7 +731,7 @@ static u8 scc_bmdma_status (struct ata_p
void __iomem *mmio = ap->ioaddr.bmdma_addr;
u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
u32 int_status = in_be32(mmio + SCC_DMA_INTST);
- struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
+ struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
static int retry = 0;
/* return if IOS_SS is cleared */
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
On Thursday, 20 September 2007 08:18, Thomas Gleixner wrote:
> On Thu, 2007-09-20 at 02:06 +0200, Rafael J. Wysocki wrote:
> > On Wednesday, 19 September 2007 21:21, Thomas Gleixner wrote:
> > > On Wed, 2007-09-19 at 19:44 +0200, Rafael J. Wysocki wrote:
> > > > > > It boots with nohpet alone and suspend/hibernation seem to work (still,
> > > > > > it didn't want to boot right after hibernation, but booted after I'd switched
> > > > > > it off/on manually).
> > > > >
> > > > > Can you please check, whether
> > > > >
> > > > > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patch
> > > > >
> > > > > works for you ?
> > > >
> > > > Nope. It's a total disaster. :-(
> > >
> > > True. I have instrumented it to the point where the broadcast device is
> > > programmed, but no interrupt comes in for totally unknown reasons.
> > >
> > > > Doesn't boot at all, even with "noacpitimer nohpet", and that's with
> > > > NO_HZ and HIGH_RES_TIMERS unset.
> > >
> > > > If you have a bisectable patch series, I can try to identify the responsible
> > > > patch.
> > >
> > > http://tglx.de/projects/hrtimers/2.6.23-rc6/patch-2.6.23-rc6-hrt2.patches.tar.bz2
> > >
> > > The first patches in the queue are the mainline fixups.
> >
> > It's x86_64-convert-to-clockevents.patch (ie. after applying it the box stops
> > to boot).
> >
> > I haven't had the time to check if any special command line arguments help.
> > Will check tomorrow.
>
> Can you please disable the patches, which I sent Linus wards:
>
> timekeeping-access-rtc-outside-xtime-lock.patch
> xtime-supsend-resume-fixup.patch
> acpi-reevaluate-c-p-t-states.patch
> clockevents-enforce-broadcast-on-resume.patch
> clockevents-do-not-shutdown-broadcast-device-in-oneshot-mode.patch
> clockevents-prevent-stale-tick-update-on-offline-cpu.patch
I have skipped all of them, but the resulting kernel behaves in the same
way (ie. doesn't boot).
> Without those patches you get the state of rc4-mm1. It would be
> interesting to know which one interferes with the acpi stuff.
It looks like something else went in between -rc4 and -rc6 that broke your
patch. I wonder what it might be ...
Greetings,
Rafael
allmodconfig on ppc64 fails to build with the following error
drivers/block/ps3disk.c: In function `ps3disk_probe':
drivers/block/ps3disk.c:509: error: implicit declaration of function `blk_queue_issue_flush_fn'
make[2]: *** [drivers/block/ps3disk.o] Error 1
make[1]: *** [drivers/block] Error 2
make: *** [drivers] Error 2
The problem seems to be coming from git-block.patch. Jens, glancing through
the patch, the function blk_queue_issue_flush_fn() seems to be have been
made redundant. Based on that, this looks like the correct fix but it needs
a review. Thanks
Signed-off-by: Mel Gorman <[email protected]>
---
drivers/block/ps3disk.c | 21 ---------------------
1 file changed, 21 deletions(-)
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c
--- linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c 2007-09-11 03:50:29.000000000 +0100
+++ linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c 2007-09-20 14:17:43.000000000 +0100
@@ -414,26 +414,6 @@ static void ps3disk_prepare_flush(struct
req->cmd_type = REQ_TYPE_FLUSH;
}
-static int ps3disk_issue_flush(struct request_queue *q, struct gendisk *gendisk,
- sector_t *sector)
-{
- struct ps3_storage_device *dev = q->queuedata;
- struct request *req;
- int res;
-
- dev_dbg(&dev->sbd.core, "%s:%u\n", __func__, __LINE__);
-
- req = blk_get_request(q, WRITE, __GFP_WAIT);
- ps3disk_prepare_flush(q, req);
- res = blk_execute_rq(q, gendisk, req, 0);
- if (res)
- dev_err(&dev->sbd.core, "%s:%u: flush request failed %d\n",
- __func__, __LINE__, res);
- blk_put_request(req);
- return res;
-}
-
-
static unsigned long ps3disk_mask;
static DEFINE_MUTEX(ps3disk_mask_mutex);
@@ -506,7 +486,6 @@ static int __devinit ps3disk_probe(struc
blk_queue_dma_alignment(queue, dev->blk_size-1);
blk_queue_hardsect_size(queue, dev->blk_size);
- blk_queue_issue_flush_fn(queue, ps3disk_issue_flush);
blk_queue_ordered(queue, QUEUE_ORDERED_DRAIN_FLUSH,
ps3disk_prepare_flush);
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
On Thu, Sep 20 2007, Mel Gorman wrote:
> allmodconfig on ppc64 fails to build with the following error
>
> drivers/block/ps3disk.c: In function `ps3disk_probe':
> drivers/block/ps3disk.c:509: error: implicit declaration of function `blk_queue_issue_flush_fn'
> make[2]: *** [drivers/block/ps3disk.o] Error 1
> make[1]: *** [drivers/block] Error 2
> make: *** [drivers] Error 2
>
> The problem seems to be coming from git-block.patch. Jens, glancing through
> the patch, the function blk_queue_issue_flush_fn() seems to be have been
> made redundant. Based on that, this looks like the correct fix but it needs
> a review. Thanks
>
> Signed-off-by: Mel Gorman <[email protected]>
> ---
> drivers/block/ps3disk.c | 21 ---------------------
> 1 file changed, 21 deletions(-)
>
> diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c
> --- linux-2.6.23-rc6-mm1-030_fix_ppc64_sata/drivers/block/ps3disk.c 2007-09-11 03:50:29.000000000 +0100
> +++ linux-2.6.23-rc6-mm1-035_fix_ppc64_ps3disk/drivers/block/ps3disk.c 2007-09-20 14:17:43.000000000 +0100
> @@ -414,26 +414,6 @@ static void ps3disk_prepare_flush(struct
> req->cmd_type = REQ_TYPE_FLUSH;
> }
>
> -static int ps3disk_issue_flush(struct request_queue *q, struct gendisk *gendisk,
> - sector_t *sector)
> -{
> - struct ps3_storage_device *dev = q->queuedata;
> - struct request *req;
> - int res;
> -
> - dev_dbg(&dev->sbd.core, "%s:%u\n", __func__, __LINE__);
> -
> - req = blk_get_request(q, WRITE, __GFP_WAIT);
> - ps3disk_prepare_flush(q, req);
> - res = blk_execute_rq(q, gendisk, req, 0);
> - if (res)
> - dev_err(&dev->sbd.core, "%s:%u: flush request failed %d\n",
> - __func__, __LINE__, res);
> - blk_put_request(req);
> - return res;
> -}
> -
> -
> static unsigned long ps3disk_mask;
>
> static DEFINE_MUTEX(ps3disk_mask_mutex);
> @@ -506,7 +486,6 @@ static int __devinit ps3disk_probe(struc
> blk_queue_dma_alignment(queue, dev->blk_size-1);
> blk_queue_hardsect_size(queue, dev->blk_size);
>
> - blk_queue_issue_flush_fn(queue, ps3disk_issue_flush);
> blk_queue_ordered(queue, QUEUE_ORDERED_DRAIN_FLUSH,
> ps3disk_prepare_flush);
Thanks! The patch is correct, the prepare_flush() hook is now all that
is needed. I will apply this to my barrier branch, where this originates
from.
--
Jens Axboe
On Thu, 20 Sep 2007, Mel Gorman wrote:
>
> allmodconfig on ppc64 fails to build with the following error
BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
IIRC I got build failures in:
drivers/ata/pata_scc.c
drivers/md/raid6int8.c
drivers/net/spider_net.c
drivers/net/pasemi_mac.c
drivers/pci/hotplug/rpadlpar_sysfs.c
I was in a hurry so didn't record the errors, just noted down the files
and disabled them from .config and continued building ... I'll get back
to fixing these up tonight (if you don't do that by then already).
Satyam
On Wed, 19 Sep 2007 20:02:05 +0200,
Cornelia Huck <[email protected]> wrote:
> -ECONFUSED. Perhaps DEBUG_DRIVER may help some more. Or /me getting
> some sleep.
Sleeping helped (improved reading abilities).
From: Cornelia Huck <[email protected]>
mmc: Avoid double sdio_unregister_bus() on module unload.
Signed-off-by: Cornelia Huck <[email protected]>
---
drivers/mmc/core/core.c | 1 -
1 files changed, 1 deletion(-)
--- linux-2.6.orig/drivers/mmc/core/core.c
+++ linux-2.6/drivers/mmc/core/core.c
@@ -820,7 +820,6 @@ static void __exit mmc_exit(void)
{
sdio_unregister_bus();
mmc_unregister_key_type();
- sdio_unregister_bus();
mmc_unregister_host_class();
mmc_unregister_bus();
destroy_workqueue(workqueue);
On Thu, 2007-09-20 at 15:29 +0200, Rafael J. Wysocki wrote:
> > > I haven't had the time to check if any special command line arguments help.
> > > Will check tomorrow.
> >
> > Can you please disable the patches, which I sent Linus wards:
> >
> > timekeeping-access-rtc-outside-xtime-lock.patch
> > xtime-supsend-resume-fixup.patch
> > acpi-reevaluate-c-p-t-states.patch
> > clockevents-enforce-broadcast-on-resume.patch
> > clockevents-do-not-shutdown-broadcast-device-in-oneshot-mode.patch
> > clockevents-prevent-stale-tick-update-on-offline-cpu.patch
>
> I have skipped all of them, but the resulting kernel behaves in the same
> way (ie. doesn't boot).
>
> > Without those patches you get the state of rc4-mm1. It would be
> > interesting to know which one interferes with the acpi stuff.
>
> It looks like something else went in between -rc4 and -rc6 that broke your
> patch. I wonder what it might be ...
Hmm. Can you please go back in the -hrt project history:
http://tglx.de/projects/hrtimers/2.6.23-rc5/patch-2.6.23-rc5-hrt1.patches.tar.bz2
http://tglx.de/projects/hrtimers/2.6.23-rc4/patch-2.6.23-rc4-hrt1.patches.tar.bz2
Also, can you send me your .config file please ?
Vs. the suspend / resume wreckage of rc6-mm1 / rc6-hrt2:
I'm still fishing in rather dark water. Depending on the added
instrumentation points the problem mutates up to the point where it
vanishes completely. The hang, which requires key strokes again, happens
consistently at the same place:
The notifier call in kernel/cpu.c::_cpu_up()
ret = __raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE | mod, hcpu,
-1, &nr_calls);
does not return, but _all_ registered notifiers are called and reach
their return statement. This reminds me on:
http://lkml.org/lkml/2007/5/9/46
Sigh. I have no clue where to dig further.
tglx
On Thursday, 20 September 2007 15:43, Thomas Gleixner wrote:
> On Thu, 2007-09-20 at 15:29 +0200, Rafael J. Wysocki wrote:
> > > > I haven't had the time to check if any special command line arguments help.
> > > > Will check tomorrow.
> > >
> > > Can you please disable the patches, which I sent Linus wards:
> > >
> > > timekeeping-access-rtc-outside-xtime-lock.patch
> > > xtime-supsend-resume-fixup.patch
> > > acpi-reevaluate-c-p-t-states.patch
> > > clockevents-enforce-broadcast-on-resume.patch
> > > clockevents-do-not-shutdown-broadcast-device-in-oneshot-mode.patch
> > > clockevents-prevent-stale-tick-update-on-offline-cpu.patch
> >
> > I have skipped all of them, but the resulting kernel behaves in the same
> > way (ie. doesn't boot).
> >
> > > Without those patches you get the state of rc4-mm1. It would be
> > > interesting to know which one interferes with the acpi stuff.
> >
> > It looks like something else went in between -rc4 and -rc6 that broke your
> > patch. I wonder what it might be ...
>
> Hmm. Can you please go back in the -hrt project history:
> http://tglx.de/projects/hrtimers/2.6.23-rc5/patch-2.6.23-rc5-hrt1.patches.tar.bz2
> http://tglx.de/projects/hrtimers/2.6.23-rc4/patch-2.6.23-rc4-hrt1.patches.tar.bz2
Sure, but it'll take some time. :-)
> Also, can you send me your .config file please ?
Attached is the one I'm using on 2.6.23-rc6 w/ your patches.
> Vs. the suspend / resume wreckage of rc6-mm1 / rc6-hrt2:
ie. the one on the Vaio (I assume).
> I'm still fishing in rather dark water. Depending on the added
> instrumentation points the problem mutates up to the point where it
> vanishes completely. The hang, which requires key strokes again, happens
> consistently at the same place:
>
> The notifier call in kernel/cpu.c::_cpu_up()
>
> ret = __raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE | mod, hcpu,
> -1, &nr_calls);
>
> does not return, but _all_ registered notifiers are called and reach
> their return statement. This reminds me on:
>
> http://lkml.org/lkml/2007/5/9/46
>
> Sigh. I have no clue where to dig further.
Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
Greetings,
Rafael
On Thu, 20 Sep 2007 14:13:15 +0100
[email protected] (Mel Gorman) wrote:
> PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
> doesn't show up on other arches because this driver is specific to the
> architecture.
>
> drivers/ata/pata_scc.c: In function `scc_bmdma_status'
Its not been updated to match the libata core changes. Try something like
this. Whoever is maintaining it should also remove the prereset cable handling
code and use the proper cable detect method.
Signed-off-by: Alan Cox <[email protected]>
diff -u --exclude-from /usr/src/exclude --new-file --recursive linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c
--- linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-18 15:32:51.000000000 +0100
+++ linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-20 14:23:32.879807760 +0100
@@ -731,7 +731,7 @@
void __iomem *mmio = ap->ioaddr.bmdma_addr;
u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
u32 int_status = in_be32(mmio + SCC_DMA_INTST);
- struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
+ struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
static int retry = 0;
/* return if IOS_SS is cleared */
@@ -860,10 +860,10 @@
* @deadline: deadline jiffies for the operation
*/
-static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
+static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
{
- ap->cbl = ATA_CBL_PATA80;
- return ata_std_prereset(ap, deadline);
+ link->ap->cbl = ATA_CBL_PATA80;
+ return ata_std_prereset(link, deadline);
}
/**
@@ -874,8 +874,9 @@
* Note: Original code is ata_std_postreset().
*/
-static void scc_std_postreset (struct ata_port *ap, unsigned int *classes)
+static void scc_std_postreset (struct ata_link *link, unsigned int *classes)
{
+ struct ata_port *ap = link->ap;
DPRINTK("ENTER\n");
/* is double-select really necessary? */
On Thu, 2007-09-20 at 16:12 +0200, Rafael J. Wysocki wrote:
> > Vs. the suspend / resume wreckage of rc6-mm1 / rc6-hrt2:
>
> ie. the one on the Vaio (I assume).
>
> > I'm still fishing in rather dark water. Depending on the added
> > instrumentation points the problem mutates up to the point where it
> > vanishes completely. The hang, which requires key strokes again, happens
> > consistently at the same place:
> >
> > The notifier call in kernel/cpu.c::_cpu_up()
> >
> > ret = __raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE | mod, hcpu,
> > -1, &nr_calls);
> >
> > does not return, but _all_ registered notifiers are called and reach
> > their return statement. This reminds me on:
> >
> > http://lkml.org/lkml/2007/5/9/46
> >
> > Sigh. I have no clue where to dig further.
>
> Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
My jinxed VAIO variant is SMP, but it looks like the same mysterious
error.
tglx
On Wed, 19 Sep 2007 22:47:41 +0200, Jiri Slaby said:
> On 09/19/2007 10:32 PM, [email protected] wrote:
> > That would probably have been me, saying that x86_64-mm-cpa-clflush.patch broke
> > the NVidia graphics driver in 23-rc3-mm1. Is it breaking *other* X drivers as
> > well?
>
> Yes, the issue is there from rc3-mm1, see (intel and radeon cards are affected
> in my case):
> http://lkml.org/lkml/2007/9/9/51
>
> But now I'm talking about another issue -- a regression since rc4-mm1, where X
> server is unable to bind agp memory (those x logs above). The clflush issue has
> solved andi in
> http://lkml.org/lkml/2007/9/19/334
> recently
Tried that, my laptop still bricks the instant X starts up and the NVidia driver
tries to initialize. Not even sysrq-foo works. Time to power-cycle.
On Thursday, 20 September 2007 15:53, Thomas Gleixner wrote:
> On Thu, 2007-09-20 at 16:12 +0200, Rafael J. Wysocki wrote:
> > > Vs. the suspend / resume wreckage of rc6-mm1 / rc6-hrt2:
> >
> > ie. the one on the Vaio (I assume).
> >
> > > I'm still fishing in rather dark water. Depending on the added
> > > instrumentation points the problem mutates up to the point where it
> > > vanishes completely. The hang, which requires key strokes again, happens
> > > consistently at the same place:
> > >
> > > The notifier call in kernel/cpu.c::_cpu_up()
> > >
> > > ret = __raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE | mod, hcpu,
> > > -1, &nr_calls);
> > >
> > > does not return, but _all_ registered notifiers are called and reach
> > > their return statement. This reminds me on:
> > >
> > > http://lkml.org/lkml/2007/5/9/46
> > >
> > > Sigh. I have no clue where to dig further.
> >
> > Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
>
> My jinxed VAIO variant is SMP, but it looks like the same mysterious
> error.
Hm. Have you tried
# echo test > /sys/power/disk
# echo disk > /sys/power/state
(should suspend devices and disable the nonboot CPUs, wait for 5 sec. and
restore everything)?
Greetings,
Rafael
On Thu, 2007-09-20 at 16:47 +0200, Rafael J. Wysocki wrote:
> On Thursday, 20 September 2007 15:53, Thomas Gleixner wrote:
> > On Thu, 2007-09-20 at 16:12 +0200, Rafael J. Wysocki wrote:
> > > > Vs. the suspend / resume wreckage of rc6-mm1 / rc6-hrt2:
> > >
> > > ie. the one on the Vaio (I assume).
> > >
> > > > I'm still fishing in rather dark water. Depending on the added
> > > > instrumentation points the problem mutates up to the point where it
> > > > vanishes completely. The hang, which requires key strokes again, happens
> > > > consistently at the same place:
> > > >
> > > > The notifier call in kernel/cpu.c::_cpu_up()
> > > >
> > > > ret = __raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE | mod, hcpu,
> > > > -1, &nr_calls);
> > > >
> > > > does not return, but _all_ registered notifiers are called and reach
> > > > their return statement. This reminds me on:
> > > >
> > > > http://lkml.org/lkml/2007/5/9/46
> > > >
> > > > Sigh. I have no clue where to dig further.
> > >
> > > Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
> >
> > My jinxed VAIO variant is SMP, but it looks like the same mysterious
> > error.
>
> Hm. Have you tried
>
> # echo test > /sys/power/disk
> # echo disk > /sys/power/state
>
> (should suspend devices and disable the nonboot CPUs, wait for 5 sec. and
> restore everything)?
Works fine, but I need to reboot into a non debug kernel to verify.
tglx
On (20/09/07 15:09), Alan Cox didst pronounce:
> On Thu, 20 Sep 2007 14:13:15 +0100
> [email protected] (Mel Gorman) wrote:
>
> > PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
> > doesn't show up on other arches because this driver is specific to the
> > architecture.
> >
> > drivers/ata/pata_scc.c: In function `scc_bmdma_status'
>
> Its not been updated to match the libata core changes. Try something like
> this. Whoever is maintaining it should also remove the prereset cable handling
> code and use the proper cable detect method.
>
I can confirm it builds with the following messages
CC [M] drivers/ata/pata_scc.o
drivers/ata/pata_scc.c: In function `scc_error_handler':
drivers/ata/pata_scc.c:909: warning: passing arg 3 of `ata_bmdma_drive_eh' from incompatible pointer type
As for the rest, I cannot comment.
Thanks Alan
>
> Signed-off-by: Alan Cox <[email protected]>
>
> diff -u --exclude-from /usr/src/exclude --new-file --recursive linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c
> --- linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-18 15:32:51.000000000 +0100
> +++ linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-20 14:23:32.879807760 +0100
> @@ -731,7 +731,7 @@
> void __iomem *mmio = ap->ioaddr.bmdma_addr;
> u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
> u32 int_status = in_be32(mmio + SCC_DMA_INTST);
> - struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
> + struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
> static int retry = 0;
>
> /* return if IOS_SS is cleared */
> @@ -860,10 +860,10 @@
> * @deadline: deadline jiffies for the operation
> */
>
> -static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
> +static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
> {
> - ap->cbl = ATA_CBL_PATA80;
> - return ata_std_prereset(ap, deadline);
> + link->ap->cbl = ATA_CBL_PATA80;
> + return ata_std_prereset(link, deadline);
> }
>
> /**
> @@ -874,8 +874,9 @@
> * Note: Original code is ata_std_postreset().
> */
>
> -static void scc_std_postreset (struct ata_port *ap, unsigned int *classes)
> +static void scc_std_postreset (struct ata_link *link, unsigned int *classes)
> {
> + struct ata_port *ap = link->ap;
> DPRINTK("ENTER\n");
>
> /* is double-select really necessary? */
>
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
Alan Cox wrote:
> On Thu, 20 Sep 2007 14:13:15 +0100
> [email protected] (Mel Gorman) wrote:
>
>
>> PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
>> doesn't show up on other arches because this driver is specific to the
>> architecture.
>>
>> drivers/ata/pata_scc.c: In function `scc_bmdma_status'
>>
>
> Its not been updated to match the libata core changes. Try something like
> this. Whoever is maintaining it should also remove the prereset cable handling
> code and use the proper cable detect method.
>
>
> Signed-off-by: Alan Cox <[email protected]>
>
> diff -u --exclude-from /usr/src/exclude --new-file --recursive linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c
> --- linux.vanilla-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-18 15:32:51.000000000 +0100
> +++ linux-2.6.23rc6-mm1/drivers/ata/pata_scc.c 2007-09-20 14:23:32.879807760 +0100
> @@ -731,7 +731,7 @@
> void __iomem *mmio = ap->ioaddr.bmdma_addr;
> u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
> u32 int_status = in_be32(mmio + SCC_DMA_INTST);
> - struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
> + struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
> static int retry = 0;
>
> /* return if IOS_SS is cleared */
> @@ -860,10 +860,10 @@
> * @deadline: deadline jiffies for the operation
> */
>
> -static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
> +static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
> {
> - ap->cbl = ATA_CBL_PATA80;
> - return ata_std_prereset(ap, deadline);
> + link->ap->cbl = ATA_CBL_PATA80;
> + return ata_std_prereset(link, deadline);
> }
>
> /**
> @@ -874,8 +874,9 @@
> * Note: Original code is ata_std_postreset().
> */
>
> -static void scc_std_postreset (struct ata_port *ap, unsigned int *classes)
> +static void scc_std_postreset (struct ata_link *link, unsigned int *classes)
> {
>
> - ap->cbl = ATA_CBL_PATA80;
> - return ata_std_prereset(ap, deadline);
> + link->ap->cbl = ATA_CBL_PATA80;
> + return ata_std_prereset(link, deadline);
> }
>
> /**
> @@ -874,8 +874,9 @@
> * Note: Original code is ata_std_postreset().
> */
>
> + struct ata_port *ap = link->ap;
> DPRINTK("ENTER\n");
>
> /* is double-select really necessary? */
>
>
Hi,
This patch solves the build failure, but with following warnings
CC drivers/ata/pata_scc.o
drivers/ata/pata_scc.c: In function ‘scc_error_handler’:
drivers/ata/pata_scc.c:909: warning: passing argument 3 of
‘ata_bmdma_drive_eh’ from incompatible pointer type
and after that the build fails with
CC [M] drivers/net/spider_net.o
drivers/net/spider_net.c: In function ‘spider_net_release_tx_chain’:
drivers/net/spider_net.c:818: error: ‘dev’ undeclared (first use in this
function)
drivers/net/spider_net.c:818: error: (Each undeclared identifier is
reported only once
drivers/net/spider_net.c:818: error: for each function it appears in.)
drivers/net/spider_net.c: In function ‘spider_net_xmit’:
drivers/net/spider_net.c:922: error: ‘dev’ undeclared (first use in this
function)
drivers/net/spider_net.c: In function ‘spider_net_pass_skb_up’:
drivers/net/spider_net.c:1018: error: ‘dev’ undeclared (first use in
this function)
drivers/net/spider_net.c: In function ‘spider_net_decode_one_descr’:
drivers/net/spider_net.c:1215: error: ‘dev’ undeclared (first use in
this function)
make[2]: *** [drivers/net/spider_net.o] Error 1
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
On Thu, 2007-09-20 at 16:50 +0200, Thomas Gleixner wrote:
> > > > Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
> > >
> > > My jinxed VAIO variant is SMP, but it looks like the same mysterious
> > > error.
> >
> > Hm. Have you tried
> >
> > # echo test > /sys/power/disk
> > # echo disk > /sys/power/state
> >
> > (should suspend devices and disable the nonboot CPUs, wait for 5 sec. and
> > restore everything)?
>
> Works fine, but I need to reboot into a non debug kernel to verify.
Works as well. What's the difference between this and the real thing ?
tglx
On Thursday 20 September 2007, Kay Sievers wrote:
>
> Isn't that all caused by the rtc driver registering itself without
> checking if it is able to grab the device? Wouldn't moving the
> request_resource() before doing any device registration do the magic?
I suspect it would. Got patch?
I'm trying to remember why it registers before grabbing resources
(I/O region, irq) ... which is not the usual pattern, and is somewhat
of a surprise every time I notice it. Though everything's undone on
error, so it "should" work just fine.
If that's not just some debugging leftover, the only thing that comes
to mind is that maybe it was to ensure that the resource labels in
/proc/{interrupts,ioports} clearly distinguished this from the legacy
driver. The now-conventional way to label things there is by using
a logical name like "rtc0", which is the output of registration.
- Dave
On Thu, 20 Sep 2007 15:35:18 +0200
Cornelia Huck <[email protected]> wrote:
> On Wed, 19 Sep 2007 20:02:05 +0200,
> Cornelia Huck <[email protected]> wrote:
>
> > -ECONFUSED. Perhaps DEBUG_DRIVER may help some more. Or /me getting
> > some sleep.
>
> Sleeping helped (improved reading abilities).
>
> From: Cornelia Huck <[email protected]>
>
> mmc: Avoid double sdio_unregister_bus() on module unload.
>
> Signed-off-by: Cornelia Huck <[email protected]>
>
oooops. :)
This has been pushed to kernel.org. Andrew, update at will.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
Cedric Le Goater wrote:
> Pavel Emelyanov wrote:
>> Looks sane :)
>>
>> [snip]
>>
>>> Index: 2.6.23-rc6-mm1/kernel/exit.c
>>> ===================================================================
>>> --- 2.6.23-rc6-mm1.orig/kernel/exit.c
>>> +++ 2.6.23-rc6-mm1/kernel/exit.c
>>> @@ -408,6 +408,8 @@ void daemonize(const char *name, ...)
>>> current->fs = fs;
>>> atomic_inc(&fs->count);
>>>
>>> + if (current->nsproxy != init_task.nsproxy)
>>> + get_nsproxy(init_task.nsproxy);
>>> switch_task_namespaces(current, init_task.nsproxy);
>> shouldn't we make the switch under this if() as well?
>
> right. we can probably simplify switch_task_namespaces() and remove :
>
> if (ns == new)
> return;
>
> I'll cook a better one today.
So I removed this test in
* daemonize() bc it is already done
* sys_unshare() bc the nsproxy is always new one
* exit_task_namespaces() bc it is called with NULL and the
task will die right after that.
C.
make-access-to-tasks-nsproxy-lighter.patch breaks unshare()
when called from unshare(), switch_task_namespaces() takes an
extra refcount on the nsproxy, leading to a memory leak of
nsproxy objects.
Now the problem is that we still need that extra ref when called
from daemonize(). Here's an ugly fix for it.
Signed-off-by: Cedric Le Goater <[email protected]>
Cc: Serge E. Hallyn <[email protected]>
Cc: Pavel Emelyanov <[email protected]>
Cc: Eric W. Biederman <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Cc: Paul E. McKenney <[email protected]>
---
include/linux/nsproxy.h | 5 +++++
kernel/exit.c | 5 ++++-
kernel/nsproxy.c | 9 ---------
3 files changed, 9 insertions(+), 10 deletions(-)
Index: 2.6.23-rc6-mm1/kernel/nsproxy.c
===================================================================
--- 2.6.23-rc6-mm1.orig/kernel/nsproxy.c
+++ 2.6.23-rc6-mm1/kernel/nsproxy.c
@@ -25,11 +25,6 @@ static struct kmem_cache *nsproxy_cachep
struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);
-static inline void get_nsproxy(struct nsproxy *ns)
-{
- atomic_inc(&ns->count);
-}
-
/*
* creates a copy of "orig" with refcount 1.
*/
@@ -205,11 +200,7 @@ void switch_task_namespaces(struct task_
might_sleep();
ns = p->nsproxy;
- if (ns == new)
- return;
- if (new)
- get_nsproxy(new);
rcu_assign_pointer(p->nsproxy, new);
if (ns && atomic_dec_and_test(&ns->count)) {
Index: 2.6.23-rc6-mm1/kernel/exit.c
===================================================================
--- 2.6.23-rc6-mm1.orig/kernel/exit.c
+++ 2.6.23-rc6-mm1/kernel/exit.c
@@ -408,7 +408,10 @@ void daemonize(const char *name, ...)
current->fs = fs;
atomic_inc(&fs->count);
- switch_task_namespaces(current, init_task.nsproxy);
+ if (current->nsproxy != init_task.nsproxy) {
+ get_nsproxy(init_task.nsproxy);
+ switch_task_namespaces(current, init_task.nsproxy);
+ }
exit_files(current);
current->files = init_task.files;
Index: 2.6.23-rc6-mm1/include/linux/nsproxy.h
===================================================================
--- 2.6.23-rc6-mm1.orig/include/linux/nsproxy.h
+++ 2.6.23-rc6-mm1/include/linux/nsproxy.h
@@ -77,6 +77,11 @@ static inline void put_nsproxy(struct ns
}
}
+static inline void get_nsproxy(struct nsproxy *ns)
+{
+ atomic_inc(&ns->count);
+}
+
#ifdef CONFIG_CONTAINER_NS
int ns_container_clone(struct task_struct *tsk);
#else
Hello,
> > > kobject drivers: cleaning up
> > > kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
> >
> > <Unrelated side note: We should probably save the kobject's name for
> > printing this debug message, it looks a bit odd :)>
>
> kobject: Temporarily save k_name on cleanup for debug message.
>
> Signed-off-by: Cornelia Huck <[email protected]>
>
> ---
> lib/kobject.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> --- linux-2.6.orig/lib/kobject.c
> +++ linux-2.6/lib/kobject.c
> @@ -498,9 +498,9 @@ void kobject_cleanup(struct kobject * ko
> struct kobj_type * t = get_ktype(kobj);
> struct kset * s = kobj->kset;
> struct kobject * parent = kobj->parent;
> + const char *k_name = kobj->k_name;
>
> pr_debug("kobject %s: cleaning up\n",kobject_name(kobj));
> - kfree(kobj->k_name);
> kobj->k_name = NULL;
> if (t && t->release)
> t->release(kobj);
> @@ -508,8 +508,8 @@ void kobject_cleanup(struct kobject * ko
> pr_debug("kobject '%s' does not have a release() function, "
> "if this is not a directory kobject, it is broken "
> "and must be fixed.\n",
> - kobject_name(kobj));
> -
> + k_name);
> + kfree(k_name);
> if (s)
> kset_put(s);
> kobject_put(parent);
>
Just FYI this is what it looks like with your patch applied:
kobject mmc_core: registering. parent: <NULL>, set: module
kobject holders: registering. parent: mmc_core, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
kobject_uevent_env
fill_kobj_path: path = '/module/mmc_core'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xdee71c10) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject mmc: registering. parent: <NULL>, set: bus
kobject_uevent_env
fill_kobj_path: path = '/bus/mmc'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xdee71cf0) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject devices: registering. parent: mmc, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_bus_type'@(0xdee71c80) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject drivers: registering. parent: mmc, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_host_class'@(0xdee71f58) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'mmc_host_class'@(0xdee71ed0) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject mmc_host: registering. parent: <NULL>, set: class
kobject_uevent_env
fill_kobj_path: path = '/class/mmc_host'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xdee721f0) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject sdio: registering. parent: <NULL>, set: bus
kobject_uevent_env
fill_kobj_path: path = '/bus/sdio'
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xdee722d0) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject devices: registering. parent: sdio, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
---- begin silly warning ----
This is a janitorial warning, not a kernel bug.
The kobject at, or inside 'sdio_bus_type'@(0xdee72260) is not dynamically allocated.
kobjects must be dynamically allocated, not static
---- end silly warning ----
kobject drivers: registering. parent: sdio, set: <NULL>
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: cleaning up
kobject 'drivers' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject devices: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject devices: cleaning up
kobject 'devices' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject sdio: unregistering
kobject_uevent_env
fill_kobj_path: path = '/bus/sdio'
kobject sdio: cleaning up
kobject 'sdio' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6bf>] kref_get+0x40/0x42
[<c024b850>] kobject_get+0x12/0x17
[<c02d5960>] bus_get+0x11/0x22
[<c02d5be9>] bus_remove_file+0xe/0x27
[<c02d5c12>] remove_probe_files+0x10/0x1f
[<c02d5c5c>] bus_unregister+0x3b/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6bf>] kref_get+0x40/0x42
[<c024b850>] kobject_get+0x12/0x17
[<c02d5960>] bus_get+0x11/0x22
[<c02d5be9>] bus_remove_file+0xe/0x27
[<c02d5c1e>] remove_probe_files+0x1c/0x1f
[<c02d5c5c>] bus_unregister+0x3b/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject <NULL>: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c70d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83b>] unlink+0x3b/0x3e
[<c024b8b8>] kobject_del+0x16/0x19
[<c024b8ed>] kobject_unregister+0x32/0x3f
[<c024b909>] kset_unregister+0xf/0x11
[<c02d5c64>] bus_unregister+0x43/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c70d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83b>] unlink+0x3b/0x3e
[<c024b8b8>] kobject_del+0x16/0x19
[<c024b8ed>] kobject_unregister+0x32/0x3f
[<c024b909>] kset_unregister+0xf/0x11
[<c02d5c6f>] bus_unregister+0x4e/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
WARNING: at lib/kref.c:33 kref_get()
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c6bf>] kref_get+0x40/0x42
[<c024b850>] kobject_get+0x12/0x17
[<c02d5960>] bus_get+0x11/0x22
[<c02d5be9>] bus_remove_file+0xe/0x27
[<c02d5c7b>] bus_unregister+0x5a/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject <NULL>: cleaning up
kobject '<NULL>' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject <NULL>: unregistering
kobject_uevent_env
BUG: atomic counter underflow at:
[<c0104a1c>] dump_trace+0x202/0x22b
[<c0104a5f>] show_trace_log_lvl+0x1a/0x30
[<c0105608>] show_trace+0x12/0x14
[<c010572c>] dump_stack+0x15/0x17
[<c024c70d>] kref_put+0x4c/0xaf
[<c024b74e>] kobject_put+0x14/0x16
[<c024b83b>] unlink+0x3b/0x3e
[<c024b8b8>] kobject_del+0x16/0x19
[<c024b8ed>] kobject_unregister+0x32/0x3f
[<c024b909>] kset_unregister+0xf/0x11
[<c024b913>] subsystem_unregister+0x8/0xa
[<c02d5c83>] bus_unregister+0x62/0x66
[<dee6a83d>] sdio_unregister_bus+0xd/0xf [mmc_core]
[<dee6bcdd>] mmc_exit+0xd/0x23 [mmc_core]
[<c013c9d6>] sys_delete_module+0x154/0x202
[<c010406a>] sysenter_past_esp+0x5f/0x99
[<ffffe410>] 0xffffe410
=======================
kobject mmc_host: unregistering
kobject_uevent_env
fill_kobj_path: path = '/class/mmc_host'
kobject mmc_host: cleaning up
kobject drivers: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject drivers: cleaning up
kobject 'drivers' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject devices: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject devices: cleaning up
kobject 'devices' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject mmc: unregistering
kobject_uevent_env
fill_kobj_path: path = '/bus/mmc'
kobject mmc: cleaning up
kobject 'mmc' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
kobject holders: unregistering
kobject_uevent_env
kobject filter function caused the event to drop!
kobject holders: cleaning up
kobject mmc_core: unregistering
kobject_uevent_env
fill_kobj_path: path = '/module/mmc_core'
kobject mmc_core: cleaning up
kobject 'mmc_core' does not have a release() function, if this is not a directory kobject, it is broken and must be fixed.
Thanks,
Mariusz
Hello,
> > -ECONFUSED. Perhaps DEBUG_DRIVER may help some more. Or /me getting
> > some sleep.
>
> Sleeping helped (improved reading abilities).
>
> From: Cornelia Huck <[email protected]>
>
> mmc: Avoid double sdio_unregister_bus() on module unload.
>
> Signed-off-by: Cornelia Huck <[email protected]>
Ok - I can confirm that this patch fixes the problem.
Thanks,
Mariusz
> ---
> drivers/mmc/core/core.c | 1 -
> 1 files changed, 1 deletion(-)
>
> --- linux-2.6.orig/drivers/mmc/core/core.c
> +++ linux-2.6/drivers/mmc/core/core.c
> @@ -820,7 +820,6 @@ static void __exit mmc_exit(void)
> {
> sdio_unregister_bus();
> mmc_unregister_key_type();
> - sdio_unregister_bus();
> mmc_unregister_host_class();
> mmc_unregister_bus();
> destroy_workqueue(workqueue);
On Wednesday 19 September 2007, Andrew Morton wrote:
> Head still spinning.
>
> a) "rtc0" != "rtc" ??
One key difference between any of the numerous legacy RTC drivers
and the new framework is that the legacy drivers tended to think
(wrongly!) they would be the only RTC in the system, while the
framework recognizes that other configurations are important.
Hence names "rtc0", "rtc1", "rtc2" ... etc in framework drivers,
versus just "rtc" in legacy code. Easily tweaked with "udev" if it
matters, but current versions of "hwclock" (in util-linux and also
in busybox) don't require a /dev/rtc file any more ... they check
for /dev/rtc0, and can be told to look at other RTCs too.
> b) The kernel is trying to register two procfs files of the same name!
> If that's a configuration error then we have a Kconfiguration bug.
Not so much an "error" as minor awkwardness. The end result is
that only one driver will be active.
> > It's not a wrong thing, at any rate. This is a fairly basic task
> > in any filesystem: mutual exclusion. Code is allowed to rely on
> > filesystems acting correctly...
> >
>
> We're relying on procfs behaviour to prevent registration of two rtc
> devices?
Not at all. But if two chunks of code try to create /proc/x/y/z,
only one of them should succeed. Today, there's a clear bug in
procfs whereby both of them will succeed...
> That's a strange means of arbitration. And what happens
> when CONFIG_PROC_FS=n?
Then nothing gets stored there; procfs is nonessential. The same
code executes as when creating the /proc/x/y/z file fails.
> > > Yes, procfs should have been checking for this. But it is too late now for
> > > us to just fail out of the procfs registration code. Because this can
> > > cause previously buggy-but-works-ok code to now fail completely.
> >
> > What do you mean by too late "now" ... just-before-2.6.23?
>
> No.
>
> What I mean is that we cannot change procfs as you propose until we have
> located and fixed all places in the kernel which can cause duplicated
> procfs names.
But causing duplicated names doesn't need any "fix" when that code
handles the error sanely -- by using its "PROCFS=n" code paths.
If you're arguing that you think such fault handling code may have
a lot of bugs, I might agree: not all fault handling code gets even
basic testing. But that would seem to be nothing more than a reason
to want some code auditing (to see how common such bugs really are,
and fix at least a few of them), and perhaps to let such bugfixes sit
in a moderately well-exposed testing tree for a while.
> (Good luck with that).
Evidently there's no procfs maintainer ... you've said there are
patches in MM to detect and report such duplication. What is it
turning up?
> Because we've had this happening before, and *the driver kept working*
> (apart from, presumably, some of their procfs features which, presumably,
> nobody used much).
>
> With the change which you propose, these drivers will probably stop
> working, because they will newly find their procfs registration failed.
The last time I had occasion to look at such stuff I observed that procfs
users were generally sane. If they couldn't create a file, they just
continued ... after all, procfs can never be the primary interface.
> > And what would an example be of buggy-but-works code, which would
> > then be broken if the procfs stopped being buggy?
> >
>
> A driver which checks the return value from procfs registration and which
> then errors out (as it should) if that registration fails.
Erroring out is appropriate for fatal errors ... but procfs errors
generally can't be fatal. (Code which uses procfs for its primary
userspace interface would be the exception.) So most code should
never error out on such faults.
As I commented above, most code I've happend across will proceed
just fine if the extra procfs support is unavailable. After all,
it needs to work with CONFIG_PROCFS=n so those code paths aren't
going to suddenly stop working!
- Dave
On 2007-09-20 01:55, /me wrote:
> Rats. Sorry. I remember now. That's not the first time I am hit by
> that one. I had even made a resolution to try and find out the correct
> options to set. So what are they? CONFIG_RTC=y and CONFIG_RTC_DRV_CMOS=n?
> Guess I should try that combination in my next round of tests.
Did that now. It does get rid of the
"Duplicate file names "rtc" detected."
message. The other problems remain.
> So are all my other woes a consequence of that one?
Apparently not.
> Thanks,
> T.
--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)
Another data point. When booting into runlevel 3, the system is usable,
although these messages still appear after boot:
<4>[ 22.731025] sysfs: duplicate filename 'bInterfaceNumber' can not be created
<4>[ 22.735872] WARNING: at fs/sysfs/dir.c:433 sysfs_add_one()
<7>[ 22.740737] bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
<4>[ 22.740881] [dump_trace+100/498] dump_trace+0x64/0x1f2
<7>[ 22.745708] bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
<4>[ 22.745721] [show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
<4>[ 22.750533] [show_trace+18/20] show_trace+0x12/0x14
<4>[ 22.755285] [dump_stack+22/24] dump_stack+0x16/0x18
<4>[ 22.759997] [sysfs_add_one+87/188] sysfs_add_one+0x57/0xbc
<4>[ 22.764633] [sysfs_add_file+73/135] sysfs_add_file+0x49/0x87
<4>[ 22.769418] [sysfs_create_group+138/240] sysfs_create_group+0x8a/0xf0
<4>[ 22.774014] [<fa99c20a>] usb_create_sysfs_intf_files+0x2d/0xa2 [usbcore]
<4>[ 22.778659] [<fa9989ed>] usb_set_configuration+0x450/0x48d [usbcore]
<4>[ 22.783246] [<fa99fa9b>] generic_probe+0x53/0x94 [usbcore]
<4>[ 22.787895] [<fa99a00b>] usb_probe_device+0x35/0x3b [usbcore]
<4>[ 22.792471] [driver_probe_device+233/362] driver_probe_device+0xe9/0x16a
<4>[ 22.797214] [__device_attach+8/10] __device_attach+0x8/0xa
<4>[ 22.801779] [bus_for_each_drv+56/97] bus_for_each_drv+0x38/0x61
<4>[ 22.806344] [device_attach+112/133] device_attach+0x70/0x85
<4>[ 22.810905] [bus_attach_device+41/119] bus_attach_device+0x29/0x77
<4>[ 22.815468] [device_add+795/1342] device_add+0x31b/0x53e
<4>[ 22.820052] [<fa993de7>] usb_new_device+0x5c/0x168 [usbcore]
<4>[ 22.824653] [<fa9954f9>] hub_thread+0x6b9/0xaa5 [usbcore]
<4>[ 22.829276] [kthread+59/100] kthread+0x3b/0x64
<4>[ 22.833823] [kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
<4>[ 22.838409] =======================
and a bit later:
Sep 20 20:54:36 xenon kernel: [ 39.581898] hwinfo[5185]: segfault at b7cf9f10 eip b7cf9f10 esp bfefe20c error 4
Sep 20 20:54:36 xenon kernel: [ 39.586320] BUG: sleeping function called from invalid context at kernel/rwsem.c:47
Sep 20 20:54:36 xenon kernel: [ 39.590697] in_atomic():1, irqs_disabled():0
Sep 20 20:54:36 xenon kernel: [ 39.594987] no locks held by hwinfo/5185.
Sep 20 20:54:36 xenon kernel: [ 39.599281] [<c0108441>] dump_trace+0x64/0x1f2
Sep 20 20:54:36 xenon kernel: [ 39.603577] [<c01085e9>] show_trace_log_lvl+0x1a/0x2f
Sep 20 20:54:36 xenon kernel: [ 39.607851] [<c010902b>] show_trace+0x12/0x14
Sep 20 20:54:36 xenon kernel: [ 39.612060] [<c0109154>] dump_stack+0x16/0x18
Sep 20 20:54:36 xenon kernel: [ 39.616305] [<c0123ecd>] __might_sleep+0xe5/0xeb
Sep 20 20:54:36 xenon kernel: [ 39.620545] [<c013f72d>] down_write+0x18/0x54
Sep 20 20:54:36 xenon kernel: [ 39.624777] [<c01890d7>] do_coredump+0x94/0x77d
Sep 20 20:54:36 xenon kernel: [ 39.629004] [<c0135295>] get_signal_to_deliver+0x408/0x434
Sep 20 20:54:36 xenon kernel: [ 39.633252] [<c010673a>] do_notify_resume+0x94/0x6a6
Sep 20 20:54:36 xenon kernel: [ 39.637554] [<c01072e5>] work_notifysig+0x13/0x1a
Sep 20 20:54:36 xenon kernel: [ 39.641854] [<b7cf9f10>] 0xb7cf9f10
Sep 20 20:54:36 xenon kernel: [ 39.646180] =======================
Sep 20 20:54:36 xenon kernel: [ 39.650407] note: hwinfo[5185] exited with preempt_count 1
Sep 20 20:54:36 xenon kernel: [ 39.654553] BUG: scheduling while atomic: hwinfo/5185/0x10000002
Sep 20 20:54:36 xenon kernel: [ 39.658714] no locks held by hwinfo/5185.
Sep 20 20:54:36 xenon kernel: [ 39.662847] [<c0108441>] dump_trace+0x64/0x1f2
Sep 20 20:54:36 xenon kernel: [ 39.666980] [<c01085e9>] show_trace_log_lvl+0x1a/0x2f
Sep 20 20:54:36 xenon kernel: [ 39.671118] [<c010902b>] show_trace+0x12/0x14
Sep 20 20:54:36 xenon kernel: [ 39.675397] [<c0109154>] dump_stack+0x16/0x18
Sep 20 20:54:36 xenon kernel: [ 39.679509] [<c012605c>] __schedule_bug+0x6e/0x75
Sep 20 20:54:36 xenon kernel: [ 39.683659] [<c030fd4b>] __sched_text_start+0x83/0x59e
Sep 20 20:54:36 xenon kernel: [ 39.687720] [<c0126084>] __cond_resched+0x21/0x3b
Sep 20 20:54:36 xenon kernel: [ 39.691751] [<c031072b>] cond_resched+0x26/0x31
Sep 20 20:54:36 xenon kernel: [ 39.695678] [<c017059a>] unmap_vmas+0x461/0x580
Sep 20 20:54:36 xenon kernel: [ 39.699572] [<c017351b>] exit_mmap+0x7f/0x10f
Sep 20 20:54:36 xenon kernel: [ 39.703471] [<c012807b>] mmput+0x4d/0xcb
Sep 20 20:54:36 xenon kernel: [ 39.707318] [<c012bea5>] exit_mm+0xd7/0xdc
Sep 20 20:54:36 xenon kernel: [ 39.711140] [<c012d3bb>] do_exit+0x224/0x76b
Sep 20 20:54:36 xenon kernel: [ 39.711147] [<c012d972>] sys_exit_group+0x0/0x11
Sep 20 20:54:36 xenon kernel: [ 39.711153] [<c013529c>] get_signal_to_deliver+0x40f/0x434
Sep 20 20:54:36 xenon kernel: [ 39.711158] [<c010673a>] do_notify_resume+0x94/0x6a6
Sep 20 20:54:36 xenon kernel: [ 39.711163] [<c01072e5>] work_notifysig+0x13/0x1a
Sep 20 20:54:36 xenon kernel: [ 39.711169] [<b7cf9f10>] 0xb7cf9f10
Sep 20 20:54:36 xenon kernel: [ 39.711175] =======================
As this seems to concern USB and sysfs, I guess Greg's the man?
HTH
T.
--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)
On Thu, 20 Sep 2007 21:42:44 +0530
"Kamalesh Babulal" <[email protected]> wrote:
> ...
>
> > i have tested the change with cross compiler for power405 with the same
> > .config
> > with which the build problem is solved, but the build fails with another
> > error
> >
> > CC [M] drivers/net/mace.o
> > drivers/net/mace.c: In function 'mace_handle_misc_intrs':
> > drivers/net/mace.c:642: error: 'dev' undeclared (first use in this
> > function)
> > drivers/net/mace.c:642: error: (Each undeclared identifier is reported
> > only once
> > drivers/net/mace.c:642: error: for each function it appears in.)
> > make[2]: *** [drivers/net/mace.o] Error 1
> > make[1]: *** [drivers/net] Error 2
> > make: *** [drivers] Error 2
> >
> > This patch fixes the build failure
> >
> > Signed-off-by: Kamalesh Babulal <[email protected]>
> > ---
> > --- linux-2.6.23-rc6 /drivers/net/mace.c 2007-09-20 17:16:50.000000000+0530
> > +++ linux-2.6.23-rc6/drivers/net/~mace.c 2007-09-20 17:12:
> > 47.000000000 +0530
> > @@ -633,7 +633,7 @@ static void mace_set_multicast(struct ne
> > spin_unlock_irqrestore(&mp->lock, flags);
> > }
> >
> > -static void mace_handle_misc_intrs(struct mace_data *mp, int intr)
> > +static void mace_handle_misc_intrs(struct mace_data *mp, int intr, struct
> > net_device *dev)
> > {
> > volatile struct mace __iomem *mb = mp->mace;
> > static int mace_babbles, mace_jabbers;
> > @@ -669,7 +669,7 @@ static irqreturn_t mace_interrupt(int ir
> > spin_lock_irqsave(&mp->lock, flags);
> > intr = in_8(&mb->ir); /* read interrupt register */
> > in_8(&mb->xmtrc); /* get retries */
> > - mace_handle_misc_intrs(mp, intr);
> > + mace_handle_misc_intrs(mp, intr, dev);
> >
> > i = mp->tx_empty;
> > while (in_8(&mb->pr) & XMTSV) {
> > @@ -682,7 +682,7 @@ static irqreturn_t mace_interrupt(int ir
> > */
> > intr = in_8(&mb->ir);
> > if (intr != 0)
> > - mace_handle_misc_intrs(mp, intr);
> > + mace_handle_misc_intrs(mp, intr, dev);
> > if (mp->tx_bad_runt) {
> > fs = in_8(&mb->xmtfs);
> > mp->tx_bad_runt = 0;
> > @@ -817,7 +817,7 @@ static void mace_tx_timeout(unsigned lon
> > goto out;
> >
> > /* update various counters */
> > - mace_handle_misc_intrs(mp, in_8(&mb->ir));
> > + mace_handle_misc_intrs(mp, in_8(&mb->ir), dev);
> >
> > cp = mp->tx_cmds + NCMDS_TX * mp->tx_empty;
Thanks, I will fix the wordwrapping in your patch and shall send it in to
David.
>
> Hi,
>
> The build fails when compiling with the same .config over cross compiler for
> powerpc405
>
> drivers/net/mv643xx_eth.c: In function 'mv643xx_eth_int_handler':
> drivers/net/mv643xx_eth.c:564: error: 'bp' undeclared (first use in this
> function)
> drivers/net/mv643xx_eth.c:564: error: (Each undeclared identifier is
> reported only once
> drivers/net/mv643xx_eth.c:564: error: for each function it appears in.)
> drivers/net/mv643xx_eth.c: At top level:
> drivers/net/mv643xx_eth.c:1010: error: conflicting types for 'mv643xx_poll'
> drivers/net/mv643xx_eth.c:68: error: previous declaration of 'mv643xx_poll'
> was here
> make[2]: *** [drivers/net/mv643xx_eth.o] Error 1
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2
Yes, rather a lot of net drivers got broken in easy-to-fix ways.
On Thu, 20 Sep 2007 21:20:24 +0200
Tilman Schmidt <[email protected]> wrote:
> Another data point. When booting into runlevel 3, the system is usable,
> although these messages still appear after boot:
>
> <4>[ 22.731025] sysfs: duplicate filename 'bInterfaceNumber' can not be created
> <4>[ 22.735872] WARNING: at fs/sysfs/dir.c:433 sysfs_add_one()
> <7>[ 22.740737] bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
> <4>[ 22.740881] [dump_trace+100/498] dump_trace+0x64/0x1f2
> <7>[ 22.745708] bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
> <4>[ 22.745721] [show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
> <4>[ 22.750533] [show_trace+18/20] show_trace+0x12/0x14
> <4>[ 22.755285] [dump_stack+22/24] dump_stack+0x16/0x18
> <4>[ 22.759997] [sysfs_add_one+87/188] sysfs_add_one+0x57/0xbc
> <4>[ 22.764633] [sysfs_add_file+73/135] sysfs_add_file+0x49/0x87
> <4>[ 22.769418] [sysfs_create_group+138/240] sysfs_create_group+0x8a/0xf0
> <4>[ 22.774014] [<fa99c20a>] usb_create_sysfs_intf_files+0x2d/0xa2 [usbcore]
> <4>[ 22.778659] [<fa9989ed>] usb_set_configuration+0x450/0x48d [usbcore]
> <4>[ 22.783246] [<fa99fa9b>] generic_probe+0x53/0x94 [usbcore]
> <4>[ 22.787895] [<fa99a00b>] usb_probe_device+0x35/0x3b [usbcore]
> <4>[ 22.792471] [driver_probe_device+233/362] driver_probe_device+0xe9/0x16a
> <4>[ 22.797214] [__device_attach+8/10] __device_attach+0x8/0xa
> <4>[ 22.801779] [bus_for_each_drv+56/97] bus_for_each_drv+0x38/0x61
> <4>[ 22.806344] [device_attach+112/133] device_attach+0x70/0x85
> <4>[ 22.810905] [bus_attach_device+41/119] bus_attach_device+0x29/0x77
> <4>[ 22.815468] [device_add+795/1342] device_add+0x31b/0x53e
> <4>[ 22.820052] [<fa993de7>] usb_new_device+0x5c/0x168 [usbcore]
> <4>[ 22.824653] [<fa9954f9>] hub_thread+0x6b9/0xaa5 [usbcore]
> <4>[ 22.829276] [kthread+59/100] kthread+0x3b/0x64
> <4>[ 22.833823] [kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
> <4>[ 22.838409] =======================
Yep, that looks like a USB bug.
> and a bit later:
>
> Sep 20 20:54:36 xenon kernel: [ 39.581898] hwinfo[5185]: segfault at b7cf9f10 eip b7cf9f10 esp bfefe20c error 4
> Sep 20 20:54:36 xenon kernel: [ 39.586320] BUG: sleeping function called from invalid context at kernel/rwsem.c:47
> Sep 20 20:54:36 xenon kernel: [ 39.590697] in_atomic():1, irqs_disabled():0
> Sep 20 20:54:36 xenon kernel: [ 39.594987] no locks held by hwinfo/5185.
> Sep 20 20:54:36 xenon kernel: [ 39.599281] [<c0108441>] dump_trace+0x64/0x1f2
> Sep 20 20:54:36 xenon kernel: [ 39.603577] [<c01085e9>] show_trace_log_lvl+0x1a/0x2f
> Sep 20 20:54:36 xenon kernel: [ 39.607851] [<c010902b>] show_trace+0x12/0x14
> Sep 20 20:54:36 xenon kernel: [ 39.612060] [<c0109154>] dump_stack+0x16/0x18
> Sep 20 20:54:36 xenon kernel: [ 39.616305] [<c0123ecd>] __might_sleep+0xe5/0xeb
> Sep 20 20:54:36 xenon kernel: [ 39.620545] [<c013f72d>] down_write+0x18/0x54
> Sep 20 20:54:36 xenon kernel: [ 39.624777] [<c01890d7>] do_coredump+0x94/0x77d
> Sep 20 20:54:36 xenon kernel: [ 39.629004] [<c0135295>] get_signal_to_deliver+0x408/0x434
> Sep 20 20:54:36 xenon kernel: [ 39.633252] [<c010673a>] do_notify_resume+0x94/0x6a6
> Sep 20 20:54:36 xenon kernel: [ 39.637554] [<c01072e5>] work_notifysig+0x13/0x1a
> Sep 20 20:54:36 xenon kernel: [ 39.641854] [<b7cf9f10>] 0xb7cf9f10
>
> ...
>
There was a locking imbalance in the IPC code. Do you have the fixes in
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/hot-fixes/
applied?
> As this seems to concern USB and sysfs, I guess Greg's the man?
Greg isn't the only USB developer ;) linux-usb-devel cc added..
On Thursday, 20 September 2007 17:49, Thomas Gleixner wrote:
> On Thu, 2007-09-20 at 16:50 +0200, Thomas Gleixner wrote:
> > > > > Well, the above may affect SMP systems, but the Vaio is UP. Hmm?
> > > >
> > > > My jinxed VAIO variant is SMP, but it looks like the same mysterious
> > > > error.
> > >
> > > Hm. Have you tried
> > >
> > > # echo test > /sys/power/disk
> > > # echo disk > /sys/power/state
> > >
> > > (should suspend devices and disable the nonboot CPUs, wait for 5 sec. and
> > > restore everything)?
> >
> > Works fine, but I need to reboot into a non debug kernel to verify.
>
> Works as well. What's the difference between this and the real thing ?
The real thing also calls device_power_down(PMSG_FREEZE), which is a
counterpart of sysdev_shutdown(), more or less, and I think that's what goes
belly up.
You can use the patch below (on top of -rc6-mm1), which just disables the image
creation (that should be irrelevant anyway) and see what happens.
Greetings,
Rafael
---
kernel/power/disk.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
Index: linux-2.6.23-rc6-mm1/kernel/power/disk.c
===================================================================
--- linux-2.6.23-rc6-mm1.orig/kernel/power/disk.c
+++ linux-2.6.23-rc6-mm1/kernel/power/disk.c
@@ -168,13 +168,14 @@ int create_image(int platform_mode)
}
save_processor_state();
- error = swsusp_arch_suspend();
- if (error)
- printk(KERN_ERR "Error %d while creating the image\n", error);
+ //error = swsusp_arch_suspend();
+ //if (error)
+ // printk(KERN_ERR "Error %d while creating the image\n", error);
/* Restore control flow magically appears here */
restore_processor_state();
- if (!in_suspend)
- platform_leave(platform_mode);
+ //if (!in_suspend)
+ // platform_leave(platform_mode);
+ in_suspend = 0;
/* NOTE: device_power_up() is just a resume() for devices
* that suspended with irqs off ... no overall powerup.
*/
On Thursday, 20 September 2007 16:12, Rafael J. Wysocki wrote:
> On Thursday, 20 September 2007 15:43, Thomas Gleixner wrote:
> > On Thu, 2007-09-20 at 15:29 +0200, Rafael J. Wysocki wrote:
> > > > > I haven't had the time to check if any special command line arguments help.
> > > > > Will check tomorrow.
> > > >
> > > > Can you please disable the patches, which I sent Linus wards:
> > > >
> > > > timekeeping-access-rtc-outside-xtime-lock.patch
> > > > xtime-supsend-resume-fixup.patch
> > > > acpi-reevaluate-c-p-t-states.patch
> > > > clockevents-enforce-broadcast-on-resume.patch
> > > > clockevents-do-not-shutdown-broadcast-device-in-oneshot-mode.patch
> > > > clockevents-prevent-stale-tick-update-on-offline-cpu.patch
> > >
> > > I have skipped all of them, but the resulting kernel behaves in the same
> > > way (ie. doesn't boot).
> > >
> > > > Without those patches you get the state of rc4-mm1. It would be
> > > > interesting to know which one interferes with the acpi stuff.
> > >
> > > It looks like something else went in between -rc4 and -rc6 that broke your
> > > patch. I wonder what it might be ...
> >
> > Hmm. Can you please go back in the -hrt project history:
> > http://tglx.de/projects/hrtimers/2.6.23-rc5/patch-2.6.23-rc5-hrt1.patches.tar.bz2
> > http://tglx.de/projects/hrtimers/2.6.23-rc4/patch-2.6.23-rc4-hrt1.patches.tar.bz2
Each of them on top of 2.6.23-rc6 gives the same symptoms as rc6-hrt2 (ie. the
box doesn't boot).
I'm going to check if -rc5 with patch-2.6.23-rc4-hrt1 on top of it works and
if not (I suspect so), I'll bisect the Linus' tree between -rc4 and -rc5 in
order to identify the responsible patch.
Greetings,
Rafael
Rafael,
On Thu, 2007-09-20 at 22:39 +0200, Rafael J. Wysocki wrote:
> > Works as well. What's the difference between this and the real thing ?
>
> The real thing also calls device_power_down(PMSG_FREEZE), which is a
> counterpart of sysdev_shutdown(), more or less, and I think that's what goes
> belly up.
>
> You can use the patch below (on top of -rc6-mm1), which just disables the image
> creation (that should be irrelevant anyway) and see what happens.
In meantime I figured out what's happening. The ordering in
hibernate_snapshot() is wrong. It does:
swsusp_shrink_memory();
suspend_console();
device_suspend(PMSG_FREEZE);
platform_prepare(platform_mode);
disable_nonboot_cpus();
swsusp_suspend();
enable_nonboot_cpus();
platform_finish(platform_mode);
device_resume();
resume_console();
We disable everything in device_suspend() including timekeeping, so any
code which is depending on working timekeeping and timer functionality
(which is suspended in timekeeping_suspend() as well) is busted.
enable_nonboot_cpus() definitely relies on working timekeeping and
timers depending on the codepath. It's just a surprise that this did not
blow up earlier (also before clock events).
I changed the ordering of the above to:
disable_nonboot_cpus();
swsusp_shrink_memory();
suspend_console();
device_suspend(PMSG_FREEZE);
platform_prepare(platform_mode);
swsusp_suspend();
platform_finish(platform_mode);
device_resume();
resume_console();
enable_nonboot_cpus();
and non-surprisingly the "my VAIO needs help from keyboard" problem went
away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
work at all on my VAIO due to some yet not identified wreckage)
I did not yet look into the suspend to ram code, but I guess that there
is an equivalent problem.
But I have no idea why this affects Andrews jinxed VAIO (UP machine),
though I suspect that we have more timekeeping/timer depending code
somewhere waiting to bite us.
Also I still need to debug why the HIBERNATION_TEST code path (which has
a msleep(5000) in it) does not fail, but I postpone this until tomorrow
morning. I'm dead tired after hunting this Heisenbug which changes with
every other printk added to the code. I'm going to add some really noisy
messages for everything which accesses timekeeping / timers _after_
those systems have been shut down.
We really need to fix this once and forever _before_ 2.6.23 final, even
if it requires a -rc8.
Thanks,
tglx
--- a/kernel/power/disk.c 2007-09-11 09:25:24.000000000 +0200
+++ b/kernel/power/disk.c 2007-09-20 22:47:30.000000000 +0200
@@ -130,10 +130,14 @@ int hibernation_snapshot(int platform_mo
{
int error;
+ error = disable_nonboot_cpus();
+ if (error)
+ goto resume_cpus;
+
/* Free memory before shutting down devices. */
error = swsusp_shrink_memory();
if (error)
- return error;
+ goto resume_cpus;
suspend_console();
error = device_suspend(PMSG_FREEZE);
@@ -144,23 +148,22 @@ int hibernation_snapshot(int platform_mo
if (error)
goto Resume_devices;
- error = disable_nonboot_cpus();
- if (!error) {
- if (hibernation_mode != HIBERNATION_TEST) {
- in_suspend = 1;
- error = swsusp_suspend();
- /* Control returns here after successful restore */
- } else {
- printk("swsusp debug: Waiting for 5 seconds.\n");
- mdelay(5000);
- }
+ if (hibernation_mode != HIBERNATION_TEST) {
+ in_suspend = 1;
+ error = swsusp_suspend();
+ /* Control returns here after successful restore */
+ } else {
+ printk("swsusp debug: Waiting for 5 seconds.\n");
+ mdelay(5000);
}
- enable_nonboot_cpus();
+
Resume_devices:
platform_finish(platform_mode);
device_resume();
Resume_console:
resume_console();
+resume_cpus:
+ enable_nonboot_cpus();
return error;
}
Thomas,
On Thursday, 20 September 2007 23:08, Thomas Gleixner wrote:
> Rafael,
>
> On Thu, 2007-09-20 at 22:39 +0200, Rafael J. Wysocki wrote:
> > > Works as well. What's the difference between this and the real thing ?
> >
> > The real thing also calls device_power_down(PMSG_FREEZE), which is a
> > counterpart of sysdev_shutdown(), more or less, and I think that's what goes
> > belly up.
> >
> > You can use the patch below (on top of -rc6-mm1), which just disables the image
> > creation (that should be irrelevant anyway) and see what happens.
>
> In meantime I figured out what's happening. The ordering in
> hibernate_snapshot() is wrong. It does:
>
> swsusp_shrink_memory();
> suspend_console();
> device_suspend(PMSG_FREEZE);
> platform_prepare(platform_mode);
>
> disable_nonboot_cpus();
>
> swsusp_suspend();
>
> enable_nonboot_cpus();
>
> platform_finish(platform_mode);
> device_resume();
> resume_console();
>
> We disable everything in device_suspend()
No, we don't. sysdevs are _not_ suspended in device_suspend().
They are suspended in device_power_down(), which is called
_after_ disable_nonboot_cpus() (from swsusp_suspend()).
> including timekeeping,
No, the timekeeping is suspended in device_power_down() (or at least it should
be).
> so any code which is depending on working timekeeping and timer
> functionality (which is suspended in timekeeping_suspend() as well) is
> busted.
>
> enable_nonboot_cpus() definitely relies on working timekeeping and
> timers depending on the codepath. It's just a surprise that this did not
> blow up earlier (also before clock events).
>
> I changed the ordering of the above to:
>
> disable_nonboot_cpus();
>
> swsusp_shrink_memory();
> suspend_console();
> device_suspend(PMSG_FREEZE);
> platform_prepare(platform_mode);
> swsusp_suspend();
> platform_finish(platform_mode);
> device_resume();
> resume_console();
>
> enable_nonboot_cpus();
Actually, we can't do this here, because of ACPI and some interrupt handling
related problems. Unfortunately, platform_finish() needs to go _after_
enable_nonboot_cpus() and device_resume() needs to go after platform_finish().
Analogously, disable_nonboot_cpus() has to go after platform_prepare().
Otherwise, some systems will break.
> and non-surprisingly the "my VAIO needs help from keyboard" problem went
> away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
> work at all on my VAIO due to some yet not identified wreckage)
Hm, I really don't know why it helps, but that's not because of the timekeeping
suspend, IMO.
> I did not yet look into the suspend to ram code, but I guess that there
> is an equivalent problem.
Yes, the code ordering is the same, but it's not totally wrong, IMHO.
> But I have no idea why this affects Andrews jinxed VAIO (UP machine),
> though I suspect that we have more timekeeping/timer depending code
> somewhere waiting to bite us.
That's possible.
> Also I still need to debug why the HIBERNATION_TEST code path (which has
> a msleep(5000) in it) does not fail,
See above. :-)
> but I postpone this until tomorrow morning. I'm dead tired after hunting
> this Heisenbug which changes with every other printk added to the code.
> I'm going to add some really noisy messages for everything which accesses
> timekeeping / timers _after_ those systems have been shut down.
>
> We really need to fix this once and forever _before_ 2.6.23 final, even
> if it requires a -rc8.
Agreed.
Greetings,
Rafael
On Thu, 20 Sep 2007, Thomas Gleixner wrote:
>
> In meantime I figured out what's happening. The ordering in
> hibernate_snapshot() is wrong. It does:
Hmm. This is close to the ordering we have in STR too.
I have some dim memory of there being some ACPI reason why it had to be
done that way.
In fact, this was done in commit e3c7db621bed4afb8e231cb005057f2feb5db557,
long ago, by Rafael:
As indicated in a recent thread on Linux-PM, it's necessary to call
pm_ops->finish() before devce_resume(), but enable_nonboot_cpus() has to be
called before pm_ops->finish() (cf.
http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html). For
consistency, it seems reasonable to call disable_nonboot_cpus() after
device_suspend().
This way the suspend code will remain symmetrical with respect to the resume
code and it may allow us to speed up things in the future by suspending and
resuming devices and/or saving the suspend image in many threads.
The following series of patches reorders the suspend and resume code so that
nonboot CPUs are disabled after devices have been suspended and enabled before
the devices are resumed. It also causes pm_ops->finish() to be called after
enable_nonboot_cpus() wherever necessary.
Hmm?
It's entirely possible that that commit was simply just buggy, and we
should indeed move the CPU down/up to be early/late - we've fixed other
ordering issues since that commit went in. But this whole area is very
murky.
(Btw, the above commit message points to just my response with a testing
patch to the real email: the actual explanation of the INSANE ordering is
from Len Brown in
https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
and there Len claims that we *must* wake up CPU's early).
I personally think that the whole ACPI ordering requirements are just
insane, but the point of this email is to point these different
requirements out, and hopefully we can get something that works for
everybody.
Len added to Cc.
Len? Thomas wants to call 'disable_nonboot_cpus()' early, and
'enable_nonboot_cpus()' late. Can you explain why that is wrong?
Linus
On Thursday, 20 September 2007 23:35, Linus Torvalds wrote:
>
> On Thu, 20 Sep 2007, Thomas Gleixner wrote:
> >
> > In meantime I figured out what's happening. The ordering in
> > hibernate_snapshot() is wrong. It does:
Actually, this is incorrect. Please read my reply to Thomas, just sent.
> Hmm. This is close to the ordering we have in STR too.
>
> I have some dim memory of there being some ACPI reason why it had to be
> done that way.
Yes. We're executing _INI from the CPU initialization code and that shouldn't
be done after _WAK, which is called from?platform_finish().
> In fact, this was done in commit e3c7db621bed4afb8e231cb005057f2feb5db557,
> long ago, by Rafael:
>
> As indicated in a recent thread on Linux-PM, it's necessary to call
> pm_ops->finish() before devce_resume(), but enable_nonboot_cpus() has to be
> called before pm_ops->finish() (cf.
> http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html). For
> consistency, it seems reasonable to call disable_nonboot_cpus() after
> device_suspend().
>
> This way the suspend code will remain symmetrical with respect to the resume
> code and it may allow us to speed up things in the future by suspending and
> resuming devices and/or saving the suspend image in many threads.
>
> The following series of patches reorders the suspend and resume code so that
> nonboot CPUs are disabled after devices have been suspended and enabled before
> the devices are resumed. It also causes pm_ops->finish() to be called after
> enable_nonboot_cpus() wherever necessary.
>
> Hmm?
>
> It's entirely possible that that commit was simply just buggy, and we
> should indeed move the CPU down/up to be early/late - we've fixed other
> ordering issues since that commit went in. But this whole area is very
> murky.
>
> (Btw, the above commit message points to just my response with a testing
> patch to the real email: the actual explanation of the INSANE ordering is
> from Len Brown in
>
> https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
>
> and there Len claims that we *must* wake up CPU's early).
>
> I personally think that the whole ACPI ordering requirements are just
> insane, but the point of this email is to point these different
> requirements out, and hopefully we can get something that works for
> everybody.
Sure.
Greetings,
Rafael
Rafael,
On Thu, 2007-09-20 at 23:45 +0200, Rafael J. Wysocki wrote:
> > We disable everything in device_suspend()
>
> No, we don't. sysdevs are _not_ suspended in device_suspend().
> They are suspended in device_power_down(), which is called
> _after_ disable_nonboot_cpus() (from swsusp_suspend()).
>
> > including timekeeping,
>
> No, the timekeeping is suspended in device_power_down() (or at least it should
> be).
Damn, you are right. Reading through 30 different logs confused me.
> > enable_nonboot_cpus();
>
> Actually, we can't do this here, because of ACPI and some interrupt handling
> related problems. Unfortunately, platform_finish() needs to go _after_
> enable_nonboot_cpus() and device_resume() needs to go after platform_finish().
> Analogously, disable_nonboot_cpus() has to go after platform_prepare().
>
> Otherwise, some systems will break.
Well, I don't buy this one. The system would break in the same way, when
I take CPU#1 offline before I initiate the suspend.
> > and non-surprisingly the "my VAIO needs help from keyboard" problem went
> > away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
> > work at all on my VAIO due to some yet not identified wreckage)
>
> Hm, I really don't know why it helps, but that's not because of the timekeeping
> suspend, IMO.
It is related. We rely on some subtle thing which is not up when we
resume the non boot cpu.
> > I did not yet look into the suspend to ram code, but I guess that there
> > is an equivalent problem.
>
> Yes, the code ordering is the same, but it's not totally wrong, IMHO.
>
> > But I have no idea why this affects Andrews jinxed VAIO (UP machine),
> > though I suspect that we have more timekeeping/timer depending code
> > somewhere waiting to bite us.
>
> That's possible.
>
> > Also I still need to debug why the HIBERNATION_TEST code path (which has
> > a msleep(5000) in it) does not fail,
>
> See above. :-)
Yes. It makes sense. When I change the TEST code path to:
- printk("swsusp debug: Waiting for 5 seconds.\n");
- msleep(5000);
+ printk("swsusp debug: before swsusp_suspend\n");
+ error = swsusp_suspend();
then I have the same effect as I get from real hibernation. And we
actually shut down time keeping somewhere in that code path.
ACPI: PCI interrupt for device 0000:00:1b.0 disabled
swsusp debug: before swsusp_suspend
Suspend timekeeping
swsusp: critical section:
swsusp: Need to copy 112429 pages
swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
swsusp: critical section: done (112429 pages copied)
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Resume timekeeping
ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
-> works fine
This is with my patch applied. Without that I get:
CPU1 is down
swsusp debug: before swsusp_suspend
Suspend timekeeping
swsusp: critical section:
swsusp: Need to copy 112429 pages
swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
swsusp: critical section: done (112429 pages copied)
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Resume timekeeping
Enabling non-boot CPUs
--> Waits for ever until a key is pressed
Thanks,
tglx
On Thu, 20 Sep 2007, Linus Torvalds wrote:
>
> (Btw, the above commit message points to just my response with a testing
> patch to the real email: the actual explanation of the INSANE ordering is
> from Len Brown in
>
> https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
>
> and there Len claims that we *must* wake up CPU's early).
..and points to commit 1a38416cea8ac801ae8f261074721f35317613dc which in
turn talks about http://bugzilla.kernel.org/show_bug.cgi?id=5651
Howerver, it seems that bugzilla entry may just be bogus. It talks about
"it appears that some firmware in the future may depend on that sequence
for correction operation"
Len, Shaohua, what are the real issues here?
It would indeed be nice if we could just take CPU's down early (while
everything is working), and run the whole suspend code with just one CPU,
rather than having to worry about the ordering between CPU and device
takedown.
That said, at least with STR, the situation is:
1) suspend_console
2) device_suspend(PMSG_SUSPEND) (== ->suspend)
3) disable_nonboot_cpus()
4) device_power_down(PMSG_SUSPEND) (== ->suspend_late)
5) pm_ops->enter()
6) device_power_up() (== ->resume_early)
7) enable_nonboot_cpus()
8) pm_finish()
9) device_resume() (== ->resume
10) resume_console
So if we agree that things like timers etc should *never* be suspended by
the early suspend, and *always* use "suspend_late/resume_early", then at
least STR should be ok.
And I think that's a damn reasonable thing to agree on: timers (and
anything else that CPU shutdown/bringup could *possibly* care about)
should be considered core enough that they had better be on the
suspend_late/resume_early list.
Thomas, Rafael, can you verify that at least STR is ok in this respect?
Linus
Rafael,
On Thu, 2007-09-20 at 23:54 +0200, Rafael J. Wysocki wrote:
> > Hmm. This is close to the ordering we have in STR too.
> >
> > I have some dim memory of there being some ACPI reason why it had to be
> > done that way.
>
> Yes. We're executing _INI from the CPU initialization code and that shouldn't
> be done after _WAK, which is called from platform_finish().
If I tear down CPU#1 right before I tell the kernel to hibernate, then
the box must explode in the same way. It does not. On none of 4 tested
laptops.
Of course only the jinxed VAIO one exposes the "please press a key
problem".
I need to follow down the swsusp_suspend() code path to figure out, why
this breaks the box.
tglx
Linus,
On Thu, 2007-09-20 at 14:55 -0700, Linus Torvalds wrote:
> And I think that's a damn reasonable thing to agree on: timers (and
> anything else that CPU shutdown/bringup could *possibly* care about)
> should be considered core enough that they had better be on the
> suspend_late/resume_early list.
>
> Thomas, Rafael, can you verify that at least STR is ok in this respect?
-ETOOTIRED led me too a wrong conclusion, but still it is a valuable
hint that this change is making things work again. I need to go down
into the details of the swsusp_suspend() code path to figure out, what's
the root cause.
Sorry for the noise, but I'm zooming in.
tglx
On Thu, Sep 20, 2007 at 11:42:29AM +1000, Dave Airlie wrote:
> > The code is broken anyways. If you free pages without flushing
> > them first some other innocent user allocating them will end up
> > with possible uncached pages for some time.
> >
> > Does this simple patch help?
> >
>
> I've attached a more complicated patch that does a 2 stage effort to
> unmapping and freeing pages. My kernel no longer hangs with this
> patch...
>
> Jiri can you confirm?
It's broken for me.
2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
-rc4-mm1: solid lock on X shutdown, random solid locks about
once every four hours
-rc6-mm1: solid lock on X startup
+your patch: screen goes black, turns off and on a few times during
startup, can reboot with sysrq-b
Video is:
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250
[Mobility FireGL 9000] (rev 02)
--
Mathematics is the supreme nostalgia of our time.
On 09/20/2007 11:24 AM, Zhenyu Wang wrote:
> On 2007.09.20 17:33:45 +0000, Dave Airlie wrote:
>>> Maybe you are rather interested in these dmesg lines:
>>> Linux agpgart interface v0.102
>>> agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
>>> on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
>>> agpgart: Detected an Intel G33 Chipset.
>>> agpgart: Detected 8192K stolen memory.
>>> agpgart: AGP aperture is 256M @ 0xd0000000
>>> [drm] Initialized drm 1.1.0 20060810
>>> ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
>>> [drm] Initialized i915 1.6.0 20060119 on minor 0
>>> ...
>>> set status page addr 0x00033000
>>> agpgart: pg_start == 0x000005ff,intel_private.gtt_entries == 0x00000800
>>> agpgart: Trying to insert into local/stolen memory
>>>
>>> So the problem is, that X passes too low start.
>>>
>>> The X log:
>>> http://www.fi.muni.cz/~xslaby/sklad/Xorg.0.log.old
>
> Could you try current xf86-video-intel driver? just do
> git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel
It works! 3d problem, but it has maybe nothing to do with kernel:
$ glxinfo
name of display: :0.0
Unrecognized deviceID 29c2
X Error of failed request: GLXBadContext
...
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Friday, 21 September 2007 00:05, Thomas Gleixner wrote:
> Linus,
>
> On Thu, 2007-09-20 at 14:55 -0700, Linus Torvalds wrote:
> > And I think that's a damn reasonable thing to agree on: timers (and
> > anything else that CPU shutdown/bringup could *possibly* care about)
> > should be considered core enough that they had better be on the
> > suspend_late/resume_early list.
> >
> > Thomas, Rafael, can you verify that at least STR is ok in this respect?
>
> -ETOOTIRED led me too a wrong conclusion, but still it is a valuable
> hint that this change is making things work again.
Yes, it is.
> I need to go down into the details of the swsusp_suspend() code path to
> figure out, what's the root cause.
If you need any help from me with that, please let me know.
Greetings,
Rafael
Thomas,
On Thursday, 20 September 2007 23:53, Thomas Gleixner wrote:
> Rafael,
>
> On Thu, 2007-09-20 at 23:45 +0200, Rafael J. Wysocki wrote:
> > > We disable everything in device_suspend()
> >
> > No, we don't. sysdevs are _not_ suspended in device_suspend().
> > They are suspended in device_power_down(), which is called
> > _after_ disable_nonboot_cpus() (from swsusp_suspend()).
> >
> > > including timekeeping,
> >
> > No, the timekeeping is suspended in device_power_down() (or at least it should
> > be).
>
> Damn, you are right. Reading through 30 different logs confused me.
>
> > > enable_nonboot_cpus();
> >
> > Actually, we can't do this here, because of ACPI and some interrupt handling
> > related problems. Unfortunately, platform_finish() needs to go _after_
> > enable_nonboot_cpus() and device_resume() needs to go after platform_finish().
> > Analogously, disable_nonboot_cpus() has to go after platform_prepare().
> >
> > Otherwise, some systems will break.
>
> Well, I don't buy this one. The system would break in the same way, when
> I take CPU#1 offline before I initiate the suspend.
I was referring to the resume part. If we call enable_nonboot_cpus(), which
executes the _INI ACPI control method, after platform_finish(), which executes
the _WAK global ACPI control method, things will break. That already happened
in the past, when the code ordering was different, AFAICS.
> > > and non-surprisingly the "my VAIO needs help from keyboard" problem went
> > > away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
> > > work at all on my VAIO due to some yet not identified wreckage)
> >
> > Hm, I really don't know why it helps, but that's not because of the timekeeping
> > suspend, IMO.
>
> It is related. We rely on some subtle thing which is not up when we
> resume the non boot cpu.
Yes, it looks so.
> > > I did not yet look into the suspend to ram code, but I guess that there
> > > is an equivalent problem.
> >
> > Yes, the code ordering is the same, but it's not totally wrong, IMHO.
> >
> > > But I have no idea why this affects Andrews jinxed VAIO (UP machine),
> > > though I suspect that we have more timekeeping/timer depending code
> > > somewhere waiting to bite us.
> >
> > That's possible.
> >
> > > Also I still need to debug why the HIBERNATION_TEST code path (which has
> > > a msleep(5000) in it) does not fail,
> >
> > See above. :-)
>
> Yes. It makes sense. When I change the TEST code path to:
>
> - printk("swsusp debug: Waiting for 5 seconds.\n");
> - msleep(5000);
> + printk("swsusp debug: before swsusp_suspend\n");
> + error = swsusp_suspend();
>
> then I have the same effect as I get from real hibernation. And we
> actually shut down time keeping somewhere in that code path.
>
> ACPI: PCI interrupt for device 0000:00:1b.0 disabled
> swsusp debug: before swsusp_suspend
> Suspend timekeeping
Exactly. timekeeping_suspend() is called from device_power_down(), which is
called from swsusp_suspend() (after disabling interrupts).
> swsusp: critical section:
> swsusp: Need to copy 112429 pages
> swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
> swsusp: critical section: done (112429 pages copied)
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> Resume timekeeping
> ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
> -> works fine
>
> This is with my patch applied. Without that I get:
>
> CPU1 is down
> swsusp debug: before swsusp_suspend
> Suspend timekeeping
> swsusp: critical section:
> swsusp: Need to copy 112429 pages
> swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
> swsusp: critical section: done (112429 pages copied)
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> Resume timekeeping
> Enabling non-boot CPUs
> --> Waits for ever until a key is pressed
Well, perhaps there's something else that we should suspend late and resume
early, but we don't?
Greetings,
Rafael
> > But now I'm talking about another issue -- a regression since rc4-mm1, where X
> > server is unable to bind agp memory (those x logs above). The clflush issue has
> > solved andi in
> > http://lkml.org/lkml/2007/9/19/334
> > recently
>
> Tried that, my laptop still bricks the instant X starts up and the NVidia driver
> tries to initialize. Not even sysrq-foo works. Time to power-cycle.
>
I'd expect the binary to be doing something stupid with it's flushing
and relying on the kernel to do something it no longer does.. so this
is most likely a case of not fixable..
Dave.
> It's broken for me.
>
> 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
> -rc4-mm1: solid lock on X shutdown, random solid locks about
> once every four hours
> -rc6-mm1: solid lock on X startup
> +your patch: screen goes black, turns off and on a few times during
> startup, can reboot with sysrq-b
Does it work with my simple dumb patch instead of Dave's ?
-Andi
On Fri, Sep 21, 2007 at 01:03:04AM +0200, Andi Kleen wrote:
> > It's broken for me.
> >
> > 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
> > -rc4-mm1: solid lock on X shutdown, random solid locks about
> > once every four hours
> > -rc6-mm1: solid lock on X startup
> > +your patch: screen goes black, turns off and on a few times during
> > startup, can reboot with sysrq-b
>
> Does it work with my simple dumb patch instead of Dave's ?
Sorry, forgot to mention: your one-liner flush also doesn't work (same
behavior).
I suspect I'm tripping two things and the flushing thing fixes one but
not the other.
--
Mathematics is the supreme nostalgia of our time.
On Thursday 20 September 2007 17:55, Linus Torvalds wrote:
>
> On Thu, 20 Sep 2007, Linus Torvalds wrote:
> >
> > (Btw, the above commit message points to just my response with a testing
> > patch to the real email: the actual explanation of the INSANE ordering is
> > from Len Brown in
> >
> > https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
> >
> > and there Len claims that we *must* wake up CPU's early).
>
> ..and points to commit 1a38416cea8ac801ae8f261074721f35317613dc which in
> turn talks about http://bugzilla.kernel.org/show_bug.cgi?id=5651
>
> Howerver, it seems that bugzilla entry may just be bogus. It talks about
> "it appears that some firmware in the future may depend on that sequence
> for correction operation"
>
> Len, Shaohua, what are the real issues here?
Intel's reference BIOS for Core Duo performs some re-initialization
in _WAK that will get blow away if INIT follows _WAK.
IIR, it is related to re-initializing the thermal sensors.
I opened bug 5651 when the BIOS team informed me of this issue.
Yes, bringing a processor offline and then online again w/o
an intervening suspend or reset would not evaluate _WAK,
and thus may still run into the issue.
I don't know if this is a widespread issue and a commonly
used BIOS hook, or if it is specific to certain processors.
-Len
> It would indeed be nice if we could just take CPU's down early (while
> everything is working), and run the whole suspend code with just one CPU,
> rather than having to worry about the ordering between CPU and device
> takedown.
>
> That said, at least with STR, the situation is:
>
> 1) suspend_console
> 2) device_suspend(PMSG_SUSPEND) (== ->suspend)
> 3) disable_nonboot_cpus()
> 4) device_power_down(PMSG_SUSPEND) (== ->suspend_late)
> 5) pm_ops->enter()
> 6) device_power_up() (== ->resume_early)
> 7) enable_nonboot_cpus()
> 8) pm_finish()
> 9) device_resume() (== ->resume
> 10) resume_console
>
> So if we agree that things like timers etc should *never* be suspended by
> the early suspend, and *always* use "suspend_late/resume_early", then at
> least STR should be ok.
>
> And I think that's a damn reasonable thing to agree on: timers (and
> anything else that CPU shutdown/bringup could *possibly* care about)
> should be considered core enough that they had better be on the
> suspend_late/resume_early list.
>
> Thomas, Rafael, can you verify that at least STR is ok in this respect?
>
> Linus
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
On Thu, Sep 20, 2007 at 06:31:14PM -0500, Matt Mackall wrote:
> On Fri, Sep 21, 2007 at 01:03:04AM +0200, Andi Kleen wrote:
> > > It's broken for me.
> > >
> > > 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
> > > -rc4-mm1: solid lock on X shutdown, random solid locks about
> > > once every four hours
> > > -rc6-mm1: solid lock on X startup
> > > +your patch: screen goes black, turns off and on a few times during
> > > startup, can reboot with sysrq-b
> >
> > Does it work with my simple dumb patch instead of Dave's ?
>
> Sorry, forgot to mention: your one-liner flush also doesn't work (same
> behavior).
>
> I suspect I'm tripping two things and the flushing thing fixes one but
> not the other.
Full bisect needed then I guess. Ok as a short cut you could perhaps
the cpa-* patches first (might need to drop some later depending
patches), then the drm and agp trees.
-Andi
Am 20.09.2007 22:25 schrieb Andrew Morton:
> There was a locking imbalance in the IPC code. Do you have the fixes in
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/hot-fixes/
> applied?
I hadn't. Now that I have, all the troubles are gone. X comes up
fine, and all of the segfault/invalid context/scheduling while atomic
messages have disappeared.
Thanks,
Tilman
--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)
On 2007.09.21 00:10:26 +0000, Jiri Slaby wrote:
> > Could you try current xf86-video-intel driver? just do
> > git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel
>
> It works!
yep, I also pushed a fix for G33 in xf86-video-intel when fixing the intel agp.
So for G33 user, you should upgrade both to be able to work correctly.
> 3d problem, but it has maybe nothing to do with kernel:
> $ glxinfo
> name of display: :0.0
> Unrecognized deviceID 29c2
> X Error of failed request: GLXBadContext
> ...
It looks you have an old version of mesa, that i915 dri driver doesn't know
your chipset. Try mesa-7.X.
I have also seen X exit broken with 2.6.23-rc6-mm1, will follow this thread
and try Dave's patch.
Thanks for testing!
On Thu, Sep 20, 2007 at 09:42:44PM +0530, Kamalesh Babulal wrote:
> On 9/20/07, Kamalesh Babulal <[email protected]> wrote:
> > On 9/20/07, Andrew Morton <[email protected]> wrote:
> > >
> > > On Wed, 19 Sep 2007 19:58:28 -0400
> > > [email protected] (Joseph Fannin) wrote:
> > >
> > > > On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
> > >
> > > ---
> > > a/include/asm-powerpc/smp.h~convert-cpu_sibling_map-to-a-per_cpu-data-array-ppc64-fix-2
> > >
> > > +++ a/include/asm-powerpc/smp.h
> > > @@ -25,8 +25,8 @@
> > >
> > > #ifdef CONFIG_PPC64
> > > #include <asm/paca.h>
> > > -#include <asm/percpu.h>
> > > #endif
> > > +#include <asm/percpu.h>
> > >
> > > extern int boot_cpuid;
> > Signed-off-by: Kamalesh Babulal <[email protected]>
> > ---
> > --- linux-2.6.23-rc6 /drivers/net/mace.c 2007-09-20 17:16:50.000000000+0530
> > +++ linux-2.6.23-rc6/drivers/net/~mace.c 2007-09-20 17:12:
> > 47.000000000 +0530
> > @@ -633,7 +633,7 @@ static void mace_set_multicast(struct ne
> > spin_unlock_irqrestore(&mp->lock, flags);
> > }
> >
> > -static void mace_handle_misc_intrs(struct mace_data *mp, int intr)
> > +static void mace_handle_misc_intrs(struct mace_data *mp, int intr, struct
> > net_device *dev)
> > {
> > volatile struct mace __iomem *mb = mp->mace;
> > static int mace_babbles, mace_jabbers;
> > @@ -669,7 +669,7 @@ static irqreturn_t mace_interrupt(int ir
> > spin_lock_irqsave(&mp->lock, flags);
> > intr = in_8(&mb->ir); /* read interrupt register */
> > in_8(&mb->xmtrc); /* get retries */
> > - mace_handle_misc_intrs(mp, intr);
> > + mace_handle_misc_intrs(mp, intr, dev);
> >
> > i = mp->tx_empty;
> > while (in_8(&mb->pr) & XMTSV) {
> > @@ -682,7 +682,7 @@ static irqreturn_t mace_interrupt(int ir
> > */
> > intr = in_8(&mb->ir);
> > if (intr != 0)
> > - mace_handle_misc_intrs(mp, intr);
> > + mace_handle_misc_intrs(mp, intr, dev);
> > if (mp->tx_bad_runt) {
> > fs = in_8(&mb->xmtfs);
> > mp->tx_bad_runt = 0;
> > @@ -817,7 +817,7 @@ static void mace_tx_timeout(unsigned lon
> > goto out;
> >
> > /* update various counters */
> > - mace_handle_misc_intrs(mp, in_8(&mb->ir));
> > + mace_handle_misc_intrs(mp, in_8(&mb->ir), dev);
> >
> > cp = mp->tx_cmds + NCMDS_TX * mp->tx_empty;
Both these patches have built and booted for me.
I will send a patch for the following error separately, in what
will hopefully be canonical patch submission format, in case that's of
any use.
Thanks.
> drivers/net/mv643xx_eth.c: In function 'mv643xx_eth_int_handler':
> drivers/net/mv643xx_eth.c:564: error: 'bp' undeclared (first use in this
> function)
> drivers/net/mv643xx_eth.c:564: error: (Each undeclared identifier is
> reported only once
> drivers/net/mv643xx_eth.c:564: error: for each function it appears in.)
> drivers/net/mv643xx_eth.c: At top level:
> drivers/net/mv643xx_eth.c:1010: error: conflicting types for 'mv643xx_poll'
> drivers/net/mv643xx_eth.c:68: error: previous declaration of 'mv643xx_poll'
> was here
> make[2]: *** [drivers/net/mv643xx_eth.o] Error 1
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2
--
Joseph Fannin
[email protected]
The netfilter sysctls in the bridging code don't set strategy routines:
sysctl table check failed: /net/bridge/bridge-nf-call-arptables .3.10.1 Missing strategy
sysctl table check failed: /net/bridge/bridge-nf-call-iptables .3.10.2 Missing strategy
sysctl table check failed: /net/bridge/bridge-nf-call-ip6tables .3.10.3 Missing strategy
sysctl table check failed: /net/bridge/bridge-nf-filter-vlan-tagged .3.10.4 Missing strategy
sysctl table check failed: /net/bridge/bridge-nf-filter-pppoe-tagged .3.10.5 Missing strategy
These binary sysctls can't work. The binary sysctl numbers of
other netfilter sysctls with this problem are being removed. These
need to go as well.
Signed-off-by: Joseph Fannin <[email protected]>
---
This *really* needs to be reviewed by someone who knows what this
is all about. I've simply extended the removal of netfilter binary
sysctl numbers so I could load bridge.ko. I don't particularly
care if I get attributed for this fix or any of that.
It Works For Me.
diff -ru linux-2.6.23-rc6-mm1.orig/net/bridge/br_netfilter.c linux-2.6.23-rc6-mm1/net/bridge/br_netfilter.c
--- linux-2.6.23-rc6-mm1.orig/net/bridge/br_netfilter.c 2007-09-19 02:40:49.000000000 -0400
+++ linux-2.6.23-rc6-mm1/net/bridge/br_netfilter.c 2007-09-20 20:31:41.000000000 -0400
@@ -904,7 +904,6 @@
static ctl_table brnf_table[] = {
{
- .ctl_name = NET_BRIDGE_NF_CALL_ARPTABLES,
.procname = "bridge-nf-call-arptables",
.data = &brnf_call_arptables,
.maxlen = sizeof(int),
@@ -912,7 +911,6 @@
.proc_handler = &brnf_sysctl_call_tables,
},
{
- .ctl_name = NET_BRIDGE_NF_CALL_IPTABLES,
.procname = "bridge-nf-call-iptables",
.data = &brnf_call_iptables,
.maxlen = sizeof(int),
@@ -920,7 +918,6 @@
.proc_handler = &brnf_sysctl_call_tables,
},
{
- .ctl_name = NET_BRIDGE_NF_CALL_IP6TABLES,
.procname = "bridge-nf-call-ip6tables",
.data = &brnf_call_ip6tables,
.maxlen = sizeof(int),
@@ -928,7 +925,6 @@
.proc_handler = &brnf_sysctl_call_tables,
},
{
- .ctl_name = NET_BRIDGE_NF_FILTER_VLAN_TAGGED,
.procname = "bridge-nf-filter-vlan-tagged",
.data = &brnf_filter_vlan_tagged,
.maxlen = sizeof(int),
@@ -936,7 +932,6 @@
.proc_handler = &brnf_sysctl_call_tables,
},
{
- .ctl_name = NET_BRIDGE_NF_FILTER_PPPOE_TAGGED,
.procname = "bridge-nf-filter-pppoe-tagged",
.data = &brnf_filter_pppoe_tagged,
.maxlen = sizeof(int),
--
Joseph Fannin
[email protected]
[email protected] (Joseph Fannin) writes:
> The netfilter sysctls in the bridging code don't set strategy routines:
>
> sysctl table check failed: /net/bridge/bridge-nf-call-arptables .3.10.1 Missing
> strategy
> sysctl table check failed: /net/bridge/bridge-nf-call-iptables .3.10.2 Missing
> strategy
> sysctl table check failed: /net/bridge/bridge-nf-call-ip6tables .3.10.3 Missing
> strategy
> sysctl table check failed: /net/bridge/bridge-nf-filter-vlan-tagged .3.10.4
> Missing strategy
> sysctl table check failed: /net/bridge/bridge-nf-filter-pppoe-tagged .3.10.5
> Missing strategy
>
> These binary sysctls can't work. The binary sysctl numbers of
> other netfilter sysctls with this problem are being removed. These
> need to go as well.
>
> Signed-off-by: Joseph Fannin <[email protected]>
Acked-by: "Eric W. Biederman" <[email protected]>
> ---
>
> This *really* needs to be reviewed by someone who knows what this
> is all about. I've simply extended the removal of netfilter binary
> sysctl numbers so I could load bridge.ko. I don't particularly
> care if I get attributed for this fix or any of that.
>
> It Works For Me.
Hmm. This is an interesting case. The proc method is forcing
the integer to be either 0 or 1 in a racy fashion. But none of the
users appear to depend upon that.
So this is the least broken set of binary sysctls I have seen caught
by my check.
A really good fix would be to remove the binary side and then to
modify brnf_sysctl_call_tables to allocate a temporary ctl_table and
integer on the stack and only set ctl->data after we have normalized
the written value. But since in practice nothing cares about
the race a better fix probably isn't worth it.
Eric
Linus Torvalds writes:
> It would indeed be nice if we could just take CPU's down early (while
> everything is working), and run the whole suspend code with just one CPU,
> rather than having to worry about the ordering between CPU and device
> takedown.
That is certainly what we want to do on powerpc.
Paul.
On 09/21/2007 01:31 AM, Matt Mackall wrote:
> On Fri, Sep 21, 2007 at 01:03:04AM +0200, Andi Kleen wrote:
>>> It's broken for me.
>>>
>>> 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
>>> -rc4-mm1: solid lock on X shutdown, random solid locks about
>>> once every four hours
>>> -rc6-mm1: solid lock on X startup
>>> +your patch: screen goes black, turns off and on a few times during
>>> startup, can reboot with sysrq-b
>> Does it work with my simple dumb patch instead of Dave's ?
>
> Sorry, forgot to mention: your one-liner flush also doesn't work (same
> behavior).
Just an idea, if you enable LIST_DEBUG, it won't spit anything out after the one
of patches applied, right?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Thu, 2007-09-20 at 19:35 -0400, Len Brown wrote:
> > > (Btw, the above commit message points to just my response with a testing
> > > patch to the real email: the actual explanation of the INSANE ordering is
> > > from Len Brown in
> > >
> > > https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
> > >
> > > and there Len claims that we *must* wake up CPU's early).
> >
> > ..and points to commit 1a38416cea8ac801ae8f261074721f35317613dc which in
> > turn talks about http://bugzilla.kernel.org/show_bug.cgi?id=5651
> >
> > Howerver, it seems that bugzilla entry may just be bogus. It talks about
> > "it appears that some firmware in the future may depend on that sequence
> > for correction operation"
> >
> > Len, Shaohua, what are the real issues here?
>
> Intel's reference BIOS for Core Duo performs some re-initialization
> in _WAK that will get blow away if INIT follows _WAK.
> IIR, it is related to re-initializing the thermal sensors.
> I opened bug 5651 when the BIOS team informed me of this issue.
>
> Yes, bringing a processor offline and then online again w/o
> an intervening suspend or reset would not evaluate _WAK,
> and thus may still run into the issue.
If this is true, then we should disable the sys/..../cpu/online entry
right away.
tglx
On Fri, 2007-09-21 at 14:51 +1000, Paul Mackerras wrote:
> Linus Torvalds writes:
>
> > It would indeed be nice if we could just take CPU's down early (while
> > everything is working), and run the whole suspend code with just one CPU,
> > rather than having to worry about the ordering between CPU and device
> > takedown.
>
> That is certainly what we want to do on powerpc.
I would have expected that we do it exactly this way and it took me by
surprise, that we do not.
tglx
Thomas,
On Thursday, 20 September 2007 23:53, Thomas Gleixner wrote:
> Rafael,
>
> On Thu, 2007-09-20 at 23:45 +0200, Rafael J. Wysocki wrote:
> > > We disable everything in device_suspend()
> >
> > No, we don't. sysdevs are _not_ suspended in device_suspend().
> > They are suspended in device_power_down(), which is called
> > _after_ disable_nonboot_cpus() (from swsusp_suspend()).
> >
> > > including timekeeping,
> >
> > No, the timekeeping is suspended in device_power_down() (or at least it should
> > be).
>
> Damn, you are right. Reading through 30 different logs confused me.
>
> > > enable_nonboot_cpus();
> >
> > Actually, we can't do this here, because of ACPI and some interrupt handling
> > related problems. Unfortunately, platform_finish() needs to go _after_
> > enable_nonboot_cpus() and device_resume() needs to go after platform_finish().
> > Analogously, disable_nonboot_cpus() has to go after platform_prepare().
> >
> > Otherwise, some systems will break.
>
> Well, I don't buy this one. The system would break in the same way, when
> I take CPU#1 offline before I initiate the suspend.
>
> > > and non-surprisingly the "my VAIO needs help from keyboard" problem went
> > > away immediately. See patch below. (on top of rc7-hrt1, -mm1 does not
> > > work at all on my VAIO due to some yet not identified wreckage)
> >
> > Hm, I really don't know why it helps, but that's not because of the timekeeping
> > suspend, IMO.
>
> It is related. We rely on some subtle thing which is not up when we
> resume the non boot cpu.
>
> > > I did not yet look into the suspend to ram code, but I guess that there
> > > is an equivalent problem.
> >
> > Yes, the code ordering is the same, but it's not totally wrong, IMHO.
> >
> > > But I have no idea why this affects Andrews jinxed VAIO (UP machine),
> > > though I suspect that we have more timekeeping/timer depending code
> > > somewhere waiting to bite us.
> >
> > That's possible.
> >
> > > Also I still need to debug why the HIBERNATION_TEST code path (which has
> > > a msleep(5000) in it) does not fail,
> >
> > See above. :-)
>
> Yes. It makes sense. When I change the TEST code path to:
>
> - printk("swsusp debug: Waiting for 5 seconds.\n");
> - msleep(5000);
> + printk("swsusp debug: before swsusp_suspend\n");
> + error = swsusp_suspend();
>
> then I have the same effect as I get from real hibernation. And we
> actually shut down time keeping somewhere in that code path.
>
> ACPI: PCI interrupt for device 0000:00:1b.0 disabled
> swsusp debug: before swsusp_suspend
> Suspend timekeeping
> swsusp: critical section:
> swsusp: Need to copy 112429 pages
> swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
> swsusp: critical section: done (112429 pages copied)
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> Resume timekeeping
> ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 16
> -> works fine
>
> This is with my patch applied. Without that I get:
>
> CPU1 is down
> swsusp debug: before swsusp_suspend
> Suspend timekeeping
> swsusp: critical section:
> swsusp: Need to copy 112429 pages
> swsusp: Normal pages needed: 35399 + 1024 + 40, available pages: 193876
> swsusp: critical section: done (112429 pages copied)
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> Resume timekeeping
> Enabling non-boot CPUs
> --> Waits for ever until a key is pressed
Can you please run one more test?
Namely, without your debugging code in disk.c, please try
# echo shutdown > /sys/power/disk
# echo disk > /sys/power/state
Greetings,
Rafael
On Friday, 21 September 2007 09:56, Thomas Gleixner wrote:
> On Thu, 2007-09-20 at 19:35 -0400, Len Brown wrote:
> > > > (Btw, the above commit message points to just my response with a testing
> > > > patch to the real email: the actual explanation of the INSANE ordering is
> > > > from Len Brown in
> > > >
> > > > https://lists.linux-foundation.org/pipermail/linux-pm/2006-November/004161.html
> > > >
> > > > and there Len claims that we *must* wake up CPU's early).
> > >
> > > ..and points to commit 1a38416cea8ac801ae8f261074721f35317613dc which in
> > > turn talks about http://bugzilla.kernel.org/show_bug.cgi?id=5651
> > >
> > > Howerver, it seems that bugzilla entry may just be bogus. It talks about
> > > "it appears that some firmware in the future may depend on that sequence
> > > for correction operation"
> > >
> > > Len, Shaohua, what are the real issues here?
> >
> > Intel's reference BIOS for Core Duo performs some re-initialization
> > in _WAK that will get blow away if INIT follows _WAK.
> > IIR, it is related to re-initializing the thermal sensors.
> > I opened bug 5651 when the BIOS team informed me of this issue.
> >
> > Yes, bringing a processor offline and then online again w/o
> > an intervening suspend or reset would not evaluate _WAK,
> > and thus may still run into the issue.
>
> If this is true, then we should disable the sys/..../cpu/online entry
> right away.
Or drop the execution of _INI from the CPU hotplug, if possible ...
Greetings,
Rafael
Rafael,
On Fri, 2007-09-21 at 00:30 +0200, Rafael J. Wysocki wrote:
> > -ETOOTIRED led me too a wrong conclusion, but still it is a valuable
> > hint that this change is making things work again.
>
> Yes, it is.
>
> > I need to go down into the details of the swsusp_suspend() code path to
> > figure out, what's the root cause.
>
> If you need any help from me with that, please let me know.
I'm zooming in. It seems, that the ACPI idle code plays tricks with us.
After debugging the swsusp_suspend() code path I figured out, that we
end up in C2 or deeper power states while we run the suspend code. The
same happens when we come back on resume. It looks like we disable stuff
in the ACPI BIOS, which makes the C2 and deeper power states misbehave.
I hacked the idle loop arch code to use halt() right before we call
device_suspend() and switch back to the acpi idle code right after
device_resume(). This solves the problem as well.
Len, any opinion on this one ?
tglx
* Guennadi Liakhovetski ([email protected]) wrote:
> Provide {enable,disable}_irq_wakeup dummies for undefined
> CONFIG_GENERIC_HARDIRQS case. Completely untested, as I don't even have
> cross-compilers for platforms without CONFIG_GENERIC_HARDIRQS.
>
> Signed-off-by: Guennadi Liakhovetski <[email protected]>
>
It builds fine now.
Tested-by: Mathieu Desnoyers <[email protected]>
> ---
>
> On Tue, 18 Sep 2007, Andrew Morton wrote:
>
> > On Tue, 18 Sep 2007 16:54:03 -0400
> > Mathieu Desnoyers <[email protected]> wrote:
> >
> > > I got the following error when building 2.6.23-rc6-mm1 on sparc:
> > >
> > >
> > > /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/bin/sparc-unknown-linux-gnu-gcc -Wp,-MD,drivers/serial/.serial_core.o.d -nostdinc -isystem /opt/crosstool/gcc-4.1.1-glibc-2.3.6/sparc-unknown-linux-gnu/lib/gcc/sparc-unknown-linux-gnu/4.1.1/include -D__KERNEL__ -Iinclude -Iinclude2 -I/home/compudj/git/linux-2.6-lttng/include -include include/linux/autoconf.h -I/home/compudj/git/linux-2.6-lttng/drivers/serial -Idrivers/serial -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 -fomit-frame-pointer -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial_core)" -D"KBUILD_MODNAME=KBUILD_STR(serial_core)" -c -o drivers/serial/.tmp_serial_core.o /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c
> > > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_suspend_port':
> > > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:1980: error: implicit declaration of function 'enable_irq_wake'
> > > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c: In function 'uart_resume_port':
> > > /home/compudj/git/linux-2.6-lttng/drivers/serial/serial_core.c:2035: error: implicit declaration of function 'disable_irq_wake'
> >
> > hm, I wonder why I didn't hit that.
> >
> > enable_irq_wake() was added by wake-up-from-a-serial-port.patch
> >
> > I note that git-input adds a call too, and might have a problem
> > with !CONFIG_GENERIC_HARDIRQS.
> >
> > Not sure what the best fix is here. We could sprinkle ifdefs all
> > over the code, or just add the suitable empty stubs for enable_irq_wake(),
> > etc.
>
> diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
> index 5323f62..ecade41 100644
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -205,6 +205,9 @@ static inline int disable_irq_wake(unsigned int irq)
> enable_irq(irq)
> # endif
>
> +#define enable_irq_wake(irq) ({ (void)(irq); 0; })
> +#define disable_irq_wake(irq) ({ (void)(irq); 0; })
> +
> #endif /* CONFIG_GENERIC_HARDIRQS */
>
> #ifndef __ARCH_SET_SOFTIRQ_PENDING
--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
Thomas,
On Friday, 21 September 2007 14:59, Thomas Gleixner wrote:
> Rafael,
>
> On Fri, 2007-09-21 at 00:30 +0200, Rafael J. Wysocki wrote:
> > > -ETOOTIRED led me too a wrong conclusion, but still it is a valuable
> > > hint that this change is making things work again.
> >
> > Yes, it is.
> >
> > > I need to go down into the details of the swsusp_suspend() code path to
> > > figure out, what's the root cause.
> >
> > If you need any help from me with that, please let me know.
>
> I'm zooming in. It seems, that the ACPI idle code plays tricks with us.
> After debugging the swsusp_suspend() code path I figured out, that we
> end up in C2 or deeper power states while we run the suspend code. The
> same happens when we come back on resume. It looks like we disable stuff
> in the ACPI BIOS, which makes the C2 and deeper power states misbehave.
Hm, can you please run the test I've suggested in another branch of the
thread, ie.
# echo shutdown > /sys/power/disk
# echo disk > /sys/power/state
without your debugging code in disk.c?
This makes the hibernation code omit the major ACPI hooks, so if it works,
we'll know that these hooks are responsible for the problem.
> I hacked the idle loop arch code to use halt() right before we call
> device_suspend() and switch back to the acpi idle code right after
> device_resume(). This solves the problem as well.
Well, that seems less intrusive than changing the code ordering right before
the major kernel release, but I think we should do our best to understand what
_exactly_ is happening here.
Greetings,
Rafael
Rafael,
On Fri, 2007-09-21 at 16:20 +0200, Rafael J. Wysocki wrote:
> > > If you need any help from me with that, please let me know.
> >
> > I'm zooming in. It seems, that the ACPI idle code plays tricks with us.
> > After debugging the swsusp_suspend() code path I figured out, that we
> > end up in C2 or deeper power states while we run the suspend code. The
> > same happens when we come back on resume. It looks like we disable stuff
> > in the ACPI BIOS, which makes the C2 and deeper power states misbehave.
>
> Hm, can you please run the test I've suggested in another branch of the
> thread, ie.
>
> # echo shutdown > /sys/power/disk
> # echo disk > /sys/power/state
>
> without your debugging code in disk.c?
>
> This makes the hibernation code omit the major ACPI hooks, so if it works,
> we'll know that these hooks are responsible for the problem.
Yes, this works fine. We still go into C3, but this seems not longer to
brick the box.
> > I hacked the idle loop arch code to use halt() right before we call
> > device_suspend() and switch back to the acpi idle code right after
> > device_resume(). This solves the problem as well.
>
> Well, that seems less intrusive than changing the code ordering right before
> the major kernel release, but I think we should do our best to understand what
> _exactly_ is happening here.
I found some other subtle thinko in the clock events code while I was
heading down the swsusp_suspend code path. I wait for confirmation that
it does not brick some endangered boxen, though. Still with this change
in the clock events code, my VAIO goes into C2 or C3 and causes the box
to wait for a helping keystroke.
The correct solution would be, that the ACPI code ignores the lower
C-states during suspend / resume. I simply rmmod'ed the processor module
before suspend and the problem is solved as well. The cpuidle patches
make this problem more prominent due to the possible more direct switch
into lower power states, when we wait for a long time on something.
I think we really should not fiddle with the various cpu states during
the critical parts of suspend / resume. Let's keep it simple. We have
the same policy during boot and I think the suspend / resume critical
parts have similar constraints.
tglx
On Thu, 20 Sep 2007 17:06:05 CDT, Matt Mackall said:
> On Thu, Sep 20, 2007 at 11:42:29AM +1000, Dave Airlie wrote:
> > I've attached a more complicated patch that does a 2 stage effort to
> > unmapping and freeing pages. My kernel no longer hangs with this
> > patch...
> >
> > Jiri can you confirm?
>
> It's broken for me.
>
> 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
> -rc4-mm1: solid lock on X shutdown, random solid locks about
> once every four hours
> -rc6-mm1: solid lock on X startup
> +your patch: screen goes black, turns off and on a few times during
> startup, can reboot with sysrq-b
Hmm.. maybe I'm chasing a different bug manifested by the same patch. For me,
it's been a solid lockup at X startup since -rc3-mm1, and this patch doesn't
change matters.
On Fri, 21 Sep 2007 01:44:41 +0200, Andi Kleen said:
> Full bisect needed then I guess. Ok as a short cut you could perhaps
> the cpa-* patches first (might need to drop some later depending
> patches), then the drm and agp trees.
The later depending patches:
x86_64-mm-cpa-clflush.patch
x86_64-mm-cpa-cleanup.patch
x86_64-mm-cpa-einval.patch
x86_64-mm-cpa-arch-macro.patch
intel-iommu-clflush_cache_range-now-takes-size-param.patch
On 09/21/2007 07:16 PM, [email protected] wrote:
> On Thu, 20 Sep 2007 17:06:05 CDT, Matt Mackall said:
>> 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
>> -rc4-mm1: solid lock on X shutdown, random solid locks about
>> once every four hours
>> -rc6-mm1: solid lock on X startup
>> +your patch: screen goes black, turns off and on a few times during
>> startup, can reboot with sysrq-b
>
> Hmm.. maybe I'm chasing a different bug manifested by the same patch. For me,
> it's been a solid lockup at X startup since -rc3-mm1, and this patch doesn't
> change matters.
This patch probably changes behaviour how the pages are queued on the list
somehow. Maybe it's insane to suggest everybody with similar problem to try
LIST_DEBUG, but just give it a try after having one of the patches applied ;).
(Or have you tried yet?)
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Fri, 21 Sep 2007 19:30:04 +0200, Jiri Slaby said:
> On 09/21/2007 07:16 PM, [email protected] wrote:
> > On Thu, 20 Sep 2007 17:06:05 CDT, Matt Mackall said:
> >> 2.6.23-rc3-mm1: solid lock on X shutdown (noticed when upgrading)
> >> -rc4-mm1: solid lock on X shutdown, random solid locks about
> >> once every four hours
> >> -rc6-mm1: solid lock on X startup
> >> +your patch: screen goes black, turns off and on a few times during
> >> startup, can reboot with sysrq-b
> >
> > Hmm.. maybe I'm chasing a different bug manifested by the same patch. For me,
> > it's been a solid lockup at X startup since -rc3-mm1, and this patch doesn't
> > change matters.
>
> This patch probably changes behaviour how the pages are queued on the list
> somehow. Maybe it's insane to suggest everybody with similar problem to try
> LIST_DEBUG, but just give it a try after having one of the patches applied ;).
> (Or have you tried yet?)
Haven't tried LIST_DEBUG yet. I'm spending most of the weekend camping, so
will likely be unable to test that until Monday-ish (unless I get lucky and can
get a test in during the next 2 hours)...
On Friday, 21 September 2007 18:27, Thomas Gleixner wrote:
> Rafael,
>
> On Fri, 2007-09-21 at 16:20 +0200, Rafael J. Wysocki wrote:
> > > > If you need any help from me with that, please let me know.
> > >
> > > I'm zooming in. It seems, that the ACPI idle code plays tricks with us.
> > > After debugging the swsusp_suspend() code path I figured out, that we
> > > end up in C2 or deeper power states while we run the suspend code. The
> > > same happens when we come back on resume. It looks like we disable stuff
> > > in the ACPI BIOS, which makes the C2 and deeper power states misbehave.
> >
> > Hm, can you please run the test I've suggested in another branch of the
> > thread, ie.
> >
> > # echo shutdown > /sys/power/disk
> > # echo disk > /sys/power/state
> >
> > without your debugging code in disk.c?
> >
> > This makes the hibernation code omit the major ACPI hooks, so if it works,
> > we'll know that these hooks are responsible for the problem.
>
> Yes, this works fine. We still go into C3, but this seems not longer to
> brick the box.
>
> > > I hacked the idle loop arch code to use halt() right before we call
> > > device_suspend() and switch back to the acpi idle code right after
> > > device_resume(). This solves the problem as well.
> >
> > Well, that seems less intrusive than changing the code ordering right before
> > the major kernel release, but I think we should do our best to understand what
> > _exactly_ is happening here.
>
> I found some other subtle thinko in the clock events code while I was
> heading down the swsusp_suspend code path. I wait for confirmation that
> it does not brick some endangered boxen, though. Still with this change
> in the clock events code, my VAIO goes into C2 or C3 and causes the box
> to wait for a helping keystroke.
>
> The correct solution would be, that the ACPI code ignores the lower
> C-states during suspend / resume.
Yes, certainly.
> I simply rmmod'ed the processor module before suspend and the problem is
> solved as well. The cpuidle patches make this problem more prominent due
> to the possible more direct switch into lower power states, when we wait for
> a long time on something.
So, perhaps we can add a .suspend()/.resume() routines to the processor driver
and use them to disable/enable the cpuidle functionality during a
suspend/resume?
> I think we really should not fiddle with the various cpu states during
> the critical parts of suspend / resume. Let's keep it simple. We have
> the same policy during boot and I think the suspend / resume critical
> parts have similar constraints.
I completely agree.
Greetings,
Rafael
Rafael,
On Fri, 2007-09-21 at 21:20 +0200, Rafael J. Wysocki wrote:
> On Friday, 21 September 2007 18:27, Thomas Gleixner wrote:
> > I simply rmmod'ed the processor module before suspend and the problem is
> > solved as well. The cpuidle patches make this problem more prominent due
> > to the possible more direct switch into lower power states, when we wait for
> > a long time on something.
>
> So, perhaps we can add a .suspend()/.resume() routines to the processor driver
> and use them to disable/enable the cpuidle functionality during a
> suspend/resume?
http://tglx.de/private/tglx/p.diff
untested yet, but I'm on the way to do that :)
tglx
Thomas,
On Friday, 21 September 2007 21:16, Thomas Gleixner wrote:
> Rafael,
>
> On Fri, 2007-09-21 at 21:20 +0200, Rafael J. Wysocki wrote:
> > On Friday, 21 September 2007 18:27, Thomas Gleixner wrote:
> > > I simply rmmod'ed the processor module before suspend and the problem is
> > > solved as well. The cpuidle patches make this problem more prominent due
> > > to the possible more direct switch into lower power states, when we wait for
> > > a long time on something.
> >
> > So, perhaps we can add a .suspend()/.resume() routines to the processor driver
> > and use them to disable/enable the cpuidle functionality during a
> > suspend/resume?
>
> http://tglx.de/private/tglx/p.diff
>
> untested yet, but I'm on the way to do that :)
Heh, I thought of the same thing. :-)
Greetings,
Rafael
On Fri, 21 Sep 2007 19:30:04 +0200, Jiri Slaby said:
> On 09/21/2007 07:16 PM, [email protected] wrote:
> > Hmm.. maybe I'm chasing a different bug manifested by the same patch. For me,
> > it's been a solid lockup at X startup since -rc3-mm1, and this patch doesn't
> > change matters.
>
> This patch probably changes behaviour how the pages are queued on the list
> somehow. Maybe it's insane to suggest everybody with similar problem to try
> LIST_DEBUG, but just give it a try after having one of the patches applied ;).
> (Or have you tried yet?)
OK, had a chance to test it, with Dave Airlie's AGP patch, and here's what it hit:
[ 198.925000] list_del corruption. next->prev should be ffff81000118f178, but was ffffffff8067e050
[ 198.925000] ------------[ cut here ]------------
[ 198.925000] kernel BUG at lib/list_debug.c:72!
[ 198.925000] invalid opcode: 0000 [1] PREEMPT SMP
[ 198.925000] last sysfs file: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-adapter/i2c-1/i2c-1/dev
[ 198.925000] CPU 1
[ 198.925000] Modules linked in:
(Yes, I wish I got a backtrace, but that's as long as it lived. Apparently,
the netconsole stuff actually writing this stuff out was over on CPU0 which then
proceeded to croak).
Some odd SMP-related race? (x86_64 kernel on a Core2 Duo T7200, if it matters)
On 09/21/2007 09:33 PM, [email protected] wrote:
> On Fri, 21 Sep 2007 19:30:04 +0200, Jiri Slaby said:
>> On 09/21/2007 07:16 PM, [email protected] wrote:
>
>>> Hmm.. maybe I'm chasing a different bug manifested by the same patch. For me,
>>> it's been a solid lockup at X startup since -rc3-mm1, and this patch doesn't
>>> change matters.
>> This patch probably changes behaviour how the pages are queued on the list
>> somehow. Maybe it's insane to suggest everybody with similar problem to try
>> LIST_DEBUG, but just give it a try after having one of the patches applied ;).
>> (Or have you tried yet?)
>
> OK, had a chance to test it, with Dave Airlie's AGP patch, and here's what it hit:
>
> [ 198.925000] list_del corruption. next->prev should be ffff81000118f178, but was ffffffff8067e050
> [ 198.925000] ------------[ cut here ]------------
> [ 198.925000] kernel BUG at lib/list_debug.c:72!
> [ 198.925000] invalid opcode: 0000 [1] PREEMPT SMP
> [ 198.925000] last sysfs file: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/i2c-adapter/i2c-1/i2c-1/dev
> [ 198.925000] CPU 1
> [ 198.925000] Modules linked in:
>
> (Yes, I wish I got a backtrace, but that's as long as it lived. Apparently,
> the netconsole stuff actually writing this stuff out was over on CPU0 which then
> proceeded to croak).
>
> Some odd SMP-related race? (x86_64 kernel on a Core2 Duo T7200, if it matters)
It is rather the other user who adds the page to some other list while being at
deferred_pages list. Could you try my debug patch
(http://lkml.org/lkml/2007/9/19/141)?
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On 09/21/2007 09:38 PM, Jiri Slaby wrote:
> It is rather the other user who adds the page to some other list while being at
> deferred_pages list. Could you try my debug patch
> (http://lkml.org/lkml/2007/9/19/141)?
or the whitespace non-damaged version:
http://www.fi.muni.cz/~xslaby/sklad/pageattr_debug
On Thu, Sep 20, 2007 at 12:31:39PM +0100, Hugh Dickins wrote:
> On Wed, 19 Sep 2007, Peter Zijlstra wrote:
> > On Wed, 19 Sep 2007 21:03:19 +0100 (BST) Hugh Dickins
> > <[email protected]> wrote:
> >
> > > On Wed, 19 Sep 2007, Andy Whitcroft wrote:
> > > > Seems I have a case of a largish i386 NUMA (NUMA-Q) which has a mkfs
> > > > stuck in a 'D' wait:
> > > >
> > > > =======================
> > > > mkfs.ext2 D c10220f4 0 6233 6222
> > > > [<c12194da>] io_schedule_timeout+0x1e/0x28
> > > > [<c10454b4>] congestion_wait+0x62/0x7a
> > > > [<c10402af>] get_dirty_limits+0x16a/0x172
> > > > [<c104040b>] balance_dirty_pages+0x154/0x1be
> > > > [<c103bda3>] generic_perform_write+0x168/0x18a
> > > > [<c103be38>] generic_file_buffered_write+0x73/0x107
> > > > [<c103c346>] __generic_file_aio_write_nolock+0x47a/0x4a5
> > > > [<c103c3b9>] generic_file_aio_write_nolock+0x48/0x9b
> > > > [<c105d2d6>] do_sync_write+0xbf/0xfc
> > > > [<c105d3a0>] vfs_write+0x8d/0x108
> > > > [<c105d4c3>] sys_write+0x41/0x67
> > > > [<c100260a>] syscall_call+0x7/0xb
> > > > =======================
> > >
> > > [edited out some bogus lines from stale stack]
> > >
> > > > This machine and others have run numerous test runs on this kernel and
> > > > this is the first time I've see a hang like this.
> > >
> > > I've been seeing something like that on 4-way PPC64: in my case I've
> > > shells hanging in D state trying to append to kernel build log on ext3
> > > (the builds themselves going on elsewhere, in tmpfs): one of the shells
> > > holding i_mutex and stuck doing congestion_waits from balance_dirty_pages.
> > >
> > > > I wonder if this is the ultimate cause of the couple of mainline hangs
> > > > which were seen, but not diagnosed.
> > >
> > > My *guess* is that this is peculiar to 2.6.23-rc6-mm1, and from Peter's
> > > mm-per-device-dirty-threshold.patch. printks showed bdi_nr_reclaimable
> > > 0, bdi_nr_writeback 24, bdi_thresh 1 in balance_dirty_pages (though I've
> > > not done enough to check if those really correlate with the hangs),
> > > and I'm wondering if the bdi_stat_sum business is needed on the
> > > !nr_reclaimable path.
> >
> > FWIW my tired brain seems to think it the !nr_reclaimable path needs it
> > just the same. So this change seems to make sense for now :-)
>
> Thanks.
>
> > > So I'm running now with the patch below, good so far, but can't judge
> > > until tomorrow whether it has actually addressed the problem seen.
>
> Last night's run went well: that patch does indeed seem to have fixed it.
> Looking at the timings (some variance but _very_ much less than the night
> before), there does appear to be some other occasional slight slowdown -
> but I've no reason to suspect your patch for it, nor to suppose it's
> something new: it may just be an artifact of my heavy swap thrashing.
>
>
> [PATCH mm] mm per-device dirty threshold fix
>
> Fix occasional hang when a task couldn't get out of balance_dirty_pages:
> mm-per-device-dirty-threshold.patch needs to reevaluate bdi_nr_writeback
> across all cpus when bdi_thresh is low, even in the case when there was
> no bdi_nr_reclaimable.
>
> Signed-off-by: Hugh Dickins <[email protected]>
Thank you Hugh. I ran into similar problems with many dd(large file)
operations. This patch seems to fix it.
But now my desktop was locked up again when writing a lot of small
files. The problem is repeatable with the command
$ ketchup 2.6.23-rc6-mm1
I writeup two debug patches:
---
mm/page-writeback.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- linux-2.6.22.orig/mm/page-writeback.c
+++ linux-2.6.22/mm/page-writeback.c
@@ -426,6 +426,14 @@ static void balance_dirty_pages(struct a
bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
}
+ printk(KERN_DEBUG "balance_dirty_pages written %lu %lu congested %d limits %lu %lu %lu %lu %lu %ld\n",
+ pages_written,
+ write_chunk - wbc.nr_to_write,
+ bdi_write_congested(bdi),
+ background_thresh, dirty_thresh,
+ bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
+ bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
+
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
break;
if (pages_written >= write_chunk)
---
mm/page-writeback.c | 5 +++++
1 file changed, 5 insertions(+)
--- linux-2.6.22.orig/mm/page-writeback.c
+++ linux-2.6.22/mm/page-writeback.c
@@ -373,6 +373,7 @@ static void balance_dirty_pages(struct a
long bdi_thresh;
unsigned long pages_written = 0;
unsigned long write_chunk = sync_writeback_pages();
+ int i = 0;
struct backing_dev_info *bdi = mapping->backing_dev_info;
@@ -434,6 +435,10 @@ static void balance_dirty_pages(struct a
bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
+ if (i++ > 200) {
+ printk(KERN_WARNING "balance_dirty_pages force break\n");
+ break;
+ }
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
break;
if (pages_written >= write_chunk)
Here are the output messages:
[ 1305.361511] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.361519] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.361526] balance_dirty_pages written 3 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.461889] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.461922] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.461930] balance_dirty_pages written 3 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.562267] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.562275] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.562283] balance_dirty_pages written 3 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.662719] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.662797] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.662816] balance_dirty_pages written 3 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.662818] balance_dirty_pages force break
[ 1305.667031] balance_dirty_pages written 1 1 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.682925] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.682929] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.682934] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.783100] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.783132] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.783140] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.883478] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.883509] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.883517] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.983896] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.983904] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1305.983912] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.006108] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.006116] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.006123] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.007122] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.007129] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.007136] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.024303] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.024307] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.024311] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.124486] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.124516] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.124524] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.224742] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.224750] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.224758] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.247682] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.247690] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.247697] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.248682] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.248689] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.248697] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.344993] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.345001] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.345008] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.445220] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.445257] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.445265] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.545628] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.545636] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.545644] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.646110] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.646200] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.646205] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.746427] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.746458] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.746466] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.846845] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.846880] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.846888] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.947430] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.947439] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1306.947446] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.047803] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.047837] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.047845] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.148199] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.148208] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.148215] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.248577] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.248607] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.248615] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.348996] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.349026] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.349034] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.449380] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.449410] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.449418] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.549751] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.549759] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.549767] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.650149] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.650183] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.650190] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.750530] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.750538] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.750546] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.850927] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.850962] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.850969] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.951391] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.951424] balance_dirty_pages written 2 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1307.951432] balance_dirty_pages written 1 0 congested 0 limits 48869 195477 5801 5760 288 -247
[ 1308.051824] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.051886] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.051894] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.152223] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.152256] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.152264] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.252599] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.252607] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.252615] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.352997] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.353005] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.353013] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.453382] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.453412] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.453420] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.553754] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.553761] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.553769] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.654103] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.654147] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.654155] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.754209] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.754248] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.754255] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.844406] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.844444] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.844448] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.944852] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.944860] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.944867] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.995227] balance_dirty_pages written 0 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.995231] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1308.995235] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.005342] balance_dirty_pages written 2 2 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.005350] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.005358] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015297] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015301] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015305] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015412] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015419] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.015427] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.115487] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.115518] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.115526] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.215864] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.215872] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.215879] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.316242] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.316250] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.316257] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.416642] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.416672] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.416680] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.517019] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.517027] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.517034] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.617417] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.617425] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.617432] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.717936] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.717978] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.717984] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.818175] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.818182] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.818190] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.918592] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.918599] balance_dirty_pages written 2 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1309.918607] balance_dirty_pages written 1 0 congested 0 limits 48869 195478 5801 5760 288 -247
[ 1310.019012] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.019043] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.019051] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.119388] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.119396] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.119403] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.219766] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.219774] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.219781] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.320205] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.320239] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.320246] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.420603] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.420611] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.420618] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.520981] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.520988] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.520996] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.621359] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.621367] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.621374] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.721914] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.721947] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.721961] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.822156] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.822191] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.822199] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.922554] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.922585] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1310.922592] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.022993] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.023002] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.023009] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.123330] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.123364] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.123372] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.223506] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.223514] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.223521] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.313664] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.313672] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.313679] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.413853] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.413862] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.413870] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.514198] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.514230] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.514238] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.614576] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.614584] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.614591] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.715096] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.715105] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.715113] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.815333] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.815364] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.815372] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.915751] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.915759] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1311.915767] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.016129] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.016138] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.016145] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.116529] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.116563] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.116571] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.216904] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.216912] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.216919] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.317384] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.317392] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.317399] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.417763] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.417794] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.417802] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.518140] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.518148] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.518155] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.618538] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.618545] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.618553] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.719060] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.719100] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.719104] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.819315] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.819324] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.819331] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.919692] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.919700] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1312.919707] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.020193] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.020226] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.020233] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.120590] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.120620] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.120628] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.221008] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.221039] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.221047] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.321386] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.321416] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.321424] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.421764] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.421771] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.421779] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.522162] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.522196] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.522204] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.622581] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.622588] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.622596] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.722943] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.722987] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.723002] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.812976] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.823016] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.823024] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.913212] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.923271] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1313.923279] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.013607] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.023626] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.023634] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.113967] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.124031] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.124039] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.214366] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.224404] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.224412] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.314764] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.324823] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.324831] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.415182] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.425242] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.425250] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.515601] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.525660] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.525667] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.615999] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.626036] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.626043] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.716378] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.726591] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.726596] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.816777] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.826814] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.826822] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.917174] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.927233] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1314.927241] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.017674] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.027734] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.027742] balance_dirty_pages written 1 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.118091] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.128150] balance_dirty_pages written 2 0 congested 0 limits 48869 195479 5801 5760 288 -247
[ 1315.128153] balance_dirty_pages force break
Here are some messages when doing large dds:
[ 508.251270] balance_dirty_pages written 599 599 congested 0 limits 49798 199193 6816 1 0 6815
[ 509.170366] balance_dirty_pages written 1540 1540 congested 0 limits 49733 198933 6806 6528 1536 -1258
[ 509.370627] balance_dirty_pages written 1544 1544 congested 2 limits 49733 198933 7976 4584 1824 1568
[ 509.371882] balance_dirty_pages written 1544 1544 congested 2 limits 49733 198933 7999 3456 2904 1639
[ 511.733791] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 10999 18288 0 -7289
[ 511.735048] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 12012 16752 0 -4740
[ 511.736506] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 12306 15192 1056 -3942
[ 512.002169] balance_dirty_pages written 1547 1547 congested 2 limits 49726 198905 13471 12624 1848 -1001
[ 512.003795] balance_dirty_pages written 1540 1540 congested 2 limits 49723 198892 13470 11088 3384 -1002
[ 512.083517] balance_dirty_pages written 1540 1540 congested 2 limits 49712 198850 13572 9336 4992 -756
[ 512.085145] balance_dirty_pages written 1540 1540 congested 2 limits 49706 198825 13569 7800 6528 -759
[ 512.086773] balance_dirty_pages written 1540 1540 congested 2 limits 49702 198808 13568 6240 8064 -736
[ 512.184267] balance_dirty_pages written 1539 1539 congested 2 limits 49697 198791 13649 5592 8592 -535
[ 512.185903] balance_dirty_pages written 1540 1540 congested 2 limits 49694 198778 13649 4056 10152 -559
[ 512.187506] balance_dirty_pages written 1540 1540 congested 2 limits 49688 198753 13647 2496 11688 -537
[ 512.259848] balance_dirty_pages written 1546 1546 congested 2 limits 49682 198728 13769 744 13248 -223
[ 512.554646] balance_dirty_pages written 618 618 congested 2 limits 49678 198712 14242 1 13368 873
[ 512.585204] balance_dirty_pages written 794 794 congested 2 limits 49657 198630 14500 1 12936 1563
[ 527.714294] balance_dirty_pages written 1540 1540 congested 0 limits 49608 198432 29502 28080 0 1422
[ 529.298022] balance_dirty_pages written 1540 1540 congested 0 limits 49579 198318 30307 34704 0 -4397
[ 529.304975] balance_dirty_pages written 1539 1539 congested 0 limits 49575 198302 32451 30600 0 1851
[ 529.305205] balance_dirty_pages written 1538 1538 congested 0 limits 49576 198306 32571 30384 0 2187
[ 529.306988] balance_dirty_pages written 1537 1537 congested 0 limits 49580 198320 32702 30120 0 2582
[ 530.893830] balance_dirty_pages written 1541 1541 congested 0 limits 49553 198214 34216 35352 0 -1136
[ 530.893970] balance_dirty_pages written 1538 1538 congested 0 limits 49553 198214 34290 35160 0 -870
[ 530.899873] balance_dirty_pages written 1546 1546 congested 0 limits 49556 198227 36248 31248 0 5000
[ 530.900282] balance_dirty_pages written 1546 1546 congested 0 limits 49557 198231 36442 30864 0 5578
[ 530.900586] balance_dirty_pages written 1539 1539 congested 0 limits 49558 198235 36601 30552 0 6049
[ 532.343097] balance_dirty_pages written 1541 1541 congested 0 limits 49530 198120 37862 36072 0 1790
[ 532.343595] balance_dirty_pages written 1547 1547 congested 0 limits 49533 198132 38081 35640 0 2441
[ 533.872355] balance_dirty_pages written 1540 1540 congested 0 limits 49502 198009 41148 37224 0 3924
[ 542.566083] balance_dirty_pages written 1542 1542 congested 0 limits 49367 197469 51948 52680 0 -732
[ 542.567093] balance_dirty_pages written 1537 1537 congested 0 limits 49370 197482 52663 50952 0 1711
[ 542.586552] balance_dirty_pages written 1540 1540 congested 0 limits 49352 197410 54545 46032 0 8513
[ 542.606002] balance_dirty_pages written 1540 1540 congested 0 limits 49337 197350 55132 44520 0 10612
Hi,
On Thu, 20 Sep 2007, Alan Cox wrote:
>
> On Thu, 20 Sep 2007 14:13:15 +0100
> [email protected] (Mel Gorman) wrote:
>
> > PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
> > doesn't show up on other arches because this driver is specific to the
> > architecture.
> >
> > drivers/ata/pata_scc.c: In function `scc_bmdma_status'
>
> Its not been updated to match the libata core changes. Try something like
> this. Whoever is maintaining it should also remove the prereset cable handling
> code and use the proper cable detect method.
It appears you forgot to fix scc_std_softreset() and one of its callsites
in scc_bdma_stop(). A complete patch is attempted below -- please review.
[PATCH -mm] pata_scc: Keep up with libata core API changes
Little fixlets, that the build started erroring / warning about:
drivers/ata/pata_scc.c: In function 'scc_bmdma_status':
drivers/ata/pata_scc.c:734: error: structure has no member named 'active_tag'
drivers/ata/pata_scc.c: In function 'scc_pata_prereset':
drivers/ata/pata_scc.c:866: warning: passing arg 1 of 'ata_std_prereset' from incompatible pointer type
drivers/ata/pata_scc.c: In function 'scc_error_handler':
drivers/ata/pata_scc.c:908: warning: passing arg 2 of 'ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c:908: warning: passing arg 3 of 'ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c:908: warning: passing arg 5 of 'ata_bmdma_drive_eh' from incompatible pointer type
make[2]: *** [drivers/ata/pata_scc.o] Error 1
Signed-off-by: Satyam Sharma <[email protected]>
Cc: Alan Cox <[email protected]>
Cc: Mel Gorman <[email protected]>
---
Andrew, this includes (supercedes) the previous two ones from Mel / Alan.
drivers/ata/pata_scc.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff -ruNp a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
--- a/drivers/ata/pata_scc.c 2007-09-22 06:26:37.000000000 +0530
+++ b/drivers/ata/pata_scc.c 2007-09-22 08:04:42.000000000 +0530
@@ -594,16 +594,17 @@ static unsigned int scc_bus_softreset(st
* Note: Original code is ata_std_softreset().
*/
-static int scc_std_softreset (struct ata_port *ap, unsigned int *classes,
- unsigned long deadline)
+static int scc_std_softreset(struct ata_link *link, unsigned int *classes,
+ unsigned long deadline)
{
+ struct ata_port *ap = link->ap;
unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
unsigned int devmask = 0, err_mask;
u8 err;
DPRINTK("ENTER\n");
- if (ata_link_offline(&ap->link)) {
+ if (ata_link_offline(link)) {
classes[0] = ATA_DEV_NONE;
goto out;
}
@@ -692,7 +693,7 @@ static void scc_bmdma_stop (struct ata_q
printk(KERN_WARNING "%s: Internal Bus Error\n", DRV_NAME);
out_be32(bmid_base + SCC_DMA_INTST, INTSTS_BMSINT);
/* TBD: SW reset */
- scc_std_softreset(ap, &classes, deadline);
+ scc_std_softreset(&ap->link, &classes, deadline);
continue;
}
@@ -731,7 +732,7 @@ static u8 scc_bmdma_status (struct ata_p
void __iomem *mmio = ap->ioaddr.bmdma_addr;
u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
u32 int_status = in_be32(mmio + SCC_DMA_INTST);
- struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
+ struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
static int retry = 0;
/* return if IOS_SS is cleared */
@@ -860,10 +861,10 @@ static void scc_bmdma_freeze (struct ata
* @deadline: deadline jiffies for the operation
*/
-static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
+static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
{
- ap->cbl = ATA_CBL_PATA80;
- return ata_std_prereset(ap, deadline);
+ link->ap->cbl = ATA_CBL_PATA80;
+ return ata_std_prereset(link, deadline);
}
/**
@@ -874,8 +875,10 @@ static int scc_pata_prereset(struct ata_
* Note: Original code is ata_std_postreset().
*/
-static void scc_std_postreset (struct ata_port *ap, unsigned int *classes)
+static void scc_std_postreset(struct ata_link *link, unsigned int *classes)
{
+ struct ata_port *ap = link->ap;
+
DPRINTK("ENTER\n");
/* is double-select really necessary? */
On Thu, 20 Sep 2007, Satyam Sharma wrote:
>
> BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> IIRC I got build failures in:
> drivers/ata/pata_scc.c
http://lkml.org/lkml/2007/9/21/557
On Thu, 20 Sep 2007, Satyam Sharma wrote:
>
> BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> IIRC I got build failures in:
> drivers/md/raid6int8.c
This turned out to be a gcc bug -- I was using an old cross-compiler.
On Thu, 20 Sep 2007, Satyam Sharma wrote:
>
> BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> IIRC I got build failures in:
> drivers/net/spider_net.c
[PATCH -mm] spider_net: Misc build fixes after recent netdev stats changes
Unbreak the following:
drivers/net/spider_net.c: In function 'spider_net_release_tx_chain':
drivers/net/spider_net.c:818: error: 'dev' undeclared (first use in this function)
drivers/net/spider_net.c:818: error: (Each undeclared identifier is reported only once
drivers/net/spider_net.c:818: error: for each function it appears in.)
drivers/net/spider_net.c: In function 'spider_net_xmit':
drivers/net/spider_net.c:922: error: 'dev' undeclared (first use in this function)
drivers/net/spider_net.c: In function 'spider_net_pass_skb_up':
drivers/net/spider_net.c:1018: error: 'dev' undeclared (first use in this function)
drivers/net/spider_net.c: In function 'spider_net_decode_one_descr':
drivers/net/spider_net.c:1215: error: 'dev' undeclared (first use in this function)
make[2]: *** [drivers/net/spider_net.o] Error 1
Signed-off-by: Satyam Sharma <[email protected]>
---
drivers/net/spider_net.c | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff -ruNp a/drivers/net/spider_net.c b/drivers/net/spider_net.c
--- a/drivers/net/spider_net.c 2007-09-22 06:26:39.000000000 +0530
+++ b/drivers/net/spider_net.c 2007-09-22 12:12:23.000000000 +0530
@@ -795,6 +795,7 @@ spider_net_set_low_watermark(struct spid
static int
spider_net_release_tx_chain(struct spider_net_card *card, int brutal)
{
+ struct net_device *dev = card->netdev;
struct spider_net_descr_chain *chain = &card->tx_chain;
struct spider_net_descr *descr;
struct spider_net_hw_descr *hwdescr;
@@ -919,7 +920,7 @@ spider_net_xmit(struct sk_buff *skb, str
spider_net_release_tx_chain(card, 0);
if (spider_net_prepare_tx_descr(card, skb) != 0) {
- dev->stats.tx_dropped++;
+ netdev->stats.tx_dropped++;
netif_stop_queue(netdev);
return NETDEV_TX_BUSY;
}
@@ -979,16 +980,12 @@ static void
spider_net_pass_skb_up(struct spider_net_descr *descr,
struct spider_net_card *card)
{
- struct spider_net_hw_descr *hwdescr= descr->hwdescr;
- struct sk_buff *skb;
- struct net_device *netdev;
- u32 data_status, data_error;
-
- data_status = hwdescr->data_status;
- data_error = hwdescr->data_error;
- netdev = card->netdev;
+ struct spider_net_hw_descr *hwdescr = descr->hwdescr;
+ struct sk_buff *skb = descr->skb;
+ struct net_device *netdev = card->netdev;
+ u32 data_status = hwdescr->data_status;
+ u32 data_error = hwdescr->data_error;
- skb = descr->skb;
skb_put(skb, hwdescr->valid_size);
/* the card seems to add 2 bytes of junk in front
@@ -1015,8 +1012,8 @@ spider_net_pass_skb_up(struct spider_net
}
/* update netdevice statistics */
- dev->stats.rx_packets++;
- dev->stats.rx_bytes += skb->len;
+ netdev->stats.rx_packets++;
+ netdev->stats.rx_bytes += skb->len;
/* pass skb up to stack */
netif_receive_skb(skb);
@@ -1184,6 +1181,7 @@ static int spider_net_resync_tail_ptr(st
static int
spider_net_decode_one_descr(struct spider_net_card *card)
{
+ struct net_device *dev = card->netdev;
struct spider_net_descr_chain *chain = &card->rx_chain;
struct spider_net_descr *descr = chain->tail;
struct spider_net_hw_descr *hwdescr = descr->hwdescr;
@@ -1210,7 +1208,7 @@ spider_net_decode_one_descr(struct spide
(status == SPIDER_NET_DESCR_PROTECTION_ERROR) ||
(status == SPIDER_NET_DESCR_FORCE_END) ) {
if (netif_msg_rx_err(card))
- dev_err(&card->netdev->dev,
+ dev_err(&dev->dev,
"dropping RX descriptor with state %d\n", status);
dev->stats.rx_dropped++;
goto bad_desc;
On Thu, 20 Sep 2007, Satyam Sharma wrote:
>
> BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> IIRC I got build failures in:
> drivers/net/spider_net.c
Fixing the above showed up another problem in another file of the
same driver (drivers/net/spider_net_ethtool.c)
[PATCH -mm] spider_net_ethtool: Keep up with recent netdev stats changes
Unbreak the following:
drivers/net/spider_net_ethtool.c: In function 'spider_net_get_ethtool_stats':
drivers/net/spider_net_ethtool.c:160: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:161: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:162: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:163: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:164: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:165: error: structure has no member named 'netdev_stats'
drivers/net/spider_net_ethtool.c:166: error: structure has no member named 'netdev_stats'
make[2]: *** [drivers/net/spider_net_ethtool.o] Error 1
Also do another ARRAY_SIZE() cleanup while at it.
Signed-off-by: Satyam Sharma <[email protected]>
---
drivers/net/spider_net_ethtool.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff -ruNp a/drivers/net/spider_net_ethtool.c b/drivers/net/spider_net_ethtool.c
--- a/drivers/net/spider_net_ethtool.c 2007-09-22 06:26:39.000000000 +0530
+++ b/drivers/net/spider_net_ethtool.c 2007-09-22 12:43:51.000000000 +0530
@@ -28,8 +28,6 @@
#include "spider_net.h"
-#define SPIDER_NET_NUM_STATS 13
-
static struct {
const char str[ETH_GSTRING_LEN];
} ethtool_stats_keys[] = {
@@ -149,7 +147,7 @@ spider_net_ethtool_get_ringparam(struct
static int spider_net_get_stats_count(struct net_device *netdev)
{
- return SPIDER_NET_NUM_STATS;
+ return ARRAY_SIZE(ethtool_stats_keys);
}
static void spider_net_get_ethtool_stats(struct net_device *netdev,
@@ -157,13 +155,13 @@ static void spider_net_get_ethtool_stats
{
struct spider_net_card *card = netdev->priv;
- data[0] = card->netdev_stats.tx_packets;
- data[1] = card->netdev_stats.tx_bytes;
- data[2] = card->netdev_stats.rx_packets;
- data[3] = card->netdev_stats.rx_bytes;
- data[4] = card->netdev_stats.tx_errors;
- data[5] = card->netdev_stats.tx_dropped;
- data[6] = card->netdev_stats.rx_dropped;
+ data[0] = netdev->stats.tx_packets;
+ data[1] = netdev->stats.tx_bytes;
+ data[2] = netdev->stats.rx_packets;
+ data[3] = netdev->stats.rx_bytes;
+ data[4] = netdev->stats.tx_errors;
+ data[5] = netdev->stats.tx_dropped;
+ data[6] = netdev->stats.rx_dropped;
data[7] = card->spider_stats.rx_desc_error;
data[8] = card->spider_stats.tx_timeouts;
data[9] = card->spider_stats.alloc_rx_skb_error;
On Thu, 20 Sep 2007, Satyam Sharma wrote:
>
> BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> IIRC I got build failures in:
> drivers/net/pasemi_mac.c
[PATCH -mm] pasemi_mac: Build fix after recent netdev stats changes
Unbreak the following:
drivers/net/pasemi_mac.c: In function 'pasemi_mac_clean_rx':
drivers/net/pasemi_mac.c:533: error: 'dev' undeclared (first use in this function)
drivers/net/pasemi_mac.c:533: error: (Each undeclared identifier is reported only once
drivers/net/pasemi_mac.c:533: error: for each function it appears in.)
And remove an unused static function:
drivers/net/pasemi_mac.c: At top level:
drivers/net/pasemi_mac.c:89: warning: 'read_iob_reg' defined but not used
Signed-off-by: Satyam Sharma <[email protected]>
---
drivers/net/pasemi_mac.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff -ruNp a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
--- a/drivers/net/pasemi_mac.c 2007-09-22 06:26:39.000000000 +0530
+++ b/drivers/net/pasemi_mac.c 2007-09-22 13:03:04.000000000 +0530
@@ -85,11 +85,6 @@ MODULE_PARM_DESC(debug, "PA Semi MAC bit
static struct pasdma_status *dma_status;
-static unsigned int read_iob_reg(struct pasemi_mac *mac, unsigned int reg)
-{
- return in_le32(mac->iob_regs+reg);
-}
-
static void write_iob_reg(struct pasemi_mac *mac, unsigned int reg,
unsigned int val)
{
@@ -530,8 +525,8 @@ static int pasemi_mac_clean_rx(struct pa
} else
skb->ip_summed = CHECKSUM_NONE;
- dev->stats.rx_bytes += len;
- dev->stats.rx_packets++;
+ mac->netdev->stats.rx_bytes += len;
+ mac->netdev->stats.rx_packets++;
skb->protocol = eth_type_trans(skb, mac->netdev);
netif_receive_skb(skb);
Of ethtool_ops->get_stats_count and ethtool_ops->get_ethtool_stats.
Signed-off-by: Satyam Sharma <[email protected]>
---
drivers/net/mv643xx_eth.c | 2 --
1 file changed, 2 deletions(-)
diff -ruNp a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
--- a/drivers/net/mv643xx_eth.c 2007-09-22 06:26:39.000000000 +0530
+++ b/drivers/net/mv643xx_eth.c 2007-09-22 13:15:41.000000000 +0530
@@ -2740,8 +2740,6 @@ static const struct ethtool_ops mv643xx_
.get_stats_count = mv643xx_get_stats_count,
.get_ethtool_stats = mv643xx_get_ethtool_stats,
.get_strings = mv643xx_get_strings,
- .get_stats_count = mv643xx_get_stats_count,
- .get_ethtool_stats = mv643xx_get_ethtool_stats,
.nway_reset = mv643xx_eth_nway_restart,
};
drivers/net/iseries_veth.c: In function 'veth_transmit_to_many':
drivers/net/iseries_veth.c:1174: warning: unused variable 'port'
Signed-off-by: Satyam Sharma <[email protected]>
---
drivers/net/iseries_veth.c | 1 -
1 file changed, 1 deletion(-)
diff -ruNp a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
--- a/drivers/net/iseries_veth.c 2007-09-22 06:26:39.000000000 +0530
+++ b/drivers/net/iseries_veth.c 2007-09-22 11:17:29.000000000 +0530
@@ -1171,7 +1171,6 @@ static void veth_transmit_to_many(struct
HvLpIndexMap lpmask,
struct net_device *dev)
{
- struct veth_port *port = (struct veth_port *) dev->priv;
int i, success, error;
success = error = 0;
> -static volatile int kgdb_hwbreak_sstep[NR_CPUS];
> +volatile int kgdb_hwbreak_sstep[NR_CPUS];
That looks fishy to me. Why is it volatile-qualified? And does that
actually want to be a per-cpu var?
Hi Greg,
On Tue, 18 Sep 2007, Greg KH wrote:
>
> On Tue, Sep 18, 2007 at 03:04:48PM +0530, Satyam Sharma wrote:
> >
> > But wait ... isn't that a statically-allocated kobject, which were
> > supposed to be "naughty" in the first place?
>
> Yes it is, if you want to dynamically create it, please do.
Sorry for being late to reply, but do you still want such a patch (i.e.
convert static to dynamic allocation)?
I read elsewhere on this thread that you'd merge Kamalesh's patch and
fix it up to also use kobject_name() yourself. But it's a small/trivial
driver, so I think just converting it to dynamic allocation right now
itself (when we've noticed it already) is probably better (?)
[ BTW I don't see the fix in your git trees or quilt queue. So I'll
make a patch on top of 2.6.23-rc6-mm1 itself. ]
Thanks,
Satyam
On Sat, 22 Sep 2007 09:55:09 +0800 Fengguang Wu <[email protected]>
wrote:
> --- linux-2.6.22.orig/mm/page-writeback.c
> +++ linux-2.6.22/mm/page-writeback.c
> @@ -426,6 +426,14 @@ static void balance_dirty_pages(struct a
> bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> }
>
> + printk(KERN_DEBUG "balance_dirty_pages written %lu %lu congested %d limits %lu %lu %lu %lu %lu %ld\n",
> + pages_written,
> + write_chunk - wbc.nr_to_write,
> + bdi_write_congested(bdi),
> + background_thresh, dirty_thresh,
> + bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
> + bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
> +
> if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> break;
> if (pages_written >= write_chunk)
>
> [ 1305.361511] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
<snip long series of mostly identical lines>
Most peculiar. It seems writeback_inodes() doesn't even attempt to
write out stuff. Nor are outstanding writeback pages completed.
Could you perhaps instrument the writeback_inodes() path to see why
nothing is written out? - the attached patch would be a nice start.
> Here are some messages when doing large dds:
> [ 511.733791] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 10999 18288 0 -7289
> [ 511.735048] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 12012 16752 0 -4740
> [ 511.736506] balance_dirty_pages written 1540 1540 congested 0 limits 49728 198913 12306 15192 1056 -3942
> [ 512.002169] balance_dirty_pages written 1547 1547 congested 2 limits 49726 198905 13471 12624 1848 -1001
> [ 512.003795] balance_dirty_pages written 1540 1540 congested 2 limits 49723 198892 13470 11088 3384 -1002
> [ 512.083517] balance_dirty_pages written 1540 1540 congested 2 limits 49712 198850 13572 9336 4992 -756
> [ 512.085145] balance_dirty_pages written 1540 1540 congested 2 limits 49706 198825 13569 7800 6528 -759
> [ 512.086773] balance_dirty_pages written 1540 1540 congested 2 limits 49702 198808 13568 6240 8064 -736
> [ 512.184267] balance_dirty_pages written 1539 1539 congested 2 limits 49697 198791 13649 5592 8592 -535
> [ 512.185903] balance_dirty_pages written 1540 1540 congested 2 limits 49694 198778 13649 4056 10152 -559
> [ 512.187506] balance_dirty_pages written 1540 1540 congested 2 limits 49688 198753 13647 2496 11688 -537
> [ 512.259848] balance_dirty_pages written 1546 1546 congested 2 limits 49682 198728 13769 744 13248 -223
> [ 512.554646] balance_dirty_pages written 618 618 congested 2 limits 49678 198712 14242 1 13368 873
> [ 512.585204] balance_dirty_pages written 794 794 congested 2 limits 49657 198630 14500 1 12936 1563
> [ 527.714294] balance_dirty_pages written 1540 1540 congested 0 limits 49608 198432 29502 28080 0 1422
This looks like a sane series, we have a surplus of reclaimable pages,
start writeout, which increases writeback pages, and congests the
device, and eventually all subsides and we finish congestion and quit.
> [ 529.298022] balance_dirty_pages written 1540 1540 congested 0 limits 49579 198318 30307 34704 0 -4397
> [ 529.304975] balance_dirty_pages written 1539 1539 congested 0 limits 49575 198302 32451 30600 0 1851
> [ 529.305205] balance_dirty_pages written 1538 1538 congested 0 limits 49576 198306 32571 30384 0 2187
> [ 529.306988] balance_dirty_pages written 1537 1537 congested 0 limits 49580 198320 32702 30120 0 2582
> [ 530.893830] balance_dirty_pages written 1541 1541 congested 0 limits 49553 198214 34216 35352 0 -1136
> [ 530.893970] balance_dirty_pages written 1538 1538 congested 0 limits 49553 198214 34290 35160 0 -870
> [ 530.899873] balance_dirty_pages written 1546 1546 congested 0 limits 49556 198227 36248 31248 0 5000
> [ 530.900282] balance_dirty_pages written 1546 1546 congested 0 limits 49557 198231 36442 30864 0 5578
> [ 530.900586] balance_dirty_pages written 1539 1539 congested 0 limits 49558 198235 36601 30552 0 6049
> [ 532.343097] balance_dirty_pages written 1541 1541 congested 0 limits 49530 198120 37862 36072 0 1790
> [ 532.343595] balance_dirty_pages written 1547 1547 congested 0 limits 49533 198132 38081 35640 0 2441
> [ 533.872355] balance_dirty_pages written 1540 1540 congested 0 limits 49502 198009 41148 37224 0 3924
> [ 542.566083] balance_dirty_pages written 1542 1542 congested 0 limits 49367 197469 51948 52680 0 -732
> [ 542.567093] balance_dirty_pages written 1537 1537 congested 0 limits 49370 197482 52663 50952 0 1711
> [ 542.586552] balance_dirty_pages written 1540 1540 congested 0 limits 49352 197410 54545 46032 0 8513
> [ 542.606002] balance_dirty_pages written 1540 1540 congested 0 limits 49337 197350 55132 44520 0 10612
More stuff that doesn't look funny.
On Sat, Sep 22, 2007 at 03:16:22PM +0200, Peter Zijlstra wrote:
> On Sat, 22 Sep 2007 09:55:09 +0800 Fengguang Wu <[email protected]>
> wrote:
>
> > --- linux-2.6.22.orig/mm/page-writeback.c
> > +++ linux-2.6.22/mm/page-writeback.c
> > @@ -426,6 +426,14 @@ static void balance_dirty_pages(struct a
> > bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> > }
> >
> > + printk(KERN_DEBUG "balance_dirty_pages written %lu %lu congested %d limits %lu %lu %lu %lu %lu %ld\n",
> > + pages_written,
> > + write_chunk - wbc.nr_to_write,
> > + bdi_write_congested(bdi),
> > + background_thresh, dirty_thresh,
> > + bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
> > + bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
> > +
> > if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> > break;
> > if (pages_written >= write_chunk)
> >
>
> > [ 1305.361511] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
>
> <snip long series of mostly identical lines>
>
> Could you perhaps instrument the writeback_inodes() path to see why
> nothing is written out? - the attached patch would be a nice start.
Curiously the lockup problem disappeared after upgrading to 2.6.23-rc6-mm1.
(need to watch it in a longer time window).
Anyway here's the output of your patch:
sb_locked 0
sb_empty 97011
> Most peculiar. It seems writeback_inodes() doesn't even attempt to
> write out stuff. Nor are outstanding writeback pages completed.
Still true. Another problem is that balance_dirty_pages() is being called even
when there are only 54 dirty pages. That could slow down writers unnecessarily.
balance_dirty_pages() should not be entered at all with small nr_dirty.
Look at these lines:
[ 197.471619] balance_dirty_pages for tar written 405 405 congested 0 global 196554 54 403 196097 bdi 0 0 398 -398
[ 197.472196] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 0 0 380 -380
[ 197.472893] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 369 -346
[ 197.473158] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 366 -343
[ 197.473403] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 365 -342
[ 197.473674] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 364 -341
[ 197.474265] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 362 -339
[ 197.475440] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 341 196159 bdi 47 0 327 -280
[ 197.476970] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 279 196213 bdi 95 0 279 -184
[ 197.477773] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 248 196244 bdi 95 0 255 -160
[ 197.479463] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 210 -67
[ 197.479656] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 209 -66
[ 197.481159] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 155 196337 bdi 167 0 163 4
The trace messages are generated by the following code:
--- linux-2.6.23-rc6-mm1.orig/mm/page-writeback.c
+++ linux-2.6.23-rc6-mm1/mm/page-writeback.c
@@ -421,6 +421,18 @@ static void balance_dirty_pages(struct a
bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
}
+ printk(KERN_DEBUG "balance_dirty_pages for %s written %lu %lu congested %d "
+ "global %lu %lu %lu %ld bdi %lu %lu %lu %ld\n",
+ current->comm,
+ pages_written, write_chunk - wbc.nr_to_write,
+ bdi_write_congested(bdi),
+ dirty_thresh,
+ global_dirty_unstable_pages(), global_page_state(NR_WRITEBACK),
+ dirty_thresh -
+ global_dirty_unstable_pages() - global_page_state(NR_WRITEBACK),
+ bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
+ bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
+
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
break;
if (pages_written >= write_chunk)
On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
>
> 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
This bug appears in 2.6.23-rc3-mm1, too.
The message:
[ 3267.844826] NMI Watchdog detected LOCKUP on CPU 0
[ 3267.849515] CPU 0
[ 3267.851525] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
[ 3267.889547] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
[ 3267.895442] RIP: 0033:[<00002ab84e34cd44>] [<00002ab84e34cd44>]
[ 3267.901438] RSP: 002b:00007fff5c9e03f8 EFLAGS: 00000287
[ 3267.906726] RAX: 0000000000000000 RBX: 00007fff5c9e0580 RCX: 0000000000000000
[ 3267.913833] RDX: 0000000000000013 RSI: 00007fff5c9e0680 RDI: 00000000012a7010
[ 3267.920939] RBP: 00007fff5c9e0550 R08: 0000000000000050 R09: 0000000000000000
[ 3267.928045] R10: 0000000000000000 R11: 00000000012a7410 R12: 0000000000000002
[ 3267.935151] R13: 0000000000000003 R14: 0000000000000005 R15: 000000000000001f
[ 3267.942258] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
[ 3267.950317] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3267.956038] CR2: 00002ab84e3a7430 CR3: 000000000d618000 CR4: 00000000000006e0
[ 3267.963144] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3267.970250] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3267.977357] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
[ 3267.985416]
[ 3267.997480] Unable to handle kernel paging request at 00000000fffffffe RIP:
[ 3268.002082] [<00000000fffffffe>]
[ 3268.007827] PGD ea85067 PUD 0
[ 3268.010887] Oops: 0010 [1] SMP
[ 3268.014035] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:05:04.0/resource
[ 3268.021662] CPU 0
[ 3268.023674] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
[ 3268.061688] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
[ 3268.067584] RIP: 0010:[<00000000fffffffe>] [<00000000fffffffe>]
[ 3268.073578] RSP: 0000:ffffffff8157ce38 EFLAGS: 00010296
[ 3268.078867] RAX: 0000000000002710 RBX: ffff810009787050 RCX: ffff8100036788e0
[ 3268.085973] RDX: 000000000000018d RSI: ffffffff810ba000 RDI: ffff810009787080
[ 3268.093080] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
[ 3268.100185] R10: 0000000000000000 R11: 0000000000000001 R12: ffff810008b849d0
[ 3268.107293] R13: ffff810008b850d0 R14: 0000000000000001 R15: ffffffff8157cf58
[ 3268.114399] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
[ 3268.122455] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3268.128178] CR2: 00000000fffffffe CR3: 0000000006bfd000 CR4: 00000000000006e0
[ 3268.135283] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3268.142388] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3268.149495] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
[ 3268.157552] last branch before last exception/interrupt
[ 3268.162753] from [<ffffffff811b1843>] serial_in+0x23/0x80
[ 3268.168316] to [<ffffffff811b1832>] serial_in+0x12/0x80
[ 3268.173701] Stack: ffffffff8157ce78 ffffffff812e214f ffff81000ebe7fd8 0000000000000000
[ 3268.181728] 0000000000000000 000000000ebe7f2d 000000000000003d ffffffff8157cf58
[ 3268.189133] ffffffff8157ce88 ffffffff812e218d ffffffff8157ce98 ffffffff812e21a1
[ 3268.196358] Call Trace:
[ 3268.198974] Inexact backtrace:
[ 3268.202014] <NMI> [<ffffffff812e214f>] notifier_call_chain+0x3f/0x70
[ 3268.208531] [<ffffffff812e218d>] __atomic_notifier_call_chain+0xd/0x10
[ 3268.215118] [<ffffffff812e21a1>] atomic_notifier_call_chain+0x11/0x20
[ 3268.221619] [<ffffffff81056dde>] notify_die+0x2e/0x30
[ 3268.226736] [<ffffffff812e0b1c>] nmi_watchdog_tick+0x4c/0x1e0
[ 3268.232545] [<ffffffff812e0257>] default_do_nmi+0x67/0x1e0
[ 3268.238093] [<ffffffff812e0cdf>] do_nmi+0x2f/0x50
[ 3268.242863] [<ffffffff812dffef>] nmi+0x7f/0x90
[ 3268.247377] [<ffffffff81151c3e>] __delay+0xe/0x20
[ 3268.252147] <<EOE>>
[ 3268.254416]
[ 3268.254416] Code: Bad RIP value.
[ 3268.259216] RIP [<00000000fffffffe>]
[ 3268.262871] RSP <ffffffff8157ce38>
[ 3268.266342] CR2: 00000000fffffffe
[ 3268.269821] Fixing recursive fault but reboot is needed!
lspci:
00:00.0 Host bridge: Intel Corporation 82975X Memory Controller Hub
00:01.0 PCI bridge: Intel Corporation 82975X PCI Express Root Port
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.4 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 (rev 01)
00:1c.5 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GH (ICH7DH) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 SATA controller: Intel Corporation 82801GR/GH (ICH7 Family) Serial ATA Storage Controller AHCI (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc R580 [Radeon X1900 XT] Primary
01:00.1 Display controller: ATI Technologies Inc R580 [Radeon X1900 XT] Secondary
04:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
05:02.0 Network controller: RaLink RT2561/RT61 802.11g PCI
05:04.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
The .config:
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc6-mm1
# Sat Sep 22 10:14:54 2007
#
CONFIG_X86_64=y
CONFIG_64BIT=y
CONFIG_X86=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_NONIRQ_WAKEUP=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_ZONE_DMA32=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_NR_QUICK=2
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_CMPXCHG=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_DMI=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
# CONFIG_USER_NS is not set
CONFIG_AUDIT=y
# CONFIG_AUDITSYSCALL is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_CONTAINERS is not set
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=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_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_KPAGEMAP=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=m
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"
CONFIG_PREEMPT_NOTIFIERS=y
#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_X86_PC=y
# CONFIG_X86_VSMP is not set
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_X86_HT=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_MTRR=y
CONFIG_SMP=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_NUMA=y
# CONFIG_K8_NUMA is not set
CONFIG_NODES_SHIFT=6
CONFIG_X86_64_ACPI_NUMA=y
# CONFIG_NUMA_EMU is not set
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
CONFIG_DISCONTIGMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_DISCONTIGMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_NEED_MULTIPLE_NODES=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_MIGRATION is not set
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y
CONFIG_NR_CPUS=8
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
# CONFIG_X86_MCE_AMD is not set
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_START=0x1000000
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=100
CONFIG_K8_NB=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_ISA_DMA_API=y
CONFIG_GENERIC_PENDING_IRQ=y
#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_SMP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_SMP_POSSIBLE=y
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
# CONFIG_ACPI_SBS is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=m
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
# CPUFreq processor drivers
#
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_ACPI_CPUFREQ=m
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
#
# CPU idle PM support
#
# CONFIG_CPU_IDLE is not set
#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCI_DOMAINS is not set
CONFIG_DMAR=y
CONFIG_DMAR_GFX_WA=y
CONFIG_DMAR_FLOPPY_WA=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=m
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
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=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# 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=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
# CONFIG_TCP_CONG_YEAH is not set
# CONFIG_TCP_CONG_ILLINOIS is not set
CONFIG_DEFAULT_BIC=y
# CONFIG_DEFAULT_CUBIC is not set
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="bic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETLABEL is not set
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK_ENABLED=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
# CONFIG_NF_CT_PROTO_UDPLITE is not set
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
#
# Bridge: Netfilter Configuration
#
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_ACKVEC=y
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP_CCID2=m
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=m
CONFIG_IP_DCCP_TFRC_LIB=m
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_CCID3_RTO=100
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_TIPC=m
CONFIG_TIPC_ADVANCED=y
CONFIG_TIPC_ZONES=3
CONFIG_TIPC_CLUSTERS=1
CONFIG_TIPC_NODES=255
CONFIG_TIPC_SLAVE_NODES=0
CONFIG_TIPC_PORTS=8191
CONFIG_TIPC_LOG=0
# CONFIG_TIPC_DEBUG is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
#
# 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_RR is not set
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=m
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 is not set
# CONFIG_CLS_U32_MARK is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
# CONFIG_NET_CLS_POLICE is not set
# CONFIG_NET_CLS_IND is not set
#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_DEBUG is not set
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
CONFIG_PNP_DEBUG=y
#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# 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=m
# 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=65536
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=128
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
CONFIG_EEPROM_93CX6=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=4
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 is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_PLATFORM is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
#
# PCI IDE chipsets support
#
# CONFIG_IDEPCI_PCIBUS_ORDER 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_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT8213 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 is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_FC_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=m
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD 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_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_AHCI=y
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIL24 is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
CONFIG_PATA_MPIIX=m
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_PLATFORM is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
# CONFIG_MD_LINEAR is not set
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=y
# 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 is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
CONFIG_IFB=m
CONFIG_DUMMY=m
CONFIG_BONDING=m
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_IP1000 is not set
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
# CONFIG_ICPLUS_PHY is not set
CONFIG_FIXED_PHY=m
CONFIG_FIXED_MII_10_FDX=y
CONFIG_FIXED_MII_100_FDX=y
# CONFIG_FIXED_MII_1000_FDX is not set
CONFIG_FIXED_MII_AMNT=1
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 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_FORCEDETH 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=y
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_E1000E 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
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_USB_ATMEL is not set
# CONFIG_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_BCM43XX is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
# CONFIG_RT2X00 is not set
# CONFIG_ZD1211RW_MAC80211 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_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
#
# 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 is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=m
# 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_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
CONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_UNICODE is not set
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=16
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_INTEL=m
# CONFIG_HW_RANDOM_AMD is not set
CONFIG_NVRAM=m
CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
# 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_PC8736x_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
CONFIG_HANGCHECK_TIMER=m
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=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_I801 is not set
CONFIG_I2C_I810=m
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_DS1682 is not set
CONFIG_SENSORS_EEPROM=m
# 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_SENSORS_TSL2550 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=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m
#
# SPI Protocol Masters
#
# CONFIG_SPI_AT25 is not set
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_K8TEMP 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_F71882FG is not set
# CONFIG_SENSORS_F75375S 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_CORETEMP is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
CONFIG_SENSORS_LM85=m
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 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_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_CORE=m
# CONFIG_WATCHDOG_DEBUG_CORE is not set
#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_SC520_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
CONFIG_ITCO_WDT=m
# CONFIG_ITCO_VENDOR_SUPPORT is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_60XX_WDT is not set
# CONFIG_SBC8360_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83697HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
# CONFIG_USB_DABUSB is not set
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_LCD_LTV350QV is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_PROGEAR is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=10240
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
#
# 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=m
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 is not set
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
#
# 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_CS5530 is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
CONFIG_SND_HDA_INTEL=m
# CONFIG_SND_HDA_HWDEP is not set
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
# CONFIG_SND_HDA_POWER_SAVE 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
#
# SPI devices
#
#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not set
#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set
#
# SoC Audio support for SuperH
#
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT_POWERBOOK=y
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# 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=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
CONFIG_USB_MON=y
#
# USB port drivers
#
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_AIRPRIME is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP2101 is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_DEBUG is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX 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_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_GOTEMP is not set
#
# USB DSL modem support
#
#
# USB Gadget Support
#
CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_PXA2XX is not set
# CONFIG_USB_GADGET_M66592 is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_S3C2410 is not set
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
# CONFIG_USB_GADGET_DUALSPEED is not set
# CONFIG_MMC is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
#
# on-CPU RTC drivers
#
# CONFIG_DMADEVICES is not set
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
# CONFIG_KVM_AMD is not set
#
# Userspace I/O
#
# CONFIG_UIO is not set
#
# Firmware Drivers
#
CONFIG_EDD=m
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
#
# File systems
#
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
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=y
CONFIG_EXT4DEV_FS=m
CONFIG_EXT4DEV_FS_XATTR=y
CONFIG_EXT4DEV_FS_POSIX_ACL=y
CONFIG_EXT4DEV_FS_SECURITY=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
# CONFIG_REISERFS_FS 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=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
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=936
CONFIG_FAT_DEFAULT_IOCHARSET="cp936"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=m
#
# Layered filesystems
#
CONFIG_ECRYPT_FS=m
# CONFIG_UNION_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=y
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
# CONFIG_NFS_V4 is not set
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
# CONFIG_SUNRPC_BIND34 is not set
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
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_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_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=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_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 is not set
# 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=m
# 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 is not set
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 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
#
# Distributed Lock Manager
#
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set
#
# Instrumentation Support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_KPROBES=y
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SLAB_LEAK=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_VM=y
CONFIG_DEBUG_LIST=y
CONFIG_FRAME_POINTER=y
CONFIG_UNWIND_INFO=y
CONFIG_STACK_UNWIND=y
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_FORCED_INLINING is not set
CONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_DEBUG_SYNCHRO_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
CONFIG_LKDTM=m
CONFIG_FAULT_INJECTION=y
CONFIG_FAILSLAB=y
CONFIG_FAIL_PAGE_ALLOC=y
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_WANT_EXTRA_DEBUG_INFORMATION=y
CONFIG_KGDB=y
CONFIG_KGDB_ARCH_HAS_SHADOW_INFO=y
CONFIG_KGDB_CONSOLE=y
# CONFIG_KGDB_ONLY_MODULES is not set
CONFIG_KGDB_8250_NOMODULE=y
# CONFIG_KGDBOE_NOMODULE is not set
# CONFIG_KGDB_MPSC is not set
# CONFIG_KGDB_CPM_UART is not set
# CONFIG_KGDB_SIBYTE is not set
# CONFIG_KGDB_TXX9 is not set
# CONFIG_KGDB_SH_SCI is not set
# CONFIG_KGDB_AMBA_PL011 is not set
# CONFIG_KGDB_PXA_SERIAL is not set
CONFIG_KGDBOE=m
CONFIG_KGDB_8250=y
CONFIG_KGDB_SIMPLE_SERIAL=y
CONFIG_KGDB_BAUDRATE=115200
CONFIG_KGDB_PORT_NUM=1
CONFIG_KGDB_ATTACH_WAIT=y
CONFIG_DEBUG_RODATA=y
# CONFIG_IOMMU_DEBUG is not set
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_CAPABILITIES=y
CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_SECURITY_SELINUX=y
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_X86_64=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
# CONFIG_CRYPTO_SEED is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_CAMELLIA is not set
CONFIG_CRYPTO_TEST=m
# CONFIG_CRYPTO_AUTHENC is not set
CONFIG_CRYPTO_HW=y
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
On Sun, Sep 23, 2007 at 09:42:14AM +0800, Fengguang Wu wrote:
> On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
>
> This bug appears in 2.6.23-rc3-mm1, too.
>
> The message:
>
> [ 3267.844826] NMI Watchdog detected LOCKUP on CPU 0
> [ 3267.849515] CPU 0
> [ 3267.851525] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> [ 3267.889547] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> [ 3267.895442] RIP: 0033:[<00002ab84e34cd44>] [<00002ab84e34cd44>]
> [ 3267.901438] RSP: 002b:00007fff5c9e03f8 EFLAGS: 00000287
> [ 3267.906726] RAX: 0000000000000000 RBX: 00007fff5c9e0580 RCX: 0000000000000000
> [ 3267.913833] RDX: 0000000000000013 RSI: 00007fff5c9e0680 RDI: 00000000012a7010
> [ 3267.920939] RBP: 00007fff5c9e0550 R08: 0000000000000050 R09: 0000000000000000
> [ 3267.928045] R10: 0000000000000000 R11: 00000000012a7410 R12: 0000000000000002
> [ 3267.935151] R13: 0000000000000003 R14: 0000000000000005 R15: 000000000000001f
> [ 3267.942258] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> [ 3267.950317] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 3267.956038] CR2: 00002ab84e3a7430 CR3: 000000000d618000 CR4: 00000000000006e0
> [ 3267.963144] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 3267.970250] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 3267.977357] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> [ 3267.985416]
> [ 3267.997480] Unable to handle kernel paging request at 00000000fffffffe RIP:
> [ 3268.002082] [<00000000fffffffe>]
> [ 3268.007827] PGD ea85067 PUD 0
> [ 3268.010887] Oops: 0010 [1] SMP
> [ 3268.014035] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:05:04.0/resource
> [ 3268.021662] CPU 0
> [ 3268.023674] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> [ 3268.061688] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> [ 3268.067584] RIP: 0010:[<00000000fffffffe>] [<00000000fffffffe>]
> [ 3268.073578] RSP: 0000:ffffffff8157ce38 EFLAGS: 00010296
> [ 3268.078867] RAX: 0000000000002710 RBX: ffff810009787050 RCX: ffff8100036788e0
> [ 3268.085973] RDX: 000000000000018d RSI: ffffffff810ba000 RDI: ffff810009787080
> [ 3268.093080] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
> [ 3268.100185] R10: 0000000000000000 R11: 0000000000000001 R12: ffff810008b849d0
> [ 3268.107293] R13: ffff810008b850d0 R14: 0000000000000001 R15: ffffffff8157cf58
> [ 3268.114399] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> [ 3268.122455] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 3268.128178] CR2: 00000000fffffffe CR3: 0000000006bfd000 CR4: 00000000000006e0
> [ 3268.135283] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 3268.142388] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 3268.149495] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> [ 3268.157552] last branch before last exception/interrupt
> [ 3268.162753] from [<ffffffff811b1843>] serial_in+0x23/0x80
> [ 3268.168316] to [<ffffffff811b1832>] serial_in+0x12/0x80
> [ 3268.173701] Stack: ffffffff8157ce78 ffffffff812e214f ffff81000ebe7fd8 0000000000000000
> [ 3268.181728] 0000000000000000 000000000ebe7f2d 000000000000003d ffffffff8157cf58
> [ 3268.189133] ffffffff8157ce88 ffffffff812e218d ffffffff8157ce98 ffffffff812e21a1
> [ 3268.196358] Call Trace:
> [ 3268.198974] Inexact backtrace:
> [ 3268.202014] <NMI> [<ffffffff812e214f>] notifier_call_chain+0x3f/0x70
> [ 3268.208531] [<ffffffff812e218d>] __atomic_notifier_call_chain+0xd/0x10
> [ 3268.215118] [<ffffffff812e21a1>] atomic_notifier_call_chain+0x11/0x20
> [ 3268.221619] [<ffffffff81056dde>] notify_die+0x2e/0x30
> [ 3268.226736] [<ffffffff812e0b1c>] nmi_watchdog_tick+0x4c/0x1e0
> [ 3268.232545] [<ffffffff812e0257>] default_do_nmi+0x67/0x1e0
> [ 3268.238093] [<ffffffff812e0cdf>] do_nmi+0x2f/0x50
> [ 3268.242863] [<ffffffff812dffef>] nmi+0x7f/0x90
> [ 3268.247377] [<ffffffff81151c3e>] __delay+0xe/0x20
> [ 3268.252147] <<EOE>>
> [ 3268.254416]
> [ 3268.254416] Code: Bad RIP value.
> [ 3268.259216] RIP [<00000000fffffffe>]
> [ 3268.262871] RSP <ffffffff8157ce38>
> [ 3268.266342] CR2: 00000000fffffffe
> [ 3268.269821] Fixing recursive fault but reboot is needed!
Here are more messages on rebooting(I didn't mount any fuse fs though):
[ 3869.554219] slab error in verify_redzone_free(): cache `ext3_inode_cache': memory outside object was overwritten
[ 3869.564417]
[ 3869.564418] Call Trace:
[ 3869.568422] [<ffffffff8100dbc9>] dump_trace+0x3f9/0x4a0
[ 3869.573756] [<ffffffff8100dcb3>] show_trace+0x43/0x60
[ 3869.578926] [<ffffffff8100dce5>] dump_stack+0x15/0x20
[ 3869.584085] [<ffffffff8109afa4>] __slab_error+0x24/0x30
[ 3869.589431] [<ffffffff8109ba23>] cache_free_debugcheck+0x143/0x1e0
[ 3869.595716] [<ffffffff8109dd60>] kfree+0xa0/0x240
[ 3869.600541] [<ffffffff8114bb30>] kobject_cleanup+0x90/0xa0
[ 3869.606136] [<ffffffff8114bb4d>] kobject_release+0xd/0x10
[ 3869.611654] [<ffffffff8114cca3>] kref_put+0x43/0x80
[ 3869.616638] [<ffffffff8114ba99>] kobject_put+0x19/0x20
[ 3869.621895] [<ffffffff8114bcab>] kobject_unregister+0x2b/0x40
[ 3869.627745] [<ffffffff8114bcd2>] kset_unregister+0x12/0x20
[ 3869.633349] [<ffffffff8114bce9>] subsystem_unregister+0x9/0x10
[ 3869.639291] [<ffffffff88122550>] :fuse:fuse_sysfs_cleanup+0x10/0x20
[ 3869.645669] [<ffffffff88123b4c>] :fuse:fuse_exit+0x1c/0x2c
[ 3869.651265] [<ffffffff81063bf1>] sys_delete_module+0x1b1/0x290
[ 3869.657202] [<ffffffff8100c40e>] system_call+0x7e/0x83
[ 3869.662449] [<00007f5c807c6ef7>]
[ 3869.665797]
[ 3869.667317] ffffffff881245f3: redzone 1:0x786574756d5f74, redzone 2:0x0.
[ 3869.674050] ------------[ cut here ]------------
[ 3869.678688] kernel BUG at mm/slab.c:2901!
[ 3869.682717] invalid opcode: 0000 [2] SMP
[ 3869.686812] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:05:04.0/class
[ 3869.694231] CPU 0
[ 3869.696302] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
[ 3869.735440] Pid: 5754, comm: rmmod Tainted: G D 2.6.23-rc6-mm1 #4
[ 3869.741982] RIP: 0010:[<ffffffff8109ba9a>] [<ffffffff8109ba9a>] cache_free_debugcheck+0x1ba/0x1e0
[ 3869.750994] RSP: 0018:ffff8100096cbd98 EFLAGS: 00010002
[ 3869.756324] RAX: 001f446745213ca4 RBX: ffff8100059ca440 RCX: ffff8100081240c0
[ 3869.763469] RDX: 00000000001f4467 RSI: ffffffff881245f3 RDI: ffff8100059ca440
[ 3869.770616] RBP: ffff8100096cbdc8 R08: 0000000000000000 R09: 0000000000000001
[ 3869.777762] R10: 0000000000000000 R11: ffffffff8130b040 R12: ffffffff881245f3
[ 3869.784909] R13: 00786574756d5f74 R14: 0000000000000000 R15: ffff810008124080
[ 3869.792057] FS: 00007f5c80c496e0(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
[ 3869.800171] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3869.805932] CR2: 00007f5c807684e0 CR3: 000000000663b000 CR4: 00000000000006e0
[ 3869.813079] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3869.820226] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3869.827372] Process rmmod (pid: 5754, threadinfo ffff8100096ca000, task ffff810006478080)
[ 3869.835572] last branch before last exception/interrupt
[ 3869.840812] from [<ffffffff811b1843>] serial_in+0x23/0x80
[ 3869.846436] to [<ffffffff811b1832>] serial_in+0x12/0x80
[ 3869.851884] Stack: ffffffff8114bb30 ffff8100059ca440 ffff8100059cbea8 ffffffff881245fb
[ 3869.860079] ffffffff8812b310 0000000000000286 ffff8100096cbe18 ffffffff8109dd60
[ 3869.867634] ffff8100096cbe18 ffffffff810f2516 ffff810007ce92d8 ffffffff8812b270
[ 3869.874968] Call Trace:
[ 3869.877660] [<ffffffff8109dd60>] kfree+0xa0/0x240
[ 3869.882470] [<ffffffff8114bb30>] kobject_cleanup+0x90/0xa0
[ 3869.888059] [<ffffffff8114bb4d>] kobject_release+0xd/0x10
[ 3869.893561] [<ffffffff8114cca3>] kref_put+0x43/0x80
[ 3869.898545] [<ffffffff8114ba99>] kobject_put+0x19/0x20
[ 3869.903789] [<ffffffff8114bcab>] kobject_unregister+0x2b/0x40
[ 3869.909638] [<ffffffff8114bcd2>] kset_unregister+0x12/0x20
[ 3869.915226] [<ffffffff8114bce9>] subsystem_unregister+0x9/0x10
[ 3869.921165] [<ffffffff88122550>] :fuse:fuse_sysfs_cleanup+0x10/0x20
[ 3869.927539] [<ffffffff88123b4c>] :fuse:fuse_exit+0x1c/0x2c
[ 3869.933133] [<ffffffff81063bf1>] sys_delete_module+0x1b1/0x290
[ 3869.939069] [<ffffffff8100c40e>] system_call+0x7e/0x83
[ 3869.944313] [<00007f5c807c6ef7>]
[ 3869.947650]
[ 3869.949170]
[ 3869.949170] Code: 0f 0b eb fe 66 90 0f 0b eb fe 48 8b 52 10 e9 8b fe ff ff 0f
[ 3869.958656] RIP [<ffffffff8109ba9a>] cache_free_debugcheck+0x1ba/0x1e0
[ 3869.965317] RSP <ffff8100096cbd98>
[ 3869.968831] BUG: sleeping function called from invalid context at kernel/rwsem.c:20
[ 3869.976526] in_atomic():0, irqs_disabled():1
[ 3869.980816]
[ 3869.980817] Call Trace:
[ 3869.984808] [<ffffffff8100dbc9>] dump_trace+0x3f9/0x4a0
[ 3869.990139] [<ffffffff8100dcb3>] show_trace+0x43/0x60
[ 3869.995296] [<ffffffff8100dce5>] dump_stack+0x15/0x20
[ 3870.000454] [<ffffffff81031f51>] __might_sleep+0xc1/0xe0
[ 3870.005873] [<ffffffff810561fd>] down_read+0x1d/0x30
[ 3870.010945] [<ffffffff81067d25>] acct_collect+0x45/0x1d0
[ 3870.016361] [<ffffffff8103f9f0>] do_exit+0x190/0xad0
[ 3870.021431] [<ffffffff812e0161>] oops_end+0x91/0xa0
[ 3870.026414] [<ffffffff8100e0fe>] die+0x5e/0x90
[ 3870.030965] [<ffffffff812e0612>] do_trap+0x132/0x140
[ 3870.036035] [<ffffffff8100e620>] do_invalid_op+0x90/0xb0
[ 3870.041452] [<ffffffff812dfd4d>] error_exit+0x0/0x84
[ 3870.046523] [<ffffffff8109ba9a>] cache_free_debugcheck+0x1ba/0x1e0
[ 3870.052804] [<ffffffff8109dd60>] kfree+0xa0/0x240
[ 3870.057616] [<ffffffff8114bb30>] kobject_cleanup+0x90/0xa0
[ 3870.063206] [<ffffffff8114bb4d>] kobject_release+0xd/0x10
[ 3870.068708] [<ffffffff8114cca3>] kref_put+0x43/0x80
[ 3870.073693] [<ffffffff8114ba99>] kobject_put+0x19/0x20
[ 3870.078936] [<ffffffff8114bcab>] kobject_unregister+0x2b/0x40
[ 3870.084786] [<ffffffff8114bcd2>] kset_unregister+0x12/0x20
[ 3870.090375] [<ffffffff8114bce9>] subsystem_unregister+0x9/0x10
[ 3870.096312] [<ffffffff88122550>] :fuse:fuse_sysfs_cleanup+0x10/0x20
[ 3870.102687] [<ffffffff88123b4c>] :fuse:fuse_exit+0x1c/0x2c
[ 3870.108279] [<ffffffff81063bf1>] sys_delete_module+0x1b1/0x290
[ 3870.114216] [<ffffffff8100c40e>] system_call+0x7e/0x83
[ 3870.119459] [<00007f5c807c6ef7>]
[ 3870.122796]
This patch does the following things:
- Make hidp_setup_input() return int to indicate errors.
- Check its return value to handle errors.
Signed-off-by: WANG Cong <[email protected]>
---
net/bluetooth/hidp/core.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
===================================================================
--- linux-2.6.23-rc6-mm1.orig/net/bluetooth/hidp/core.c
+++ linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
@@ -625,7 +625,7 @@ static struct device *hidp_get_device(st
return conn ? &conn->dev : NULL;
}
-static inline void hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
+static inline int hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
{
struct input_dev *input = session->input;
int i;
@@ -669,7 +669,7 @@ static inline void hidp_setup_input(stru
input->event = hidp_input_event;
- input_register_device(input);
+ return input_register_device(input);
}
static int hidp_open(struct hid_device *hid)
@@ -823,7 +823,8 @@ int hidp_add_connection(struct hidp_conn
session->idle_to = req->idle_to;
if (session->input)
- hidp_setup_input(session, req);
+ if ((err = (hidp_setup_input(session, req))))
+ goto failed;
if (session->hid)
hidp_setup_hid(session, req);
On Sun, 23 Sep 2007 09:42:14 +0800 Fengguang Wu <[email protected]> wrote:
> On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> >
> > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
>
>
> This bug appears in 2.6.23-rc3-mm1, too.
hm, there isn't much info here.
> The message:
>
> [ 3267.844826] NMI Watchdog detected LOCKUP on CPU 0
> [ 3267.849515] CPU 0
> [ 3267.851525] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> [ 3267.889547] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> [ 3267.895442] RIP: 0033:[<00002ab84e34cd44>] [<00002ab84e34cd44>]
> [ 3267.901438] RSP: 002b:00007fff5c9e03f8 EFLAGS: 00000287
> [ 3267.906726] RAX: 0000000000000000 RBX: 00007fff5c9e0580 RCX: 0000000000000000
> [ 3267.913833] RDX: 0000000000000013 RSI: 00007fff5c9e0680 RDI: 00000000012a7010
> [ 3267.920939] RBP: 00007fff5c9e0550 R08: 0000000000000050 R09: 0000000000000000
> [ 3267.928045] R10: 0000000000000000 R11: 00000000012a7410 R12: 0000000000000002
> [ 3267.935151] R13: 0000000000000003 R14: 0000000000000005 R15: 000000000000001f
> [ 3267.942258] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> [ 3267.950317] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 3267.956038] CR2: 00002ab84e3a7430 CR3: 000000000d618000 CR4: 00000000000006e0
> [ 3267.963144] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 3267.970250] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 3267.977357] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> [ 3267.985416]
> [ 3267.997480] Unable to handle kernel paging request at 00000000fffffffe RIP:
> [ 3268.002082] [<00000000fffffffe>]
> [ 3268.007827] PGD ea85067 PUD 0
Looks like it oopsed in the middle of handling an NMI watchdog expiry,
perhaps.
> [ 3268.010887] Oops: 0010 [1] SMP
> [ 3268.014035] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:05:04.0/resource
> [ 3268.021662] CPU 0
> [ 3268.023674] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> [ 3268.061688] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> [ 3268.067584] RIP: 0010:[<00000000fffffffe>] [<00000000fffffffe>]
> [ 3268.073578] RSP: 0000:ffffffff8157ce38 EFLAGS: 00010296
> [ 3268.078867] RAX: 0000000000002710 RBX: ffff810009787050 RCX: ffff8100036788e0
> [ 3268.085973] RDX: 000000000000018d RSI: ffffffff810ba000 RDI: ffff810009787080
> [ 3268.093080] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
> [ 3268.100185] R10: 0000000000000000 R11: 0000000000000001 R12: ffff810008b849d0
> [ 3268.107293] R13: ffff810008b850d0 R14: 0000000000000001 R15: ffffffff8157cf58
> [ 3268.114399] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> [ 3268.122455] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 3268.128178] CR2: 00000000fffffffe CR3: 0000000006bfd000 CR4: 00000000000006e0
> [ 3268.135283] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 3268.142388] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 3268.149495] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> [ 3268.157552] last branch before last exception/interrupt
> [ 3268.162753] from [<ffffffff811b1843>] serial_in+0x23/0x80
> [ 3268.168316] to [<ffffffff811b1832>] serial_in+0x12/0x80
That's interensting. serial_in(). We have had NMI watchdog expiries when
the kernel is printing a large amount of stuff out a slow serial port with
interrutps disabled. But I thought we'd pretty much plugged those problems
by sprinkling touch_nmi_watchdog() in various places.
Do you think this is what was happening on your system?
On Sat, Sep 22, 2007 at 09:22:36PM -0700, Andrew Morton wrote:
> On Sun, 23 Sep 2007 09:42:14 +0800 Fengguang Wu <[email protected]> wrote:
>
> > On Tue, Sep 18, 2007 at 01:18:41AM -0700, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc6/2.6.23-rc6-mm1/
> > >
> > > 2.6.23-rc6-mm1 is a 29MB diff against 2.6.23-rc6.
> >
> >
> > This bug appears in 2.6.23-rc3-mm1, too.
>
> hm, there isn't much info here.
>
> > The message:
> >
> > [ 3267.844826] NMI Watchdog detected LOCKUP on CPU 0
> > [ 3267.849515] CPU 0
> > [ 3267.851525] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> > [ 3267.889547] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> > [ 3267.895442] RIP: 0033:[<00002ab84e34cd44>] [<00002ab84e34cd44>]
> > [ 3267.901438] RSP: 002b:00007fff5c9e03f8 EFLAGS: 00000287
> > [ 3267.906726] RAX: 0000000000000000 RBX: 00007fff5c9e0580 RCX: 0000000000000000
> > [ 3267.913833] RDX: 0000000000000013 RSI: 00007fff5c9e0680 RDI: 00000000012a7010
> > [ 3267.920939] RBP: 00007fff5c9e0550 R08: 0000000000000050 R09: 0000000000000000
> > [ 3267.928045] R10: 0000000000000000 R11: 00000000012a7410 R12: 0000000000000002
> > [ 3267.935151] R13: 0000000000000003 R14: 0000000000000005 R15: 000000000000001f
> > [ 3267.942258] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> > [ 3267.950317] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [ 3267.956038] CR2: 00002ab84e3a7430 CR3: 000000000d618000 CR4: 00000000000006e0
> > [ 3267.963144] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [ 3267.970250] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > [ 3267.977357] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> > [ 3267.985416]
> > [ 3267.997480] Unable to handle kernel paging request at 00000000fffffffe RIP:
> > [ 3268.002082] [<00000000fffffffe>]
> > [ 3268.007827] PGD ea85067 PUD 0
>
> Looks like it oopsed in the middle of handling an NMI watchdog expiry,
> perhaps.
>
> > [ 3268.010887] Oops: 0010 [1] SMP
> > [ 3268.014035] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:05:04.0/resource
> > [ 3268.021662] CPU 0
> > [ 3268.023674] Modules linked in: binfmt_misc ipt_MASQUERADE iptable_mangle iptable_nat nf_conntrack_ipv4 iptable_filter ip_tables x_tables nf_nat_tftp nf_nat_ftp nf_nat nf_conntrack_tftp nf_conntrack_ftp nf_conntrack nfnetlink fan ac battery ipv6 eeprom lm85 hwmon_vid i2c_core tun fuse kvm snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd sg soundcore snd_page_alloc thermal sr_mod pcspkr evdev button processor cdrom
> > [ 3268.061688] Pid: 13507, comm: gcc Not tainted 2.6.23-rc6-mm1 #4
> > [ 3268.067584] RIP: 0010:[<00000000fffffffe>] [<00000000fffffffe>]
> > [ 3268.073578] RSP: 0000:ffffffff8157ce38 EFLAGS: 00010296
> > [ 3268.078867] RAX: 0000000000002710 RBX: ffff810009787050 RCX: ffff8100036788e0
> > [ 3268.085973] RDX: 000000000000018d RSI: ffffffff810ba000 RDI: ffff810009787080
> > [ 3268.093080] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
> > [ 3268.100185] R10: 0000000000000000 R11: 0000000000000001 R12: ffff810008b849d0
> > [ 3268.107293] R13: ffff810008b850d0 R14: 0000000000000001 R15: ffffffff8157cf58
> > [ 3268.114399] FS: 00002ab84f144170(0000) GS:ffffffff814f3000(0000) knlGS:0000000000000000
> > [ 3268.122455] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > [ 3268.128178] CR2: 00000000fffffffe CR3: 0000000006bfd000 CR4: 00000000000006e0
> > [ 3268.135283] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [ 3268.142388] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > [ 3268.149495] Process gcc (pid: 13507, threadinfo ffff81000ebe6000, task ffff810008b849d0)
> > [ 3268.157552] last branch before last exception/interrupt
> > [ 3268.162753] from [<ffffffff811b1843>] serial_in+0x23/0x80
> > [ 3268.168316] to [<ffffffff811b1832>] serial_in+0x12/0x80
>
> That's interensting. serial_in(). We have had NMI watchdog expiries when
> the kernel is printing a large amount of stuff out a slow serial port with
> interrutps disabled. But I thought we'd pretty much plugged those problems
> by sprinkling touch_nmi_watchdog() in various places.
>
> Do you think this is what was happening on your system?
Very likely. I'm running linux with cmdline
"root=/dev/sda1 ro nmi_watchdog=1 console=ttyS0,115200 console=tty0",
and doing a lot of printks at the time ;-)
Thank you,
Fengguang
On Sun, 23 Sep 2007 13:30:40 +0800 Fengguang Wu <[email protected]> wrote:
> > That's interensting. serial_in(). We have had NMI watchdog expiries when
> > the kernel is printing a large amount of stuff out a slow serial port with
> > interrutps disabled. But I thought we'd pretty much plugged those problems
> > by sprinkling touch_nmi_watchdog() in various places.
> >
> > Do you think this is what was happening on your system?
>
> Very likely. I'm running linux with cmdline
> "root=/dev/sda1 ro nmi_watchdog=1 console=ttyS0,115200 console=tty0",
> and doing a lot of printks at the time ;-)
OK. We need to find a suitable place to poke yet another
touch_nmi_watchdog(). Maybe we should give up and put one in
printk().
And you oopsed for different reasons in the nmi-watchdog handling
code too. I think I'll pretend I didn't see that.
On Sat, Sep 22, 2007 at 10:35:45PM -0700, Andrew Morton wrote:
> On Sun, 23 Sep 2007 13:30:40 +0800 Fengguang Wu <[email protected]> wrote:
>
> > > That's interensting. serial_in(). We have had NMI watchdog expiries when
> > > the kernel is printing a large amount of stuff out a slow serial port with
> > > interrutps disabled. But I thought we'd pretty much plugged those problems
> > > by sprinkling touch_nmi_watchdog() in various places.
> > >
> > > Do you think this is what was happening on your system?
> >
> > Very likely. I'm running linux with cmdline
> > "root=/dev/sda1 ro nmi_watchdog=1 console=ttyS0,115200 console=tty0",
> > and doing a lot of printks at the time ;-)
>
> OK. We need to find a suitable place to poke yet another
> touch_nmi_watchdog(). Maybe we should give up and put one in
> printk().
>
> And you oopsed for different reasons in the nmi-watchdog handling
> code too. I think I'll pretend I didn't see that.
Let's forget it for now.
I can try Ingo's latency tracing patches at some convenient time.
On Sun, 23 Sep 2007 09:20:49 +0800 Fengguang Wu <[email protected]>
wrote:
> On Sat, Sep 22, 2007 at 03:16:22PM +0200, Peter Zijlstra wrote:
> > On Sat, 22 Sep 2007 09:55:09 +0800 Fengguang Wu <[email protected]>
> > wrote:
> >
> > > --- linux-2.6.22.orig/mm/page-writeback.c
> > > +++ linux-2.6.22/mm/page-writeback.c
> > > @@ -426,6 +426,14 @@ static void balance_dirty_pages(struct a
> > > bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> > > }
> > >
> > > + printk(KERN_DEBUG "balance_dirty_pages written %lu %lu congested %d limits %lu %lu %lu %lu %lu %ld\n",
> > > + pages_written,
> > > + write_chunk - wbc.nr_to_write,
> > > + bdi_write_congested(bdi),
> > > + background_thresh, dirty_thresh,
> > > + bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
> > > + bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
> > > +
> > > if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> > > break;
> > > if (pages_written >= write_chunk)
> > >
> >
> > > [ 1305.361511] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
> >
> > <snip long series of mostly identical lines>
> >
> > Could you perhaps instrument the writeback_inodes() path to see why
> > nothing is written out? - the attached patch would be a nice start.
>
> Curiously the lockup problem disappeared after upgrading to 2.6.23-rc6-mm1.
> (need to watch it in a longer time window).
>
> Anyway here's the output of your patch:
> sb_locked 0
> sb_empty 97011
It this the delta during one of these lockups? If so, it would seem
that although dirty pages are reported against the BDI, no actual dirty
inodes could be found.
[ note to self: writeback_inodes() seems to write out to any superblock
in the system. Might want to limit that to superblocks on wbc->bdi ]
You say that switching to .23-rc6-mm1 solved it in your case. You are
developing in the writeback_inodes() path, right? Could it be one of
your local changes that confused it here?
> > Most peculiar. It seems writeback_inodes() doesn't even attempt to
> > write out stuff. Nor are outstanding writeback pages completed.
>
> Still true. Another problem is that balance_dirty_pages() is being called even
> when there are only 54 dirty pages. That could slow down writers unnecessarily.
>
> balance_dirty_pages() should not be entered at all with small nr_dirty.
>
> Look at these lines:
> [ 197.471619] balance_dirty_pages for tar written 405 405 congested 0 global 196554 54 403 196097 bdi 0 0 398 -398
> [ 197.472196] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 0 0 380 -380
> [ 197.472893] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 369 -346
> [ 197.473158] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 366 -343
> [ 197.473403] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 365 -342
> [ 197.473674] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 364 -341
> [ 197.474265] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 362 -339
> [ 197.475440] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 341 196159 bdi 47 0 327 -280
> [ 197.476970] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 279 196213 bdi 95 0 279 -184
> [ 197.477773] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 248 196244 bdi 95 0 255 -160
> [ 197.479463] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 210 -67
> [ 197.479656] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 209 -66
> [ 197.481159] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 155 196337 bdi 167 0 163 4
That is an interesting idea how about this:
---
Subject: mm: speed up writeback ramp-up on clean systems
We allow violation of bdi limits if there is a lot of room on the
system. Once we hit half the total limit we start enforcing bdi limits
and bdi ramp-up should happen. Doing it this way avoids many small
writeouts on an otherwise idle system and should also speed up the
ramp-up.
Signed-off-by: Peter Zijlstra <[email protected]>
---
Index: linux-2.6/mm/page-writeback.c
===================================================================
--- linux-2.6.orig/mm/page-writeback.c
+++ linux-2.6/mm/page-writeback.c
@@ -355,8 +355,8 @@ get_dirty_limits(long *pbackground, long
*/
static void balance_dirty_pages(struct address_space *mapping)
{
- long bdi_nr_reclaimable;
- long bdi_nr_writeback;
+ long nr_reclaimable, bdi_nr_reclaimable;
+ long nr_writeback, bdi_nr_writeback;
long background_thresh;
long dirty_thresh;
long bdi_thresh;
@@ -376,9 +376,24 @@ static void balance_dirty_pages(struct a
get_dirty_limits(&background_thresh, &dirty_thresh,
&bdi_thresh, bdi);
+
+ nr_reclaimable = global_page_state(NR_FILE_DIRTY) +
+ global_page_state(NR_UNSTABLE_NFS);
+ nr_writeback = global_page_state(NR_WRITEBACK);
+
bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
- if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
+
+ /*
+ * break out early when:
+ * - we're below the bdi limit
+ * - we're below half the total limit
+ *
+ * we let the numbers exceed the strict bdi limit if the total
+ * numbers are too low, this avoids (excessive) small writeouts.
+ */
+ if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh ||
+ nr_reclaimable + nr_writeback < dirty_thresh / 2)
break;
if (!bdi->dirty_exceeded)
Hi
I've tried to compile 2.6.23-rc6-mm1, but it fails on ipg.c with the error :
Setup is 10964 bytes (padded to 11264 bytes).
System is 1640 kB
Kernel: arch/i386/boot/bzImage is ready (#1)
Building modules, stage 2.
MODPOST 2030 modules
WARNING: Can't handle masks in drivers/mtd/nand/cafe_nand:FFFF0
ERROR: "__udivdi3" [drivers/net/ipg.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
error: Bad exit status from /home/trem/rpm/tmp/rpm-tmp.23895 (%build)
I've instigated a bit, and I've found this code in ipg.c :
static void ipg_nic_txfree(struct net_device *dev)
{
struct ipg_nic_private *sp = netdev_priv(dev);
void __iomem *ioaddr = sp->ioaddr;
const unsigned int curr = ipg_r32(TFD_LIST_PTR_0) -
(sp->txd_map / sizeof(struct ipg_tx)) - 1;
unsigned int released, pending;
sp->txd_map is an u64
because :
dma_addr_t txd_map;
And in asm-i386/types.h, I see :
#ifdef CONFIG_HIGHMEM64G
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
I my config, I use CONFIG_HIGHMEM64G
sizeof(struct ipg_tx) is an u32
So the div failed on i386 because of u64 / u32.
I propose the following patch :
--- linux-2.6.22.old/drivers/net/ipg.c 2007-09-21 20:28:57.000000000 -0400
+++ linux-2.6.22.new/drivers/net/ipg.c 2007-09-21 20:22:15.000000000 -0400
@@ -837,7 +837,7 @@ static void ipg_nic_txfree(struct net_de
struct ipg_nic_private *sp = netdev_priv(dev);
void __iomem *ioaddr = sp->ioaddr;
const unsigned int curr = ipg_r32(TFD_LIST_PTR_0) -
- (sp->txd_map / sizeof(struct ipg_tx)) - 1;
+ do_div(sp->txd_map , sizeof(struct ipg_tx)) - 1;
unsigned int released, pending;
IPG_DEBUG_MSG("_nic_txfree\n");
With this patch, it compiles on i386 and x86_64, but I haven't tested if
this network card works (I don't have it).
regards,
trem
WANG Cong wrote:
> This patch does the following things:
>
> - Make hidp_setup_input() return int to indicate errors.
> - Check its return value to handle errors.
>
> Signed-off-by: WANG Cong <[email protected]>
>
> ---
> net/bluetooth/hidp/core.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> Index: linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
> ===================================================================
> --- linux-2.6.23-rc6-mm1.orig/net/bluetooth/hidp/core.c
> +++ linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
> @@ -625,7 +625,7 @@ static struct device *hidp_get_device(st
> return conn ? &conn->dev : NULL;
> }
>
> -static inline void hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
> +static inline int hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
> {
> struct input_dev *input = session->input;
> int i;
> @@ -669,7 +669,7 @@ static inline void hidp_setup_input(stru
>
> input->event = hidp_input_event;
>
> - input_register_device(input);
> + return input_register_device(input);
> }
>
> static int hidp_open(struct hid_device *hid)
> @@ -823,7 +823,8 @@ int hidp_add_connection(struct hidp_conn
> session->idle_to = req->idle_to;
>
> if (session->input)
> - hidp_setup_input(session, req);
> + if ((err = (hidp_setup_input(session, req))))
> + goto failed;
This is confusing, why not just do
if (session->input) {
err = hidp_setup_input(session, req);
if (err)
goto failed;
}
>
> if (session->hid)
> hidp_setup_hid(session, req);
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
On Mon, Sep 24, 2007 at 12:13:22AM +0200, roel wrote:
>WANG Cong wrote:
>> This patch does the following things:
>>
>> - Make hidp_setup_input() return int to indicate errors.
>> - Check its return value to handle errors.
>>
>> Signed-off-by: WANG Cong <[email protected]>
>>
>> ---
>> net/bluetooth/hidp/core.c | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> Index: linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
>> ===================================================================
>> --- linux-2.6.23-rc6-mm1.orig/net/bluetooth/hidp/core.c
>> +++ linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
>> @@ -625,7 +625,7 @@ static struct device *hidp_get_device(st
>> return conn ? &conn->dev : NULL;
>> }
>>
>> -static inline void hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
>> +static inline int hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
>> {
>> struct input_dev *input = session->input;
>> int i;
>> @@ -669,7 +669,7 @@ static inline void hidp_setup_input(stru
>>
>> input->event = hidp_input_event;
>>
>> - input_register_device(input);
>> + return input_register_device(input);
>> }
>>
>> static int hidp_open(struct hid_device *hid)
>> @@ -823,7 +823,8 @@ int hidp_add_connection(struct hidp_conn
>> session->idle_to = req->idle_to;
>>
>> if (session->input)
>> - hidp_setup_input(session, req);
>> + if ((err = (hidp_setup_input(session, req))))
>> + goto failed;
>
>This is confusing, why not just do
>
> if (session->input) {
> err = hidp_setup_input(session, req);
> if (err)
> goto failed;
> }
Yes, you are right. Thanks. I will resend this patch. ;)
--
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
This patch does the following things:
- Make hidp_setup_input() return int to indicate errors.
- Check its return value to handle errors.
Thanks to roel for comments.
Signed-off-by: WANG Cong <[email protected]>
---
net/bluetooth/hidp/core.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Index: linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
===================================================================
--- linux-2.6.23-rc6-mm1.orig/net/bluetooth/hidp/core.c
+++ linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
@@ -625,7 +625,7 @@ static struct device *hidp_get_device(st
return conn ? &conn->dev : NULL;
}
-static inline void hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
+static inline int hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
{
struct input_dev *input = session->input;
int i;
@@ -669,7 +669,7 @@ static inline void hidp_setup_input(stru
input->event = hidp_input_event;
- input_register_device(input);
+ return input_register_device(input);
}
static int hidp_open(struct hid_device *hid)
@@ -822,8 +822,11 @@ int hidp_add_connection(struct hidp_conn
session->flags = req->flags & (1 << HIDP_BLUETOOTH_VENDOR_ID);
session->idle_to = req->idle_to;
- if (session->input)
- hidp_setup_input(session, req);
+ if (session->input) {
+ err = hidp_setup_input(session, req);
+ if (err)
+ goto failed;
+ }
if (session->hid)
hidp_setup_hid(session, req);
On Sun, Sep 23, 2007 at 03:02:35PM +0200, Peter Zijlstra wrote:
> On Sun, 23 Sep 2007 09:20:49 +0800 Fengguang Wu <[email protected]>
> wrote:
>
> > On Sat, Sep 22, 2007 at 03:16:22PM +0200, Peter Zijlstra wrote:
> > > On Sat, 22 Sep 2007 09:55:09 +0800 Fengguang Wu <[email protected]>
> > > wrote:
> > >
> > > > --- linux-2.6.22.orig/mm/page-writeback.c
> > > > +++ linux-2.6.22/mm/page-writeback.c
> > > > @@ -426,6 +426,14 @@ static void balance_dirty_pages(struct a
> > > > bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> > > > }
> > > >
> > > > + printk(KERN_DEBUG "balance_dirty_pages written %lu %lu congested %d limits %lu %lu %lu %lu %lu %ld\n",
> > > > + pages_written,
> > > > + write_chunk - wbc.nr_to_write,
> > > > + bdi_write_congested(bdi),
> > > > + background_thresh, dirty_thresh,
> > > > + bdi_thresh, bdi_nr_reclaimable, bdi_nr_writeback,
> > > > + bdi_thresh - bdi_nr_reclaimable - bdi_nr_writeback);
> > > > +
> > > > if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> > > > break;
> > > > if (pages_written >= write_chunk)
> > > >
> > >
> > > > [ 1305.361511] balance_dirty_pages written 0 0 congested 0 limits 48869 195477 5801 5760 288 -247
> > >
> > > <snip long series of mostly identical lines>
> > >
> > > Could you perhaps instrument the writeback_inodes() path to see why
> > > nothing is written out? - the attached patch would be a nice start.
> >
> > Curiously the lockup problem disappeared after upgrading to 2.6.23-rc6-mm1.
> > (need to watch it in a longer time window).
> >
> > Anyway here's the output of your patch:
> > sb_locked 0
> > sb_empty 97011
>
> It this the delta during one of these lockups? If so, it would seem
delta since boot time, for 2.6.23-rc6-mm1, no lockups ;-)
> that although dirty pages are reported against the BDI, no actual dirty
> inodes could be found.
no lockups, therefore not necessarily.
There are many other calls into writeback_inodes().
> [ note to self: writeback_inodes() seems to write out to any superblock
> in the system. Might want to limit that to superblocks on wbc->bdi ]
generic_sync_sb_inodes() does have something like:
if (wbc->bdi && bdi != wbc->bdi)
continue;
> You say that switching to .23-rc6-mm1 solved it in your case. You are
> developing in the writeback_inodes() path, right? Could it be one of
> your local changes that confused it here?
There are a lot of changes between them:
- bdi-v9 vs bdi-v10;
- a lot writeback patches in -mm
- some writeback patches maintained locally
I just rebased my patches to .23-rc6-mm1...
> > > Most peculiar. It seems writeback_inodes() doesn't even attempt to
> > > write out stuff. Nor are outstanding writeback pages completed.
> >
> > Still true. Another problem is that balance_dirty_pages() is being called even
> > when there are only 54 dirty pages. That could slow down writers unnecessarily.
> >
> > balance_dirty_pages() should not be entered at all with small nr_dirty.
> >
> > Look at these lines:
> > [ 197.471619] balance_dirty_pages for tar written 405 405 congested 0 global 196554 54 403 196097 bdi 0 0 398 -398
> > [ 197.472196] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 0 0 380 -380
> > [ 197.472893] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 369 -346
> > [ 197.473158] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 366 -343
> > [ 197.473403] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 365 -342
> > [ 197.473674] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 364 -341
> > [ 197.474265] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 372 196128 bdi 23 0 362 -339
> > [ 197.475440] balance_dirty_pages for tar written 405 0 congested 0 global 196554 54 341 196159 bdi 47 0 327 -280
> > [ 197.476970] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 279 196213 bdi 95 0 279 -184
> > [ 197.477773] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 248 196244 bdi 95 0 255 -160
> > [ 197.479463] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 210 -67
> > [ 197.479656] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 217 196275 bdi 143 0 209 -66
> > [ 197.481159] balance_dirty_pages for tar written 405 0 congested 0 global 196546 54 155 196337 bdi 167 0 163 4
>
> That is an interesting idea how about this:
It looks like a workaround, but it does solve the most important problem.
And it is a good logic by itself. So I'd vote for it.
The fundamental problem is that the per-bdi-writeback-completion based
estimation is not accurate under light loads. The problem remains for
a light-load sda when there is a heavy-load sdb. One more workaround
could be to grant bdi(s) a minimal bdi_thresh. Or better to adjust the
estimation logic?
> ---
> Subject: mm: speed up writeback ramp-up on clean systems
>
> We allow violation of bdi limits if there is a lot of room on the
> system. Once we hit half the total limit we start enforcing bdi limits
> and bdi ramp-up should happen. Doing it this way avoids many small
> writeouts on an otherwise idle system and should also speed up the
> ramp-up.
>
> Signed-off-by: Peter Zijlstra <[email protected]>
> ---
>
> Index: linux-2.6/mm/page-writeback.c
> ===================================================================
> --- linux-2.6.orig/mm/page-writeback.c
> +++ linux-2.6/mm/page-writeback.c
> @@ -355,8 +355,8 @@ get_dirty_limits(long *pbackground, long
> */
> static void balance_dirty_pages(struct address_space *mapping)
> {
> - long bdi_nr_reclaimable;
> - long bdi_nr_writeback;
> + long nr_reclaimable, bdi_nr_reclaimable;
> + long nr_writeback, bdi_nr_writeback;
> long background_thresh;
> long dirty_thresh;
> long bdi_thresh;
> @@ -376,9 +376,24 @@ static void balance_dirty_pages(struct a
>
> get_dirty_limits(&background_thresh, &dirty_thresh,
> &bdi_thresh, bdi);
> +
> + nr_reclaimable = global_page_state(NR_FILE_DIRTY) +
> + global_page_state(NR_UNSTABLE_NFS);
> + nr_writeback = global_page_state(NR_WRITEBACK);
> +
> bdi_nr_reclaimable = bdi_stat(bdi, BDI_RECLAIMABLE);
> bdi_nr_writeback = bdi_stat(bdi, BDI_WRITEBACK);
> - if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> +
> + /*
> + * break out early when:
> + * - we're below the bdi limit
> + * - we're below half the total limit
> + *
> + * we let the numbers exceed the strict bdi limit if the total
> + * numbers are too low, this avoids (excessive) small writeouts.
> + */
> + if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh ||
> + nr_reclaimable + nr_writeback < dirty_thresh / 2)
> break;
This may be slightly better:
if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
break;
/*
* Throttle it only when the background writeback cannot catchup.
*/
if (nr_reclaimable + nr_writeback <
(background_thresh + dirty_thresh) / 2)
break;
> if (!bdi->dirty_exceeded)
On Fri, 21 Sep 2007 21:43:20 +0200, Jiri Slaby said:
> On 09/21/2007 09:38 PM, Jiri Slaby wrote:
> > It is rather the other user who adds the page to some other list while bein
g at
> > deferred_pages list. Could you try my debug patch
> > (http://lkml.org/lkml/2007/9/19/141)?
>
> or the whitespace non-damaged version:
> http://www.fi.muni.cz/~xslaby/sklad/pageattr_debug
Gaak. Is that thing *supposed* to spew zillions of lines of output?
Some of the hits we get (I'm wondering if anything after the first makes
any sense, or if we're just slowly watching the corruption spread - the
thing ended up near 23K lines long before I gave up and hit the poweroff
button because there was no end in sight):
(If there's something specific you want me to find in the output,
like "the first time we see XYZ", yell...)
[ 103.701000] POISONS (ffff81000117dc88): ffff810006d14000, ffff8100034225c0
[ 103.701000]
[ 103.701000] Call Trace:
[ 103.701000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 103.701000] [<ffffffff80358117>] list_add+0xc/0x11
[ 103.701000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
[ 103.701000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
[ 103.701000] [<ffffffff80270958>] __free_pages+0x18/0x21
[ 103.701000] [<ffffffff80270990>] free_pages+0x2f/0x34
[ 103.701000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
[ 103.701000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
[ 103.701000] [<ffffffff80289663>] free_block+0xcd/0x110
[ 103.701000] [<ffffffff8028973a>] drain_array+0x94/0xc9
[ 103.701000] [<ffffffff8028a8c3>] cache_reap+0x0/0x105
[ 103.701000] [<ffffffff8028a948>] cache_reap+0x85/0x105
[ 103.701000] [<ffffffff80243d5d>] run_workqueue+0x8e/0x125
[ 103.701000] [<ffffffff8024478d>] worker_thread+0x0/0xe7
[ 103.701000] [<ffffffff80244869>] worker_thread+0xdc/0xe7
[ 103.701000] [<ffffffff80247f13>] autoremove_wake_function+0x0/0x38
[ 103.701000] [<ffffffff80247ddd>] kthread+0x49/0x78
[ 103.701000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
[ 103.701000] [<ffffffff80247d94>] kthread+0x0/0x78
[ 103.701000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
[ 103.701000]
[ 103.701000] POISONS (ffff81000117eac0): ffff810006d55000, ffff8100034225c0
[ 103.701000]
[ 103.701000] Call Trace:
[ 103.701000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 103.701000] [<ffffffff80358117>] list_add+0xc/0x11
[ 103.701000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
[ 103.701000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
[ 103.701000] [<ffffffff80270958>] __free_pages+0x18/0x21
[ 103.701000] [<ffffffff80270990>] free_pages+0x2f/0x34
[ 103.701000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
[ 103.701000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
[ 103.701000] [<ffffffff80289663>] free_block+0xcd/0x110
[ 103.701000] [<ffffffff8028973a>] drain_array+0x94/0xc9
[ 103.701000] [<ffffffff8028a8c3>] cache_reap+0x0/0x105
[ 103.701000] [<ffffffff8028a948>] cache_reap+0x85/0x105
[ 103.701000] [<ffffffff80243d5d>] run_workqueue+0x8e/0x125
[ 103.701000] [<ffffffff8024478d>] worker_thread+0x0/0xe7
[ 103.701000] [<ffffffff80244869>] worker_thread+0xdc/0xe7
[ 103.701000] [<ffffffff80247f13>] autoremove_wake_function+0x0/0x38
[ 103.701000] [<ffffffff80247ddd>] kthread+0x49/0x78
[ 103.701000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
[ 103.701000] [<ffffffff80247d94>] kthread+0x0/0x78
[ 103.701000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
[ 103.701000]
(That trace repeats 16 times, then we see:)
[ 106.284000] POISONS (ffff810004432810): ffff810005291378, ffff81000524e618
[ 106.284000]
[ 106.284000] Call Trace:
[ 106.284000] [<ffffffff80517086>] __down_write_nested+0x3d/0xa1
[ 106.284000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 106.284000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 106.284000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 106.284000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 106.284000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 106.284000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 106.284000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 106.284000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 106.284000]
..
[ 106.284000] POISONS (ffff810004432768): ffff81000524e618, ffff81000524e618
[ 106.284000]
[ 106.284000] Call Trace:
[ 106.284000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 106.284000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 106.284000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 106.284000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 106.284000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 106.284000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 106.284000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 106.284000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 106.284000]
...
[ 106.285000] POISONS (ffff810003637b30): ffff810003637c18, 0000000000000246
[ 106.285000]
[ 106.285000] Call Trace:
[ 106.285000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 106.285000] [<ffffffff80358117>] list_add+0xc/0x11
[ 106.285000] [<ffffffff80248110>] add_wait_queue+0x2c/0x40
[ 106.285000] [<ffffffff8029ac28>] __pollwait+0xd6/0xdf
[ 106.285000] [<ffffffff802b80a3>] inotify_poll+0x29/0x5c
[ 106.285000] [<ffffffff8029a498>] do_select+0x2fa/0x50d
[ 106.285000] [<ffffffff8029ab52>] __pollwait+0x0/0xdf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8051471d>] __down_trylock+0x4d/0x5a
[ 106.285000] [<ffffffff80517241>] __down_failed_trylock+0x35/0x3a
[ 106.285000] [<ffffffff8022c1b3>] __update_rq_clock+0x1a/0xe5
[ 106.285000] [<ffffffff80270e41>] __alloc_pages+0x5c/0x2b5
[ 106.285000] [<ffffffff8029a89e>] core_sys_select+0x1f3/0x2a2
[ 106.285000] [<ffffffff802453c3>] alloc_pid+0x2f8/0x34f
[ 106.285000] [<ffffffff80353c5b>] __up_read+0x7a/0x83
[ 106.285000] [<ffffffff8024b25b>] up_read+0x9/0xb
[ 106.285000] [<ffffffff80519a92>] do_page_fault+0x405/0x7ac
[ 106.285000] [<ffffffff8029acf0>] sys_select+0xbf/0x17b
[ 106.285000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 106.285000] POISONS (ffff810003637ba0): ffffffff8060ff48, ffffffff8051471d
[ 106.285000]
[ 106.285000] Call Trace:
[ 106.285000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 106.285000] [<ffffffff80358117>] list_add+0xc/0x11
[ 106.285000] [<ffffffff80248110>] add_wait_queue+0x2c/0x40
[ 106.285000] [<ffffffff8029ac28>] __pollwait+0xd6/0xdf
[ 106.285000] [<ffffffff80477b83>] datagram_poll+0x23/0xd5
[ 106.285000] [<ffffffff8046ea63>] sock_poll+0x18/0x1a
[ 106.285000] [<ffffffff8029a498>] do_select+0x2fa/0x50d
[ 106.285000] [<ffffffff8029ab52>] __pollwait+0x0/0xdf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8051471d>] __down_trylock+0x4d/0x5a
[ 106.285000] [<ffffffff80517241>] __down_failed_trylock+0x35/0x3a
[ 106.285000] [<ffffffff8022c1b3>] __update_rq_clock+0x1a/0xe5
[ 106.285000] [<ffffffff80270e41>] __alloc_pages+0x5c/0x2b5
[ 106.285000] [<ffffffff8029a89e>] core_sys_select+0x1f3/0x2a2
[ 106.285000] [<ffffffff802453c3>] alloc_pid+0x2f8/0x34f
[ 106.285000] [<ffffffff80353c5b>] __up_read+0x7a/0x83
[ 106.285000] [<ffffffff8024b25b>] up_read+0x9/0xb
[ 106.285000] [<ffffffff80519a92>] do_page_fault+0x405/0x7ac
[ 106.285000] [<ffffffff8029acf0>] sys_select+0xbf/0x17b
[ 106.285000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 106.285000] POISONS (ffff810003637ba0): ffffffff8060ff48, ffffffff8051471d
[ 106.285000]
[ 106.285000] Call Trace:
[ 106.285000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 106.285000] [<ffffffff80358117>] list_add+0xc/0x11
[ 106.285000] [<ffffffff80248110>] add_wait_queue+0x2c/0x40
[ 106.285000] [<ffffffff8029ac28>] __pollwait+0xd6/0xdf
[ 106.285000] [<ffffffff80477b83>] datagram_poll+0x23/0xd5
[ 106.285000] [<ffffffff8046ea63>] sock_poll+0x18/0x1a
[ 106.285000] [<ffffffff8029a498>] do_select+0x2fa/0x50d
[ 106.285000] [<ffffffff8029ab52>] __pollwait+0x0/0xdf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 106.285000] [<ffffffff8051471d>] __down_trylock+0x4d/0x5a
[ 106.285000] [<ffffffff80517241>] __down_failed_trylock+0x35/0x3a
[ 106.285000] [<ffffffff8022c1b3>] __update_rq_clock+0x1a/0xe5
[ 106.285000] [<ffffffff80270e41>] __alloc_pages+0x5c/0x2b5
[ 106.285000] [<ffffffff8029a89e>] core_sys_select+0x1f3/0x2a2
[ 106.285000] [<ffffffff802453c3>] alloc_pid+0x2f8/0x34f
[ 106.285000] [<ffffffff80353c5b>] __up_read+0x7a/0x83
[ 106.285000] [<ffffffff8024b25b>] up_read+0x9/0xb
[ 106.285000] [<ffffffff80519a92>] do_page_fault+0x405/0x7ac
[ 106.285000] [<ffffffff8029acf0>] sys_select+0xbf/0x17b
[ 106.285000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 106.285000]
...
[ 109.705000] POISONS (ffff8100047638c8): 0000000000200200, 0000000000000000
[ 109.705000]
[ 109.705000] Call Trace:
[ 109.705000] <IRQ> [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 109.705000] [<ffffffff8023c44c>] internal_add_timer+0xbb/0xbd
[ 109.705000] [<ffffffff8023d0a2>] __mod_timer+0xb8/0xd6
[ 109.705000] [<ffffffff803ec908>] ata_qc_issue+0x4bd/0x517
[ 109.705000] [<ffffffff8023d306>] mod_timer+0x3d/0x42
[ 109.705000] [<ffffffff8034a3d2>] as_antic_waitnext+0x33/0x41
[ 109.705000] [<ffffffff8034b10f>] as_dispatch_request+0x1e0/0x3e6
[ 109.705000] [<ffffffff8034206b>] elv_next_request+0x1a1/0x1b3
[ 109.705000] [<ffffffff803e1032>] scsi_request_fn+0x74/0x345
[ 109.826000] [<ffffffff803463cd>] blk_run_queue+0x42/0x75
[ 109.826000] [<ffffffff803df887>] scsi_run_queue+0x1d1/0x1e0
[ 109.826000] [<ffffffff803dfaa4>] scsi_next_command+0x36/0x46
[ 109.826000] [<ffffffff803dfcf4>] scsi_end_request+0xc2/0xd5
[ 109.826000] [<ffffffff803dff6d>] scsi_io_completion+0x105/0x34f
[ 109.826000] [<ffffffff803eca57>] ata_hsm_qc_complete+0xf5/0xfe
[ 109.826000] [<ffffffff803e7737>] sd_rw_intr+0x184/0x1b2
[ 109.826000] [<ffffffff803e07dc>] scsi_device_unbusy+0x89/0x91
[ 109.826000] [<ffffffff803dbd05>] scsi_finish_command+0x56/0x5f
[ 109.826000] [<ffffffff803e093e>] scsi_softirq_done+0xd0/0xd8
[ 109.826000] [<ffffffff803f1438>] ata_interrupt+0x20c/0x224
[ 109.826000] [<ffffffff80346784>] blk_done_softirq+0x63/0x72
[ 109.826000] [<ffffffff802395ad>] __do_softirq+0x57/0xc7
[ 109.826000] [<ffffffff8020d32c>] call_softirq+0x1c/0x28
[ 109.826000] [<ffffffff8020e916>] do_softirq+0x34/0x87
[ 109.826000] [<ffffffff80239443>] irq_exit+0x3f/0x90
[ 109.826000] [<ffffffff8020eaad>] do_IRQ+0x144/0x167
[ 109.826000] [<ffffffff8020c691>] ret_from_intr+0x0/0xa
[ 109.826000] <EOI> [<ffffffff880135ef>] :processor:acpi_idle_enter_bm+0x2cd/0x346
[ 109.826000] [<ffffffff880135e5>] :processor:acpi_idle_enter_bm+0x2c3/0x346
[ 109.826000] [<ffffffff8043caca>] menu_select+0x6b/0x94
[ 109.826000] [<ffffffff8043bbb9>] cpuidle_idle_call+0x71/0x9e
[ 109.826000] [<ffffffff8043bb48>] cpuidle_idle_call+0x0/0x9e
[ 109.826000] [<ffffffff8020aefc>] cpu_idle+0xca/0x110
[ 109.826000] [<ffffffff80514fb8>] rest_init+0x7c/0x7e
[ 109.826000] [<ffffffff806d5ac6>] start_kernel+0x2c9/0x2d4
[ 109.826000] [<ffffffff806d5111>] _sinittext+0x111/0x118
[ 109.826000]
...
[ 111.313000] POISONS (ffff810003637b68): 00007fffd149e2a0, ffff810003637be8
[ 111.313000]
[ 111.313000] Call Trace:
[ 111.313000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 111.313000] [<ffffffff80358117>] list_add+0xc/0x11
[ 111.313000] [<ffffffff80248110>] add_wait_queue+0x2c/0x40
[ 111.313000] [<ffffffff8029ac28>] __pollwait+0xd6/0xdf
[ 111.313000] [<ffffffff80477b83>] datagram_poll+0x23/0xd5
[ 111.313000] [<ffffffff8046ea63>] sock_poll+0x18/0x1a
[ 111.313000] [<ffffffff8029a498>] do_select+0x2fa/0x50d
[ 111.313000] [<ffffffff8029ab52>] __pollwait+0x0/0xdf
[ 111.313000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 111.313000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 111.313000] [<ffffffff80519a92>] do_page_fault+0x405/0x7ac
[ 111.313000] [<ffffffff80323c61>] inode_has_perm+0x6b/0x7a
[ 111.313000] [<ffffffff8032840f>] selinux_inode_permission+0x98/0x9d
[ 111.313000] [<ffffffff80322dbf>] avc_has_perm+0x4c/0x5e
[ 111.313000] [<ffffffff8029a89e>] core_sys_select+0x1f3/0x2a2
[ 111.313000] [<ffffffff80353c5b>] __up_read+0x7a/0x83
[ 111.313000] [<ffffffff80248153>] remove_wait_queue+0x2f/0x38
[ 111.313000] [<ffffffff8029acf0>] sys_select+0xbf/0x17b
[ 111.313000] [<ffffffff8022d480>] default_wake_function+0x0/0xf
[ 111.313000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 111.313000]
Quoting Cedric Le Goater ([email protected]):
> Cedric Le Goater wrote:
> > Pavel Emelyanov wrote:
> >> Looks sane :)
> >>
> >> [snip]
> >>
> >>> Index: 2.6.23-rc6-mm1/kernel/exit.c
> >>> ===================================================================
> >>> --- 2.6.23-rc6-mm1.orig/kernel/exit.c
> >>> +++ 2.6.23-rc6-mm1/kernel/exit.c
> >>> @@ -408,6 +408,8 @@ void daemonize(const char *name, ...)
> >>> current->fs = fs;
> >>> atomic_inc(&fs->count);
> >>>
> >>> + if (current->nsproxy != init_task.nsproxy)
> >>> + get_nsproxy(init_task.nsproxy);
> >>> switch_task_namespaces(current, init_task.nsproxy);
> >> shouldn't we make the switch under this if() as well?
> >
> > right. we can probably simplify switch_task_namespaces() and remove :
> >
> > if (ns == new)
> > return;
> >
> > I'll cook a better one today.
>
> So I removed this test in
>
> * daemonize() bc it is already done
> * sys_unshare() bc the nsproxy is always new one
> * exit_task_namespaces() bc it is called with NULL and the
> task will die right after that.
>
> C.
>
>
> make-access-to-tasks-nsproxy-lighter.patch breaks unshare()
>
> when called from unshare(), switch_task_namespaces() takes an
> extra refcount on the nsproxy, leading to a memory leak of
> nsproxy objects.
>
> Now the problem is that we still need that extra ref when called
> from daemonize(). Here's an ugly fix for it.
>
> Signed-off-by: Cedric Le Goater <[email protected]>
> Cc: Serge E. Hallyn <[email protected]>
Looks good. Thanks for catching the leak.
Acked-by: Serge E. Hallyn <[email protected]>
> Cc: Pavel Emelyanov <[email protected]>
> Cc: Eric W. Biederman <[email protected]>
> Cc: Oleg Nesterov <[email protected]>
> Cc: Paul E. McKenney <[email protected]>
>
> ---
> include/linux/nsproxy.h | 5 +++++
> kernel/exit.c | 5 ++++-
> kernel/nsproxy.c | 9 ---------
> 3 files changed, 9 insertions(+), 10 deletions(-)
>
> Index: 2.6.23-rc6-mm1/kernel/nsproxy.c
> ===================================================================
> --- 2.6.23-rc6-mm1.orig/kernel/nsproxy.c
> +++ 2.6.23-rc6-mm1/kernel/nsproxy.c
> @@ -25,11 +25,6 @@ static struct kmem_cache *nsproxy_cachep
>
> struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);
>
> -static inline void get_nsproxy(struct nsproxy *ns)
> -{
> - atomic_inc(&ns->count);
> -}
> -
> /*
> * creates a copy of "orig" with refcount 1.
> */
> @@ -205,11 +200,7 @@ void switch_task_namespaces(struct task_
> might_sleep();
>
> ns = p->nsproxy;
> - if (ns == new)
> - return;
>
> - if (new)
> - get_nsproxy(new);
> rcu_assign_pointer(p->nsproxy, new);
>
> if (ns && atomic_dec_and_test(&ns->count)) {
> Index: 2.6.23-rc6-mm1/kernel/exit.c
> ===================================================================
> --- 2.6.23-rc6-mm1.orig/kernel/exit.c
> +++ 2.6.23-rc6-mm1/kernel/exit.c
> @@ -408,7 +408,10 @@ void daemonize(const char *name, ...)
> current->fs = fs;
> atomic_inc(&fs->count);
>
> - switch_task_namespaces(current, init_task.nsproxy);
> + if (current->nsproxy != init_task.nsproxy) {
> + get_nsproxy(init_task.nsproxy);
> + switch_task_namespaces(current, init_task.nsproxy);
> + }
>
> exit_files(current);
> current->files = init_task.files;
> Index: 2.6.23-rc6-mm1/include/linux/nsproxy.h
> ===================================================================
> --- 2.6.23-rc6-mm1.orig/include/linux/nsproxy.h
> +++ 2.6.23-rc6-mm1/include/linux/nsproxy.h
> @@ -77,6 +77,11 @@ static inline void put_nsproxy(struct ns
> }
> }
>
> +static inline void get_nsproxy(struct nsproxy *ns)
> +{
> + atomic_inc(&ns->count);
> +}
> +
> #ifdef CONFIG_CONTAINER_NS
> int ns_container_clone(struct task_struct *tsk);
> #else
On 09/24/2007 05:25 AM, [email protected] wrote:
> On Fri, 21 Sep 2007 21:43:20 +0200, Jiri Slaby said:
>> On 09/21/2007 09:38 PM, Jiri Slaby wrote:
>>> It is rather the other user who adds the page to some other list while bein
> g at
>>> deferred_pages list. Could you try my debug patch
>>> (http://lkml.org/lkml/2007/9/19/141)?
>> or the whitespace non-damaged version:
>> http://www.fi.muni.cz/~xslaby/sklad/pageattr_debug
>
> Gaak. Is that thing *supposed* to spew zillions of lines of output?
Oh, probably yes.
> Some of the hits we get (I'm wondering if anything after the first makes
> any sense, or if we're just slowly watching the corruption spread - the
> thing ended up near 23K lines long before I gave up and hit the poweroff
> button because there was no end in sight):
Yes. it's not perfect, most of them are false positives (It's OK).
> (If there's something specific you want me to find in the output,
> like "the first time we see XYZ", yell...)
Heh :). The few last before the list corruption BUG (you have to have LIST_DEBUG
enabled) -- but it seems you never reached that phase?
regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
Hi,
> > This patch does the following things:
> >
> > - Make hidp_setup_input() return int to indicate errors.
> > - Check its return value to handle errors.
> >
> > Signed-off-by: WANG Cong <[email protected]>
> >
> > ---
> > net/bluetooth/hidp/core.c | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > Index: linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
> > ===================================================================
> > --- linux-2.6.23-rc6-mm1.orig/net/bluetooth/hidp/core.c
> > +++ linux-2.6.23-rc6-mm1/net/bluetooth/hidp/core.c
> > @@ -625,7 +625,7 @@ static struct device *hidp_get_device(st
> > return conn ? &conn->dev : NULL;
> > }
> >
> > -static inline void hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
> > +static inline int hidp_setup_input(struct hidp_session *session, struct hidp_connadd_req *req)
> > {
> > struct input_dev *input = session->input;
> > int i;
> > @@ -669,7 +669,7 @@ static inline void hidp_setup_input(stru
> >
> > input->event = hidp_input_event;
> >
> > - input_register_device(input);
> > + return input_register_device(input);
> > }
> >
> > static int hidp_open(struct hid_device *hid)
> > @@ -823,7 +823,8 @@ int hidp_add_connection(struct hidp_conn
> > session->idle_to = req->idle_to;
> >
> > if (session->input)
> > - hidp_setup_input(session, req);
> > + if ((err = (hidp_setup_input(session, req))))
> > + goto failed;
>
> This is confusing, why not just do
>
> if (session->input) {
> err = hidp_setup_input(session, req);
> if (err)
> goto failed;
> }
lets use "if (err < 0)" and I am okay with that patch.
Regards
Marcel
On Mon, 24 Sep 2007 11:01:10 +0800 Fengguang Wu <[email protected]>
wrote:
> > That is an interesting idea how about this:
>
> It looks like a workaround, but it does solve the most important problem.
> And it is a good logic by itself. So I'd vote for it.
>
> The fundamental problem is that the per-bdi-writeback-completion based
> estimation is not accurate under light loads. The problem remains for
> a light-load sda when there is a heavy-load sdb.
Well, sure, in that case sda would get to write out a lot of small
things. But in that case it would be fair wrt the other writers.
> One more workaround
> could be to grant bdi(s) a minimal bdi_thresh.
Ah, no, that is no good. For if there were a lot of BDIs this might
happen:
nr_bdis * min_thresh > dirty_limit.
> Or better to adjust the estimation logic?
Not sure what we can do here. The current thing is simple, fast and fair.
> > + /*
> > + * break out early when:
> > + * - we're below the bdi limit
> > + * - we're below half the total limit
> > + *
> > + * we let the numbers exceed the strict bdi limit if the total
> > + * numbers are too low, this avoids (excessive) small writeouts.
> > + */
> > + if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh ||
> > + nr_reclaimable + nr_writeback < dirty_thresh / 2)
> > break;
>
> This may be slightly better:
>
> if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> break;
> /*
> * Throttle it only when the background writeback cannot catchup.
> */
> if (nr_reclaimable + nr_writeback <
> (background_thresh + dirty_thresh) / 2)
> break;
Ah, indeed. Good idea.
On Mon, 24 Sep 2007 08:06:45 +0200, Jiri Slaby said:
> Heh :). The few last before the list corruption BUG (you have to have LIST_DEBUG
> enabled) -- but it seems you never reached that phase?
Seems to be somewhat racy - had one attempt that obviously got into some grand
Mongolian flustercluck, because I had a 2M printk buffer defined, and more
than 2M worth of apparently looping output saying that the netconsole/printk
path was poisoning. I defined the printk buffer to 4M, added a initcall_debug,
and then it managed to die in a reasonable amount of time. Here's the whole
thing from when it starts blurbing out the POISONS messages until it
rolls over and dies (about 736 lines).
(Interestingly, I can't find any of the 3 addresses listed in the 'list_add
corruption' message anywhere *else* in the netconsole output, and the last thing
we hear from before the kersplat is apparently an RCU callback in a softirq?)
[ 47.997000] POISONS (ffff810003fb6ca8): ffff810003fb6ca8, ffff8100051600d8
[ 47.997000]
[ 47.997000] Call Trace:
[ 47.998000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 47.998000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 47.998000] [<ffffffff80276649>] vma_prio_tree_insert+0x34/0x39
[ 47.998000] [<ffffffff8027da6c>] vma_adjust+0x310/0x452
[ 47.998000] [<ffffffff8027dc89>] split_vma+0xdb/0xed
[ 47.998000] [<ffffffff8027f30b>] mprotect_fixup+0x13b/0x481
[ 47.998000] [<ffffffff80323da3>] file_map_prot_check+0x7d/0x86
[ 47.998000] [<ffffffff80326d93>] selinux_file_mprotect+0xe0/0xe9
[ 47.998000] [<ffffffff8027f803>] sys_mprotect+0x1b2/0x22b
[ 47.998000] [<ffffffff8020c2fc>] tracesys+0xdc/0xe1
[ 47.998000]
[ 48.078000] POISONS (ffff81000402d768): ffff810004727810, ffff810006221810
[ 48.078000]
[ 48.078000] Call Trace:
[ 48.078000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.078000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.078000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.078000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.078000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.079000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.079000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.079000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.079000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.079000]
[ 48.080000] POISONS (ffff810004096618): ffff810005266c00, ffff81000576a960
[ 48.080000]
[ 48.080000] Call Trace:
[ 48.080000] [<ffffffff80517086>] __down_write_nested+0x3d/0xa1
[ 48.080000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.080000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 48.080000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.080000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.080000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.080000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.080000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.080000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.080000]
[ 48.081000] POISONS (ffff810004096768): ffff81000526e378, ffff81000526e378
[ 48.081000]
[ 48.081000] Call Trace:
[ 48.081000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.081000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 48.081000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.081000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.081000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.081000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.081000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.081000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.081000]
[ 48.081000] POISONS (ffff8100040964c8): ffff81000576a960, ffff8100051c12d0
[ 48.082000]
[ 48.082000] Call Trace:
[ 48.087000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.087000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 48.087000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.087000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.087000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.087000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.087000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.087000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.087000]
[ 48.087000] POISONS (ffff810004096d50): ffff81000412bab0, ffff810004536618
[ 48.087000]
[ 48.087000] Call Trace:
[ 48.087000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.088000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.088000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.088000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.088000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.088000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.088000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.088000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.088000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.088000]
[ 48.088000] POISONS (ffff810004096c00): ffff81000412b960, ffff8100043e7ca8
[ 48.088000]
[ 48.088000] Call Trace:
[ 48.088000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.088000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.089000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.089000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.089000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.089000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.089000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.089000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.089000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.089000]
[ 48.089000] POISONS (ffff810004096ca8): ffff81000526e960, ffff810003f0fb58
[ 48.089000]
[ 48.089000] Call Trace:
[ 48.089000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.089000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.089000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.090000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.090000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.090000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.090000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.090000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.090000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.090000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.090000]
[ 48.090000] POISONS (ffff810004096ab0): ffff8100045368b8, ffff8100061a5d50
[ 48.090000]
[ 48.090000] Call Trace:
[ 48.090000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.090000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.090000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.091000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.091000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.091000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.091000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.091000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.091000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.091000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.091000]
[ 48.091000] POISONS (ffff810004096570): ffff8100061a5c00, ffff8100061a5f48
[ 48.091000]
[ 48.091000] Call Trace:
[ 48.091000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.091000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.092000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.092000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.092000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.092000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.092000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.092000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.092000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.092000]
[ 48.092000] POISONS (ffff810004096f48): ffff8100061a5ab0, ffff8100062cc180
[ 48.092000]
[ 48.092000] Call Trace:
[ 48.092000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.092000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.093000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.093000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.093000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.093000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.093000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.093000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.093000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.093000]
[ 48.093000] POISONS (ffff810004096180): ffff8100043e7c00, ffff810003f060d8
[ 48.093000]
[ 48.093000] Call Trace:
[ 48.093000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.093000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.093000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.094000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.094000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.094000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.094000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.094000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.094000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.094000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.094000]
[ 48.094000] POISONS (ffff810004096ea0): ffff810004436ca8, ffff810004174618
[ 48.094000]
[ 48.094000] Call Trace:
[ 48.094000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.095000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.095000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.095000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.095000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.095000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.095000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.095000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.095000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.095000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.095000]
[ 48.095000] POISONS (ffff810004096df8): ffff8100051c1ab0, ffff8100051c1ab0
[ 48.095000]
[ 48.095000] Call Trace:
[ 48.096000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.096000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.096000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.096000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.096000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.096000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.096000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.096000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.096000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.096000]
[ 48.096000] POISONS (ffff810004096a08): ffff810005266570, ffff810005266570
[ 48.096000]
[ 48.096000] Call Trace:
[ 48.097000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.097000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.097000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.097000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.097000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.097000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.097000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.097000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.097000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.097000]
[ 48.097000] POISONS (ffff810004096960): ffff810005266228, ffff810005266228
[ 48.097000]
[ 48.097000] Call Trace:
[ 48.098000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.098000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.098000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.098000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.098000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.098000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.098000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.098000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.098000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.098000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.098000]
[ 48.098000] POISONS (ffff810004096420): ffff810004399570, ffff81000571a768
[ 48.099000]
[ 48.099000] Call Trace:
[ 48.099000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.099000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.099000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.099000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.099000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.099000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.099000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.099000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.099000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.099000]
[ 48.099000] POISONS (ffff810004096378): ffff810004399618, ffff8100041f3960
[ 48.100000]
[ 48.100000] Call Trace:
[ 48.100000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.100000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.100000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.100000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.100000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.100000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.105000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.105000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.105000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.105000]
[ 48.105000] POISONS (ffff810004096228): ffff8100043996c0, ffff8100061a5b58
[ 48.106000]
[ 48.106000] Call Trace:
[ 48.106000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.106000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.106000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.106000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.106000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.106000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.106000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.106000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.106000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.106000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.106000]
[ 48.106000] POISONS (ffff8100042cdea0): ffff810004727810, ffff810006221810
[ 48.107000]
[ 48.107000] Call Trace:
[ 48.107000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.107000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.107000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.107000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.107000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.107000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.107000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.107000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.107000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.107000]
[ 48.108000] POISONS (ffff8100042cdab0): ffff8100061a5ab0, ffff8100062cc180
[ 48.108000]
[ 48.108000] Call Trace:
[ 48.108000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.108000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.108000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.108000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.108000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.108000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.108000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.108000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.109000]
[ 48.109000] POISONS (ffff8100042cddf8): ffff8100043e7c00, ffff810003f060d8
[ 48.109000]
[ 48.109000] Call Trace:
[ 48.109000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.109000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.109000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.109000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.109000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.109000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.109000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.109000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.109000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.110000]
[ 48.110000] POISONS (ffff8100042cdea0): ffff810004436ca8, ffff810004174618
[ 48.110000]
[ 48.110000] Call Trace:
[ 48.110000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.110000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.110000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.110000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.110000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.110000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.110000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.110000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.110000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.111000]
[ 48.111000] POISONS (ffff810004096228): ffff8100051c1ab0, ffff8100051c1ab0
[ 48.111000]
[ 48.111000] Call Trace:
[ 48.111000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.111000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.111000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.111000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.111000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.111000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.111000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.111000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.112000]
[ 48.112000] POISONS (ffff810004096378): ffff810005266570, ffff810005266570
[ 48.112000]
[ 48.112000] Call Trace:
[ 48.112000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.112000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.112000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.112000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.112000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.112000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.112000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.112000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.112000]
[ 48.113000] POISONS (ffff810004096420): ffff810005266228, ffff810005266228
[ 48.113000]
[ 48.113000] Call Trace:
[ 48.113000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.113000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.113000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.113000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.113000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.113000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.113000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.113000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.113000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.113000]
[ 48.114000] POISONS (ffff810004096960): ffff810004399570, ffff81000571a768
[ 48.114000]
[ 48.114000] Call Trace:
[ 48.114000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.114000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.114000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.114000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.114000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.114000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.114000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.114000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.114000]
[ 48.114000] POISONS (ffff810004096a08): ffff810004399618, ffff8100041f3960
[ 48.115000]
[ 48.115000] Call Trace:
[ 48.115000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.115000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.115000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.115000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.115000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.115000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.115000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.115000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.115000]
[ 48.115000] POISONS (ffff810004096df8): ffff8100043996c0, ffff8100061a5b58
[ 48.115000]
[ 48.115000] Call Trace:
[ 48.116000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.116000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.116000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.116000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.116000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.116000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.116000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.116000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.116000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.116000]
[ 48.116000] POISONS (ffff810004096ea0): ffff810004727810, ffff810006221810
[ 48.116000]
[ 48.116000] Call Trace:
[ 48.117000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.117000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.117000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.117000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.117000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.117000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.117000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.117000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.117000]
[ 48.117000] POISONS (ffff810004096ab0): ffff810003fb6ca8, ffff81000416e618
[ 48.117000]
[ 48.117000] Call Trace:
[ 48.118000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.118000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.118000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.118000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.118000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.118000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.118000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.118000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.118000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.118000]
[ 48.118000] POISONS (ffff810004096ca8): ffff8100045360d8, ffff81000514dd50
[ 48.118000]
[ 48.118000] Call Trace:
[ 48.119000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.119000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.119000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.119000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.119000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.119000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.119000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.119000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.119000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.124000]
[ 48.220000] POISONS (ffff8100042cdc00): ffff81000412bab0, ffff81000576aca8
[ 48.220000]
[ 48.220000] Call Trace:
[ 48.220000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.220000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.220000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.220000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.220000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.220000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.220000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.220000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.220000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.220000]
[ 48.220000] POISONS (ffff81000420cad0): ffff8100052664e8, ffff8100061a5788
[ 48.220000]
[ 48.220000] Call Trace:
[ 48.220000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.220000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.220000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.220000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.220000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.220000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.220000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.220000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.220000]
[ 48.220000] POISONS (ffff8100042cd960): ffff8100051c1ab0, ffff8100051c1ab0
[ 48.220000]
[ 48.220000] Call Trace:
[ 48.220000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.220000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.221000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.221000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473ea28): ffff81000515c3c8, ffff81000515c3c8
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e6e0): ffff81000515c8f0, ffff81000515c8f0
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e1a0): ffff81000515c398, ffff81000515c398
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e788): ffff81000515c368, ffff81000525f440
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e638): ffff81000525f2f0, ffff81000473e788
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e2f0): ffff81000515c8a8, ffff81000515c8a8
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e0f8): ffff81000515c908, ffff810005255c20
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e398): ffff810005237d70, ffff81000473e0f8
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473ecc8): ffff81000515c278, ffff81000515c278
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473ec20): ffff81000515c320, ffff81000515c320
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.221000] POISONS (ffff81000473e8d8): ffff81000515cef0, ffff81000515cef0
[ 48.221000]
[ 48.221000] Call Trace:
[ 48.221000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.221000] [<ffffffff80281141>] anon_vma_link+0x2d/0x3a
[ 48.221000] [<ffffffff8023249e>] copy_process+0xc11/0x1515
[ 48.221000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.221000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.221000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.221000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.221000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.221000]
[ 48.222000] POISONS (ffff8100040ea810): ffff81000412b960, ffff810003f3d960
[ 48.222000]
[ 48.222000] Call Trace:
[ 48.222000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.222000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.222000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.222000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.222000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.222000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.222000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.222000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.222000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.222000]
[ 48.222000] POISONS (ffff81000444e960): ffff810003fb6ca8, ffff81000473e0d8
[ 48.222000]
[ 48.222000] Call Trace:
[ 48.222000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.222000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.222000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.222000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.222000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.222000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.222000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.222000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.222000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.222000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.222000]
[ 48.222000] POISONS (ffff81000444e768): ffff8100045360d8, ffff81000473e378
[ 48.222000]
[ 48.222000] Call Trace:
[ 48.222000] [<ffffffff8027edaf>] __vm_enough_memory+0x1e/0x113
[ 48.222000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.222000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.222000] [<ffffffff802765e2>] vma_prio_tree_add+0xad/0xe0
[ 48.222000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.222000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.222000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.222000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.222000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.222000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.222000]
[ 48.222000] POISONS (ffff81000444e4c8): ffff810005237ab0, ffff810005255ea0
[ 48.222000]
[ 48.222000] Call Trace:
[ 48.222000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.222000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 48.222000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.222000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.222000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.222000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.222000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.222000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.222000]
[ 48.222000] POISONS (ffff81000444edf8): ffff810005237ab0, ffff810005237ab0
[ 48.222000]
[ 48.222000] Call Trace:
[ 48.222000] [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.222000] [<ffffffff802765fe>] vma_prio_tree_add+0xc9/0xe0
[ 48.222000] [<ffffffff802324f0>] copy_process+0xc63/0x1515
[ 48.222000] [<ffffffff80232eff>] do_fork+0x75/0x20b
[ 48.222000] [<ffffffff80353d54>] __up_write+0xf0/0x100
[ 48.222000] [<ffffffff8020c17e>] system_call+0x7e/0x83
[ 48.222000] [<ffffffff8020a64f>] sys_clone+0x23/0x25
[ 48.222000] [<ffffffff8020c497>] ptregscall_common+0x67/0xb0
[ 48.222000]
[ 48.297000] POISONS (ffff810001179148): ffff810006bbc000, ffff81000341bec0
[ 48.297000]
[ 48.297000] Call Trace:
[ 48.297000] <IRQ> [<ffffffff803580aa>] __list_add+0xd7/0x138
[ 48.297000] [<ffffffff80358117>] list_add+0xc/0x11
[ 48.297000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
[ 48.297000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
[ 48.297000] [<ffffffff80270958>] __free_pages+0x18/0x21
[ 48.297000] [<ffffffff80270990>] free_pages+0x2f/0x34
[ 48.297000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
[ 48.297000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
[ 48.297000] [<ffffffff80289663>] free_block+0xcd/0x110
[ 48.297000] [<ffffffff80289345>] cache_flusharray+0x71/0xa7
[ 48.297000] [<ffffffff802894c2>] kmem_cache_free+0x99/0xb2
[ 48.297000] [<ffffffff8029d8b2>] __d_free+0x30/0x34
[ 48.297000] [<ffffffff8029dcb6>] d_callback+0xd/0xf
[ 48.297000] [<ffffffff802458e0>] __rcu_process_callbacks+0x143/0x1da
[ 48.297000] [<ffffffff8024599a>] rcu_process_callbacks+0x23/0x44
[ 48.297000] [<ffffffff802396d2>] tasklet_action+0x54/0x9e
[ 48.297000] [<ffffffff802395ad>] __do_softirq+0x57/0xc7
[ 48.297000] [<ffffffff802398e3>] ksoftirqd+0x0/0x148
[ 48.297000] [<ffffffff8020d32c>] call_softirq+0x1c/0x28
[ 48.297000] <EOI> [<ffffffff8020e916>] do_softirq+0x34/0x87
[ 48.297000] [<ffffffff80239956>] ksoftirqd+0x73/0x148
[ 48.297000] [<ffffffff80247ddd>] kthread+0x49/0x78
[ 48.297000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
[ 48.297000] [<ffffffff80247d94>] kthread+0x0/0x78
[ 48.297000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
[ 48.297000]
[ 48.297000] list_add corruption. next->prev should be prev (ffffffff8067e050), but was ffff8100066d59c0. (next=ffff81000119e560).
[ 48.297000] ------------[ cut here ]------------
[ 48.297000] kernel BUG at lib/list_debug.c:46!
[ 48.297000] invalid opcode: 0000 [1] PREEMPT SMP
[ 48.297000] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:03:01.4/resource
[ 48.297000] CPU 1
[ 48.297000] Modules linked in: irnet(U) ppp_generic(U) slhc(U) irtty_sir(U) sir_dev(U) ircomm_tty(U) ircomm(U) irda(U) crc_ccitt(U) coretemp(U) nf_conntrack_ftp(U) xt_pkttype(U) ipt_REJECT(U) ipt_osf(U) nf_conntrack_ipv4(U) xt_ipisforif(U) ipt_recent(U) ipt_LOG(U) xt_u32(U) iptable_filter(U) ip_tables(U) xt_tcpudp(U) nf_conntrack_ipv6(U) xt_state(U) nf_conntrack(U) nfnetlink(U) ip6t_LOG(U) xt_limit(U) ip6table_filter(U) ip6_tables(U) x_tables(U) sha256(U) aes(U) fan(U) container(U) bay(U) acpi_cpufreq(U) nvram(U) pcmcia(U) firmware_class(U) yenta_socket(U) ohci1394(U) rsrc_nonstatic(U) iTCO_wdt(U) iTCO_vendor_support(U) watchdog_core(U) nvidia(P)(U) thermal(U) ieee1394(U) pcmcia_core(U) watchdog_dev(U) processor(U) snd_hda_intel(U) intel_agp(U) ac(U) button(U) video(U) battery(U) power_supply(U) output(U) rtc(U)
[ 48.297000] Pid: 7, comm: ksoftirqd/1 Tainted: P 2.6.23-rc6-mm1 #8
[ 48.297000] RIP: 0010:[<ffffffff803580ce>] [<ffffffff803580ce>] __list_add+0xfb/0x138
[ 48.297000] RSP: 0000:ffff81000349fd38 EFLAGS: 00010002
[ 48.297000] RAX: 0000000000000088 RBX: ffff810001179148 RCX: ffffffff8061dbbb
[ 48.297000] RDX: 0000000100000000 RSI: 0000000000000006 RDI: ffffffff80672620
[ 48.297000] RBP: ffff81000349fd58 R08: ffffffff80672628 R09: 0000000000000000
[ 48.297000] R10: 00000000e731ffa2 R11: ffff81000349fa98 R12: ffff81000119e560
[ 48.297000] R13: ffffffff8067e050 R14: ffffffff8067df80 R15: ffff81000346d128
[ 48.297000] FS: 0000000000000000(0000) GS:ffff8100034689c0(0000) knlGS:0000000000000000
[ 48.297000] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 48.297000] CR2: 000000000049b9b0 CR3: 0000000004168000 CR4: 00000000000006e0
[ 48.297000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 48.297000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 48.297000] Process ksoftirqd/1 (pid: 7, threadinfo ffff810003494000, task ffff810003463810)
[ 48.297000] last branch before last exception/interrupt
[ 48.297000] from [<ffffffff80234989>] printk+0xa3/0xa4
[ 48.297000] to [<ffffffff803580c8>] __list_add+0xf5/0x138
[ 48.297000] Stack: ffff81000349fe60 ffff810001179120 ffffffff8067e040 0000000000000002
[ 48.297000] ffff81000349fd68 ffffffff80358117 ffff81000349fd98 ffffffff80270865
[ 48.297000] ffff810001000000 0000000000000000 ffff81000341bec0 ffff810006bbc000
[ 48.297000] Call Trace:
[ 48.297000] <IRQ> [<ffffffff80358117>] list_add+0xc/0x11
[ 48.297000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
[ 48.297000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
[ 48.297000] [<ffffffff80270958>] __free_pages+0x18/0x21
[ 48.297000] [<ffffffff80270990>] free_pages+0x2f/0x34
[ 48.297000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
[ 48.297000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
[ 48.297000] [<ffffffff80289663>] free_block+0xcd/0x110
[ 48.297000] [<ffffffff80289345>] cache_flusharray+0x71/0xa7
[ 48.297000] [<ffffffff802894c2>] kmem_cache_free+0x99/0xb2
[ 48.297000] [<ffffffff8029d8b2>] __d_free+0x30/0x34
[ 48.297000] [<ffffffff8029dcb6>] d_callback+0xd/0xf
[ 48.297000] [<ffffffff802458e0>] __rcu_process_callbacks+0x143/0x1da
[ 48.297000] [<ffffffff8024599a>] rcu_process_callbacks+0x23/0x44
[ 48.297000] [<ffffffff802396d2>] tasklet_action+0x54/0x9e
[ 48.297000] [<ffffffff802395ad>] __do_softirq+0x57/0xc7
[ 48.297000] [<ffffffff802398e3>] ksoftirqd+0x0/0x148
[ 48.297000] [<ffffffff8020d32c>] call_softirq+0x1c/0x28
[ 48.297000] <EOI> [<ffffffff8020e916>] do_softirq+0x34/0x87
[ 48.297000] [<ffffffff80239956>] ksoftirqd+0x73/0x148
[ 48.297000] [<ffffffff80247ddd>] kthread+0x49/0x78
[ 48.297000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
[ 48.297000] [<ffffffff80247d94>] kthread+0x0/0x78
[ 48.297000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
[ 48.297000]
[ 48.297000]
[ 48.297000] Code: 0f 0b eb fe 49 8b 55 00 4c 39 e2 74 18 4c 89 e9 4c 89 e6 48
[ 48.297000] RIP [<ffffffff803580ce>] __list_add+0xfb/0x138
[ 48.297000] RSP <ffff81000349fd38>
On 09/24/2007 09:37 AM, [email protected] wrote:
> (Interestingly, I can't find any of the 3 addresses listed in the 'list_add
> corruption' message anywhere *else* in the netconsole output, and the last thing
> we hear from before the kersplat is apparently an RCU callback in a softirq?)
Hmm, there must be somebody else who changes it under hands without list_add.
Any lru skin game in the mid-layer nvidia sources? Do slab and slub behave the same?
[...]
> [ 48.222000]
> [ 48.297000] POISONS (ffff810001179148): ffff810006bbc000, ffff81000341bec0
> [ 48.297000]
> [ 48.297000] Call Trace:
> [ 48.297000] <IRQ> [<ffffffff803580aa>] __list_add+0xd7/0x138
> [ 48.297000] [<ffffffff80358117>] list_add+0xc/0x11
> [ 48.297000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
> [ 48.297000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
> [ 48.297000] [<ffffffff80270958>] __free_pages+0x18/0x21
> [ 48.297000] [<ffffffff80270990>] free_pages+0x2f/0x34
> [ 48.297000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
> [ 48.297000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
> [ 48.297000] [<ffffffff80289663>] free_block+0xcd/0x110
> [ 48.297000] [<ffffffff80289345>] cache_flusharray+0x71/0xa7
> [ 48.297000] [<ffffffff802894c2>] kmem_cache_free+0x99/0xb2
> [ 48.297000] [<ffffffff8029d8b2>] __d_free+0x30/0x34
> [ 48.297000] [<ffffffff8029dcb6>] d_callback+0xd/0xf
> [ 48.297000] [<ffffffff802458e0>] __rcu_process_callbacks+0x143/0x1da
> [ 48.297000] [<ffffffff8024599a>] rcu_process_callbacks+0x23/0x44
> [ 48.297000] [<ffffffff802396d2>] tasklet_action+0x54/0x9e
> [ 48.297000] [<ffffffff802395ad>] __do_softirq+0x57/0xc7
> [ 48.297000] [<ffffffff802398e3>] ksoftirqd+0x0/0x148
> [ 48.297000] [<ffffffff8020d32c>] call_softirq+0x1c/0x28
> [ 48.297000] <EOI> [<ffffffff8020e916>] do_softirq+0x34/0x87
> [ 48.297000] [<ffffffff80239956>] ksoftirqd+0x73/0x148
> [ 48.297000] [<ffffffff80247ddd>] kthread+0x49/0x78
> [ 48.297000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
> [ 48.297000] [<ffffffff80247d94>] kthread+0x0/0x78
> [ 48.297000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
> [ 48.297000]
> [ 48.297000] list_add corruption. next->prev should be prev (ffffffff8067e050), but was ffff8100066d59c0. (next=ffff81000119e560).
> [ 48.297000] ------------[ cut here ]------------
> [ 48.297000] kernel BUG at lib/list_debug.c:46!
> [ 48.297000] invalid opcode: 0000 [1] PREEMPT SMP
> [ 48.297000] last sysfs file: /devices/pci0000:00/0000:00:1e.0/0000:03:01.4/resource
> [ 48.297000] CPU 1
> [ 48.297000] Modules linked in: irnet(U) ppp_generic(U) slhc(U) irtty_sir(U) sir_dev(U) ircomm_tty(U) ircomm(U) irda(U) crc_ccitt(U) coretemp(U) nf_conntrack_ftp(U) xt_pkttype(U) ipt_REJECT(U) ipt_osf(U) nf_conntrack_ipv4(U) xt_ipisforif(U) ipt_recent(U) ipt_LOG(U) xt_u32(U) iptable_filter(U) ip_tables(U) xt_tcpudp(U) nf_conntrack_ipv6(U) xt_state(U) nf_conntrack(U) nfnetlink(U) ip6t_LOG(U) xt_limit(U) ip6table_filter(U) ip6_tables(U) x_tables(U) sha256(U) aes(U) fan(U) container(U) bay(U) acpi_cpufreq(U) nvram(U) pcmcia(U) firmware_class(U) yenta_socket(U) ohci1394(U) rsrc_nonstatic(U) iTCO_wdt(U) iTCO_vendor_support(U) watchdog_core(U) nvidia(P)(U) thermal(U) ieee1394(U) pcmcia_core(U) watchdog_dev(U) processor(U) snd_hda_intel(U) intel_agp(U) ac(U) button(U) video(U) battery(U) power_supply(U) output(U) rtc(U)
> [ 48.297000] Pid: 7, comm: ksoftirqd/1 Tainted: P 2.6.23-rc6-mm1 #8
> [ 48.297000] RIP: 0010:[<ffffffff803580ce>] [<ffffffff803580ce>] __list_add+0xfb/0x138
> [ 48.297000] RSP: 0000:ffff81000349fd38 EFLAGS: 00010002
> [ 48.297000] RAX: 0000000000000088 RBX: ffff810001179148 RCX: ffffffff8061dbbb
> [ 48.297000] RDX: 0000000100000000 RSI: 0000000000000006 RDI: ffffffff80672620
> [ 48.297000] RBP: ffff81000349fd58 R08: ffffffff80672628 R09: 0000000000000000
> [ 48.297000] R10: 00000000e731ffa2 R11: ffff81000349fa98 R12: ffff81000119e560
> [ 48.297000] R13: ffffffff8067e050 R14: ffffffff8067df80 R15: ffff81000346d128
> [ 48.297000] FS: 0000000000000000(0000) GS:ffff8100034689c0(0000) knlGS:0000000000000000
> [ 48.297000] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> [ 48.297000] CR2: 000000000049b9b0 CR3: 0000000004168000 CR4: 00000000000006e0
> [ 48.297000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 48.297000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 48.297000] Process ksoftirqd/1 (pid: 7, threadinfo ffff810003494000, task ffff810003463810)
> [ 48.297000] last branch before last exception/interrupt
> [ 48.297000] from [<ffffffff80234989>] printk+0xa3/0xa4
> [ 48.297000] to [<ffffffff803580c8>] __list_add+0xf5/0x138
> [ 48.297000] Stack: ffff81000349fe60 ffff810001179120 ffffffff8067e040 0000000000000002
> [ 48.297000] ffff81000349fd68 ffffffff80358117 ffff81000349fd98 ffffffff80270865
> [ 48.297000] ffff810001000000 0000000000000000 ffff81000341bec0 ffff810006bbc000
> [ 48.297000] Call Trace:
> [ 48.297000] <IRQ> [<ffffffff80358117>] list_add+0xc/0x11
> [ 48.297000] [<ffffffff80270865>] free_hot_cold_page+0xe8/0x16d
> [ 48.297000] [<ffffffff8027093e>] free_hot_page+0xb/0xd
> [ 48.297000] [<ffffffff80270958>] __free_pages+0x18/0x21
> [ 48.297000] [<ffffffff80270990>] free_pages+0x2f/0x34
> [ 48.297000] [<ffffffff8028922d>] kmem_freepages+0xc5/0xce
> [ 48.297000] [<ffffffff8028957f>] slab_destroy+0x3c/0x53
> [ 48.297000] [<ffffffff80289663>] free_block+0xcd/0x110
> [ 48.297000] [<ffffffff80289345>] cache_flusharray+0x71/0xa7
> [ 48.297000] [<ffffffff802894c2>] kmem_cache_free+0x99/0xb2
> [ 48.297000] [<ffffffff8029d8b2>] __d_free+0x30/0x34
> [ 48.297000] [<ffffffff8029dcb6>] d_callback+0xd/0xf
> [ 48.297000] [<ffffffff802458e0>] __rcu_process_callbacks+0x143/0x1da
> [ 48.297000] [<ffffffff8024599a>] rcu_process_callbacks+0x23/0x44
> [ 48.297000] [<ffffffff802396d2>] tasklet_action+0x54/0x9e
> [ 48.297000] [<ffffffff802395ad>] __do_softirq+0x57/0xc7
> [ 48.297000] [<ffffffff802398e3>] ksoftirqd+0x0/0x148
> [ 48.297000] [<ffffffff8020d32c>] call_softirq+0x1c/0x28
> [ 48.297000] <EOI> [<ffffffff8020e916>] do_softirq+0x34/0x87
> [ 48.297000] [<ffffffff80239956>] ksoftirqd+0x73/0x148
> [ 48.297000] [<ffffffff80247ddd>] kthread+0x49/0x78
> [ 48.297000] [<ffffffff8020cfc8>] child_rip+0xa/0x12
> [ 48.297000] [<ffffffff80247d94>] kthread+0x0/0x78
> [ 48.297000] [<ffffffff8020cfbe>] child_rip+0x0/0x12
> [ 48.297000]
> [ 48.297000]
> [ 48.297000] Code: 0f 0b eb fe 49 8b 55 00 4c 39 e2 74 18 4c 89 e9 4c 89 e6 48
> [ 48.297000] RIP [<ffffffff803580ce>] __list_add+0xfb/0x138
> [ 48.297000] RSP <ffff81000349fd38>
>
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University
On Mon, Sep 24, 2007 at 09:35:23AM +0200, Peter Zijlstra wrote:
> On Mon, 24 Sep 2007 11:01:10 +0800 Fengguang Wu <[email protected]>
> wrote:
>
> > > That is an interesting idea how about this:
> >
> > It looks like a workaround, but it does solve the most important problem.
> > And it is a good logic by itself. So I'd vote for it.
> >
> > The fundamental problem is that the per-bdi-writeback-completion based
> > estimation is not accurate under light loads. The problem remains for
> > a light-load sda when there is a heavy-load sdb.
>
> Well, sure, in that case sda would get to write out a lot of small
> things. But in that case it would be fair wrt the other writers.
Hmm, I cannot agree it to be fair - but pretty acceptable ;-)
Your patch already brings great improvements in the multi-bdi case.
> > One more workaround
> > could be to grant bdi(s) a minimal bdi_thresh.
>
> Ah, no, that is no good. For if there were a lot of BDIs this might
> happen:
> nr_bdis * min_thresh > dirty_limit.
Sure it is in the extreme case. However the limit could be ensured
if we really want(which I'm really not sure;-) it:
if (nr_reclaimable + nr_writeback < dirty_thresh &&
bdi_nr_reclaimable + bdi_nr_writeback <= bdi_min_thresh)
break;
> > Or better to adjust the estimation logic?
>
> Not sure what we can do here. The current thing is simple, fast and fair.
Agreed.
> > > + /*
> > > + * break out early when:
> > > + * - we're below the bdi limit
> > > + * - we're below half the total limit
> > > + *
> > > + * we let the numbers exceed the strict bdi limit if the total
> > > + * numbers are too low, this avoids (excessive) small writeouts.
> > > + */
> > > + if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh ||
> > > + nr_reclaimable + nr_writeback < dirty_thresh / 2)
> > > break;
> >
> > This may be slightly better:
> >
> > if (bdi_nr_reclaimable + bdi_nr_writeback <= bdi_thresh)
> > break;
> > /*
> > * Throttle it only when the background writeback cannot catchup.
> > */
> > if (nr_reclaimable + nr_writeback <
> > (background_thresh + dirty_thresh) / 2)
> > break;
>
> Ah, indeed. Good idea.
Thank you :-)
On (22/09/07 08:20), Satyam Sharma didst pronounce:
> Hi,
>
>
> On Thu, 20 Sep 2007, Alan Cox wrote:
> >
> > On Thu, 20 Sep 2007 14:13:15 +0100
> > [email protected] (Mel Gorman) wrote:
> >
> > > PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
> > > doesn't show up on other arches because this driver is specific to the
> > > architecture.
> > >
> > > drivers/ata/pata_scc.c: In function `scc_bmdma_status'
> >
> > Its not been updated to match the libata core changes. Try something like
> > this. Whoever is maintaining it should also remove the prereset cable handling
> > code and use the proper cable detect method.
>
> It appears you forgot to fix scc_std_softreset() and one of its callsites
> in scc_bdma_stop(). A complete patch is attempted below -- please review.
>
I can confirm it builds without warnings or errors, so thanks. I'm not in
the position to review it for correctness.
>
> [PATCH -mm] pata_scc: Keep up with libata core API changes
>
> Little fixlets, that the build started erroring / warning about:
>
> drivers/ata/pata_scc.c: In function 'scc_bmdma_status':
> drivers/ata/pata_scc.c:734: error: structure has no member named 'active_tag'
> drivers/ata/pata_scc.c: In function 'scc_pata_prereset':
> drivers/ata/pata_scc.c:866: warning: passing arg 1 of 'ata_std_prereset' from incompatible pointer type
> drivers/ata/pata_scc.c: In function 'scc_error_handler':
> drivers/ata/pata_scc.c:908: warning: passing arg 2 of 'ata_bmdma_drive_eh' from incompatible pointer type
> drivers/ata/pata_scc.c:908: warning: passing arg 3 of 'ata_bmdma_drive_eh' from incompatible pointer type
> drivers/ata/pata_scc.c:908: warning: passing arg 5 of 'ata_bmdma_drive_eh' from incompatible pointer type
> make[2]: *** [drivers/ata/pata_scc.o] Error 1
>
> Signed-off-by: Satyam Sharma <[email protected]>
> Cc: Alan Cox <[email protected]>
> Cc: Mel Gorman <[email protected]>
>
> ---
>
> Andrew, this includes (supercedes) the previous two ones from Mel / Alan.
>
> drivers/ata/pata_scc.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff -ruNp a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
> --- a/drivers/ata/pata_scc.c 2007-09-22 06:26:37.000000000 +0530
> +++ b/drivers/ata/pata_scc.c 2007-09-22 08:04:42.000000000 +0530
> @@ -594,16 +594,17 @@ static unsigned int scc_bus_softreset(st
> * Note: Original code is ata_std_softreset().
> */
>
> -static int scc_std_softreset (struct ata_port *ap, unsigned int *classes,
> - unsigned long deadline)
> +static int scc_std_softreset(struct ata_link *link, unsigned int *classes,
> + unsigned long deadline)
> {
> + struct ata_port *ap = link->ap;
> unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
> unsigned int devmask = 0, err_mask;
> u8 err;
>
> DPRINTK("ENTER\n");
>
> - if (ata_link_offline(&ap->link)) {
> + if (ata_link_offline(link)) {
> classes[0] = ATA_DEV_NONE;
> goto out;
> }
> @@ -692,7 +693,7 @@ static void scc_bmdma_stop (struct ata_q
> printk(KERN_WARNING "%s: Internal Bus Error\n", DRV_NAME);
> out_be32(bmid_base + SCC_DMA_INTST, INTSTS_BMSINT);
> /* TBD: SW reset */
> - scc_std_softreset(ap, &classes, deadline);
> + scc_std_softreset(&ap->link, &classes, deadline);
> continue;
> }
>
> @@ -731,7 +732,7 @@ static u8 scc_bmdma_status (struct ata_p
> void __iomem *mmio = ap->ioaddr.bmdma_addr;
> u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
> u32 int_status = in_be32(mmio + SCC_DMA_INTST);
> - struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
> + struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
> static int retry = 0;
>
> /* return if IOS_SS is cleared */
> @@ -860,10 +861,10 @@ static void scc_bmdma_freeze (struct ata
> * @deadline: deadline jiffies for the operation
> */
>
> -static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
> +static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
> {
> - ap->cbl = ATA_CBL_PATA80;
> - return ata_std_prereset(ap, deadline);
> + link->ap->cbl = ATA_CBL_PATA80;
> + return ata_std_prereset(link, deadline);
> }
>
> /**
> @@ -874,8 +875,10 @@ static int scc_pata_prereset(struct ata_
> * Note: Original code is ata_std_postreset().
> */
>
> -static void scc_std_postreset (struct ata_port *ap, unsigned int *classes)
> +static void scc_std_postreset(struct ata_link *link, unsigned int *classes)
> {
> + struct ata_port *ap = link->ap;
> +
> DPRINTK("ENTER\n");
>
> /* is double-select really necessary? */
>
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
On (22/09/07 12:24), Satyam Sharma didst pronounce:
>
>
> On Thu, 20 Sep 2007, Satyam Sharma wrote:
> >
> > BTW ppc64_defconfig didn't quite like 2.6.23-rc6-mm1 either ...
> > IIRC I got build failures in:
>
> > drivers/net/spider_net.c
>
>
> [PATCH -mm] spider_net: Misc build fixes after recent netdev stats changes
>
> Unbreak the following:
>
> drivers/net/spider_net.c: In function 'spider_net_release_tx_chain':
> drivers/net/spider_net.c:818: error: 'dev' undeclared (first use in this function)
> drivers/net/spider_net.c:818: error: (Each undeclared identifier is reported only once
> drivers/net/spider_net.c:818: error: for each function it appears in.)
> drivers/net/spider_net.c: In function 'spider_net_xmit':
> drivers/net/spider_net.c:922: error: 'dev' undeclared (first use in this function)
> drivers/net/spider_net.c: In function 'spider_net_pass_skb_up':
> drivers/net/spider_net.c:1018: error: 'dev' undeclared (first use in this function)
> drivers/net/spider_net.c: In function 'spider_net_decode_one_descr':
> drivers/net/spider_net.c:1215: error: 'dev' undeclared (first use in this function)
> make[2]: *** [drivers/net/spider_net.o] Error 1
>
> Signed-off-by: Satyam Sharma <[email protected]>
I've confirmed that this patch fixes the build error in question.
Acked-by: Mel Gorman <[email protected]>
>
> ---
>
> drivers/net/spider_net.c | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff -ruNp a/drivers/net/spider_net.c b/drivers/net/spider_net.c
> --- a/drivers/net/spider_net.c 2007-09-22 06:26:39.000000000 +0530
> +++ b/drivers/net/spider_net.c 2007-09-22 12:12:23.000000000 +0530
> @@ -795,6 +795,7 @@ spider_net_set_low_watermark(struct spid
> static int
> spider_net_release_tx_chain(struct spider_net_card *card, int brutal)
> {
> + struct net_device *dev = card->netdev;
> struct spider_net_descr_chain *chain = &card->tx_chain;
> struct spider_net_descr *descr;
> struct spider_net_hw_descr *hwdescr;
> @@ -919,7 +920,7 @@ spider_net_xmit(struct sk_buff *skb, str
> spider_net_release_tx_chain(card, 0);
>
> if (spider_net_prepare_tx_descr(card, skb) != 0) {
> - dev->stats.tx_dropped++;
> + netdev->stats.tx_dropped++;
> netif_stop_queue(netdev);
> return NETDEV_TX_BUSY;
> }
> @@ -979,16 +980,12 @@ static void
> spider_net_pass_skb_up(struct spider_net_descr *descr,
> struct spider_net_card *card)
> {
> - struct spider_net_hw_descr *hwdescr= descr->hwdescr;
> - struct sk_buff *skb;
> - struct net_device *netdev;
> - u32 data_status, data_error;
> -
> - data_status = hwdescr->data_status;
> - data_error = hwdescr->data_error;
> - netdev = card->netdev;
> + struct spider_net_hw_descr *hwdescr = descr->hwdescr;
> + struct sk_buff *skb = descr->skb;
> + struct net_device *netdev = card->netdev;
> + u32 data_status = hwdescr->data_status;
> + u32 data_error = hwdescr->data_error;
>
> - skb = descr->skb;
> skb_put(skb, hwdescr->valid_size);
>
> /* the card seems to add 2 bytes of junk in front
> @@ -1015,8 +1012,8 @@ spider_net_pass_skb_up(struct spider_net
> }
>
> /* update netdevice statistics */
> - dev->stats.rx_packets++;
> - dev->stats.rx_bytes += skb->len;
> + netdev->stats.rx_packets++;
> + netdev->stats.rx_bytes += skb->len;
>
> /* pass skb up to stack */
> netif_receive_skb(skb);
> @@ -1184,6 +1181,7 @@ static int spider_net_resync_tail_ptr(st
> static int
> spider_net_decode_one_descr(struct spider_net_card *card)
> {
> + struct net_device *dev = card->netdev;
> struct spider_net_descr_chain *chain = &card->rx_chain;
> struct spider_net_descr *descr = chain->tail;
> struct spider_net_hw_descr *hwdescr = descr->hwdescr;
> @@ -1210,7 +1208,7 @@ spider_net_decode_one_descr(struct spide
> (status == SPIDER_NET_DESCR_PROTECTION_ERROR) ||
> (status == SPIDER_NET_DESCR_FORCE_END) ) {
> if (netif_msg_rx_err(card))
> - dev_err(&card->netdev->dev,
> + dev_err(&dev->dev,
> "dropping RX descriptor with state %d\n", status);
> dev->stats.rx_dropped++;
> goto bad_desc;
>
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
On (22/09/07 14:11), Satyam Sharma didst pronounce:
>
> > -static volatile int kgdb_hwbreak_sstep[NR_CPUS];
> > +volatile int kgdb_hwbreak_sstep[NR_CPUS];
>
> That looks fishy to me. Why is it volatile-qualified?
It turned out that it was unnecessary. A follow-up patch removed the volatile
and kept the static.
> And does that
> actually want to be a per-cpu var?
>
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
Eric W. Biederman wrote:
> [email protected] (Joseph Fannin) writes:
>
>
>>The netfilter sysctls in the bridging code don't set strategy routines:
>>
>> sysctl table check failed: /net/bridge/bridge-nf-call-arptables .3.10.1 Missing
>>strategy
>> sysctl table check failed: /net/bridge/bridge-nf-call-iptables .3.10.2 Missing
>>strategy
>> sysctl table check failed: /net/bridge/bridge-nf-call-ip6tables .3.10.3 Missing
>>strategy
>> sysctl table check failed: /net/bridge/bridge-nf-filter-vlan-tagged .3.10.4
>>Missing strategy
>> sysctl table check failed: /net/bridge/bridge-nf-filter-pppoe-tagged .3.10.5
>>Missing strategy
>>
>> These binary sysctls can't work. The binary sysctl numbers of
>>other netfilter sysctls with this problem are being removed. These
>>need to go as well.
>>
>>Signed-off-by: Joseph Fannin <[email protected]>
>
>
> Acked-by: "Eric W. Biederman" <[email protected]>
Queued for 2.6.24, thanks.
> Hmm. This is an interesting case. The proc method is forcing
> the integer to be either 0 or 1 in a racy fashion. But none of the
> users appear to depend upon that.
>
> So this is the least broken set of binary sysctls I have seen caught
> by my check.
>
> A really good fix would be to remove the binary side and then to
> modify brnf_sysctl_call_tables to allocate a temporary ctl_table and
> integer on the stack and only set ctl->data after we have normalized
> the written value. But since in practice nothing cares about
> the race a better fix probably isn't worth it.
I seem to be missing something, the entire brnf_sysctl_call_tables
thing looks purely cosmetic to me, wouldn't it be better to simply
remove it?
On Mon, 24 Sep 2007 18:55:38 +0200
Patrick McHardy <[email protected]> wrote:
> Eric W. Biederman wrote:
> > [email protected] (Joseph Fannin) writes:
> >
> >
> >>The netfilter sysctls in the bridging code don't set strategy routines:
> >>
> >> sysctl table check failed: /net/bridge/bridge-nf-call-arptables .3.10.1 Missing
> >>strategy
> >> sysctl table check failed: /net/bridge/bridge-nf-call-iptables .3.10.2 Missing
> >>strategy
> >> sysctl table check failed: /net/bridge/bridge-nf-call-ip6tables .3.10.3 Missing
> >>strategy
> >> sysctl table check failed: /net/bridge/bridge-nf-filter-vlan-tagged .3.10.4
> >>Missing strategy
> >> sysctl table check failed: /net/bridge/bridge-nf-filter-pppoe-tagged .3.10.5
> >>Missing strategy
> >>
> >> These binary sysctls can't work. The binary sysctl numbers of
> >>other netfilter sysctls with this problem are being removed. These
> >>need to go as well.
> >>
> >>Signed-off-by: Joseph Fannin <[email protected]>
> >
> >
> > Acked-by: "Eric W. Biederman" <[email protected]>
>
>
> Queued for 2.6.24, thanks.
>
> > Hmm. This is an interesting case. The proc method is forcing
> > the integer to be either 0 or 1 in a racy fashion. But none of the
> > users appear to depend upon that.
> >
> > So this is the least broken set of binary sysctls I have seen caught
> > by my check.
> >
> > A really good fix would be to remove the binary side and then to
> > modify brnf_sysctl_call_tables to allocate a temporary ctl_table and
> > integer on the stack and only set ctl->data after we have normalized
> > the written value. But since in practice nothing cares about
> > the race a better fix probably isn't worth it.
>
>
> I seem to be missing something, the entire brnf_sysctl_call_tables
> thing looks purely cosmetic to me, wouldn't it be better to simply
> remove it?
I agree, removing seems like a better option. But probably need to go
through a 3-6mo warning period, since sysctl's are technically an API.
--
Stephen Hemminger <[email protected]>
Stephen Hemminger wrote:
> On Mon, 24 Sep 2007 18:55:38 +0200
> Patrick McHardy <[email protected]> wrote:
>
>>Eric W. Biederman wrote:
>>
>>>A really good fix would be to remove the binary side and then to
>>>modify brnf_sysctl_call_tables to allocate a temporary ctl_table and
>>>integer on the stack and only set ctl->data after we have normalized
>>>the written value. But since in practice nothing cares about
>>>the race a better fix probably isn't worth it.
>>
>>
>>I seem to be missing something, the entire brnf_sysctl_call_tables
>>thing looks purely cosmetic to me, wouldn't it be better to simply
>>remove it?
>
>
> I agree, removing seems like a better option. But probably need to go
> through a 3-6mo warning period, since sysctl's are technically an API.
I meant removing brnf_sysctl_call_tables function, not the sysctls
themselves, all it does is change values != 0 to 1. Or did you
actually mean that something in userspace might depend on reading
back the value 1 after writing a value != 0?
On Sat, Sep 22, 2007 at 02:51:54PM +0530, Satyam Sharma wrote:
> Hi Greg,
>
>
> On Tue, 18 Sep 2007, Greg KH wrote:
> >
> > On Tue, Sep 18, 2007 at 03:04:48PM +0530, Satyam Sharma wrote:
> > >
> > > But wait ... isn't that a statically-allocated kobject, which were
> > > supposed to be "naughty" in the first place?
> >
> > Yes it is, if you want to dynamically create it, please do.
>
> Sorry for being late to reply, but do you still want such a patch (i.e.
> convert static to dynamic allocation)?
Yes, I'll gladly take such patches.
> I read elsewhere on this thread that you'd merge Kamalesh's patch and
> fix it up to also use kobject_name() yourself. But it's a small/trivial
> driver, so I think just converting it to dynamic allocation right now
> itself (when we've noticed it already) is probably better (?)
Sure that would be great to have.
> [ BTW I don't see the fix in your git trees or quilt queue. So I'll
> make a patch on top of 2.6.23-rc6-mm1 itself. ]
I'm behind in updating my patch queue, sorry, other things came up :(
thanks,
greg k-h
On Wed, Sep 19, 2007 at 07:44:03PM +0200, Sam Ravnborg wrote:
> On Wed, Sep 19, 2007 at 10:28:48AM +0100, Andy Whitcroft wrote:
> > I am seeing this strange link error from a PowerMac G5 (powerpc):
> >
> > [...]
> > KSYM .tmp_kallsyms2.S
> > AS .tmp_kallsyms2.o
> > LD vmlinux.o
> > ld: dynreloc miscount for fs/built-in.o, section .opd
> > ld: can not edit opd Bad value
> > make: *** [vmlinux.o] Error 1
>
> We have had this issue before.
> Try to see:
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=045e72acf16054c4ed2760e9a8edb19a08053af1
>
> Here it was caused by a weak declaration that was superflous.
>
> I expect the workaround to be equally simple this time - or I hope so.
Yep, will investigate this as suggested. As this problem seems to
persist thru 2.6.23-rc8-mm1 I will report it again there and my
findings.
-apw
Patrick McHardy <[email protected]> writes:
>> Hmm. This is an interesting case. The proc method is forcing
>> the integer to be either 0 or 1 in a racy fashion. But none of the
>> users appear to depend upon that.
>>
>> So this is the least broken set of binary sysctls I have seen caught
>> by my check.
>>
>> A really good fix would be to remove the binary side and then to
>> modify brnf_sysctl_call_tables to allocate a temporary ctl_table and
>> integer on the stack and only set ctl->data after we have normalized
>> the written value. But since in practice nothing cares about
>> the race a better fix probably isn't worth it.
>
>
> I seem to be missing something, the entire brnf_sysctl_call_tables
> thing looks purely cosmetic to me, wouldn't it be better to simply
> remove it?
Well it is cosmetic in a user space visible way. Which means I don't
have a clue which if any user space programs or scripts care if we change
the behavior.
I just looked in the git history and brnf_sysctl_call_tables has been
that way since sysctl support was added to the bridge netfilter code.
The only comment I can found about the addition is:
2003/12/24 19:32:34-08:00 bdschuym
[BRIDGE]: Add 4 sysctl entries for bridge netfilter behavioral control:
bridge-nf-call-arptables - pass or don't pass bridged ARP traffic to
arptables' FORWARD chain.
bridge-nf-call-iptables - pass or don't pass bridged IPv4 traffic to
iptables' chains.
bridge-nf-filter-vlan-tagged - pass or don't pass bridged vlan-tagged
ARP/IP traffic to arptables/iptables.
So since forcing the values to 0 or 1 doesn't seem hard to maintain
I am uncomfortable with removing that check.
Eric
Eric W. Biederman wrote:
> Patrick McHardy <[email protected]> writes:
>
>>I seem to be missing something, the entire brnf_sysctl_call_tables
>>thing looks purely cosmetic to me, wouldn't it be better to simply
>>remove it?
>
>
> Well it is cosmetic in a user space visible way. Which means I don't
> have a clue which if any user space programs or scripts care if we change
> the behavior.
>
> I just looked in the git history and brnf_sysctl_call_tables has been
> that way since sysctl support was added to the bridge netfilter code.
>
> The only comment I can found about the addition is:
>
> 2003/12/24 19:32:34-08:00 bdschuym
> [BRIDGE]: Add 4 sysctl entries for bridge netfilter behavioral control:
> bridge-nf-call-arptables - pass or don't pass bridged ARP traffic to
> arptables' FORWARD chain.
> bridge-nf-call-iptables - pass or don't pass bridged IPv4 traffic to
> iptables' chains.
> bridge-nf-filter-vlan-tagged - pass or don't pass bridged vlan-tagged
> ARP/IP traffic to arptables/iptables.
>
> So since forcing the values to 0 or 1 doesn't seem hard to maintain
> I am uncomfortable with removing that check.
OK lets keep it then. Fixing the race seems overkill to me though.
On Tue, 25 Sep 2007 06:07:24 +0200
Patrick McHardy <[email protected]> wrote:
> Stephen Hemminger wrote:
> > On Mon, 24 Sep 2007 18:55:38 +0200
> > Patrick McHardy <[email protected]> wrote:
> >
> >>Eric W. Biederman wrote:
> >>
> >>>A really good fix would be to remove the binary side and then to
> >>>modify brnf_sysctl_call_tables to allocate a temporary ctl_table
> >>>and integer on the stack and only set ctl->data after we have
> >>>normalized the written value. But since in practice nothing cares
> >>>about the race a better fix probably isn't worth it.
> >>
> >>
> >>I seem to be missing something, the entire brnf_sysctl_call_tables
> >>thing looks purely cosmetic to me, wouldn't it be better to simply
> >>remove it?
> >
> >
> > I agree, removing seems like a better option. But probably need to
> > go through a 3-6mo warning period, since sysctl's are technically
> > an API.
>
>
> I meant removing brnf_sysctl_call_tables function, not the sysctls
> themselves, all it does is change values != 0 to 1. Or did you
> actually mean that something in userspace might depend on reading
> back the value 1 after writing a value != 0?
I was going farther, because don't really see the value of having
a sysctl for this. It seems better to just not load filters if
they aren't going to be used. Having another enable/disable hook
just adds needless complexity.
Stephen Hemminger wrote:
> On Tue, 25 Sep 2007 06:07:24 +0200
> Patrick McHardy <[email protected]> wrote:
>
>
>> I meant removing brnf_sysctl_call_tables function, not the sysctls
>> themselves, all it does is change values != 0 to 1. Or did you
>> actually mean that something in userspace might depend on reading
>> back the value 1 after writing a value != 0?
>>
>
> I was going farther, because don't really see the value of having
> a sysctl for this. It seems better to just not load filters if
> they aren't going to be used. Having another enable/disable hook
> just adds needless complexity.
>
These sysctls control whether bridged packets will be handled
by iptables and friends. The bridge netfilter code always
handles bridged packets, and iptables might be loaded for
different reasons. So I don't see how that would work.
I think it should be specified in the ebtables ruleset, but
the current netfilter infrastructure doesn't allow to do that
cleanly.
Patrick McHardy <[email protected]> writes:
> OK lets keep it then. Fixing the race seems overkill to me though.
Me to.
Eric
Satyam Sharma wrote:
> Hi,
>
>
> On Thu, 20 Sep 2007, Alan Cox wrote:
>> On Thu, 20 Sep 2007 14:13:15 +0100
>> [email protected] (Mel Gorman) wrote:
>>
>>> PPC64 building allmodconfig fails to compile drivers/ata/pata_scc.c . It
>>> doesn't show up on other arches because this driver is specific to the
>>> architecture.
>>>
>>> drivers/ata/pata_scc.c: In function `scc_bmdma_status'
>> Its not been updated to match the libata core changes. Try something like
>> this. Whoever is maintaining it should also remove the prereset cable handling
>> code and use the proper cable detect method.
>
> It appears you forgot to fix scc_std_softreset() and one of its callsites
> in scc_bdma_stop(). A complete patch is attempted below -- please review.
>
>
> [PATCH -mm] pata_scc: Keep up with libata core API changes
>
> Little fixlets, that the build started erroring / warning about:
>
> drivers/ata/pata_scc.c: In function 'scc_bmdma_status':
> drivers/ata/pata_scc.c:734: error: structure has no member named 'active_tag'
> drivers/ata/pata_scc.c: In function 'scc_pata_prereset':
> drivers/ata/pata_scc.c:866: warning: passing arg 1 of 'ata_std_prereset' from incompatible pointer type
> drivers/ata/pata_scc.c: In function 'scc_error_handler':
> drivers/ata/pata_scc.c:908: warning: passing arg 2 of 'ata_bmdma_drive_eh' from incompatible pointer type
> drivers/ata/pata_scc.c:908: warning: passing arg 3 of 'ata_bmdma_drive_eh' from incompatible pointer type
> drivers/ata/pata_scc.c:908: warning: passing arg 5 of 'ata_bmdma_drive_eh' from incompatible pointer type
> make[2]: *** [drivers/ata/pata_scc.o] Error 1
>
> Signed-off-by: Satyam Sharma <[email protected]>
> Cc: Alan Cox <[email protected]>
> Cc: Mel Gorman <[email protected]>
>
> ---
>
> Andrew, this includes (supercedes) the previous two ones from Mel / Alan.
>
> drivers/ata/pata_scc.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
applied
On Fri 2007-09-21 10:06:15, Thomas Gleixner wrote:
> On Fri, 2007-09-21 at 14:51 +1000, Paul Mackerras wrote:
> > Linus Torvalds writes:
> >
> > > It would indeed be nice if we could just take CPU's down early (while
> > > everything is working), and run the whole suspend code with just one CPU,
> > > rather than having to worry about the ordering between CPU and device
> > > takedown.
> >
> > That is certainly what we want to do on powerpc.
>
> I would have expected that we do it exactly this way and it took me by
> surprise, that we do not.
Well, we used to do that, but acpi spec forbids that, and it means
userspace sees plugs/unplugs.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html