2007-05-16 03:20:33

by Andrew Morton

[permalink] [raw]
Subject: 2.6.22-rc1-mm1


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/


- I found some time to look into some writeback problems in
fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
but more work (mainly testing) needs to be done.

There's some new debug code in there which could be very expensive if
there are a lot of dirty inodes in the machine (quadratic behaviour). If
the machine seems to be affected by this, the debugging may be disabled with

echo 0 > /proc/sys/fs/inode_debug

- Added an i386 early-startup development tree, as git-newsetup.patch ("H.
Peter Anvin" <[email protected]>)

- Brought back git-sas.patch (Darrick J. Wong <[email protected]>). It got
lost quite some time ago.



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.21-mm2:


origin.patch
git-acpi.patch
git-alsa.patch
git-agpgart.patch
git-arm-master.patch
git-avr32.patch
git-cpufreq.patch
git-dvb.patch
git-gfs2-nmw.patch
git-hid.patch
git-ia64.patch
git-ieee1394.patch
git-input.patch
git-kvm.patch
git-leds.patch
git-libata-all.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-ubi.patch
git-battery.patch
git-ioat.patch
git-nfs.patch
git-ocfs2.patch
git-parisc.patch
git-r8169.patch
git-selinux.patch
git-pciseg.patch
git-s390.patch
git-sh.patch
git-sh64.patch
git-scsi-target.patch
git-block.patch
git-sas.patch
git-unionfs.patch
git-wireless.patch
git-ipwireless_cs.patch
git-newsetup.patch
git-newsetup-fixup.patch
git-xfs.patch
git-xtensa.patch
git-gccbug.patch

git trees

-fix-unnecesary-meminit.patch
-smaps-only-define-clear_refs-for-config_mmu.patch
-frv-miscellaneous-fixes.patch
-m68k-asm-scatterlisth-needs-linux-typesh.patch
-usb_gigaset-dont-kmalloc0.patch
-revert-sched-redundant-reschedule-when-set_user_nice-boosts-a-prio-of-a-task-from-the-expired-array.patch
-declare-compat_sys_utimensat.patch
-krealloc-fix-kerneldoc-comments.patch
-fix-spellings-of-slab-allocator-section-in-init-kconfig.patch
-frv-replace-pgd-management-via-slabs-through-quicklists.patch
-disable-slub-on-powerpc.patch
-dm-raid1-one-kmirrord-per-mirror.patch
-dm-crypt-disable-barriers.patch
-dm-crypt-fix-call-to-clone_init.patch
-dm-crypt-fix-avoid-cloned-bio-ref-after-free.patch
-dm-crypt-fix-remove-first_clone.patch
-dm-crypt-use-smaller-bvecs-in-clones.patch
-dm-crypt-add-null-iv.patch
-dm-mpath-log-device-name.patch
-dm-allow-offline-devices.patch
-dm-log-fault-detection.patch
-dm-log-report-fault-status.patch
-dm-raid1-add-handle_errors-feature-flag.patch
-dm-io-delay-dec_count.patch
-dm-io-prepare-for-new-interface.patch
-dm-io-new-interface.patch
-dm-kcopyd-update-dm-io-interface.patch
-dm-exception-store-update-dm-io-interface.patch
-dm-log-update-dm-io-interface.patch
-dm-raid1-update-dm-io-interface.patch
-dm-io-remove-old-interface.patch
-dm-bio-list-helpers.patch
-dm-delay-target.patch
-dm-raid1-fix-to-commit-pending-clear-region-requests.patch
-dm-raid1-switch-rh_in_sync-to-blocking-in-do_reads.patch
-dm-log-fix-resume-failed-log-device.patch
-iop13xx-msi-support-rev6.patch
-s390-fix-subsystem-removal-fallout.patch
-power-management-remove-some-useless-code-from-arm.patch
-scx200-use-mutex-instead-of-semaphore.patch
-drivers-hwmon-switch-to-using-input_dev-devparent.patch
-git-ia64-sa_interrupt-is-deprecated.patch
-sn-validate-smp_affinity-mask-on-intr-redirect.patch
-sn-validate-smp_affinity-mask-on-intr-redirect-fix.patch
-sn-validate-smp_affinity-mask-on-intr-redirect-fix-2.patch
-sbp2-include-fixes.patch
-ieee1394-iso-needs-schedh.patch
-libata-clean-up-sff-init-mess.patch
-pata_pcmcia-recognize-2gb-compactflash-from-transcend.patch
-fix-pata_qdic-probe-code.patch
-pata_scc-fix-compilation.patch
-ide-ide-fix-dma-masks-v3.patch
-ide-ide-max-dma-mode-v3.patch
-ide-ide-tune-dma-helper.patch
-ide-ide-proc-fs.patch
-ide-ide-split-off-ioctls-from-settings-v2.patch
-ide-ide-move-settings-to-ide-proc.patch
-ide-ide-register-hw-initializing-arg.patch
-ide-ide-proc-register-port.patch
-ide-ide-pci-pcibus-order.patch
-ide-ide-fix-pio-setup-on-resume-for-atapi.patch
-forcedeth-improve-napi-logic.patch
-ibmtr_cs-fix-hang-on-eject.patch
-2621-rc5-mm3-fix-e1000-compilation.patch
-link_watch-eliminate-potential-delay-on-wrap-around.patch
-link_watch-always-schedule-urgent-events.patch
-sunrpc-fix-crash-in-rpc_malloc.patch
-git-battery-fix.patch
-nfs-kill-the-obsolete-nfs_paranoia.patch
-nfs-use-__set_current_state.patch
-round_up-macro-cleanup-in-arch-sh64-kernel-pci_sh5c.patch
-use-unchecked_isa_dma-in-sd_revalidate_disk.patch
-remove-the-broken-scsi_acornscsi_3-driver.patch
-fix-old-scsi-adapter-crashes-with-cd-rom-take-2.patch
-unionfs-fix-slab-abuses-with-krealloc.patch
-maintainers-add-cxacru-website-mailing-list.patch
-use-mutex-instead-of-semaphore-in-berkshire-usb-pc-watchdog-driver.patch
-i386-map-enough-initial-memory-to-create-lowmem-mappings-fix.patch
-fault-injection-disable-stacktrace-filter-for-x86-64.patch
-i386-add-support-for-picopower-irq-router-fix.patch
-x86_64-display-more-intutive-error-message-if-kernel-is-not-2mb-aligned.patch
-xfs-fix-unmount-race.patch
-crypto-fix.patch
-fix-leaky-resv_huge_pages-when-cpuset-is-in-use.patch
-quicklist-support-for-ia64.patch
-swsusp-clean-up-print.patch
-pm-separate-hibernation-code-from-suspend-code.patch
-swsusp-use-reasonable-default-for-hibernation_mode.patch
-uml-fix-build-breakage.patch
-uml-turn-on-scsi-support.patch
-uml-mark-a-tt-only-function.patch
-fix-linuxdoc-comment.patch
-uml-turn-build-warnings-into-comments.patch
-getrusage-fill-ru_inblock-and-ru_oublock-fields-if-possible.patch
-display-all-possible-partitions-when-the-root-filesystem-failed-to-mount.patch
-remove-hardcoding-of-hard_smp_processor_id-on-up.patch
-use-the-apic-to-determine-the-hardware-processor-id-i386.patch
-use-the-apic-to-determine-the-hardware-processor-id-x86_64.patch
-upper-32-bits.patch
-mca-fix-bus-matching.patch
-mca-add-integrated-device-bus-matching.patch
-cm4000_cs-fix-error-paths.patch
-cm4000_cs-use-bitrev.patch
-use-simple_read_from_buffer-in-fs.patch
-use-simple_read_from_buffer-in-kernel.patch
-pretend-cpuset-has-some-form-of-hugetlb-page-reservation.patch
-lib-hexdump.patch
-lib-hexdump-fix.patch
-lib-hexdump-update-on-feedback.patch
-pasemi-hardware-rng-driver.patch
-pasemi-hardware-rng-driver-tidy.patch
-nbd-check-the-return-value-of-sysfs_create_file.patch
-nbd-check-the-return-value-of-sysfs_create_file-fix.patch
-move-sig_kernel_-et-al-macros-to-linux-signalh.patch
-tty_set_ldisc-receive_room-fix.patch
-mutex_lock_interruptible-add-__must_check.patch
-mutex_lock_interruptible-add-__must_check-must-fix.patch
-clocksource-spelling-error-in-watchdog-code.patch
-fs-fix-indentation-in-do_path_lookup.patch
-fs-use-path_walk-in-do_path_lookup.patch
-doc-what-a-patch-series-is.patch
-kernel-doc-small-kernel-doc-optimization.patch
-tty-flush-flip-buffer-on-ldisc-input-queue-flush.patch
-fix-printk-format-warnings-in-timer_listc.patch
-tty-add-compat_ioctl.patch
-tty-add-compat_ioctl-fix.patch
-blacklist-dell-optiplex-320-from-using-the-hpet.patch
-blacklist-dell-optiplex-320-from-using-the-hpet-fix.patch
-consolidate-generic_writepages-and-mpage_writepages.patch
-use-common-cpu_is_xxx-macros-on-at91-and-avr32.patch
-mpc52xx-psc-spi-master-driver.patch
-schedule_on_each_cpu-use-preempt_disable.patch
-reimplement-flush_workqueue.patch
-implement-flush_work.patch
-flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch
-flush_cpu_workqueue-dont-flush-an-empty-worklist.patch
-kblockd-use-flush_work.patch
-tg3-use-flush_keventd_work.patch
-e1000-use-flush_keventd_work.patch
-libata-use-flush_work.patch
-phy-use-flush_work.patch
-relay-use-plain-timer-instead-of-delayed-work.patch
-extend-notifier_call_chain-to-count-nr_calls-made.patch
-define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release.patch
-eliminate-lock_cpu_hotplug-in-kernel-schedc.patch
-call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed.patch
-call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch
-slab-use-cpu_lock_.patch
-workqueue-fix-freezeable-workqueues-implementation.patch
-workqueue-fix-flush_workqueue-vs-cpu_dead-race.patch
-workqueue-dont-clear-cwq-thread-until-it-exits.patch
-workqueue-dont-migrate-pending-works-from-the-dead-cpu.patch
-workqueue-kill-run_scheduled_work.patch
-workqueue-dont-save-interrupts-in-run_workqueue.patch
-workqueue-make-cancel_rearming_delayed_workqueue-work-on-idle-dwork.patch
-workqueue-introduce-cpu_singlethread_map.patch
-workqueue-introduce-workqueue_struct-singlethread.patch
-workqueue-make-init_workqueues-__init.patch
-workqueues-shift-kthread_bind-from-cpu_up_prepare-to-cpu_online.patch
-make-queue_delayed_work-friendly-to-flush_fork.patch
-unify-queue_delayed_work-and-queue_delayed_work_on.patch
-workqueue-introduce-wq_per_cpu-helper.patch
-make-cancel_rearming_delayed_work-work-on-any-workqueue-not-just-keventd_wq.patch
-ipvs-flush-defense_work-before-module-unload.patch
-workqueue-kill-noautorel-works.patch
-worker_thread-dont-play-with-signals.patch
-worker_thread-fix-racy-try_to_freeze-usage.patch
-zap_other_threads-remove-unneeded-exit_signal-change.patch
-slab-shutdown-cache_reaper-when-cpu-goes-down.patch
-unify-flush_work-flush_work_keventd-and-rename-it-to-cancel_work_sync.patch
-____call_usermodehelper-dont-flush_signals.patch
-freezer-read-pf_borrowed_mm-in-a-nonracy-way.patch
-freezer-close-theoretical-race-between-refrigerator-and-thaw_tasks.patch
-freezer-remove-pf_nofreeze-from-rcutorture-thread.patch
-freezer-remove-pf_nofreeze-from-bluetooth-threads.patch
-freezer-add-try_to_freeze-calls-to-all-kernel-threads.patch
-kthread-dont-depend-on-work-queues-take-2.patch
-change-reparent_to_init-to-reparent_to_kthreadd.patch
-nlmclnt_recovery-dont-use-clone_sighand.patch
-usbatm_heavy_init-dont-use-clone_sighand.patch
-wait_for_helper-remove-unneeded-do_sigaction.patch
-worker_thread-dont-play-with-sigchld-and-numa-policy.patch
-change-kernel-threads-to-ignore-signals-instead-of-blocking-them.patch
-fix-kthread_create-vs-freezer-theoretical-race.patch
-fix-pf_nofreeze-and-freezeable-race-2.patch
-freezer-document-task_lock-in-thaw_process.patch
-move-frozen_process-to-kernel-power-processc.patch
-remvoe-kthread_bind-call-from-_cpu_down.patch
-separate-freezer-from-pm-code-rev-2.patch
-introduce-freezer-flags-rev-2.patch
-make-cancel_rearming_delayed_work-reliable.patch
-make-cancel_rearming_delayed_work-reliable-spelling.patch
-make-cancel_rearming_delayed_work-reliable-fix.patch
-remove-obsolete-label-from-isdn4linux-v3.patch
-remove-nfs4_acl_add_ace.patch
-the-nfsv2-nfsv3-server-does-not-handle-zero-length-write.patch
-knfsd-rename-sk_defer_lock-to-sk_lock.patch
-nfsd-nfs4state-remove-unnecessary-daemonize-call.patch
-rpc-add-wrapper-for-svc_reserve-to-account-for-checksum.patch
-rpc-add-wrapper-for-svc_reserve-to-account-for-checksum-fix.patch
-sunrpc-fix-error-path-in-module_init.patch
-knfsd-avoid-use-of-unitialised-variables-on-error-path-when-nfs-exports.patch
-knfsd-rpc-fix-server-side-wrapping-of-krb5i-replies.patch
-knfsd-fix-resource-leak-resulting-in-module-refcount-leak-for-rpcsec_gss_krb5ko.patch
-knfsd-rpcgss-rpc_gss_proc_-destroy-request-will-get-a-bad-rpc.patch
-knfsd-simplify-a-while-condition-in-svcsockc.patch
-knfsd-trivial-makefile-cleanup.patch
-knfsd-various-nfsd-xdr-cleanups.patch
-knfsd-avoid-oops-if-buggy-userspace-performs-confusing-filehandle-dentry-mapping.patch
-declare-struct-ktime.patch
-futex-priority-based-wakeup.patch
-make-futex_wait-use-an-hrtimer-for-timeout.patch
-futex_requeue_pi-optimization.patch
-futex-new-private-futexes.patch
-timer-parenthesis-fix-in-tbase_get_deferrable-etc.patch
-linux-kernel-markers-kconfig-menus.patch
-linux-kernel-markers-architecture-independant-code.patch
-linux-kernel-markers-powerpc-optimization.patch
-linux-kernel-markers-i386-optimization.patch
-markers-add-instrumentation-markers-menus-to-avr32.patch
-linux-kernel-markers-non-optimized-architectures.patch
-markers-alpha-and-avr32-supportadd-alpha-markerh-add-arm26-markerh.patch
-linux-kernel-markers-documentation.patch
-markers-define-the-linker-macro-extra_rwdata.patch
-markers-use-extra_rwdata-in-architectures.patch
-statically-initialize-struct-pid-for-swapper.patch
-explicitly-set-pgid-and-sid-of-init-process.patch
-use-struct-pid-parameter-in-copy_process.patch
-use-task_pgrp-task_session-in-copy_process.patch
-kill-unused-sesssion-and-group-values-in-rocket-driver.patch
-fix-some-coding-style-errors-in-autofs.patch
-replace-pid_t-in-autofs-with-struct-pid-reference.patch
-dont-init-pgrp-and-__session-in-init_signals.patch
-signal-timer-event-fds-v9-anonymous-inode-source.patch
-signal-timer-event-fds-v9-signalfd-core.patch
-signal-timer-event-signalfd-wire-up-x86-arches.patch
-signal-timer-event-fds-v9-signalfd-compat-code.patch
-signal-timer-event-fds-v9-timerfd-core.patch
-signal-timer-event-timerfd-wire-up-x86-arches.patch
-signal-timer-event-fds-v9-timerfd-compat-code.patch
-signal-timer-event-fds-v9-eventfd-core.patch
-signal-timer-event-eventfd-wire-up-x86-arches.patch
-signal-timer-event-fds-v9-kaio-eventfd-support-example.patch
-epoll-use-anonymous-inodes.patch
-epoll-cleanups-epoll-no-module.patch
-epoll-cleanups-epoll-remove-static-pre-declarations-and-akpm-ize-the-code.patch
-fs-convert-core-functions-to-zero_user_page.patch
-fs-convert-core-functions-to-zero_user_page-pass-kmap-type.patch
-fs-convert-core-functions-to-zero_user_page-fix-2.patch
-ext3-use-zero_user_page.patch
-gfs2-use-zero_user_page.patch
-nfs-use-zero_user_page.patch
-ntfs-use-zero_user_page.patch
-ntfs-use-zero_user_page-fix.patch
-ocfs2-use-zero_user_page.patch
-reiserfs-use-zero_user_page.patch
-fs-deprecate-memclear_highpage_flush.patch
-microcode-use-suspend-related-cpu-hotplug-notifications.patch
-vmstat-use-our-own-timer-events.patch
-vmstat-use-our-own-timer-events-fix.patch
-make-vm-statistics-update-interval-configurable.patch
-make-vm-statistics-update-interval-configurable-fix.patch
-move-remote-node-draining-out-of-slab-allocators.patch
-clocksource-fix-resume-logic.patch
-wrap-access-to-thread_info.patch
-wrap-access-to-thread_info-fix.patch
-rename-thread_info-to-stack.patch
-rename-thread_info-to-stack-fix.patch
-rename-thread_info-to-stack-fix-2.patch
-compiler-introduce-__used-and-__maybe_unused.patch
-i386-pci-type-may-be-unused.patch
-sh-dma-use-__maybe_unused.patch
-frv-gdb-use-__maybe_unused.patch
-i386-voyager-use-__maybe_unused.patch
-mips-excite-use-__maybe_unused.patch
-mips-tlbex-use-__maybe_unused.patch
-i386-mmzone-use-__maybe_unused.patch
-vt8623fb-new-framebuffer-driver-for-via-vt8623.patch
-vt8623fb-fix-compile-warnings.patch
-vt8623fb-fix-compile-error-if-config_mtrr=n.patch
-svgalib-move-fb_get_caps-to-svgalib.patch
-fbdev-add-support-for-avr32.patch
-frame-buffer-geforce-7300-gt.patch
-drivers-mdc-use-array_size-macro-when-appropriate.patch
-md-cleanup-use-seq_release_private-where-appropriate.patch
-md-move-test-for-whether-level-supports-bitmap-to-correct-place.patch
-md-stop-using-csum_partial-for-checksum-calculation-in-md.patch
-md-remove-the-slash-from-the-name-of-a-kmem_cache-used-by-raid5.patch
-md-allow-reshape_position-for-md-arrays-to-be-set-via-sysfs.patch
-md-improve-partition-detection-in-md-array.patch
-md-dm-reduce-stack-usage-with-stacked-block-devices.patch
-timer_stats-slimmed-down-using-statistics-infrastucture.patch

Merged into mainline or a subsystem tree

+spi-fix-spidev-for-sizeoflong-32-devices.patch
+parport_pc-needs-dma-mappingh.patch

2.6.22 queue.

-ia64-race-flushing-icache-in-do_no_page-path.patch

Dropped

+use-menuconfig-objects-ii-sound.patch

alsa Kconfig update

+working-3d-dri-intel-agpko-resume-for-i815-chip-update.patch

Update this DRI fix in -mm.

+fix-agk-dm-dm-io-fix-panic-on-large-request.patch

Fix dud patch in the DM tree

+do-not-select-macintosh-drivers-by-default.patch
+powerpc-promc-remove-undef-printk.patch
+powerpc-fix-kconfig-select-warning-with-ucc_fast.patch
+8xx-mpc885ads-pcmcia-support.patch
+8xx-mpc885ads-pcmcia-support-fix.patch
+8xx-fix-whitespace-and-indentation.patch
+dts-kill-hardcoded-phandles.patch

powerpc things

+gregkh-driver-driver-core-make-devt_attr-and-uevent_attr-static.patch

Driver tree update

+saa7111-fix-picture-settings-cache-bug.patch
+saa7134-tvaudio-kthread-conversion.patch

dvb things

+jdelvare-i2c-i2c-rpx-will-be-removed.patch
+jdelvare-i2c-i2c-fix-sparse-warning-in-i2c-h.patch
+jdelvare-i2c-scx200_acb-use-mutex-instead-of-semaphore.patch
+jdelvare-i2c-i2c-delete-outdated-x1205-doc.patch
+jdelvare-i2c-i2c-deprecate-rtc-drivers.patch
+jdelvare-i2c-i2c-s3c2410-fix-build-warning.patch
+jdelvare-i2c-i2c-kerneldoc.patch
+jdelvare-i2c-i2c_smbus_read_i2c_block_data-fixed-prototype.patch
+jdelvare-i2c-i2c-ds1628-new-driver.patch

I2C tree updates

+jdelvare-hwmon-hwmon-smsc47m192-use-mutex-instead-of-semaphore.patch
+jdelvare-hwmon-hwmon-lm90-spelling-fix-explicitly.patch
+jdelvare-hwmon-hwmon-coretemp-add-more-safety-checks.patch

hwmon tree updates

-git-hid-fixup.patch

Unneeded

+use-menuconfig-objects-ii-infiniband.patch
+pci-x-pci-express-read-control-interfaces-mthca.patch

Infiniband things

+time-locale-in-gen_initramfs_listsh.patch
+powerpc64-symbols-start-with.patch

kbuild updates

+use-menuconfig-objects-ii-kvm-virt.patch

KVM Kconfig update

+git-leds-fixup.patch

Fix rejects in git-leds.patch

+libata-check-for-an-support.patch
+genhd-expose-an-to-user-space.patch
+scsi-expose-an-to-user-space.patch
+libata-expose-an-to-user-space.patch
+genhd-send-async-notification-on-media-change.patch
+scsi-save-disk-in-scsi_device.patch
+libata-send-event-when-an-received.patch
+libata-fix-shutdown-warning-message-printing.patch
+fix-build-failure-for-drivers-ata-pata_sccc.patch
+drivers-ata-correct-a-wrong-free-function-for-sata_nv-driver.patch
+drivers-ata-correct-a-wrong-free-function-for-sata_nv-driver-fix.patch

ata stuff

+libata-add-human-readable-error-value-decoding.patch
+libata-add-human-readable-error-value-decoding-v2.patch

More ata stuff

+ide-pdc202xx_new-use-ide-tune-dma.patch
+ide-pdc202xx_old-rewrite-mode-programming-v2.patch
+ide-ide-tune-dma-2.patch
+ide-ide-dma-enable.patch
+ide-ide-remove-ide-use-dma.patch
+ide-ide-make-void-and-rename-ide_dma_lostirq-method.patch
+ide-ide-make-void-and-rename-ide_dma_timeout-method.patch
+ide-ide-use-mutex-instead-of-semaphore-in-ide-driver.patch
+ide-hpt366-simplify-ultradma-filtering-take2.patch

IDE tree updates

+use-mutex-instead-of-semaphore-in-ide-driver.patch

IDE tweak

+git-mips-fixup.patch

Fix rejects in git-mips.patch

+use-mutex-instead-of-semaphore-in-the-mtd-st-m25pxx-driver.patch
+use-mutex-instead-of-semaphore-in-the-mtd-st-m25pxx-driver-build-fix.patch
+use-mutex-instead-of-semaphore-in-the-mtd-dataflash-driver.patch

MTD cleanups

+git-ubi-fixup.patch

Fix rejects in git-ubi.patch

-ppp_generic-fix-lockdep-warning.patch

Dropped: dazed and confused

+use-menuconfig-objects-ii-netdev-general100mbit.patch
+pci-x-pci-express-read-control-interfaces-myrinet.patch
+pci-x-pci-express-read-control-interfaces-e1000.patch

netdev things

-git-e1000.patch
-git-e1000-fixup-2.patch

Temporarily dropped: the e1000 git tree got wrecked by other merges

+fix-race-condition-about-network-device-name-allocation.patch
+nf_conntrack-fix-use-after-free-in-helper-destroy-callback.patch

net stuff

+git-battery-warning-fix.patch
+ds2760_battery-warning-fix.patch

Fix git-battery

+bluetooth-postpone-hci_dev-unregistration.patch

bluetooth maybe-fix.

+git-nfs-server-cluster-locking-api-fixup.patch

Fix rejects in git-nfs-server-cluster-locking-api.patch

+ocfs2-fix-type-borkage.patch

git-ocfs2 fix

+serial-use-resource_size_t-for-port-io-addresses.patch

serial fix

+pci-quirks-disable-msi-on-rs400-200-and-rs480.patch

MSI fix for PCI tree

+cpci_hotplug-convert-to-use-the-kthread-api.patch
+pci-x-pci-express-read-control-interfaces.patch
+pci-x-pci-express-read-control-interfaces-fix.patch

PCI updates

+use-menuconfig-objects-ii-scsi.patch
+update-maintainer-email-id-for-megaraid-scsi-drivers.patch
+pci-x-pci-express-read-control-interfaces-qla2xxx.patch

scsi updates

+use-menuconfig-objects-ib-block.patch
+use-menuconfig-objects-ii-block-devices.patch

infiniband things

+gregkh-usb-usb-ehci-cpufreq-fix.patch

USB tree update

+use-menuconfig-objects-ii-usb.patch
+usb-core-hubc-loops-forever-on-resume-from-ram-due-to.patch
+usb-dont-try-to-kzalloc-0-bytes.patch

USB updates

+watchdog-documentation.patch

watchdog docs

-git-wireless-fixup.patch

Unneeded

+x86_64-mm-defconfig-update.patch
+x86_64-mm-i386-defconfig-update.patch
+x86_64-mm-unwinder.patch
+x86_64-mm-sched-clock-share.patch
+x86_64-mm-sched-clock64.patch
+x86_64-mm-paravirt-add-a-sched_clock-paravirt_op.patch
+x86_64-mm-build-tar-files.patch
+x86_64-mm-irq-migrate-report.patch
+x86_64-mm-define-and-use-local_distance-and-remote_distance.patch
+x86_64-mm-various-cleanups.patch

x86 tree updates

-i386-irq-kill-irq-compression.patch

Dropped

+x86_64-extract-helper-function-from-e820_register_active_regions.patch
+x86_64-fix-e820_hole_size-based-on-address-ranges.patch
+x86_64-acpi-disable-srat-when-numa-emulation-succeeds.patch
+x86_64-slit-fake-pxm-to-node-mapping-for-fake-numa-2.patch
+x86_64-numa-fake-apicid_to_node-mapping-for-fake-numa-2.patch
+i386-hpet-check-if-the-counter-works.patch
+x86-use-elfnoteh-to-generate-vsyscall-notes.patch
+x86-use-elfnoteh-to-generate-vsyscall-notes-fix.patch
+mmconfig-x86_64-i386-insert-unclaimed-mmconfig-resources.patch
+mmconfig-x86_64-i386-insert-unclaimed-mmconfig-resources-fix.patch
+mmconfig-x86_64-i386-insert-unclaimed-mmconfig-resources-update.patch
+i386-pci-fixup-for-siemens-nixdorf-ag-fsc-multiprocessor-interrupt-controllers.patch
+x86_64-fix-smp_call_function_single-return-value.patch
+x86_64-build-and-use-gdt-on-copied-compressed-kernel.patch
+x86_64-o_excl-on-dev-mcelog.patch
+x86_64-support-poll-on-dev-mcelog.patch
+i386-fix-machine-rebooting.patch
+i386-fix-machine-rebooting-fix.patch

x86 updates

+slob-implement-rcu-freeing.patch
+i386-x86-64-fix-section-mismatch.patch
+slab-allocators-drop-support-for-destructors.patch
+remove-slab_ctor_constructor.patch
+remove-slab_ctor_constructor-fix.patch
+make-__vunmap-static.patch
+simplify-compat_sys_timerfd.patch
+let-smp_call_function_single-return-ebusy-on-up.patch
+let-smp_call_function_single-return-ebusy-on-up-fix.patch
+refine-screen_info-sanity-check-for-vgacon-initialization.patch
+make-freezeable-workqueues-singlethread.patch
+slab-move-two-remaining-slab-specific-definitions-to-slab_defh.patch
+rtc-ds1307-cleanups.patch
+parport-mailing-list-is-subscribers-only.patch
+docbook-make-kernel-locking-table-readable.patch
+gpio-interface-loosens-call-restrictions.patch
+rtc-omap-build-fix.patch
+rtc-kconfig-clarification.patch
+icom-add-new-sub-device-id-to-support-new-adapter.patch
+make-sysctl-kernel-core_pattern-and-fs-execc-agree-on-maximum-core-filename-size.patch
+slab-warn-on-zero-length-allocations.patch
+i386-dont-check_pgt_cache-in-flush_tlb_mm.patch
+use-menuconfig-objects-ii-md.patch
+use-mutex-instead-of-semaphore-in-capi-20-driver.patch
+circular-locking-dependency-found-in-quota-off.patch
+swsusp-fix-sysfs-interface.patch
+compat_core_sys_select-avoid-kmalloc0.patch
+change-zonelist-order-zonelist-order-selection-logic.patch
+change-zonelist-order-v6-zonelist-fix.patch
+change-zonelist-order-v6-zonelist-fix-2.patch
+change-zonelist-order-auto-configuration.patch
+change-zonelist-order-documentaion.patch

More of the 2.6.22 queue

+mm-more-rmap-checking-tidy.patch

Clean up mm-more-rmap-checking.patch

+group-short-lived-and-reclaimable-kernel-allocations-use-slab_account_reclaim-to-determine-when-__gfp_reclaimable-should-be-used.patch
+group-short-lived-and-reclaimable-kernel-allocations-use-slab_account_reclaim-to-determine-when-__gfp_reclaimable-should-be-used-fix.patch

Fix group-short-lived-and-reclaimable-kernel-allocations.patch

+dont-group-high-order-atomic-allocations-remove-unused-parameter-to-allocflags_to_migratetype.patch

Fix dont-group-high-order-atomic-allocations.patch

+remove-alloc_zeroed_user_highpage.patch

Remove dead code

-create-the-zone_movable-zone-fix-section-mismatch-of-memory-hotplug-related-code-2.patch

Folded into create-the-zone_movable-zone.patch

+have-kswapd-keep-a-minimum-order-free-other-than-order-0.patch
+have-kswapd-keep-a-minimum-order-free-other-than-order-0-fix.patch
+only-check-absolute-watermarks-for-alloc_high-and-alloc_harder-allocations.patch

Memory reclaim work

+fs-introduce-some-page-buffer-invariants.patch

VFS debugging

+freezer-close-potential-race-between-refrigerator-and-thaw_tasks.patch
+freezer-fix-kthread_create-vs-freezer-theoretical-race.patch
+freezer-fix-pf_nofreeze-vs-freezeable-race.patch
+freezer-move-frozen_process-to-kernel-power-processc.patch

Freezer fixes

-file-capabilities-accomodate-future-64-bit-caps.patch

Folded into implement-file-posix-capabilities.patch

+implement-file-posix-capabilities-update.patch

Update the file capabilities code in -mm.

-update-mtd-use-of-symbol_getput.patch
-update-dvb-use-of-symbol_getput.patch

Dropped

+fix-rmmod-read-write-races-in-proc-entries-cleanup.patch

Fix patch in -mm.

+introduce-write_trylock_irqsave.patch
+use-write_trylock_irqsave-in-ptrace_attach.patch
+use-write_trylock_irqsave-in-ptrace_attach-fix.patch
+use-menuconfig-objects-ii-auxdisplay.patch
+use-menuconfig-objects-ii-edac.patch
+use-menuconfig-objects-ii-ipmi.patch
+use-menuconfig-objects-ii-misc-strange-dev.patch
+use-menuconfig-objects-ii-module-menu.patch
+use-menuconfig-objects-ii-oprofile.patch
+use-menuconfig-objects-ii-telephony.patch
+use-menuconfig-objects-ii-tpm.patch
+fix-jvc-cdrom-drive-lockup.patch
+use-no_pci_devices-in-pci-searchc.patch
+introduce-boot-based-time.patch
+introduce-boot-based-time-fix.patch
+use-boot-based-time-for-process-start-time-and-boot-time.patch
+use-boot-based-time-for-process-start-time-and-boot-time-fix.patch
+use-boot-based-time-for-process-start-time-and-boot-time-fix-2.patch
+use-boot-based-time-for-process-start-time-and-boot-time-fix-3.patch
+use-boot-based-time-for-uptime-in-proc.patch
+volatile-considered-harmful-take-3.patch
+udf-check-for-allocated-memory-for-data-of-new-inodes.patch
+split-usermodehelper-setup-from-execution.patch
+tidy-up-usermode-helper-waiting-a-bit.patch
+tidy-up-usermode-helper-waiting-a-bit-fix.patch
+prevent-an-o_ndelay-writer-from-blocking-when-a-tty-write-is-blocked-by.patch
+udf-check-for-allocated-memory-for-inode-data-v2.patch
+fix-stop_machine_run-problem-with-naughty-real-time-process.patch
+cpu-hotplug-fix-ksoftirqd-termination-on-cpu-hotplug-with-naughty-realtime-process.patch
+cpu-hotplug-fix-ksoftirqd-termination-on-cpu-hotplug-with-naughty-realtime-process-fix.patch
+use-mutexes-instead-of-semaphores-in-i2o-driver.patch

Misc updates

+check_dirty_inode_list.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-2.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-3.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-4.patch
+writeback-fix-comment-use-helper-function.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-5.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-6.patch
+writeback-fix-time-ordering-of-the-per-superblock-dirty-inode-lists-7.patch

Fix fs/fs-writeback.c

+ibmasm-whitespace-cleanup.patch
+ibmasm-dont-use-extern-in-function-declarations.patch
+ibmasm-miscellaneous-fixes.patch
+ibmasm-must-depend-on-config_input.patch

ibmasm update

+crc7-support.patch
+crc7-support-fix.patch

add crc7 library code

+use-menuconfig-objects-ii-isdn.patch

i4l Kconfig update

+i2o_cfg_passthru-cleanup.patch
+i2o_cfg_passthru-cleanup-fix.patch
+i2o-message-leak-in-i2o_msg_post_wait_mem.patch
+i2o-proc-reading-oops.patch
+i2o-debug-output-cleanup.patch

i2o fixes

+knfsd-exportfs-add-exportfsh-header.patch
+knfsd-exportfs-add-exportfsh-header-fix.patch
+knfsd-exportfs-remove-iget-abuse.patch
+knfsd-exportfs-remove-iget-abuse-fix.patch
+knfsd-exportfs-add-procedural-interface-for-nfsd.patch
+knfsd-exportfs-remove-call-macro.patch
+knfsd-exportfs-untangle-isdir-logic-in-find_exported_dentry.patch
+knfsd-exportfs-move-acceptable-check-into-find_acceptable_alias.patch
+knfsd-exportfs-add-find_disconnected_root-helper.patch
+knfsd-exportfs-split-out-reconnecting-a-dentry-from-find_exported_dentry.patch

knfsd updates

+couple-fixes-to-fs-ecryptfs-inodec.patch

ecryptfs fixes

+mm-swap-prefetch-improvements.patch
+mm-swap-prefetch-more-improvements.patch

Update swap prefetch patches in -mm.

-revoke-core-code-misc-fixes.patch
-revoke-core-code-fix-shared-mapping-revoke.patch
-revoke-core-code-move-magic.patch
-revoke-core-code-fs-revokec-cleanups-and-bugfix-for-64bit-systems.patch
-revoke-core-code-revoke-no-revoke-for-nommu.patch
-revoke-core-code-fix-shared-mapping-revoke-revoke-only-revoke-mappings-for-the-given-inode.patch
-revoke-core-code-break-cow-for-private-mappings.patch
-revoke-core-code-generic_file_revoke-stub-for-nommu.patch
-revoke-core-code-break-cow-fixes.patch
-revoke-core-code-mapping-revocation.patch
-revoke-core-code-only-fput-unused-files.patch
-revoke-core-code-slab-allocators-remove-slab_debug_initial-flag-revoke.patch
-revoke-core-code-rename-to-can_revoke_filevma.patch
-revoke-core-code-change-revoke_table-to-fileset-and-revoke_details.patch
-revoke-core-code-do_revoke-error-handling.patch

Folded into revoke-core-code.patch

-lguest-vs-x86_64-mm-use-per-cpu-variables-for-gdt-pda.patch
-lguest-vs-x86_64-mm-use-per-cpu-variables-for-gdt-pda-lguest-2621-mm1-update.patch
-lguest-the-guest-code-update-lguests-patch-code-for-new-paravirt-patch.patch
-lguest-the-guest-code-handle-new-paravirt-lazy-mode-fix-userspace.patch
-lguest-the-guest-code-dont-use-paravirt_probe-its-dying.patch
+lguest-the-guest-code-tidyups.patch
+lguest-the-guest-code-tidyups-update.patch
-lguest-the-host-code-vs-x86_64-mm-i386-separate-hardware-defined-tss-from-linux-additions.patch
-lguest-the-host-code-fix-lguest-oops-when-guest-dies-while-receiving-i-o.patch
-lguest-the-host-code-simplification-dont-pin-guest-trap-handlers.patch
-lguest-the-host-code-properly-kill-guest-userspace-programs-accessing-kernel-mem.patch
-lguest-the-host-code-remove-put_user-etc-warnings-add-bloat.patch
-lguest-the-host-code-fix-obscure-but-nasty-cow-bug.patch
-lguest-the-host-code-lguest-use-standard-bootloader-format-fix-badly-sized.patch
+lguest-the-host-code-tidyups.patch
+lguest-the-host-code-tidyups-update.patch
+lguest-the-host-code-borkages.patch
+lguest-the-makefile-and-kconfig-tidyups.patch
+lguest-the-console-driver-tidyups.patch
-lguest-the-net-driver-lguest-2621-mm1-update-lguest-net-stats-inlinepatch.patch
-lguest-the-net-driver-two-net-bugfixes.patch
+lguest-the-net-driver-tidyups.patch
+lguest-the-net-driver-tidyups-update.patch
+lguest-the-block-driver-tidyups.patch
+lguest-the-block-driver-tidyups-update.patch
-lguest-the-documentation-example-launcher-fix-lguest-documentation-error.patch
-lguest-documentation-and-example-updates.patch
-lguest-the-documentation-example-launcher-dont-use-paravirt_probe-its-dying-doc.patch
-lguest-use-standard-bootloader-format-fix-badly-sized-doc.patch
-lguest-two-net-bugfixes-doc.patch
-lguest-the-host-code-vs-futex-new-private-futexes.patch

Various lguest foldings and addings

+oss-trident-massive-whitespace-removal.patch
+oss-trident-fix-locking-around-write_voice_regs.patch
+oss-trident-replace-deprecated-pci_find_device-with-pci_get_device.patch

Trident OSS driver updates

-reiser4-fix-for-drop-unused-semaphorespatch.patch
-reiser4-slab-allocators-remove-slab_debug_initial-flag.patch
-reiser4-use-simple_prepare_write-to-zero-page-data.patch

Folded into reiser4.patch

+reiser4-fix.patch

Fix reiser4 for the knfsd patches

-integrity-service-api-and-dummy-provider-integrity_dummy_verify_metadata.patch

Folded into integrity-service-api-and-dummy-provider.patch

-slim-main-lsm-getprocattr-hook-api-change.patch

Folded into slim-main-patch.patch

-integrity-new-hooks-fix.patch

Folded into integrity-new-hooks.patch

-integrity-evm-as-an-integrity-service-provider-tidy.patch
-integrity-evm-as-an-integrity-service-provider-tidy-fix.patch
-integrity-evm-as-an-integrity-service-provider-tidy-fix-2.patch

Folded into integrity-evm-as-an-integrity-service-provider.patch

-integrity-ima-integrity_measure-support-tidy.patch
-integrity-ima-integrity_measure-support-fix.patch
-integrity-ima-integrity_measure-support-fix-2.patch
-integrity-ima-integrity_measure-support-ima-exit.patch
-integrity-ima-integrity_measure-support-remove-spinlock.patch

Folded into integrity-ima-integrity_measure-support.patch

-integrity-tpm-internal-kernel-interface-tidy.patch

Folded into integrity-tpm-internal-kernel-interface.patch

+workaround-for-a-pci-restoring-bug.patch
+prio_tree-debugging-patch.patch

New -mm-only debug patches

+git-gccbug-fixup.patch

Fix rejects in git-gccbug.patch




All 706 patches:


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



2007-05-16 06:06:42

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Tue, 15 May 2007 20:19:14 -0700
Andrew Morton <[email protected]> wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
>
> - I found some time to look into some writeback problems in
> fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
> but more work (mainly testing) needs to be done.
>

If CONFIG_SCSI=y && CONFIG_ATA=n,

==
ERROR: "ata_sas_slave_configure" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_port_disable" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_port_init" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_port_stop" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_port_start" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_port_alloc" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_noop_qc_prep" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_tf_to_fis" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_noop_dev_select" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_tf_from_fis" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_host_init" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_queuecmd" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_sas_port_destroy" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_scsi_ioctl" [drivers/scsi/libsas/libsas.ko] undefined!
ERROR: "ata_qc_complete" [drivers/scsi/libsas/libsas.ko] undefined!
make[1]: *** [__modpost] Error 1"
==

This error comes.

-Kame

2007-05-16 07:57:52

by Cornelia Huck

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 - s390 vs. md

On Tue, 15 May 2007 20:19:14 -0700,
Andrew Morton <[email protected]> wrote:

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/

Doesn't build on s390 when selecting the md menu:

drivers/built-in.o(.text+0x438ae): In function `async_xor':
: undefined reference to `dma_map_page'
drivers/built-in.o(.text+0x43aac): In function `async_xor':
: undefined reference to `dma_map_page'
drivers/built-in.o(.text+0x43d2e): In function `async_xor_zero_sum':
: undefined reference to `dma_map_page'
drivers/built-in.o(.text+0x43f50): In function `async_memcpy':
: undefined reference to `dma_map_page'
drivers/built-in.o(.text+0x43f90): In function `async_memcpy':
: undefined reference to `dma_map_page'
drivers/built-in.o(.text+0x4423e): more undefined references to
`dma_map_page' follow

This is caused by the following in drivers/md/Kconfig:

menuconfig MD
bool "Multiple devices driver support (RAID and LVM)"
depends on BLOCK
select ASYNC_TX_DMA
help
Support multiple physical spindles through a single logical device.
Required for RAID and logical volume management.

ASYNC_TX_DMA is defined in drivers/dma/Kconfig, which has

menu "DMA Engine support"
depends on !S390

but unfortunately ASYNC_TX_DMA depends neither on the menu nor
on !S390. (I think it was just an unknown symbol on s390 before
Martin's Kconfig rework, so I could build older -mm kernels.)

Currently, the only md stuff depending on ASYNC_TX_DMA is MD_RAID456
(which means it doesn't work on s390 anymore, which is bad enough).
With the select statement, no md stuff can be build on s390 at all (and
I really don't see why ASYNC_TX_DMA should be forced upon all md
users)...

2007-05-16 07:58:55

by Jeff Garzik

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

KAMEZAWA Hiroyuki wrote:
> On Tue, 15 May 2007 20:19:14 -0700
> Andrew Morton <[email protected]> wrote:
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>>
>>
>> - I found some time to look into some writeback problems in
>> fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
>> but more work (mainly testing) needs to be done.
>>
>
> If CONFIG_SCSI=y && CONFIG_ATA=n,
>
> ==
> ERROR: "ata_sas_slave_configure" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_port_disable" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_init" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_stop" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_start" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_alloc" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_noop_qc_prep" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_tf_to_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_noop_dev_select" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_tf_from_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_host_init" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_queuecmd" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_destroy" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_scsi_ioctl" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_qc_complete" [drivers/scsi/libsas/libsas.ko] undefined!

Looks like SAS needs to require CONFIG_ATA...

Jeff



2007-05-16 08:08:21

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007 03:58:40 -0400 Jeff Garzik <[email protected]> wrote:

> KAMEZAWA Hiroyuki wrote:
> > On Tue, 15 May 2007 20:19:14 -0700
> > Andrew Morton <[email protected]> wrote:
> >
> >> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> >>
> >>
> >> - I found some time to look into some writeback problems in
> >> fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
> >> but more work (mainly testing) needs to be done.
> >>
> >
> > If CONFIG_SCSI=y && CONFIG_ATA=n,
> >
> > ==
> > ERROR: "ata_sas_slave_configure" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_port_disable" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_port_init" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_port_stop" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_port_start" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_port_alloc" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_noop_qc_prep" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_tf_to_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_noop_dev_select" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_tf_from_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_host_init" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_queuecmd" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_sas_port_destroy" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_scsi_ioctl" [drivers/scsi/libsas/libsas.ko] undefined!
> > ERROR: "ata_qc_complete" [drivers/scsi/libsas/libsas.ko] undefined!
>
> Looks like SAS needs to require CONFIG_ATA...
>

Yes, but it seems wrong to disable all of libsas if !ATA. Only sas_ata.o
should depend on that.

Darrick, is there any point in me carrying this tree? It doesn't appear to
be a hotbed of activity...

2007-05-16 10:18:52

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Getting this on both x86 and x86_64 boxes, they are the older boxen so
likely older compilers:

CC arch/x86_64/boot/memory.o
arch/i386/boot/memory.c: In function `detect_memory':
arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
while reloading `asm'

Seems to come from git-netsetup, but that tree isn't pulled into your
git version of -mm so I can't be more specific.

-apw

2007-05-16 12:10:08

by Jiri Slaby

[permalink] [raw]
Subject: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

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

I've got this in dmesg:

BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
[<c010531e>] dump_trace+0x1ce/0x200
[<c010536a>] show_trace_log_lvl+0x1a/0x30
[<c0106012>] show_trace+0x12/0x20
[<c0106086>] dump_stack+0x16/0x20
[<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
[<c0155690>] redirty_page_for_writepage+0x10/0x20
[<c01938fc>] __block_write_full_page+0x20c/0x330
[<c0193b0a>] block_write_full_page+0xea/0x100
[<c0196c82>] blkdev_writepage+0x12/0x20
[<c015539e>] __writepage+0xe/0x30
[<c01558c2>] write_cache_pages+0x222/0x340
[<c0155a03>] generic_writepages+0x23/0x30
[<c0155a3e>] do_writepages+0x2e/0x50
[<c018decb>] __writeback_single_inode+0x8b/0x470
[<c018e75b>] generic_sync_sb_inodes+0x24b/0x470
[<c018e9a7>] sync_sb_inodes+0x27/0x30
[<c018ec33>] writeback_inodes+0xb3/0xe0
[<c01560f2>] wb_kupdate+0x82/0xf0
[<c015660b>] pdflush+0xeb/0x1b0
[<c0132e72>] kthread+0x42/0x70
[<c0104d4b>] kernel_thread_helper+0x7/0x1c
=======================
BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
[<c010531e>] dump_trace+0x1ce/0x200
[<c010536a>] show_trace_log_lvl+0x1a/0x30
[<c0106012>] show_trace+0x12/0x20
[<c0106086>] dump_stack+0x16/0x20
[<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
[<f8b1fc5b>] nfs_updatepage+0x7b/0x200 [nfs]
[<f8b156df>] nfs_commit_write+0x2f/0x50 [nfs]
[<c0150911>] generic_file_buffered_write+0x2a1/0x660
[<c0150f52>] __generic_file_aio_write_nolock+0x282/0x520
[<c0151252>] generic_file_aio_write+0x62/0xd0
[<f8b15def>] nfs_file_write+0xef/0x1c0 [nfs]
[<c01715e0>] do_sync_write+0xd0/0x110
[<c0171e04>] vfs_write+0x94/0x130
[<c017248d>] sys_write+0x3d/0x70
[<c01040e8>] syscall_call+0x7/0xb
[<b7eb7b3e>] 0xb7eb7b3e
=======================

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-05-16 12:39:44

by Nick Piggin

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

Jiri Slaby wrote:
> Andrew Morton napsal(a):
>
>>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
>
> I've got this in dmesg:
>
> BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> [<c010531e>] dump_trace+0x1ce/0x200
> [<c010536a>] show_trace_log_lvl+0x1a/0x30
> [<c0106012>] show_trace+0x12/0x20
> [<c0106086>] dump_stack+0x16/0x20
> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
> [<c0155690>] redirty_page_for_writepage+0x10/0x20
> [<c01938fc>] __block_write_full_page+0x20c/0x330
> [<c0193b0a>] block_write_full_page+0xea/0x100
> [<c0196c82>] blkdev_writepage+0x12/0x20
> [<c015539e>] __writepage+0xe/0x30
> [<c01558c2>] write_cache_pages+0x222/0x340
> [<c0155a03>] generic_writepages+0x23/0x30
> [<c0155a3e>] do_writepages+0x2e/0x50
> [<c018decb>] __writeback_single_inode+0x8b/0x470
> [<c018e75b>] generic_sync_sb_inodes+0x24b/0x470
> [<c018e9a7>] sync_sb_inodes+0x27/0x30
> [<c018ec33>] writeback_inodes+0xb3/0xe0
> [<c01560f2>] wb_kupdate+0x82/0xf0
> [<c015660b>] pdflush+0xeb/0x1b0
> [<c0132e72>] kthread+0x42/0x70
> [<c0104d4b>] kernel_thread_helper+0x7/0x1c

Do you have any messages before this one? Seems like it is probably metadata,
but we've only caught it at the last minute...


> =======================
> BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> [<c010531e>] dump_trace+0x1ce/0x200
> [<c010536a>] show_trace_log_lvl+0x1a/0x30
> [<c0106012>] show_trace+0x12/0x20
> [<c0106086>] dump_stack+0x16/0x20
> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
> [<f8b1fc5b>] nfs_updatepage+0x7b/0x200 [nfs]
> [<f8b156df>] nfs_commit_write+0x2f/0x50 [nfs]
> [<c0150911>] generic_file_buffered_write+0x2a1/0x660
> [<c0150f52>] __generic_file_aio_write_nolock+0x282/0x520
> [<c0151252>] generic_file_aio_write+0x62/0xd0
> [<f8b15def>] nfs_file_write+0xef/0x1c0 [nfs]
> [<c01715e0>] do_sync_write+0xd0/0x110
> [<c0171e04>] vfs_write+0x94/0x130
> [<c017248d>] sys_write+0x3d/0x70
> [<c01040e8>] syscall_call+0x7/0xb
> [<b7eb7b3e>] 0xb7eb7b3e
> =======================

This one is NFS, setting the page dirty while it is not uptodate. Trond,
is this because NFS keeps track of dirty regions of the page with private
data? It might make sense to avoid this warning if PagePrivate is set...
would that fix the NFS case?

--
SUSE Labs, Novell Inc.

2007-05-16 12:44:41

by Jiri Slaby

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

Nick Piggin napsal(a):
> Jiri Slaby wrote:
>> Andrew Morton napsal(a):
>>
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>>>
>>
>>
>> I've got this in dmesg:
>>
>> BUG: at /local/xslaby/xxx/mm/page-writeback.c:829
>> __set_page_dirty_nobuffers()
>> [<c010531e>] dump_trace+0x1ce/0x200
>> [<c010536a>] show_trace_log_lvl+0x1a/0x30
>> [<c0106012>] show_trace+0x12/0x20
>> [<c0106086>] dump_stack+0x16/0x20
>> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
>> [<c0155690>] redirty_page_for_writepage+0x10/0x20
>> [<c01938fc>] __block_write_full_page+0x20c/0x330
>> [<c0193b0a>] block_write_full_page+0xea/0x100
>> [<c0196c82>] blkdev_writepage+0x12/0x20
>> [<c015539e>] __writepage+0xe/0x30
>> [<c01558c2>] write_cache_pages+0x222/0x340
>> [<c0155a03>] generic_writepages+0x23/0x30
>> [<c0155a3e>] do_writepages+0x2e/0x50
>> [<c018decb>] __writeback_single_inode+0x8b/0x470
>> [<c018e75b>] generic_sync_sb_inodes+0x24b/0x470
>> [<c018e9a7>] sync_sb_inodes+0x27/0x30
>> [<c018ec33>] writeback_inodes+0xb3/0xe0
>> [<c01560f2>] wb_kupdate+0x82/0xf0
>> [<c015660b>] pdflush+0xeb/0x1b0
>> [<c0132e72>] kthread+0x42/0x70
>> [<c0104d4b>] kernel_thread_helper+0x7/0x1c
>
> Do you have any messages before this one? Seems like it is probably
> metadata,
> but we've only caught it at the last minute...

No other messages before that. Bazillion through-nfs stacks after this...

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-05-16 12:47:57

by Nick Piggin

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

Index: linux-2.6/mm/page-writeback.c
===================================================================
--- linux-2.6.orig/mm/page-writeback.c
+++ linux-2.6/mm/page-writeback.c
@@ -826,7 +826,7 @@ int __set_page_dirty_nobuffers(struct pa
mapping2 = page_mapping(page);
if (mapping2) { /* Race with truncate? */
BUG_ON(mapping2 != mapping);
- WARN_ON(!PageUptodate(page));
+ WARN_ON(!PagePrivate(page) && !PageUptodate(page));
if (mapping_cap_account_dirty(mapping)) {
__inc_zone_page_state(page, NR_FILE_DIRTY);
task_io_account_write(PAGE_CACHE_SIZE);


Attachments:
nfs-invariant-fix.patch (581.00 B)

2007-05-16 12:52:17

by Trond Myklebust

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

On Wed, 2007-05-16 at 14:10 +0200, Jiri Slaby wrote:
> Andrew Morton napsal(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
> I've got this in dmesg:
>
> BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> [<c010531e>] dump_trace+0x1ce/0x200
> [<c010536a>] show_trace_log_lvl+0x1a/0x30
> [<c0106012>] show_trace+0x12/0x20
> [<c0106086>] dump_stack+0x16/0x20
> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
> [<c0155690>] redirty_page_for_writepage+0x10/0x20
> [<c01938fc>] __block_write_full_page+0x20c/0x330
> [<c0193b0a>] block_write_full_page+0xea/0x100
> [<c0196c82>] blkdev_writepage+0x12/0x20
> [<c015539e>] __writepage+0xe/0x30
> [<c01558c2>] write_cache_pages+0x222/0x340
> [<c0155a03>] generic_writepages+0x23/0x30
> [<c0155a3e>] do_writepages+0x2e/0x50
> [<c018decb>] __writeback_single_inode+0x8b/0x470
> [<c018e75b>] generic_sync_sb_inodes+0x24b/0x470
> [<c018e9a7>] sync_sb_inodes+0x27/0x30
> [<c018ec33>] writeback_inodes+0xb3/0xe0
> [<c01560f2>] wb_kupdate+0x82/0xf0
> [<c015660b>] pdflush+0xeb/0x1b0
> [<c0132e72>] kthread+0x42/0x70
> [<c0104d4b>] kernel_thread_helper+0x7/0x1c
> =======================
> BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> [<c010531e>] dump_trace+0x1ce/0x200
> [<c010536a>] show_trace_log_lvl+0x1a/0x30
> [<c0106012>] show_trace+0x12/0x20
> [<c0106086>] dump_stack+0x16/0x20
> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
> [<f8b1fc5b>] nfs_updatepage+0x7b/0x200 [nfs]
> [<f8b156df>] nfs_commit_write+0x2f/0x50 [nfs]
> [<c0150911>] generic_file_buffered_write+0x2a1/0x660
> [<c0150f52>] __generic_file_aio_write_nolock+0x282/0x520
> [<c0151252>] generic_file_aio_write+0x62/0xd0
> [<f8b15def>] nfs_file_write+0xef/0x1c0 [nfs]
> [<c01715e0>] do_sync_write+0xd0/0x110
> [<c0171e04>] vfs_write+0x94/0x130
> [<c017248d>] sys_write+0x3d/0x70
> [<c01040e8>] syscall_call+0x7/0xb
> [<b7eb7b3e>] 0xb7eb7b3e
> =======================
>
> regards,

The first Oops is not NFS: it is some block file system, however the
problem is the same. The crux of the matter would appear to be that some
task is changing the page_mapping() of random pages while the page lock
is held by another task.

Do you see the same thing in mainline?

Trond

2007-05-16 13:01:22

by Trond Myklebust

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

On Wed, 2007-05-16 at 22:39 +1000, Nick Piggin wrote:
> > =======================
> > BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> > [<c010531e>] dump_trace+0x1ce/0x200
> > [<c010536a>] show_trace_log_lvl+0x1a/0x30
> > [<c0106012>] show_trace+0x12/0x20
> > [<c0106086>] dump_stack+0x16/0x20
> > [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
> > [<f8b1fc5b>] nfs_updatepage+0x7b/0x200 [nfs]
> > [<f8b156df>] nfs_commit_write+0x2f/0x50 [nfs]
> > [<c0150911>] generic_file_buffered_write+0x2a1/0x660
> > [<c0150f52>] __generic_file_aio_write_nolock+0x282/0x520
> > [<c0151252>] generic_file_aio_write+0x62/0xd0
> > [<f8b15def>] nfs_file_write+0xef/0x1c0 [nfs]
> > [<c01715e0>] do_sync_write+0xd0/0x110
> > [<c0171e04>] vfs_write+0x94/0x130
> > [<c017248d>] sys_write+0x3d/0x70
> > [<c01040e8>] syscall_call+0x7/0xb
> > [<b7eb7b3e>] 0xb7eb7b3e
> > =======================
>
> This one is NFS, setting the page dirty while it is not uptodate. Trond,
> is this because NFS keeps track of dirty regions of the page with private
> data? It might make sense to avoid this warning if PagePrivate is set...
> would that fix the NFS case?

Ah... You put an extra WARN_ON(!PageUptodate(page)). err=-ENOCOFFEE, I
missed that...


So yes, in order to avoid having to read the page in when we just want
to write data, NFS does this kind of tracking. I dunno if your fix to
change it to !PagePrivate(page) && !PageUptodate(page) is right though.
It will indeed fix the NFS case, but the block system uses PagePrivate()
pretty extensively for its own nefarious ends (tracking page buffers).

Trond

2007-05-16 13:07:18

by Nick Piggin

[permalink] [raw]
Subject: Re: (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1]

Trond Myklebust wrote:
> On Wed, 2007-05-16 at 22:39 +1000, Nick Piggin wrote:
>
>>> =======================
>>>BUG: at /local/xslaby/xxx/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
>>> [<c010531e>] dump_trace+0x1ce/0x200
>>> [<c010536a>] show_trace_log_lvl+0x1a/0x30
>>> [<c0106012>] show_trace+0x12/0x20
>>> [<c0106086>] dump_stack+0x16/0x20
>>> [<c015566d>] __set_page_dirty_nobuffers+0x11d/0x130
>>> [<f8b1fc5b>] nfs_updatepage+0x7b/0x200 [nfs]
>>> [<f8b156df>] nfs_commit_write+0x2f/0x50 [nfs]
>>> [<c0150911>] generic_file_buffered_write+0x2a1/0x660
>>> [<c0150f52>] __generic_file_aio_write_nolock+0x282/0x520
>>> [<c0151252>] generic_file_aio_write+0x62/0xd0
>>> [<f8b15def>] nfs_file_write+0xef/0x1c0 [nfs]
>>> [<c01715e0>] do_sync_write+0xd0/0x110
>>> [<c0171e04>] vfs_write+0x94/0x130
>>> [<c017248d>] sys_write+0x3d/0x70
>>> [<c01040e8>] syscall_call+0x7/0xb
>>> [<b7eb7b3e>] 0xb7eb7b3e
>>> =======================
>>
>>This one is NFS, setting the page dirty while it is not uptodate. Trond,
>>is this because NFS keeps track of dirty regions of the page with private
>>data? It might make sense to avoid this warning if PagePrivate is set...
>>would that fix the NFS case?
>
>
> Ah... You put an extra WARN_ON(!PageUptodate(page)). err=-ENOCOFFEE, I
> missed that...
>
>
> So yes, in order to avoid having to read the page in when we just want
> to write data, NFS does this kind of tracking. I dunno if your fix to
> change it to !PagePrivate(page) && !PageUptodate(page) is right though.
> It will indeed fix the NFS case, but the block system uses PagePrivate()
> pretty extensively for its own nefarious ends (tracking page buffers).

I think that's OK: the block layer is similarly happy to mark a !uptodate
page dirty if it has buffers, for similar reasons... Anyway, it won't use
this particular path when buffers are attached, and I've put similar
debugging stuff in the set_page_dirty_buffers part.

--
SUSE Labs, Novell Inc.

2007-05-16 14:31:19

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andrew Morton napisał(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
>
> - I found some time to look into some writeback problems in
> fs/fs-writeback.c.

This might be related

[ 97.740021] BUG: at /home/devel/linux-mm/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
[ 97.748632] [<c0105276>] dump_trace+0x63/0x1eb
[ 97.753275] [<c0105418>] show_trace_log_lvl+0x1a/0x30
[ 97.758521] [<c010605a>] show_trace+0x12/0x14
[ 97.763042] [<c01060f7>] dump_stack+0x16/0x18
[ 97.767590] [<c01677b3>] __set_page_dirty_nobuffers+0xfe/0x16e
[ 97.773598] [<c0167833>] redirty_page_for_writepage+0x10/0x12
[ 97.779491] [<c01a473a>] __block_write_full_page+0x1dc/0x335
[ 97.785328] [<c01a495c>] block_write_full_page+0xc9/0xd1
[ 97.790799] [<c01a781a>] blkdev_writepage+0x12/0x14
[ 97.795829] [<c01674ea>] __writepage+0xe/0x29
[ 97.800350] [<c01679b8>] write_cache_pages+0x183/0x29a
[ 97.805683] [<c0167af1>] generic_writepages+0x22/0x2a
[ 97.810929] [<c0167b1c>] do_writepages+0x23/0x34
[ 97.815702] [<c019f0a3>] __writeback_single_inode+0x245/0x472
[ 97.821632] [<c019f7e6>] generic_sync_sb_inodes+0x347/0x4cc
[ 97.827379] [<c019f98b>] sync_sb_inodes+0x20/0x24
[ 97.832247] [<c019fb93>] writeback_inodes+0x79/0xc2
[ 97.837296] [<c0168173>] wb_kupdate+0x7a/0xdb
[ 97.841833] [<c01686a0>] pdflush+0xf1/0x189
[ 97.846173] [<c0137d41>] kthread+0x3b/0x62
[ 97.850461] [<c0104e3f>] kernel_thread_helper+0x7/0x10

http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-dmesg
http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
Kernel Monkeys
(http://kernel.wikidot.com/start)

2007-05-16 14:37:27

by Nick Piggin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Index: linux-2.6/mm/page-writeback.c
===================================================================
--- linux-2.6.orig/mm/page-writeback.c
+++ linux-2.6/mm/page-writeback.c
@@ -826,7 +826,7 @@ int __set_page_dirty_nobuffers(struct pa
mapping2 = page_mapping(page);
if (mapping2) { /* Race with truncate? */
BUG_ON(mapping2 != mapping);
- WARN_ON(!PageUptodate(page));
+ WARN_ON(!PagePrivate(page) && !PageUptodate(page));
if (mapping_cap_account_dirty(mapping)) {
__inc_zone_page_state(page, NR_FILE_DIRTY);
task_io_account_write(PAGE_CACHE_SIZE);


Attachments:
nfs-invariant-fix.patch (581.00 B)

2007-05-16 15:19:34

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

diff --git a/arch/i386/boot/memory.c b/arch/i386/boot/memory.c
index 8a82aa9..d7b250b 100644
--- a/arch/i386/boot/memory.c
+++ b/arch/i386/boot/memory.c
@@ -30,7 +30,7 @@ static int detect_memory_e820(void)
size = sizeof(struct e820entry);
id = SMAP;
asm("int $0x15; setc %0"
- : "=dm" (err), "+b" (next), "+d" (id), "+c" (size),
+ : "=am" (err), "+b" (next), "+d" (id), "+c" (size),
"=m" (*desc)
: "D" (desc), "a" (0xe820));


Attachments:
diff (463.00 B)

2007-05-16 15:33:48

by Jeff Garzik

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andrew Morton wrote:
> Yes, but it seems wrong to disable all of libsas if !ATA. Only sas_ata.o
> should depend on that.

Agreed.

Jeff


2007-05-16 15:35:18

by Gabriel C

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Michal Piotrowski wrote:
> Andrew Morton napisał(a):
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>>
>>
>> - I found some time to look into some writeback problems in
>> fs/fs-writeback.c.
>>
>
> This might be related
>
> [ 97.740021] BUG: at /home/devel/linux-mm/mm/page-writeback.c:829 __set_page_dirty_nobuffers()
> [ 97.748632] [<c0105276>] dump_trace+0x63/0x1eb
> [ 97.753275] [<c0105418>] show_trace_log_lvl+0x1a/0x30
> [ 97.758521] [<c010605a>] show_trace+0x12/0x14
> [ 97.763042] [<c01060f7>] dump_stack+0x16/0x18
> [ 97.767590] [<c01677b3>] __set_page_dirty_nobuffers+0xfe/0x16e
> [ 97.773598] [<c0167833>] redirty_page_for_writepage+0x10/0x12
> [ 97.779491] [<c01a473a>] __block_write_full_page+0x1dc/0x335
> [ 97.785328] [<c01a495c>] block_write_full_page+0xc9/0xd1
> [ 97.790799] [<c01a781a>] blkdev_writepage+0x12/0x14
> [ 97.795829] [<c01674ea>] __writepage+0xe/0x29
> [ 97.800350] [<c01679b8>] write_cache_pages+0x183/0x29a
> [ 97.805683] [<c0167af1>] generic_writepages+0x22/0x2a
> [ 97.810929] [<c0167b1c>] do_writepages+0x23/0x34
> [ 97.815702] [<c019f0a3>] __writeback_single_inode+0x245/0x472
> [ 97.821632] [<c019f7e6>] generic_sync_sb_inodes+0x347/0x4cc
> [ 97.827379] [<c019f98b>] sync_sb_inodes+0x20/0x24
> [ 97.832247] [<c019fb93>] writeback_inodes+0x79/0xc2
> [ 97.837296] [<c0168173>] wb_kupdate+0x7a/0xdb
> [ 97.841833] [<c01686a0>] pdflush+0xf1/0x189
> [ 97.846173] [<c0137d41>] kthread+0x3b/0x62
> [ 97.850461] [<c0104e3f>] kernel_thread_helper+0x7/0x10
>
>



This one as well I guess :

[14649.407909] BUG: at mm/page-writeback.c:829 __set_page_dirty_nobuffers()
[14649.407945] [<c0156bb3>] __set_page_dirty_nobuffers+0x9a/0x104
[14649.407976] [<c018cfea>] __block_write_full_page+0x1b7/0x2f1
[14649.407999] [<e8ba89b4>] ext3_get_block+0x0/0xd0 [ext3]
[14649.408039] [<c018d1f2>] block_write_full_page+0xce/0xd6
[14649.408054] [<e8ba743a>] walk_page_buffers+0x4d/0x67 [ext3]
[14649.408072] [<e8ba89b4>] ext3_get_block+0x0/0xd0 [ext3]
[14649.408096] [<e8ba9f52>] ext3_ordered_writepage+0xdc/0x189 [ext3]
[14649.408115] [<e8ba7454>] bget_one+0x0/0x7 [ext3]
[14649.408142] [<c01569cf>] __writepage+0xb/0x26
[14649.408153] [<c0156d88>] write_cache_pages+0x161/0x274
[14649.408166] [<c01569c4>] __writepage+0x0/0x26
[14649.408187] [<e8beaa03>] rtl8139_interrupt+0x3cd/0x3d7 [8139too]
[14649.408217] [<c01c97c3>] __next_cpu+0x15/0x26
[14649.408229] [<c011b561>] find_busiest_group+0x1c9/0x54a
[14649.408251] [<c0156eba>] generic_writepages+0x1f/0x27
[14649.408263] [<c0156eee>] do_writepages+0x2c/0x34
[14649.408275] [<c018845d>] __writeback_single_inode+0x1c3/0x3aa
[14649.408295] [<c0188235>] __check_dirty_inode_list+0x21/0x86
[14649.408321] [<c0188a46>] generic_sync_sb_inodes+0x267/0x3a8
[14649.408347] [<c0188f49>] writeback_inodes+0x63/0xaa
[14649.408355] [<c0132db8>] autoremove_wake_function+0x0/0x35
[14649.408368] [<c015777a>] pdflush+0x0/0x1a3
[14649.408377] [<c01574c1>] wb_kupdate+0x7f/0xe3
[14649.408410] [<c0157887>] pdflush+0x10d/0x1a3
[14649.408425] [<c0157442>] wb_kupdate+0x0/0xe3
[14649.408440] [<c0132ce6>] kthread+0x3b/0x61
[14649.408447] [<c0132cab>] kthread+0x0/0x61
[14649.408455] [<c0104a27>] kernel_thread_helper+0x7/0x10
[14649.408473] =======================
[24270.804919] BUG: at mm/page-writeback.c:829 __set_page_dirty_nobuffers()
[24270.804955] [<c0156bb3>] __set_page_dirty_nobuffers+0x9a/0x104
[24270.804986] [<c018cfea>] __block_write_full_page+0x1b7/0x2f1
[24270.805014] [<e8ba89b4>] ext3_get_block+0x0/0xd0 [ext3]
[24270.805055] [<c018d1f2>] block_write_full_page+0xce/0xd6
[24270.805069] [<e8ba743a>] walk_page_buffers+0x4d/0x67 [ext3]
[24270.805086] [<e8ba89b4>] ext3_get_block+0x0/0xd0 [ext3]
[24270.805110] [<e8ba9f52>] ext3_ordered_writepage+0xdc/0x189 [ext3]
[24270.805131] [<e8ba7454>] bget_one+0x0/0x7 [ext3]
[24270.805159] [<c01569cf>] __writepage+0xb/0x26
[24270.805171] [<c0156d88>] write_cache_pages+0x161/0x274
[24270.805183] [<c01569c4>] __writepage+0x0/0x26
[24270.805244] [<c0156eba>] generic_writepages+0x1f/0x27
[24270.805256] [<c0156eee>] do_writepages+0x2c/0x34
[24270.805267] [<c018845d>] __writeback_single_inode+0x1c3/0x3aa
[24270.805287] [<c0188235>] __check_dirty_inode_list+0x21/0x86
[24270.805313] [<c0188a46>] generic_sync_sb_inodes+0x267/0x3a8
[24270.805339] [<c0188f49>] writeback_inodes+0x63/0xaa
[24270.805347] [<c0132db8>] autoremove_wake_function+0x0/0x35
[24270.805358] [<c015777a>] pdflush+0x0/0x1a3
[24270.805367] [<c01574c1>] wb_kupdate+0x7f/0xe3
[24270.805401] [<c0157887>] pdflush+0x10d/0x1a3
[24270.805416] [<c0157442>] wb_kupdate+0x0/0xe3
[24270.805431] [<c0132ce6>] kthread+0x3b/0x61
[24270.805438] [<c0132cab>] kthread+0x0/0x61
[24270.805445] [<c0104a27>] kernel_thread_helper+0x7/0x10
[24270.805463] =======================


http://crazy.dev.frugalware.org/MM/2.6.22-rc1-mm1.dmesg
http://crazy.dev.frugalware.org/MM/2.6.22-rc1-mm1.config

Gabriel

2007-05-16 16:25:10

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andrew Morton napisał(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>

Almost every time when I try to run this script I hit a bug. I'm wondering why...
http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/test_mount_fs.sh

[ 6666.713016] kernel BUG at /home/devel/linux-mm/include/linux/mm.h:288!
[ 6666.719690] invalid opcode: 0000 [#1]
[ 6666.723397] PREEMPT SMP
[ 6666.725999] Modules linked in: xfs loop pktgen ipt_MASQUERADE iptable_nat nf_nat autofs4 af_packet nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 binfmt_misc thermal processor fan container nvram snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm evdev snd_timer snd soundcore intel_agp agpgart snd_page_alloc i2c_i801 ide_cd cdrom rtc unix
[ 6666.776026] CPU: 0
[ 6666.776027] EIP: 0060:[<c01693ec>] Not tainted VLI
[ 6666.776028] EFLAGS: 00010202 (2.6.22-rc1-mm1 #3)
[ 6666.788519] EIP is at put_page+0x44/0xee
[ 6666.792491] eax: 00000001 ebx: c549f728 ecx: c04b27e0 edx: 00000001
[ 6666.799345] esi: 00000000 edi: 00000080 ebp: d067e9e0 esp: d067e9c8
[ 6666.806208] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
[ 6666.812104] Process mount (pid: 9419, ti=d067e000 task=d00a4070 task.ti=d067e000)
[ 6666.819486] Stack: d8980180 00000080 d067e9f0 d8980180 00000000 00000080 d067e9f0 fdc8eda3
[ 6666.828103] fffffffc d8980180 d067ea20 fdc8f7ff fdc9b425 fdc96e5c 00080000 00000000
[ 6666.836635] c549dfd0 00000200 ffffffff cd44b8e0 00002160 cd44b8e0 d067ea30 fdc78937
[ 6666.845253] Call Trace:
[ 6666.847939] [<fdc8eda3>] xfs_buf_free+0x41/0x61 [xfs]
[ 6666.853247] [<fdc8f7ff>] xfs_buf_get_noaddr+0x10c/0x118 [xfs]
[ 6666.859231] [<fdc78937>] xlog_get_bp+0x65/0x69 [xfs]
[ 6666.864412] [<fdc79e87>] xlog_write_log_records+0x73/0x20d [xfs]
[ 6666.870654] [<fdc7a174>] xlog_clear_stale_blocks+0x153/0x15b [xfs]
[ 6666.877075] [<fdc7a546>] xlog_find_tail+0x3ca/0x43d [xfs]
[ 6666.882695] [<fdc7c241>] xlog_recover+0x14/0x9b [xfs]
[ 6666.887968] [<fdc75d13>] xfs_log_mount+0xad/0xf1 [xfs]
[ 6666.893332] [<fdc7ec47>] xfs_mountfs+0x959/0xc4a [xfs]
[ 6666.898689] [<fdc714f6>] xfs_ioinit+0x26/0x2c [xfs]
[ 6666.903789] [<fdc85692>] xfs_mount+0x2e5/0x358 [xfs]
[ 6666.908988] [<fdc95b66>] vfs_mount+0x1a/0x1e [xfs]
[ 6666.914035] [<fdc95a20>] xfs_fs_fill_super+0x76/0x1a2 [xfs]
[ 6666.919868] [<c018597f>] get_sb_bdev+0x105/0x143
[ 6666.924652] [<fdc94d57>] xfs_fs_get_sb+0x21/0x27 [xfs]
[ 6666.930033] [<c0185501>] vfs_kern_mount+0x81/0xf1
[ 6666.934887] [<c0199b51>] do_mount+0x716/0x80d
[ 6666.939390] [<c0199cc8>] sys_mount+0x80/0xb5
[ 6666.943824] [<c01041d0>] syscall_call+0x7/0xb
[ 6666.948338] [<b7fbe410>] 0xb7fbe410
[ 6666.951983] =======================
[ 6666.955606] INFO: lockdep is turned off.
[ 6666.959633] Code: 3f 19 0b 00 85 c0 74 0c 89 d8 e8 1a fa ff ff e9 b9 00 00 00 31 d2 83 7b 04 00 0f 94 c2 b8 e0 27 4b c0 e8 1c 19 0b 00 85 c0 74 04 <0f> 0b eb fe 83 7b 04 00 75 11 c7 04 24 be 60 3f c0 e8 91 c6 fb
[ 6666.979608] EIP: [<c01693ec>] put_page+0x44/0xee SS:ESP 0068:d067e9c8
[ 6667.271984] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.331795] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.391521] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.449690] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.510147] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.568178] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.629555] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.683491] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.738154] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.799303] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.870552] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.926975] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6667.978262] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.032587] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.149829] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.299368] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.363383] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.464227] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.610582] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.660383] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.712897] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.764799] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.814554] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.870878] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.923868] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6668.974482] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.027816] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.266933] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.327291] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.378235] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.428371] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.536891] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.602642] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.656877] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.710353] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.762052] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.810963] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.864179] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.917908] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6669.967097] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6670.024015] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6670.074487] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6670.240395] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6670.350305] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 6670.458773] XFS: Filesystem loop1 has duplicate UUID - can't mount

http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-dmesg2
http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
Kernel Monkeys
(http://kernel.wikidot.com/start)

2007-05-16 16:43:52

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007 18:24:44 +0200 Michal Piotrowski <[email protected]> wrote:

> Andrew Morton napisał(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> >
>
> Almost every time when I try to run this script I hit a bug. I'm wondering why...
> http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/test_mount_fs.sh
>
> [ 6666.713016] kernel BUG at /home/devel/linux-mm/include/linux/mm.h:288!

static inline int put_page_testzero(struct page *page)
{
VM_BUG_ON(atomic_read(&page->_count) == 0);
return atomic_dec_and_test(&page->_count);
}

> [ 6666.719690] invalid opcode: 0000 [#1]
> [ 6666.723397] PREEMPT SMP
> [ 6666.725999] Modules linked in: xfs loop pktgen ipt_MASQUERADE iptable_nat nf_nat autofs4 af_packet nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 binfmt_misc thermal processor fan container nvram snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm evdev snd_timer snd soundcore intel_agp agpgart snd_page_alloc i2c_i801 ide_cd cdrom rtc unix
> [ 6666.776026] CPU: 0
> [ 6666.776027] EIP: 0060:[<c01693ec>] Not tainted VLI
> [ 6666.776028] EFLAGS: 00010202 (2.6.22-rc1-mm1 #3)
> [ 6666.788519] EIP is at put_page+0x44/0xee
> [ 6666.792491] eax: 00000001 ebx: c549f728 ecx: c04b27e0 edx: 00000001
> [ 6666.799345] esi: 00000000 edi: 00000080 ebp: d067e9e0 esp: d067e9c8
> [ 6666.806208] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
> [ 6666.812104] Process mount (pid: 9419, ti=d067e000 task=d00a4070 task.ti=d067e000)
> [ 6666.819486] Stack: d8980180 00000080 d067e9f0 d8980180 00000000 00000080 d067e9f0 fdc8eda3
> [ 6666.828103] fffffffc d8980180 d067ea20 fdc8f7ff fdc9b425 fdc96e5c 00080000 00000000
> [ 6666.836635] c549dfd0 00000200 ffffffff cd44b8e0 00002160 cd44b8e0 d067ea30 fdc78937
> [ 6666.845253] Call Trace:
> [ 6666.847939] [<fdc8eda3>] xfs_buf_free+0x41/0x61 [xfs]
> [ 6666.853247] [<fdc8f7ff>] xfs_buf_get_noaddr+0x10c/0x118 [xfs]
> [ 6666.859231] [<fdc78937>] xlog_get_bp+0x65/0x69 [xfs]
> [ 6666.864412] [<fdc79e87>] xlog_write_log_records+0x73/0x20d [xfs]
> [ 6666.870654] [<fdc7a174>] xlog_clear_stale_blocks+0x153/0x15b [xfs]
> [ 6666.877075] [<fdc7a546>] xlog_find_tail+0x3ca/0x43d [xfs]
> [ 6666.882695] [<fdc7c241>] xlog_recover+0x14/0x9b [xfs]
> [ 6666.887968] [<fdc75d13>] xfs_log_mount+0xad/0xf1 [xfs]
> [ 6666.893332] [<fdc7ec47>] xfs_mountfs+0x959/0xc4a [xfs]
> [ 6666.898689] [<fdc714f6>] xfs_ioinit+0x26/0x2c [xfs]
> [ 6666.903789] [<fdc85692>] xfs_mount+0x2e5/0x358 [xfs]
> [ 6666.908988] [<fdc95b66>] vfs_mount+0x1a/0x1e [xfs]
> [ 6666.914035] [<fdc95a20>] xfs_fs_fill_super+0x76/0x1a2 [xfs]
> [ 6666.919868] [<c018597f>] get_sb_bdev+0x105/0x143
> [ 6666.924652] [<fdc94d57>] xfs_fs_get_sb+0x21/0x27 [xfs]
> [ 6666.930033] [<c0185501>] vfs_kern_mount+0x81/0xf1
> [ 6666.934887] [<c0199b51>] do_mount+0x716/0x80d
> [ 6666.939390] [<c0199cc8>] sys_mount+0x80/0xb5
> [ 6666.943824] [<c01041d0>] syscall_call+0x7/0xb
> [ 6666.948338] [<b7fbe410>] 0xb7fbe410
> [ 6666.951983] =======================
> [ 6666.955606] INFO: lockdep is turned off.
> [ 6666.959633] Code: 3f 19 0b 00 85 c0 74 0c 89 d8 e8 1a fa ff ff e9 b9 00 00 00 31 d2 83 7b 04 00 0f 94 c2 b8 e0 27 4b c0 e8 1c 19 0b 00 85 c0 74 04 <0f> 0b eb fe 83 7b 04 00 75 11 c7 04 24 be 60 3f c0 e8 91 c6 fb
> [ 6666.979608] EIP: [<c01693ec>] put_page+0x44/0xee SS:ESP 0068:d067e9c8
> [ 6667.271984] XFS: Filesystem loop1 has duplicate UUID - can't mount
>
> ...
>
> [ 6670.074487] XFS: Filesystem loop1 has duplicate UUID - can't mount
> [ 6670.240395] XFS: Filesystem loop1 has duplicate UUID - can't mount
> [ 6670.350305] XFS: Filesystem loop1 has duplicate UUID - can't mount
> [ 6670.458773] XFS: Filesystem loop1 has duplicate UUID - can't mount
>
> http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-dmesg2
> http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-config
>

Looks like XFS did a free of an already-freed page. There are a couple of
likely suspects in git-xfs.patch.

Does mainline do this?

2007-05-16 16:46:25

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Tue, 15 May 2007 20:19:14 -0700 Andrew Morton wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/

LZO build fails on allyesconfig:

lib/built-in.o: In function `lzo1x_1_compress':
lib/lzo/minilzo.c:724: multiple definition of `lzo1x_1_compress' fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1307: first defined here
ld: Warning: size of symbol `lzo1x_1_compress' changed from 1541 in fs/built-in.o to 244 in lib/built-in.o
lib/built-in.o: In function `lzo1x_decompress': lib/lzo/minilzo.c:885: multiple definition of `lzo1x_decompress'
fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1466: first defined here ld: Warning: size of symbol `lzo1x_decompress' changed from 1047 in fs/built-in.o to 678 in lib/built-in.o
make: *** [.tmp_vmlinux1] Error 1
make: Target `all' not remade because of errors.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-05-16 16:50:35

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007 15:06:29 +0900 KAMEZAWA Hiroyuki wrote:

> On Tue, 15 May 2007 20:19:14 -0700
> Andrew Morton <[email protected]> wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> >
> >
> > - I found some time to look into some writeback problems in
> > fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
> > but more work (mainly testing) needs to be done.
> >
>
> If CONFIG_SCSI=y && CONFIG_ATA=n,

or CONFIG_SCSI=y && CONFIG_ATA=m


> ==
> ERROR: "ata_sas_slave_configure" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_port_disable" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_init" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_stop" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_start" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_alloc" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_noop_qc_prep" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_tf_to_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_noop_dev_select" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_tf_from_fis" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_host_init" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_queuecmd" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_sas_port_destroy" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_scsi_ioctl" [drivers/scsi/libsas/libsas.ko] undefined!
> ERROR: "ata_qc_complete" [drivers/scsi/libsas/libsas.ko] undefined!
> make[1]: *** [__modpost] Error 1"
> ==
>
> This error comes.


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-05-16 16:58:19

by Jiri Slaby

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Michal Piotrowski napsal(a):
> On 16/05/07, Nick Piggin <[email protected]> wrote:
>> Michal Piotrowski wrote:
>> > Andrew Morton napisał(a):
>> >
>> >>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>>
>> >>
>> >>
>> >>- I found some time to look into some writeback problems in
>> >> fs/fs-writeback.c.
>> >
>> >
>> > This might be related
>> >
>> > [ 97.740021] BUG: at /home/devel/linux-mm/mm/page-writeback.c:829
>> __set_page_dirty_nobuffers()
>> > [ 97.748632] [<c0105276>] dump_trace+0x63/0x1eb
>> > [ 97.753275] [<c0105418>] show_trace_log_lvl+0x1a/0x30
>> > [ 97.758521] [<c010605a>] show_trace+0x12/0x14
>> > [ 97.763042] [<c01060f7>] dump_stack+0x16/0x18
>> > [ 97.767590] [<c01677b3>] __set_page_dirty_nobuffers+0xfe/0x16e
>> > [ 97.773598] [<c0167833>] redirty_page_for_writepage+0x10/0x12
>> > [ 97.779491] [<c01a473a>] __block_write_full_page+0x1dc/0x335
>> > [ 97.785328] [<c01a495c>] block_write_full_page+0xc9/0xd1
>> > [ 97.790799] [<c01a781a>] blkdev_writepage+0x12/0x14
>> > [ 97.795829] [<c01674ea>] __writepage+0xe/0x29
>> > [ 97.800350] [<c01679b8>] write_cache_pages+0x183/0x29a
>> > [ 97.805683] [<c0167af1>] generic_writepages+0x22/0x2a
>> > [ 97.810929] [<c0167b1c>] do_writepages+0x23/0x34
>> > [ 97.815702] [<c019f0a3>] __writeback_single_inode+0x245/0x472
>> > [ 97.821632] [<c019f7e6>] generic_sync_sb_inodes+0x347/0x4cc
>> > [ 97.827379] [<c019f98b>] sync_sb_inodes+0x20/0x24
>> > [ 97.832247] [<c019fb93>] writeback_inodes+0x79/0xc2
>> > [ 97.837296] [<c0168173>] wb_kupdate+0x7a/0xdb
>> > [ 97.841833] [<c01686a0>] pdflush+0xf1/0x189
>> > [ 97.846173] [<c0137d41>] kthread+0x3b/0x62
>> > [ 97.850461] [<c0104e3f>] kernel_thread_helper+0x7/0x10
>>
>> No, that's a debugging patch I put in that missed a couple of corner
>> cases
>> (oops, you live and learn!).
>>
>> Actually I worked out what this one is too: just a case of a page with
>> buffers (so the page itself may be dirty && !uptodate), which is calling
>> __set_page_dirty_nobuffers via redirty_page_for_writepages.
>>
>> The patch I sent out earlier to fix Jiri's NFS warnings should take care
>> of this one as well.
>
> Problem fixed, thanks.

For me too.

thanks,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-05-16 17:01:17

by Richard Purdie

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 2007-05-16 at 09:50 -0700, Randy Dunlap wrote:
> On Tue, 15 May 2007 20:19:14 -0700 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
> LZO build fails on allyesconfig:
>
> lib/built-in.o: In function `lzo1x_1_compress':
> lib/lzo/minilzo.c:724: multiple definition of `lzo1x_1_compress' fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1307: first defined here
> ld: Warning: size of symbol `lzo1x_1_compress' changed from 1541 in fs/built-in.o to 244 in lib/built-in.o
> lib/built-in.o: In function `lzo1x_decompress': lib/lzo/minilzo.c:885: multiple definition of `lzo1x_decompress'
> fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1466: first defined here ld: Warning: size of symbol `lzo1x_decompress' changed from 1047 in fs/built-in.o to 678 in lib/built-in.o
> make: *** [.tmp_vmlinux1] Error 1
> make: Target `all' not remade because of errors.

Looks like reiser4 contains a copy of minilzo used as some kind of
compression plugin. It can be dropped in favour of the version in
lib/lzo/, they'll be compatible.

Andrew: Do you want a patch to remove it from reiser4?

Richard

2007-05-16 17:09:26

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007 18:00:43 +0100 Richard Purdie <[email protected]> wrote:

> On Wed, 2007-05-16 at 09:50 -0700, Randy Dunlap wrote:
> > On Tue, 15 May 2007 20:19:14 -0700 Andrew Morton wrote:
> >
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> >
> > LZO build fails on allyesconfig:
> >
> > lib/built-in.o: In function `lzo1x_1_compress':
> > lib/lzo/minilzo.c:724: multiple definition of `lzo1x_1_compress' fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1307: first defined here
> > ld: Warning: size of symbol `lzo1x_1_compress' changed from 1541 in fs/built-in.o to 244 in lib/built-in.o
> > lib/built-in.o: In function `lzo1x_decompress': lib/lzo/minilzo.c:885: multiple definition of `lzo1x_decompress'
> > fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1466: first defined here ld: Warning: size of symbol `lzo1x_decompress' changed from 1047 in fs/built-in.o to 678 in lib/built-in.o
> > make: *** [.tmp_vmlinux1] Error 1
> > make: Target `all' not remade because of errors.
>
> Looks like reiser4 contains a copy of minilzo used as some kind of
> compression plugin. It can be dropped in favour of the version in
> lib/lzo/, they'll be compatible.
>
> Andrew: Do you want a patch to remove it from reiser4?
>

yes please.

2007-05-16 17:21:31

by Dan Williams

[permalink] [raw]
Subject: RE: 2.6.22-rc1-mm1 - s390 vs. md

> From: Cornelia Huck [mailto:[email protected]]
>
> On Tue, 15 May 2007 20:19:14 -0700,
> Andrew Morton <[email protected]> wrote:
>
> >
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-
> rc1/2.6.22-rc1-mm1/
>
> Doesn't build on s390 when selecting the md menu:
>
> drivers/built-in.o(.text+0x438ae): In function `async_xor':
> : undefined reference to `dma_map_page'
> drivers/built-in.o(.text+0x43aac): In function `async_xor':
> : undefined reference to `dma_map_page'
> drivers/built-in.o(.text+0x43d2e): In function `async_xor_zero_sum':
> : undefined reference to `dma_map_page'
> drivers/built-in.o(.text+0x43f50): In function `async_memcpy':
> : undefined reference to `dma_map_page'
> drivers/built-in.o(.text+0x43f90): In function `async_memcpy':
> : undefined reference to `dma_map_page'
> drivers/built-in.o(.text+0x4423e): more undefined references to
> `dma_map_page' follow
>
> This is caused by the following in drivers/md/Kconfig:
>
> menuconfig MD
> bool "Multiple devices driver support (RAID and LVM)"
> depends on BLOCK
> select ASYNC_TX_DMA
> help
> Support multiple physical spindles through a single logical
device.
> Required for RAID and logical volume management.

The rationale for the 'select' here was to attempt to prevent user
confusion since MD_RAID456 now depends on ASYNC_TX_DMA.

>
> ASYNC_TX_DMA is defined in drivers/dma/Kconfig, which has
>
> menu "DMA Engine support"
> depends on !S390
>
> but unfortunately ASYNC_TX_DMA depends neither on the menu nor
> on !S390. (I think it was just an unknown symbol on s390 before
> Martin's Kconfig rework, so I could build older -mm kernels.)
>
> Currently, the only md stuff depending on ASYNC_TX_DMA is MD_RAID456
> (which means it doesn't work on s390 anymore, which is bad enough).
> With the select statement, no md stuff can be build on s390 at all
(and
> I really don't see why ASYNC_TX_DMA should be forced upon all md
> users)...

I agree it should not be forced on all users, I will push the following
change:

diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig
index 4a1b77e..fd29a54 100644
--- a/drivers/md/Kconfig
+++ b/drivers/md/Kconfig
@@ -8,7 +8,6 @@ menu "Multi-device support (RAID and LVM)"

config MD
bool "Multiple devices driver support (RAID and LVM)"
- select ASYNC_TX_DMA
help
Support multiple physical spindles through a single logical
device.
Required for RAID and logical volume management.
@@ -109,7 +108,8 @@ config MD_RAID10

config MD_RAID456
tristate "RAID-4/RAID-5/RAID-6 mode"
- depends on BLK_DEV_MD && ASYNC_TX_DMA
+ depends on BLK_DEV_MD
+ select ASYNC_TX_DMA
---help---
A RAID-5 set of N drives with a capacity of C MB per drive
provides
the capacity of C * (N - 1) MB, and protects against a failure

However this still will not allow s390 to build MD_RAID456. This
dependency is in place because the xor.o object has moved from
drivers/md to drivers/dma. The goal of the interface is to support
using offload engines when they are present, and use software routines
(like xor_block) when engines are not available. In other words, the
intent is that DMA_ENGINE=n && ASYNC_TX_DMA=y is a valid configuration.

Can we rework the !S390 change to the DMA_ENGINE menu? It seems to me
that S390 should follow the ARM example and only enable the driver menus
they want in arch/s390/Kconfig, no?

...

On a closer look, it seems async_tx should be its own directory like
crypto... I'll post the incremental changes to the md-accel git tree
for review.

Dan

2007-05-16 17:37:39

by Maciej Rutecki

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

In 2.6.20.9 I can change trippoints:

echo "105:100:100:78:70:40:30" > /proc/acpi/thermal_zone/TZ0/trip_points
echo 10 > /proc/acpi/thermal_zone/TZ0/polling_frequency

Then I got:
cat /proc/acpi/thermal_zone/TZ0/*
<setting not supported>
cooling mode: active
polling frequency: 10 seconds
state: active[2]
temperature: 45 C
critical (S5): 105 C
active[0]: 78 C: devices=0xdf415a40
active[1]: 70 C: devices=0xdf4159dc
active[2]: 40 C: devices=0xdf41598c
active[3]: 30 C: devices=0xdf41593c

cat /proc/acpi/fan/*/*
status: off
status: off
status: on
status: on

And fan turns on.

In 2.6.22-rc1-mm1:
echo "105:100:100:78:70:40:30" > /proc/acpi/thermal_zone/TZ0/trip_points
bash: echo: write error: Błąd wejścia/wyjścia (input/output error)

rutek:/home/maciek# cat /proc/acpi/thermal_zone/TZ0/*
<setting not supported>
polling frequency: 10 seconds
state: ok
temperature: 45 C
critical (S5): 256 C
active[0]: 78 C: devices=0xc1827a40
active[1]: 70 C: devices=0xc18279dc
active[2]: 60 C: devices=0xc182798c
active[3]: 50 C: devices=0xc182793c
rutek:/home/maciek# cat /proc/acpi/fan/*/*
status: off
status: off
status: off
status: off

Fan turns on when temperature is over 50*C. (want: 30)

A read this:
http://article.gmane.org/gmane.linux.acpi.devel/22750

But I don't have colling_policy, but only colling_mode:
ls /proc/acpi/thermal_zone/TZ0/
cooling_mode polling_frequency state temperature trip_points

Its bug or feature?

Config, acpidump, dmesg:
http://www.unixy.pl/maciek/download/kernel/2.6.22-rc1-mm1/

--
Maciej Rutecki
http://www.unixy.pl
Kernel Monkeys
(http://kernel.wikidot.com/)



Attachments:
smime.p7s (3.19 kB)
S/MIME Cryptographic Signature

2007-05-16 17:40:55

by mel

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On (16/05/07 08:16), H. Peter Anvin didst pronounce:
> Andy Whitcroft wrote:
> > Getting this on both x86 and x86_64 boxes, they are the older boxen so
> > likely older compilers:
>
> Please give the gcc version number.
>
> > CC arch/x86_64/boot/memory.o
> > arch/i386/boot/memory.c: In function `detect_memory':
> > arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
> > while reloading `asm'
> >
> > Seems to come from git-netsetup, but that tree isn't pulled into your
> > git version of -mm so I can't be more specific.
>
> Does the following patch work for you?
>

With the patch, elm3b6 from test.kernel.org builds and boots. It's
x86_64. elm3b132 which is x86 fails with

CC arch/i386/boot/video-bios.o
HOSTCC arch/i386/boot/tools/build
AS arch/i386/boot/compressed/head.o
CC arch/i386/boot/compressed/misc.o
OBJCOPY arch/i386/boot/compressed/vmlinux.bin
LD arch/i386/boot/setup.elf
ld:arch/i386/boot/setup.ld:47: syntax error
make[1]: *** [arch/i386/boot/setup.elf] Error 1
make[1]: *** Waiting for unfinished jobs....
GZIP arch/i386/boot/compressed/vmlinux.bin.gz
include/asm/processor.h: In function `native_get_debugreg':
include/asm/processor.h:531: warning: asm operand 0 probably doesn't
match constraints
include/asm/processor.h: In function `native_set_debugreg':
include/asm/processor.h:558: warning: asm operand 0 probably doesn't
match constraints
LD arch/i386/boot/compressed/piggy.o
LD arch/i386/boot/compressed/vmlinux
make: *** [bzImage] Error 2
05/16/07-17:27:44 Build the kernel. Failed rc = 2
05/16/07-17:27:44 build: kernel build Failed rc = 1
Failed and terminated the run

I haven't checked yet if that has anything to do with git-newsetup or
not.

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

2007-05-16 17:49:40

by Chuck Ebbert

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Maciej Rutecki wrote:
> In 2.6.20.9 I can change trippoints:
>
> echo "105:100:100:78:70:40:30" > /proc/acpi/thermal_zone/TZ0/trip_points
> echo 10 > /proc/acpi/thermal_zone/TZ0/polling_frequency
>
> Then I got:
> cat /proc/acpi/thermal_zone/TZ0/*
> <setting not supported>
> cooling mode: active
> polling frequency: 10 seconds
> state: active[2]
> temperature: 45 C
> critical (S5): 105 C
> active[0]: 78 C: devices=0xdf415a40
> active[1]: 70 C: devices=0xdf4159dc
> active[2]: 40 C: devices=0xdf41598c
> active[3]: 30 C: devices=0xdf41593c
>
> cat /proc/acpi/fan/*/*
> status: off
> status: off
> status: on
> status: on
>
> And fan turns on.
>
> In 2.6.22-rc1-mm1:
> echo "105:100:100:78:70:40:30" > /proc/acpi/thermal_zone/TZ0/trip_points
> bash: echo: write error: Błąd wejścia/wyjścia (input/output error)
>
> rutek:/home/maciek# cat /proc/acpi/thermal_zone/TZ0/*
> <setting not supported>
> polling frequency: 10 seconds
> state: ok
> temperature: 45 C
> critical (S5): 256 C
> active[0]: 78 C: devices=0xc1827a40
> active[1]: 70 C: devices=0xc18279dc
> active[2]: 60 C: devices=0xc182798c
> active[3]: 50 C: devices=0xc182793c
> rutek:/home/maciek# cat /proc/acpi/fan/*/*
> status: off
> status: off
> status: off
> status: off
>
> Fan turns on when temperature is over 50*C. (want: 30)
>
> A read this:
> http://article.gmane.org/gmane.linux.acpi.devel/22750
>
> But I don't have colling_policy, but only colling_mode:
> ls /proc/acpi/thermal_zone/TZ0/
> cooling_mode polling_frequency state temperature trip_points
>
> Its bug or feature?
>

Committed to mainline May 10:

Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11ccc0f249cb01a129f54760b8ff087f242935d4
Commit: 11ccc0f249cb01a129f54760b8ff087f242935d4
Parent: de46c33745f5e2ad594c72f2cf5f490861b16ce1
Author: Len Brown <[email protected]>
AuthorDate: Mon Apr 30 22:36:01 2007 -0400
Committer: Len Brown <[email protected]>
CommitDate: Mon Apr 30 22:36:01 2007 -0400

ACPI: thermal trip points are read-only

2007-05-16 17:57:17

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Mel Gorman wrote:
> On (16/05/07 08:16), H. Peter Anvin didst pronounce:
>> Andy Whitcroft wrote:
>>> Getting this on both x86 and x86_64 boxes, they are the older boxen so
>>> likely older compilers:
>> Please give the gcc version number.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

... as well as binutils version number (it appears that your version of
ld doesn't support the "ASSERT" statement?)

> ld:arch/i386/boot/setup.ld:47: syntax error
> make[1]: *** [arch/i386/boot/setup.elf] Error 1

-hpa

2007-05-16 18:04:31

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007 18:40:47 +0100
[email protected] (Mel Gorman) wrote:

> On (16/05/07 08:16), H. Peter Anvin didst pronounce:
> > Andy Whitcroft wrote:
> > > Getting this on both x86 and x86_64 boxes, they are the older boxen so
> > > likely older compilers:
> >
> > Please give the gcc version number.
> >
> > > CC arch/x86_64/boot/memory.o
> > > arch/i386/boot/memory.c: In function `detect_memory':
> > > arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
> > > while reloading `asm'
> > >
> > > Seems to come from git-netsetup, but that tree isn't pulled into your
> > > git version of -mm so I can't be more specific.
> >
> > Does the following patch work for you?
> >
>
> With the patch, elm3b6 from test.kernel.org builds and boots. It's
> x86_64. elm3b132 which is x86 fails with
>
> CC arch/i386/boot/video-bios.o
> HOSTCC arch/i386/boot/tools/build
> AS arch/i386/boot/compressed/head.o
> CC arch/i386/boot/compressed/misc.o
> OBJCOPY arch/i386/boot/compressed/vmlinux.bin
> LD arch/i386/boot/setup.elf
> ld:arch/i386/boot/setup.ld:47: syntax error

ASSERT(_end <= 0x8000, "Setup too big!")

Which compiler/binutils are you running over there?

> make[1]: *** [arch/i386/boot/setup.elf] Error 1
> make[1]: *** Waiting for unfinished jobs....
> GZIP arch/i386/boot/compressed/vmlinux.bin.gz
> include/asm/processor.h: In function `native_get_debugreg':
> include/asm/processor.h:531: warning: asm operand 0 probably doesn't
> match constraints
> include/asm/processor.h: In function `native_set_debugreg':
> include/asm/processor.h:558: warning: asm operand 0 probably doesn't
> match constraints

static inline unsigned long native_get_debugreg(int regno)
{
unsigned long val = 0; /* Damn you, gcc! */

switch (regno) {
case 0:
asm("movl %%db0, %0" :"=r" (val)); break;
case 1:
asm("movl %%db1, %0" :"=r" (val)); break;
case 2:
asm("movl %%db2, %0" :"=r" (val)); break;
case 3:
asm("movl %%db3, %0" :"=r" (val)); break;
case 6:
asm("movl %%db6, %0" :"=r" (val)); break;
case 7:
asm("movl %%db7, %0" :"=r" (val)); break;
default:
--> BUG();
}
return val;
}

weird.

There are no significant changes in processor.h relative to 2.6.22-rc1.

If the file-n-line aren't screwed up, it's disliking

#define BUG() \
do { \
asm volatile("1:\tud2\n" \
".pushsection __bug_table,\"a\"\n" \
"2:\t.long 1b, %c0\n" \
"\t.word %c1, 0\n" \
"\t.org 2b+%c2\n" \
".popsection" \
: : "i" (__FILE__), "i" (__LINE__), \
"i" (sizeof(struct bug_entry))); \
for(;;) ; \
} while(0)

and we haven't changedanything in there recently either.

> LD arch/i386/boot/compressed/piggy.o
> LD arch/i386/boot/compressed/vmlinux
> make: *** [bzImage] Error 2
> 05/16/07-17:27:44 Build the kernel. Failed rc = 2
> 05/16/07-17:27:44 build: kernel build Failed rc = 1
> Failed and terminated the run
>
> I haven't checked yet if that has anything to do with git-newsetup or
> not.

It built and ran 2.6.22-rc1-git4 happily.


2007-05-16 18:18:54

by Goulven Guillard

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Le 05/16/2007 07:47 PM, Chuck Ebbert a déclaré :

> Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11ccc0f249cb01a129f54760b8ff087f242935d4
> Commit: 11ccc0f249cb01a129f54760b8ff087f242935d4
> Parent: de46c33745f5e2ad594c72f2cf5f490861b16ce1
> Author: Len Brown <[email protected]>
> AuthorDate: Mon Apr 30 22:36:01 2007 -0400
> Committer: Len Brown <[email protected]>
> CommitDate: Mon Apr 30 22:36:01 2007 -0400
>
> ACPI: thermal trip points are read-only


Should one understand that it IS a wanted behaviour ?

Isn't it the DSDT job (which is kernel-accessible, or isn't it ?) to
communicate trip_points to ACPI thermal zone ?

Isn't OSPM managing thermal zone ?

(http://acpi.sourceforge.net/documentation/thermal.html)




PS : Sorry for all these (maybe stupid) questions, but I think I
remember that changing trip_points had an effect on a (DSDT-bugged)
laptop I used to use, and I'd like to understand...

PPS : Sorry also for the english mistakes or approximations...




--
~~
|Oo| La banquise fond !!! Adoptez un pingouin...
/|\/|\
|__| => http://doc.ubuntu-fr.org/
^__^
~~~| |~~~








2007-05-16 18:19:29

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

H. Peter Anvin wrote:
> Mel Gorman wrote:
>> On (16/05/07 08:16), H. Peter Anvin didst pronounce:
>>> Andy Whitcroft wrote:
>>>> Getting this on both x86 and x86_64 boxes, they are the older boxen so
>>>> likely older compilers:
>>> Please give the gcc version number.
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

SOrry, had to wait for the machine to come idle:

elm3b132:~# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.4/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.4 (Debian 1:3.3.4-3)
elm3b132:~# dpkg -l | grep binutil
ii binutils 2.14.90.0.7-8 The GNU assembler, linker and binary
utiliti
elm3b132:~#

>
> ... as well as binutils version number (it appears that your version of
> ld doesn't support the "ASSERT" statement?)
>
>> ld:arch/i386/boot/setup.ld:47: syntax error
>> make[1]: *** [arch/i386/boot/setup.elf] Error 1
>
> -hpa

-apw

2007-05-16 18:56:15

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.22-rc1-mm1: IDE compile error

On Tue, May 15, 2007 at 08:19:14PM -0700, Andrew Morton wrote:
>...
> - Added an i386 early-startup development tree, as git-newsetup.patch ("H.
> Peter Anvin" <[email protected]>)
>...
> Changes since 2.6.21-mm2:
>...
> git-newsetup.patch
>...
> git trees
>...

This breaks the compilation of the oldest of our IDE disk drivers:

<-- snip -->

...
LD .tmp_vmlinux1
drivers/built-in.o: In function `hd_init':
hd.c:(.init.text+0x44a7d): undefined reference to `drive_info'
hd.c:(.init.text+0x44a89): undefined reference to `drive_info'
hd.c:(.init.text+0x44a95): undefined reference to `drive_info'
hd.c:(.init.text+0x44aa1): undefined reference to `drive_info'
hd.c:(.init.text+0x44aad): undefined reference to `drive_info'
drivers/built-in.o:hd.c:(.init.text+0x44ab9): more undefined references to `drive_info' follow
make[1]: *** [.tmp_vmlinux1] Error 1

<-- snip -->

Considering the fact that we have two more recent drivers with the same
functionality, it might be an option to simply remove this driver...

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2007-05-16 19:56:43

by Richard Purdie

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Convert Reiser4 to use lzo implementation in lib/lzo/ instead of
including its own copy of minilzo.

Signed-off-by: Richard Purdie <[email protected]>

---
[I've removed the deletion of minilzo.* and lzoconf.h from the LKML
version of this mail since its not very interesting]

fs/reiser4/Kconfig | 1
fs/reiser4/Makefile | 1
fs/reiser4/plugin/compress/Makefile | 1
fs/reiser4/plugin/compress/compress.c | 22
fs/reiser4/plugin/compress/lzoconf.h | 216 ---
fs/reiser4/plugin/compress/minilzo.c | 1967 ----------------------------------
fs/reiser4/plugin/compress/minilzo.h | 70 -
7 files changed, 10 insertions(+), 2268 deletions(-)

Index: linux-2.6.21/fs/reiser4/Kconfig
===================================================================
--- linux-2.6.21.orig/fs/reiser4/Kconfig 2007-05-16 18:46:01.000000000 +0100
+++ linux-2.6.21/fs/reiser4/Kconfig 2007-05-16 18:49:09.000000000 +0100
@@ -3,6 +3,7 @@ config REISER4_FS
depends on EXPERIMENTAL
select ZLIB_INFLATE
select ZLIB_DEFLATE
+ select LZO
select CRYPTO
help
Reiser4 is a filesystem that performs all filesystem operations
Index: linux-2.6.21/fs/reiser4/Makefile
===================================================================
--- linux-2.6.21.orig/fs/reiser4/Makefile 2007-05-16 18:46:01.000000000 +0100
+++ linux-2.6.21/fs/reiser4/Makefile 2007-05-16 20:35:48.000000000 +0100
@@ -70,7 +70,6 @@ reiser4-y := \
plugin/crypto/cipher.o \
plugin/crypto/digest.o \
\
- plugin/compress/minilzo.o \
plugin/compress/compress.o \
plugin/compress/compress_mode.o \
\
Index: linux-2.6.21/fs/reiser4/plugin/compress/Makefile
===================================================================
--- linux-2.6.21.orig/fs/reiser4/plugin/compress/Makefile 2007-05-16 18:46:01.000000000 +0100
+++ linux-2.6.21/fs/reiser4/plugin/compress/Makefile 2007-05-16 18:48:42.000000000 +0100
@@ -2,5 +2,4 @@ obj-$(CONFIG_REISER4_FS) += compress_plu

compress_plugins-objs := \
compress.o \
- minilzo.o \
compress_mode.o
Index: linux-2.6.21/fs/reiser4/plugin/compress/compress.c
===================================================================
--- linux-2.6.21.orig/fs/reiser4/plugin/compress/compress.c 2007-05-16 18:46:01.000000000 +0100
+++ linux-2.6.21/fs/reiser4/plugin/compress/compress.c 2007-05-16 20:47:45.000000000 +0100
@@ -4,8 +4,8 @@
#include "../../debug.h"
#include "../../inode.h"
#include "../plugin.h"
-#include "minilzo.h"

+#include <linux/lzo.h>
#include <linux/zlib.h>
#include <linux/types.h>
#include <linux/hardirq.h>
@@ -226,11 +226,7 @@ gzip1_decompress(coa_t coa, __u8 * src_f

static int lzo1_init(void)
{
- int ret;
- ret = lzo_init();
- if (ret != LZO_E_OK)
- warning("edward-848", "lzo_init() failed with ret = %d\n", ret);
- return ret;
+ return 0;
}

static int lzo1_overrun(unsigned in_len)
@@ -238,9 +234,6 @@ static int lzo1_overrun(unsigned in_len)
return in_len / 64 + 16 + 3;
}

-#define LZO_HEAP_SIZE(size) \
- sizeof(lzo_align_t) * (((size) + (sizeof(lzo_align_t) - 1)) / sizeof(lzo_align_t))
-
static coa_t lzo1_alloc(tfm_action act)
{
int ret = 0;
@@ -248,12 +241,12 @@ static coa_t lzo1_alloc(tfm_action act)

switch (act) {
case TFMA_WRITE: /* compress */
- coa = reiser4_vmalloc(LZO_HEAP_SIZE(LZO1X_1_MEM_COMPRESS));
+ coa = reiser4_vmalloc(LZO1X_1_MEM_COMPRESS);
if (!coa) {
ret = -ENOMEM;
break;
}
- memset(coa, 0, LZO_HEAP_SIZE(LZO1X_1_MEM_COMPRESS));
+ memset(coa, 0, LZO1X_1_MEM_COMPRESS);
case TFMA_READ: /* decompress */
break;
default:
@@ -295,12 +288,13 @@ static void
lzo1_compress(coa_t coa, __u8 * src_first, unsigned src_len,
__u8 * dst_first, unsigned *dst_len)
{
+ unsigned long dstlen = *dst_len;
int result;

assert("edward-846", coa != NULL);
assert("edward-847", src_len != 0);

- result = lzo1x_1_compress(src_first, src_len, dst_first, dst_len, coa);
+ result = lzo1x_1_compress(src_first, src_len, dst_first, &dstlen, coa);
if (result != LZO_E_OK) {
warning("edward-849", "lzo1x_1_compress failed\n");
goto out;
@@ -319,14 +313,16 @@ static void
lzo1_decompress(coa_t coa, __u8 * src_first, unsigned src_len,
__u8 * dst_first, unsigned *dst_len)
{
+ unsigned long dstlen = *dst_len;
int result;

assert("edward-851", coa == NULL);
assert("edward-852", src_len != 0);

- result = lzo1x_decompress(src_first, src_len, dst_first, dst_len, NULL);
+ result = lzo1x_decompress(src_first, src_len, dst_first, &dstlen, NULL);
if (result != LZO_E_OK)
warning("edward-853", "lzo1x_1_decompress failed\n");
+ *dst_len = dstlen;
return;
}



2007-05-16 20:01:18

by Richard Purdie

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 2007-05-16 at 10:06 -0700, Andrew Morton wrote:
> On Wed, 16 May 2007 18:00:43 +0100 Richard Purdie <[email protected]> wrote:
>
> > On Wed, 2007-05-16 at 09:50 -0700, Randy Dunlap wrote:
> > > On Tue, 15 May 2007 20:19:14 -0700 Andrew Morton wrote:
> > >
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> > >
> > > LZO build fails on allyesconfig:
> > >
> > > lib/built-in.o: In function `lzo1x_1_compress':
> > > lib/lzo/minilzo.c:724: multiple definition of `lzo1x_1_compress' fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1307: first defined here
> > > ld: Warning: size of symbol `lzo1x_1_compress' changed from 1541 in fs/built-in.o to 244 in lib/built-in.o
> > > lib/built-in.o: In function `lzo1x_decompress': lib/lzo/minilzo.c:885: multiple definition of `lzo1x_decompress'
> > > fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1466: first defined here ld: Warning: size of symbol `lzo1x_decompress' changed from 1047 in fs/built-in.o to 678 in lib/built-in.o
> > > make: *** [.tmp_vmlinux1] Error 1
> > > make: Target `all' not remade because of errors.
> >
> > Looks like reiser4 contains a copy of minilzo used as some kind of
> > compression plugin. It can be dropped in favour of the version in
> > lib/lzo/, they'll be compatible.
> >
> > Andrew: Do you want a patch to remove it from reiser4?
> >
>
> yes please.

Sent.

I also noticed that reiser4 is using lzo1x_decompress(), not
lzo1x_decompress_safe(). The unsafe version is open to buffer overflows
through malicious data since it performs no validation of where it
writes output to. I'm not sure whether thats acceptable in filesystem
code, I'd suspect not?

Fixing it is a case of s/lzo1x_decompress(/lzo1x_decompress_safe(/ in
fs/reiser4/plugin/compress/compress.c...

Richard


2007-05-16 20:23:24

by djwong

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, May 16, 2007 at 01:04:59AM -0700, Andrew Morton wrote:

> > Looks like SAS needs to require CONFIG_ATA...
> >
>
> Yes, but it seems wrong to disable all of libsas if !ATA. Only sas_ata.o
> should depend on that.
>
> Darrick, is there any point in me carrying this tree? It doesn't appear to
> be a hotbed of activity...

Nope. I haven't worked on those bits of code in quite a while, since a
number of scsi/libata reorganizations were discussed at the storage
summit that would make a fair amount of the sas_ata code unnecessary (or
candidates for reworking).

--D


Attachments:
(No filename) (579.00 B)
signature.asc (189.00 B)
Digital signature
Download all attachments

2007-05-16 23:34:24

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

diff --git a/arch/i386/boot/setup.ld b/arch/i386/boot/setup.ld
index e9ca0c2..c9c5530 100644
--- a/arch/i386/boot/setup.ld
+++ b/arch/i386/boot/setup.ld
@@ -44,5 +44,5 @@ SECTIONS

/DISCARD/ : { *(.note*) }

- ASSERT(_end <= 0x8000, "Setup too big!")
+ . = ASSERT(_end <= 0x8000, "Setup too big!")
}


Attachments:
diff (305.00 B)

2007-05-16 23:37:44

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

diff --git a/arch/i386/boot/setup.ld b/arch/i386/boot/setup.ld
index e9ca0c2..c9c5530 100644
--- a/arch/i386/boot/setup.ld
+++ b/arch/i386/boot/setup.ld
@@ -44,5 +44,5 @@ SECTIONS

/DISCARD/ : { *(.note*) }

- ASSERT(_end <= 0x8000, "Setup too big!")
+ . = ASSERT(_end <= 0x8000, "Setup too big!");
}


Attachments:
diff (306.00 B)

2007-05-17 02:06:31

by David Chinner

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, May 16, 2007 at 09:41:33AM -0700, Andrew Morton wrote:
> On Wed, 16 May 2007 18:24:44 +0200 Michal Piotrowski <[email protected]> wrote:
>
> > Andrew Morton napisał(a):
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
> > >
> >
> > Almost every time when I try to run this script I hit a bug. I'm wondering why...
> > http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/test_mount_fs.sh
> >
> > [ 6666.713016] kernel BUG at /home/devel/linux-mm/include/linux/mm.h:288!
>
> static inline int put_page_testzero(struct page *page)
> {
> VM_BUG_ON(atomic_read(&page->_count) == 0);
> return atomic_dec_and_test(&page->_count);
> }

I haven't seen that one. I expect that it will be the noaddr buffer allocation
changes that have triggered this...

> > [ 6666.719690] invalid opcode: 0000 [#1]
> > [ 6666.723397] PREEMPT SMP
> > [ 6666.725999] Modules linked in: xfs loop pktgen ipt_MASQUERADE iptable_nat nf_nat autofs4 af_packet nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 binfmt_misc thermal processor fan container nvram snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm evdev snd_timer snd soundcore intel_agp agpgart snd_page_alloc i2c_i801 ide_cd cdrom rtc unix
> > [ 6666.776026] CPU: 0
> > [ 6666.776027] EIP: 0060:[<c01693ec>] Not tainted VLI
> > [ 6666.776028] EFLAGS: 00010202 (2.6.22-rc1-mm1 #3)
> > [ 6666.788519] EIP is at put_page+0x44/0xee
> > [ 6666.792491] eax: 00000001 ebx: c549f728 ecx: c04b27e0 edx: 00000001
> > [ 6666.799345] esi: 00000000 edi: 00000080 ebp: d067e9e0 esp: d067e9c8
> > [ 6666.806208] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
> > [ 6666.812104] Process mount (pid: 9419, ti=d067e000 task=d00a4070 task.ti=d067e000)
> > [ 6666.819486] Stack: d8980180 00000080 d067e9f0 d8980180 00000000 00000080 d067e9f0 fdc8eda3
> > [ 6666.828103] fffffffc d8980180 d067ea20 fdc8f7ff fdc9b425 fdc96e5c 00080000 00000000
> > [ 6666.836635] c549dfd0 00000200 ffffffff cd44b8e0 00002160 cd44b8e0 d067ea30 fdc78937
> > [ 6666.845253] Call Trace:
> > [ 6666.847939] [<fdc8eda3>] xfs_buf_free+0x41/0x61 [xfs]
> > [ 6666.853247] [<fdc8f7ff>] xfs_buf_get_noaddr+0x10c/0x118 [xfs]
> > [ 6666.859231] [<fdc78937>] xlog_get_bp+0x65/0x69 [xfs]

Yeah - that trace implies a memory allocation failure when allocating
log buffer pages and the cleanup looks like it does a double free
of the pages that got allocated. Patch attached below that should fix
this problem.

> > [ 6667.271984] XFS: Filesystem loop1 has duplicate UUID - can't mount
> >
> > ...
> >
> > [ 6670.074487] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > [ 6670.240395] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > [ 6670.350305] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > [ 6670.458773] XFS: Filesystem loop1 has duplicate UUID - can't mount

I assume that the thread doing the mount got killed by the BUG and so the
normal error handling path on log mount failure was not executed and hence the
uuid for the filesystem never got removed from the table used to detect
multiple mounts of the same filesystem....

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group

---
fs/xfs/linux-2.6/xfs_buf.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)

Index: 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_buf.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/linux-2.6/xfs_buf.c 2007-05-11 16:03:26.000000000 +1000
+++ 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 11:53:40.293585132 +1000
@@ -323,9 +323,16 @@ xfs_buf_free(
for (i = 0; i < bp->b_page_count; i++) {
struct page *page = bp->b_pages[i];

- if (bp->b_flags & _XBF_PAGE_CACHE)
+ /* handle noaddr allocation failure case */
+ if (!page)
+ break;
+
+ if (bp->b_flags & _XBF_PAGE_CACHE) {
ASSERT(!PagePrivate(page));
- page_cache_release(page);
+ page_cache_release(page);
+ } else {
+ __free_page(page);
+ }
}
_xfs_buf_free_pages(bp);
}
@@ -766,6 +773,8 @@ xfs_buf_get_noaddr(
goto fail;
_xfs_buf_initialize(bp, target, 0, len, 0);

+ bp->b_flags |= _XBF_PAGES;
+
error = _xfs_buf_get_pages(bp, page_count, 0);
if (error)
goto fail_free_buf;
@@ -773,15 +782,14 @@ xfs_buf_get_noaddr(
for (i = 0; i < page_count; i++) {
bp->b_pages[i] = alloc_page(GFP_KERNEL);
if (!bp->b_pages[i])
- goto fail_free_mem;
+ goto fail_free_buf;
}
- bp->b_flags |= _XBF_PAGES;

error = _xfs_buf_map_pages(bp, XBF_MAPPED);
if (unlikely(error)) {
printk(KERN_WARNING "%s: failed to map pages\n",
__FUNCTION__);
- goto fail_free_mem;
+ goto fail_free_buf;
}

xfs_buf_unlock(bp);
@@ -789,9 +797,6 @@ xfs_buf_get_noaddr(
XB_TRACE(bp, "no_daddr", len);
return bp;

- fail_free_mem:
- while (--i >= 0)
- __free_page(bp->b_pages[i]);
fail_free_buf:
xfs_buf_free(bp);
fail:

2007-05-17 04:16:55

by Bharata B Rao

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On 5/16/07, H. Peter Anvin <[email protected]> wrote:
> Andy Whitcroft wrote:
> > Getting this on both x86 and x86_64 boxes, they are the older boxen so
> > likely older compilers:
>
> Please give the gcc version number.
>
> > CC arch/x86_64/boot/memory.o
> > arch/i386/boot/memory.c: In function `detect_memory':
> > arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
> > while reloading `asm'
> >
> > Seems to come from git-netsetup, but that tree isn't pulled into your
> > git version of -mm so I can't be more specific.
>
> Does the following patch work for you?
>
> -hpa
>
>
> diff --git a/arch/i386/boot/memory.c b/arch/i386/boot/memory.c
> index 8a82aa9..d7b250b 100644
> --- a/arch/i386/boot/memory.c
> +++ b/arch/i386/boot/memory.c
> @@ -30,7 +30,7 @@ static int detect_memory_e820(void)
> size = sizeof(struct e820entry);
> id = SMAP;
> asm("int $0x15; setc %0"
> - : "=dm" (err), "+b" (next), "+d" (id), "+c" (size),
> + : "=am" (err), "+b" (next), "+d" (id), "+c" (size),
> "=m" (*desc)
> : "D" (desc), "a" (0xe820));

Observed same problem with gcc version 3.4.4 20050721 (Red Hat
3.4.4-2) and binutils-2.15.92.0.2-15 and the above patch fixes it.

Regards,
Bharata.
--
"Men come and go but mountains remain" -- Ruskin Bond.

2007-05-17 08:42:56

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Thu, May 17, 2007 at 12:06:00PM +1000, David Chinner wrote:
> > static inline int put_page_testzero(struct page *page)
> > {
> > VM_BUG_ON(atomic_read(&page->_count) == 0);
> > return atomic_dec_and_test(&page->_count);
> > }
>
> I haven't seen that one. I expect that it will be the noaddr buffer allocation
> changes that have triggered this...

Yes. xfs_buf_get_noaddr calls xfs_buf_free to free a buffer when
something fails. But this is wrong - we want to call xfs_buf_deallocate
before we setup the page list, and if a page allocation fails we want to
do out own freeing of just the pages we allocated and call
_xfs_buf_free_pages. Currently we do our own freeing _and_ call
xfs_buf_free which leads to this double free.


Signed-off-by: Christoph Hellwig <[email protected]>


Index: linux-2.6/fs/xfs/linux-2.6/xfs_buf.c
===================================================================
--- linux-2.6.orig/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 09:34:44.000000000 +0200
+++ linux-2.6/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 09:36:53.000000000 +0200
@@ -792,8 +792,9 @@ xfs_buf_get_noaddr(
fail_free_mem:
while (--i >= 0)
__free_page(bp->b_pages[i]);
+ _xfs_buf_free_pages(bp);
fail_free_buf:
- xfs_buf_free(bp);
+ xfs_buf_deallocate(bp);
fail:
return NULL;
}

>
> > > [ 6666.719690] invalid opcode: 0000 [#1]
> > > [ 6666.723397] PREEMPT SMP
> > > [ 6666.725999] Modules linked in: xfs loop pktgen ipt_MASQUERADE iptable_nat nf_nat autofs4 af_packet nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 binfmt_misc thermal processor fan container nvram snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm evdev snd_timer snd soundcore intel_agp agpgart snd_page_alloc i2c_i801 ide_cd cdrom rtc unix
> > > [ 6666.776026] CPU: 0
> > > [ 6666.776027] EIP: 0060:[<c01693ec>] Not tainted VLI
> > > [ 6666.776028] EFLAGS: 00010202 (2.6.22-rc1-mm1 #3)
> > > [ 6666.788519] EIP is at put_page+0x44/0xee
> > > [ 6666.792491] eax: 00000001 ebx: c549f728 ecx: c04b27e0 edx: 00000001
> > > [ 6666.799345] esi: 00000000 edi: 00000080 ebp: d067e9e0 esp: d067e9c8
> > > [ 6666.806208] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
> > > [ 6666.812104] Process mount (pid: 9419, ti=d067e000 task=d00a4070 task.ti=d067e000)
> > > [ 6666.819486] Stack: d8980180 00000080 d067e9f0 d8980180 00000000 00000080 d067e9f0 fdc8eda3
> > > [ 6666.828103] fffffffc d8980180 d067ea20 fdc8f7ff fdc9b425 fdc96e5c 00080000 00000000
> > > [ 6666.836635] c549dfd0 00000200 ffffffff cd44b8e0 00002160 cd44b8e0 d067ea30 fdc78937
> > > [ 6666.845253] Call Trace:
> > > [ 6666.847939] [<fdc8eda3>] xfs_buf_free+0x41/0x61 [xfs]
> > > [ 6666.853247] [<fdc8f7ff>] xfs_buf_get_noaddr+0x10c/0x118 [xfs]
> > > [ 6666.859231] [<fdc78937>] xlog_get_bp+0x65/0x69 [xfs]
>
> Yeah - that trace implies a memory allocation failure when allocating
> log buffer pages and the cleanup looks like it does a double free
> of the pages that got allocated. Patch attached below that should fix
> this problem.
>
> > > [ 6667.271984] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > >
> > > ...
> > >
> > > [ 6670.074487] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > > [ 6670.240395] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > > [ 6670.350305] XFS: Filesystem loop1 has duplicate UUID - can't mount
> > > [ 6670.458773] XFS: Filesystem loop1 has duplicate UUID - can't mount
>
> I assume that the thread doing the mount got killed by the BUG and so the
> normal error handling path on log mount failure was not executed and hence the
> uuid for the filesystem never got removed from the table used to detect
> multiple mounts of the same filesystem....
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> Principal Engineer
> SGI Australian Software Group
>
> ---
> fs/xfs/linux-2.6/xfs_buf.c | 21 +++++++++++++--------
> 1 file changed, 13 insertions(+), 8 deletions(-)
>
> Index: 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_buf.c
> ===================================================================
> --- 2.6.x-xfs-new.orig/fs/xfs/linux-2.6/xfs_buf.c 2007-05-11 16:03:26.000000000 +1000
> +++ 2.6.x-xfs-new/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 11:53:40.293585132 +1000
> @@ -323,9 +323,16 @@ xfs_buf_free(
> for (i = 0; i < bp->b_page_count; i++) {
> struct page *page = bp->b_pages[i];
>
> - if (bp->b_flags & _XBF_PAGE_CACHE)
> + /* handle noaddr allocation failure case */
> + if (!page)
> + break;
> +
> + if (bp->b_flags & _XBF_PAGE_CACHE) {
> ASSERT(!PagePrivate(page));
> - page_cache_release(page);
> + page_cache_release(page);
> + } else {
> + __free_page(page);
> + }
> }
> _xfs_buf_free_pages(bp);
> }
> @@ -766,6 +773,8 @@ xfs_buf_get_noaddr(
> goto fail;
> _xfs_buf_initialize(bp, target, 0, len, 0);
>
> + bp->b_flags |= _XBF_PAGES;
> +
> error = _xfs_buf_get_pages(bp, page_count, 0);
> if (error)
> goto fail_free_buf;
> @@ -773,15 +782,14 @@ xfs_buf_get_noaddr(
> for (i = 0; i < page_count; i++) {
> bp->b_pages[i] = alloc_page(GFP_KERNEL);
> if (!bp->b_pages[i])
> - goto fail_free_mem;
> + goto fail_free_buf;
> }
> - bp->b_flags |= _XBF_PAGES;
>
> error = _xfs_buf_map_pages(bp, XBF_MAPPED);
> if (unlikely(error)) {
> printk(KERN_WARNING "%s: failed to map pages\n",
> __FUNCTION__);
> - goto fail_free_mem;
> + goto fail_free_buf;
> }
>
> xfs_buf_unlock(bp);
> @@ -789,9 +797,6 @@ xfs_buf_get_noaddr(
> XB_TRACE(bp, "no_daddr", len);
> return bp;
>
> - fail_free_mem:
> - while (--i >= 0)
> - __free_page(bp->b_pages[i]);
> fail_free_buf:
> xfs_buf_free(bp);
> fail:
>
---end quoted text---

2007-05-17 09:23:40

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Hi!

> > In 2.6.20.9 I can change trippoints:
> >
> > echo "105:100:100:78:70:40:30" > /proc/acpi/thermal_zone/TZ0/trip_points
> > echo 10 > /proc/acpi/thermal_zone/TZ0/polling_frequency
> >
> > Then I got:
> > cat /proc/acpi/thermal_zone/TZ0/*
...
> > Its bug or feature?
> >
>
> Committed to mainline May 10:
>
> Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11ccc0f249cb01a129f54760b8ff087f242935d4
> Commit: 11ccc0f249cb01a129f54760b8ff087f242935d4
> Parent: de46c33745f5e2ad594c72f2cf5f490861b16ce1
> Author: Len Brown <[email protected]>
> AuthorDate: Mon Apr 30 22:36:01 2007 -0400
> Committer: Len Brown <[email protected]>
> CommitDate: Mon Apr 30 22:36:01 2007 -0400
>
> ACPI: thermal trip points are read-only

What was the rationale? Can we get this one reverted?

Some machines (HP omnibook xe3) have broken trip points -- too high --
so machine will overheat and trigger hw shutdown before starting
passive cooling.

That's really broken, and write to trip points is reasonable way to
'fix' that. (I'd understand if you only ever let trip points to
decrease... but otoh root should be able to shoot himself....)

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-17 09:35:32

by Mel Gorman

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Wed, 16 May 2007, H. Peter Anvin wrote:

> Correction, does *this patch* do it for you?
>

With these two patches in combination, previously failing machines elm3b6
(x86_64 on test.kernel.org) and a modern x86 built a kernel and booted
correctly.

elm3b132 and elm3b132 (x86 numaq on test.kernel.org) built with these
patches but silently fail on boot with no output via earlyprintk.
According to test.kernel.org, this failure occurs with git-newsetup
reverted so it is a separate problem.

Thanks

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

2007-05-17 12:46:16

by Reuben Farrelly

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 - Call trace in slub_def.h

On 16/05/2007 1:19 PM, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
>
> - I found some time to look into some writeback problems in
> fs/fs-writeback.c. The results were ugly. There are a pile of fixes here
> but more work (mainly testing) needs to be done.
>
> There's some new debug code in there which could be very expensive if
> there are a lot of dirty inodes in the machine (quadratic behaviour). If
> the machine seems to be affected by this, the debugging may be disabled with
>
> echo 0 > /proc/sys/fs/inode_debug
>
> - Added an i386 early-startup development tree, as git-newsetup.patch ("H.
> Peter Anvin" <[email protected]>)
>
> - Brought back git-sas.patch (Darrick J. Wong <[email protected]>). It got
> lost quite some time ago.

I have just seen this on boot, with 2.6.22-rc2-mm1 on x86_64:

--

libata version 2.20 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
BUG: at include/linux/slub_def.h:88 kmalloc_index()

Call Trace:
[<ffffffff8034f3f9>] pci_dev_put+0x12/0x14
[<ffffffff80283f30>] get_slab+0xb5/0x265
[<ffffffff802841bc>] __kmalloc+0x13/0xa3
[<ffffffff8021a4aa>] cache_k8_northbridges+0x80/0x116
[<ffffffff8063fed2>] gart_iommu_init+0x16/0x594
[<ffffffff804562ac>] genl_rcv+0x0/0x68
[<ffffffff804548ed>] netlink_kernel_create+0x15e/0x16b
[<ffffffff804acc52>] mutex_unlock+0x9/0xb
[<ffffffff80639fad>] pci_iommu_init+0x9/0x12
[<ffffffff806306af>] kernel_init+0x152/0x322
[<ffffffff80249c7c>] trace_hardirqs_on+0xc0/0x14e
[<ffffffff804ae03d>] trace_hardirqs_on_thunk+0x35/0x37
[<ffffffff80249c7c>] trace_hardirqs_on+0xc0/0x14e
[<ffffffff8020a848>] child_rip+0xa/0x12
[<ffffffff80209f5c>] restore_args+0x0/0x30
[<ffffffff8063055d>] kernel_init+0x0/0x322
[<ffffffff8020a83e>] child_rip+0x0/0x12

PCI-GART: No AMD northbridge found.
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
hpet0: 3 64-bit timers, 14318180 Hz
ACPI: RTC can wake from S4
pnp: 00:01: iomem range 0xf0000000-0xf3ffffff has been reserved
pnp: 00:01: iomem range 0xfed13000-0xfed13fff has been reserved

--

The full dmesg is at http://www.reub.net/files/kernel/2.6.22-rc1-mm1-dmesg and
the config up at http://www.reub.net/files/kernel/2.6.22-rc1-mm1-config

The machine otherwise seems to run OK.

Reuben

2007-05-17 12:52:36

by Satyam Sharma

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 - Call trace in slub_def.h

On 5/17/07, Reuben Farrelly <[email protected]> wrote:
> [...]
> I have just seen this on boot, with 2.6.22-rc2-mm1 on x86_64:
> [...]
> BUG: at include/linux/slub_def.h:88 kmalloc_index()
>
> Call Trace:
> [<ffffffff8034f3f9>] pci_dev_put+0x12/0x14
> [<ffffffff80283f30>] get_slab+0xb5/0x265
> [<ffffffff802841bc>] __kmalloc+0x13/0xa3
> [<ffffffff8021a4aa>] cache_k8_northbridges+0x80/0x116
> [<ffffffff8063fed2>] gart_iommu_init+0x16/0x594
> [<ffffffff804562ac>] genl_rcv+0x0/0x68
> [<ffffffff804548ed>] netlink_kernel_create+0x15e/0x16b
> [<ffffffff804acc52>] mutex_unlock+0x9/0xb
> [<ffffffff80639fad>] pci_iommu_init+0x9/0x12
> [<ffffffff806306af>] kernel_init+0x152/0x322
> [<ffffffff80249c7c>] trace_hardirqs_on+0xc0/0x14e
> [<ffffffff804ae03d>] trace_hardirqs_on_thunk+0x35/0x37
> [<ffffffff80249c7c>] trace_hardirqs_on+0xc0/0x14e
> [<ffffffff8020a848>] child_rip+0xa/0x12
> [<ffffffff80209f5c>] restore_args+0x0/0x30
> [<ffffffff8063055d>] kernel_init+0x0/0x322
> [<ffffffff8020a83e>] child_rip+0x0/0x12
>
> PCI-GART: No AMD northbridge found.
> hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
> hpet0: 3 64-bit timers, 14318180 Hz
> ACPI: RTC can wake from S4
> pnp: 00:01: iomem range 0xf0000000-0xf3ffffff has been reserved
> pnp: 00:01: iomem range 0xfed13000-0xfed13fff has been reserved

This ( http://lkml.org/lkml/2007/5/16/350 ) patch by Ben Collins
submitted yesterday should take care of this.

Thanks,
Satyam

2007-05-17 13:36:54

by Maciej Rutecki

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Pavel Machek pisze:

> What was the rationale? Can we get this one reverted?
>
> Some machines (HP omnibook xe3) have broken trip points -- too high --
> so machine will overheat and trigger hw shutdown before starting
> passive cooling.
>
> That's really broken, and write to trip points is reasonable way to
> 'fix' that. (I'd understand if you only ever let trip points to
> decrease... but otoh root should be able to shoot himself....)
>
> Pavel

Many people need change trippoints, for example I have:

cat /proc/acpi/thermal_zone/TZ0/trip_points | grep critical
critical (S5): 256 C

I _must_ change it to below 105 C, or edit DSDT table (too difficult to
me). I cannot use this kernel, when trip points are read only.

--
Maciej Rutecki
http://www.unixy.pl
Kernel Monkeys
(http://kernel.wikidot.com/)


Attachments:
smime.p7s (3.19 kB)
S/MIME Cryptographic Signature

2007-05-17 19:11:32

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thursday 17 May 2007 09:36, Maciej Rutecki wrote:

> Many people need change trippoints, for example I have:
>
> cat /proc/acpi/thermal_zone/TZ0/trip_points | grep critical
> critical (S5): 256 C
>
> I _must_ change it to below 105 C, or edit DSDT table (too difficult to
> me). I cannot use this kernel, when trip points are read only.

What bad things happen if you leave the critical trip point at 256?
Do you find that you can drive the temperature over 105 and
the system fails to shut down?

-Len

2007-05-17 19:20:15

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thursday 17 May 2007 05:23, Pavel Machek wrote:

> > ACPI: thermal trip points are read-only
>
> What was the rationale? Can we get this one reverted?
>
> Some machines (HP omnibook xe3) have broken trip points -- too high --
> so machine will overheat and trigger hw shutdown before starting
> passive cooling.
>
> That's really broken, and write to trip points is reasonable way to
> 'fix' that. (I'd understand if you only ever let trip points to
> decrease... but otoh root should be able to shoot himself....)

No, writing trip-points is neither a fix, nor it is reasonable.
It is a workaround at best, and it is a dangerous and mis-leading hack.

The OS has no capability to actually change the ACPI trip points
that are used by the BIOS. Changing the OS copy of them
to make the user think that trip events will actually
happen when the temperature crosses the OS copy is crazy.

If there are systems with broken thermals and the
ACPI thermal control needs and over-ride to turn
on the fan, then that is fine -- but using
fake trip-points and giving the user the impression
that they are real is not viable.

-Len

2007-05-17 20:05:30

by Michal Piotrowski

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

Hi Christoph,

Christoph Hellwig napisał(a):
> On Thu, May 17, 2007 at 12:06:00PM +1000, David Chinner wrote:
>>> static inline int put_page_testzero(struct page *page)
>>> {
>>> VM_BUG_ON(atomic_read(&page->_count) == 0);
>>> return atomic_dec_and_test(&page->_count);
>>> }
>> I haven't seen that one. I expect that it will be the noaddr buffer allocation
>> changes that have triggered this...
>
> Yes. xfs_buf_get_noaddr calls xfs_buf_free to free a buffer when
> something fails. But this is wrong - we want to call xfs_buf_deallocate
> before we setup the page list, and if a page allocation fails we want to
> do out own freeing of just the pages we allocated and call
> _xfs_buf_free_pages. Currently we do our own freeing _and_ call
> xfs_buf_free which leads to this double free.
>
>
> Signed-off-by: Christoph Hellwig <[email protected]>
>
>
> Index: linux-2.6/fs/xfs/linux-2.6/xfs_buf.c
> ===================================================================
> --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 09:34:44.000000000 +0200
> +++ linux-2.6/fs/xfs/linux-2.6/xfs_buf.c 2007-05-17 09:36:53.000000000 +0200
> @@ -792,8 +792,9 @@ xfs_buf_get_noaddr(
> fail_free_mem:
> while (--i >= 0)
> __free_page(bp->b_pages[i]);
> + _xfs_buf_free_pages(bp);
> fail_free_buf:
> - xfs_buf_free(bp);
> + xfs_buf_deallocate(bp);
> fail:
> return NULL;
> }

I applied your patch and I get another oops

[ 261.491499] XFS mounting filesystem loop0
[ 261.501641] Ending clean XFS mount for filesystem: loop0
[ 261.507698] SELinux: initialized (dev loop0, type xfs), uses xattr
[ 261.567441] XFS mounting filesystem loop0
[ 261.573931] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
[ 261.582935] xfs_buf_get_noaddr: failed to map pages
[ 261.592478] Ending clean XFS mount for filesystem: loop0
[ 261.618543] SELinux: initialized (dev loop0, type xfs), uses xattr
[ 261.691563] XFS mounting filesystem loop0
[ 261.698927] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
^^^^^^^^^^^^^^^^^^^^
interesting

[ 261.724829] xfs_buf_get_noaddr: failed to map pages
[ 261.734049] Ending clean XFS mount for filesystem: loop0
[ 261.741069] SELinux: initialized (dev loop0, type xfs), uses xattr
[ 261.978728] XFS mounting filesystem loop0
[ 262.205863] xfs_buf_get_noaddr: failed to map pages
[ 262.212523] Ending clean XFS mount for filesystem: loop0
[ 262.218084] SELinux: initialized (dev loop0, type xfs), uses xattr
[..]
[ 265.842566] xfs_buf_get_noaddr: failed to map pages
[ 265.848267] xfs_buf_get_noaddr: failed to map pages
[ 265.856480] Ending clean XFS mount for filesystem: loop0
[ 265.862260] SELinux: initialized (dev loop0, type xfs), uses xattr
[ 265.921288] XFS mounting filesystem loop0
[ 265.927123] xfs_buf_get_noaddr: failed to map pages
[ 265.932575] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 265.942886] printing eip:
[ 265.945665] fdc8e82a
[ 265.948818] *pde = 00000000
[ 265.952378] Oops: 0002 [#1]
[ 265.955241] PREEMPT SMP
[ 265.957868] Modules linked in: xfs loop ipt_MASQUERADE iptable_nat nf_nat autofs4 af_packet nf_conntrack_netbios_ns ipt_REJECT nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 binfmt_misc thermal processor fan container nvram snd_intel8x0 snd_ac97_codec ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm evdev intel_agp agpgart snd_timer snd soundcore snd_page_alloc i2c_i801 ide_cd cdrom rtc unix
[ 266.007064] CPU: 0
[ 266.007065] EIP: 0060:[<fdc8e82a>] Not tainted VLI
[ 266.007066] EFLAGS: 00010246 (2.6.22-rc1-mm1 #5)
[ 266.019641] EIP is at xfs_buf_cond_lock+0x8/0x1f [xfs]
[ 266.024853] eax: 00000000 ebx: ce3e9100 ecx: 00000000 edx: 00000001
[ 266.031768] esi: ccf8b628 edi: ccf8b5d8 ebp: d04beb20 esp: d04beb20
[ 266.038692] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
[ 266.044615] Process mount (pid: 7206, ti=d04be000 task=cdcb74f0 task.ti=d04be000)
[ 266.052090] Stack: d04beb60 fdc75a12 00000005 fdc99174 00080020 00000000 ccf72c70 c992e5b0
[ 266.060680] ccf8b6f0 00000007 c0875244 00000000 d04beb70 00080020 00000000 c992e5b0
[ 266.069247] d04beb90 fdc75cd1 00080020 00000000 00002580 fdc8ccda c992e5f0 c992e5b0
[ 266.077866] Call Trace:
[ 266.080611] [<fdc75a12>] xlog_alloc_log+0x1b9/0x2cd [xfs]
[ 266.086286] [<fdc75cd1>] xfs_log_mount+0x6b/0xf1 [xfs]
[ 266.091688] [<fdc7ec47>] xfs_mountfs+0x959/0xc4a [xfs]
[ 266.097097] [<fdc714f6>] xfs_ioinit+0x26/0x2c [xfs]
[ 266.102240] [<fdc85692>] xfs_mount+0x2e5/0x358 [xfs]
[ 266.107474] [<fdc95b72>] vfs_mount+0x1a/0x1e [xfs]
[ 266.112563] [<fdc95a2c>] xfs_fs_fill_super+0x76/0x1a2 [xfs]
[ 266.118433] [<c0185987>] get_sb_bdev+0x105/0x143
[ 266.123260] [<fdc94d63>] xfs_fs_get_sb+0x21/0x27 [xfs]
[ 266.128709] [<c0185509>] vfs_kern_mount+0x81/0xf1
[ 266.133589] [<c0199b59>] do_mount+0x716/0x80d
[ 266.138145] [<c0199cd0>] sys_mount+0x80/0xb5
[ 266.142595] [<c01041d0>] syscall_call+0x7/0xb
[ 266.147170] [<b7fe6410>] 0xb7fe6410
[ 266.150822] =======================
[ 266.154445] INFO: lockdep is turned off.
[ 266.158411] Code: be 20 00 00 00 89 f2 29 c2 83 c8 ff 88 d1 d3 e0 29 de 89 f1 d3 e8 5b 5e 5d c3 55 89 e5 90 ff 40 7c 5d c3 55 89 e5 89 c1 31 c0 90 <ff> 09 79 07 8d 01 e8 d7 17 6c c2 83 f8 01 19 c0 f7 d0 83 e0 f0
[ 266.178534] EIP: [<fdc8e82a>] xfs_buf_cond_lock+0x8/0x1f [xfs] SS:ESP 0068:d04beb20
[ 266.347522] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 266.415823] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 266.477997] XFS: Filesystem loop1 has duplicate UUID - can't mount
[ 266.541940] XFS: Filesystem loop1 has duplicate UUID - can't mount

http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-dmesg3
http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.22-rc1-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
Kernel Monkeys
(http://kernel.wikidot.com/start)

2007-05-17 20:09:36

by Maciej Rutecki

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Len Brown pisze:

> What bad things happen if you leave the critical trip point at 256?
> Do you find that you can drive the temperature over 105 and
> the system fails to shut down?
>
> -Len
>
>

It isn't problem in this case (nx6310). But on hp nc nc6220 first trip
point is at 30 *C, so fan is usually on (noise, power consumption).

--
Maciej Rutecki
http://www.unixy.pl
Kernel Monkeys
(http://kernel.wikidot.com/)


Attachments:
smime.p7s (3.19 kB)
S/MIME Cryptographic Signature

2007-05-17 21:52:17

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Hi!

> > > ACPI: thermal trip points are read-only
> >
> > What was the rationale? Can we get this one reverted?
> >
> > Some machines (HP omnibook xe3) have broken trip points -- too high --
> > so machine will overheat and trigger hw shutdown before starting
> > passive cooling.
> >
> > That's really broken, and write to trip points is reasonable way to
> > 'fix' that. (I'd understand if you only ever let trip points to
> > decrease... but otoh root should be able to shoot himself....)
>
> No, writing trip-points is neither a fix, nor it is reasonable.
> It is a workaround at best, and it is a dangerous and mis-leading hack.
>
> The OS has no capability to actually change the ACPI trip points
> that are used by the BIOS. Changing the OS copy of them
> to make the user think that trip events will actually
> happen when the temperature crosses the OS copy is crazy.

Aha... wait. It seemed to work for me when I enabled thermal
polling...

Slowing cpu down / shutdown / turn the fan on is done in the os after
all. Should we just start polling temperatures when user writes custom
trip points?

> If there are systems with broken thermals and the
> ACPI thermal control needs and over-ride to turn
> on the fan, then that is fine -- but using
> fake trip-points and giving the user the impression
> that they are real is not viable.

They become real when we fake _TSP, too, ..?
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-17 21:53:41

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thu 2007-05-17 15:08:39, Len Brown wrote:
> On Thursday 17 May 2007 09:36, Maciej Rutecki wrote:
>
> > Many people need change trippoints, for example I have:
> >
> > cat /proc/acpi/thermal_zone/TZ0/trip_points | grep critical
> > critical (S5): 256 C
> >
> > I _must_ change it to below 105 C, or edit DSDT table (too difficult to
> > me). I cannot use this kernel, when trip points are read only.
>
> What bad things happen if you leave the critical trip point at 256?
> Do you find that you can drive the temperature over 105 and
> the system fails to shut down?

Something similar happened to me on XE3, yes.

(Actual values were different; BIOS specified critical temperature at
cca 95C, but hw killed the power at cca 83C. Setting critical trip
point at 80C made the problem go away.)
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-17 22:38:43

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

> > No, writing trip-points is neither a fix, nor it is reasonable.
> > It is a workaround at best, and it is a dangerous and mis-leading hack.
> >
> > The OS has no capability to actually change the ACPI trip points
> > that are used by the BIOS. Changing the OS copy of them
> > to make the user think that trip events will actually
> > happen when the temperature crosses the OS copy is crazy.
>
> Aha... wait. It seemed to work for me when I enabled thermal
> polling...

That's exactly the point.
If you allow a user to think they over-rode a trip-point
but that trip point never fires unless they enable polling mode,
then they're not going to get what they asked for.

Yes, SuSE enables polling mode by default, but that is just
distro specific "value add" that should eventually be fixed.

> Slowing cpu down / shutdown / turn the fan on is done in the os after
> all. Should we just start polling temperatures when user writes custom
> trip points?

I actually agree with you for passively cooled embedded systems.
Indeed, that is the topic of one of my OLS papers.

However, for an off-the-shelf laptop that the vendor ships
with a specific active and passive cooling model, Linux
is not currently set up to ignore what the vendor provided
and go off on its own. Yes, it could be done, but for
99.99% of cases, I expect it would be a mistake.

> > If there are systems with broken thermals and the
> > ACPI thermal control needs and over-ride to turn
> > on the fan, then that is fine -- but using
> > fake trip-points and giving the user the impression
> > that they are real is not viable.
>
> They become real when we fake _TSP, too, ..?

We are mis-using _TSP today, and over-riding it
is a hack on top of a bug...

_TSP is only supposed to be for the passive cooling
algorithm -- which by definition is polling based.
It is not intended to be used for active cooling at all.
That is what active trip were invented for...

-Len

2007-05-17 22:45:33

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

> Something similar happened to me on XE3, yes.
>
> (Actual values were different; BIOS specified critical temperature at
> cca 95C, but hw killed the power at cca 83C. Setting critical trip
> point at 80C made the problem go away.)

Great, please file a bug and include the acpidump from the XE3
and we'll fix it, rather than supporting a bogus (manual) workaround for it.

Of course if your system is running at 80*C and the hardware shuts
off at 83*C, you may have a broken fan, or one clogged with dust...

-Len

2007-05-18 02:11:43

by David Chinner

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Thu, May 17, 2007 at 10:05:11PM +0200, Michal Piotrowski wrote:
> I applied your patch and I get another oops
>
> [ 261.491499] XFS mounting filesystem loop0
> [ 261.501641] Ending clean XFS mount for filesystem: loop0
> [ 261.507698] SELinux: initialized (dev loop0, type xfs), uses xattr
> [ 261.567441] XFS mounting filesystem loop0
> [ 261.573931] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> [ 261.582935] xfs_buf_get_noaddr: failed to map pages
> [ 261.592478] Ending clean XFS mount for filesystem: loop0
> [ 261.618543] SELinux: initialized (dev loop0, type xfs), uses xattr
> [ 261.691563] XFS mounting filesystem loop0
> [ 261.698927] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> ^^^^^^^^^^^^^^^^^^^^
> interesting

Yeah, looks like a vmalloc leak is occurring. I haven't noticed
it before because:

VmallocTotal: 137427898368 kB
VmallocUsed: 3128272 kB
VmallocChunk: 137424770048 kB

It takes a long time to leak enough vmapped space to run out on ia64...

That tends to imply we have a mapped buffer being leaked somewhere.
Interestingly, I don't see a memory leak so we must be freeing the
memory associated with the buffer, just not unmapping it first. Not
sure how that can happen yet.....

mount xfsVmallocUsed: 177808 kB
unmount xfs
mount xfsVmallocUsed: 178080 kB
unmount xfs
mount xfsVmallocUsed: 178352 kB
unmount xfs
mount xfsVmallocUsed: 178624 kB
unmount xfs
mount xfsVmallocUsed: 178896 kB
unmount xfs
mount xfsVmallocUsed: 179168 kB
unmount xfs
mount xfsVmallocUsed: 179440 kB
unmount xfs
mount xfsVmallocUsed: 179712 kB
unmount xfs
mount xfsVmallocUsed: 179984 kB

Looks like we're leaking 272kB of vmalloc space on each mount/unmount
cycle. I'm trying to track this down now....

> [ 265.856480] Ending clean XFS mount for filesystem: loop0
> [ 265.862260] SELinux: initialized (dev loop0, type xfs), uses xattr
> [ 265.921288] XFS mounting filesystem loop0
> [ 265.927123] xfs_buf_get_noaddr: failed to map pages
> [ 265.932575] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
....
> [ 266.077866] Call Trace:
> [ 266.080611] [<fdc75a12>] xlog_alloc_log+0x1b9/0x2cd [xfs]
> [ 266.086286] [<fdc75cd1>] xfs_log_mount+0x6b/0xf1 [xfs]
> [ 266.091688] [<fdc7ec47>] xfs_mountfs+0x959/0xc4a [xfs]

Groan - ASSERT(0) is the error handling there for debug kernels. If we fail
to allocate an iclogbuf on a non-debug kernel, it will panic like this.

I'll deal with that later....

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group

2007-05-18 08:54:17

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,
I have the same problem, your patch fixed it.
My gcc version is 3.4.6

>2007/5/16, H. Peter Anvin <[email protected]>:
> Andy Whitcroft wrote:
> > Getting this on both x86 and x86_64 boxes, they are the older boxen so
> > likely older compilers:
>
> Please give the gcc version number.
>
> > CC arch/x86_64/boot/memory.o
> > arch/i386/boot/memory.c: In function `detect_memory':
> > arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
> > while reloading `asm'
> >
> > Seems to come from git-netsetup, but that tree isn't pulled into your
> > git version of -mm so I can't be more specific.
>
> Does the following patch work for you?
>
> -hpa
>
>
> diff --git a/arch/i386/boot/memory.c b/arch/i386/boot/memory.c
> index 8a82aa9..d7b250b 100644
> --- a/arch/i386/boot/memory.c
> +++ b/arch/i386/boot/memory.c
> @@ -30,7 +30,7 @@ static int detect_memory_e820(void)
> size = sizeof(struct e820entry);
> id = SMAP;
> asm("int $0x15; setc %0"
> - : "=dm" (err), "+b" (next), "+d" (id), "+c" (size),
> + : "=am" (err), "+b" (next), "+d" (id), "+c" (size),
> "=m" (*desc)
> : "D" (desc), "a" (0xe820));
>

Regards
dave

2007-05-18 10:07:21

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,

After installation the new mm1 kernel, My system can not boot, the rc1
kernel works ok.

The cursor just blinks after appearing "Bios data check successful" message.

what do you think about this?

2007-05-18 16:55:35

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

young dave wrote:
> Hi,
>
> After installation the new mm1 kernel, My system can not boot, the rc1
> kernel works ok.
>
> The cursor just blinks after appearing "Bios data check successful"
> message.
>
> what do you think about this?

"Bios data check successful" is not a message that comes from Linux, nor
from the boot loader.

Since you have left absolutely zero details about your system or
anything else, there isn't much anyone can do about it.

-hpa

2007-05-18 16:59:55

by Mel Gorman

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Fri, 18 May 2007, H. Peter Anvin wrote:

> young dave wrote:
>> Hi,
>>
>> After installation the new mm1 kernel, My system can not boot, the rc1
>> kernel works ok.
>>
>> The cursor just blinks after appearing "Bios data check successful"
>> message.
>>
>> what do you think about this?
>
> "Bios data check successful" is not a message that comes from Linux, nor
> from the boot loader.
>
> Since you have left absolutely zero details about your system or
> anything else, there isn't much anyone can do about it.
>

It sounds vagely similar to the silent failure on elm3b132. I'm still
bisecting this on the side. It's taking an age because the target machine
is so slow and using a faster machine with a different compiler does not
reproduce the problem. I don't think it's git-newsetup that is the problem
though for what that's worth.

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

2007-05-18 17:34:33

by Edward Shishkin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Richard Purdie wrote:

>On Wed, 2007-05-16 at 10:06 -0700, Andrew Morton wrote:
>
>
>>On Wed, 16 May 2007 18:00:43 +0100 Richard Purdie <[email protected]> wrote:
>>
>>
>>
>>>On Wed, 2007-05-16 at 09:50 -0700, Randy Dunlap wrote:
>>>
>>>
>>>>On Tue, 15 May 2007 20:19:14 -0700 Andrew Morton wrote:
>>>>
>>>>
>>>>
>>>>>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>>>>>
>>>>>
>>>>LZO build fails on allyesconfig:
>>>>
>>>>lib/built-in.o: In function `lzo1x_1_compress':
>>>>lib/lzo/minilzo.c:724: multiple definition of `lzo1x_1_compress' fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1307: first defined here
>>>>ld: Warning: size of symbol `lzo1x_1_compress' changed from 1541 in fs/built-in.o to 244 in lib/built-in.o
>>>>lib/built-in.o: In function `lzo1x_decompress': lib/lzo/minilzo.c:885: multiple definition of `lzo1x_decompress'
>>>>fs/built-in.o:fs/reiser4/plugin/compress/minilzo.c:1466: first defined here ld: Warning: size of symbol `lzo1x_decompress' changed from 1047 in fs/built-in.o to 678 in lib/built-in.o
>>>>make: *** [.tmp_vmlinux1] Error 1
>>>>make: Target `all' not remade because of errors.
>>>>
>>>>
>>>Looks like reiser4 contains a copy of minilzo used as some kind of
>>>compression plugin. It can be dropped in favour of the version in
>>>lib/lzo/, they'll be compatible.
>>>
>>>Andrew: Do you want a patch to remove it from reiser4?
>>>
>>>
>>>
>>yes please.
>>
>>
>
>Sent.
>
>I also noticed that reiser4 is using lzo1x_decompress(), not
>lzo1x_decompress_safe(). The unsafe version is open to buffer overflows
>through malicious data since it performs no validation of where it
>writes output to.
>

Hm, if you accept unknown drive, then yes, it is open..

> I'm not sure whether thats acceptable in filesystem
>code, I'd suspect not?
>
>

Ok, we will consider safe decompression,
moreover, as I remember, it doesn't lead to
sensible performance drop..

Thanks for this point,
Edward.

>Fixing it is a case of s/lzo1x_decompress(/lzo1x_decompress_safe(/ in
>fs/reiser4/plugin/compress/compress.c...
>
>Richard
>
>
>-
>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/
>
>
>
>
>
>

2007-05-19 19:56:59

by Thomas Renninger

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thu, 2007-05-17 at 15:17 -0400, Len Brown wrote:
> On Thursday 17 May 2007 05:23, Pavel Machek wrote:
>
> > > ACPI: thermal trip points are read-only
> >
> > What was the rationale? Can we get this one reverted?
> >
> > Some machines (HP omnibook xe3) have broken trip points -- too high --
> > so machine will overheat and trigger hw shutdown before starting
> > passive cooling.
> >
> > That's really broken, and write to trip points is reasonable way to
> > 'fix' that. (I'd understand if you only ever let trip points to
> > decrease... but otoh root should be able to shoot himself....)
>
> No, writing trip-points is neither a fix, nor it is reasonable.
> It is a workaround at best, and it is a dangerous and mis-leading hack.
Yes it is a workaround for critical ACPI bugs like that or similar:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/22336

It's also convenient to e.g. lower passive trip point to avoid fan
noise.

Some people are used to it, I already wanted to write a little userspace
prog to use them as it is really easy to fake cooling_mode (trip points
are modified by BIOS) and eliminate fan noise and other things by e.g.
reducing passsive or whatever trip point.

This is at least a major sysfs interface change, has this been discussed
somewhere before or declared deprecated?

It's there for a long time, why is this "a dangerous and mis-leading
hack." now?

I'd suggest to revert this and I can come with something like "only
allow lower values
than BIOS provides" patch if the current implementation is considered
dangerous.

Thomas

> The OS has no capability to actually change the ACPI trip points
> that are used by the BIOS. Changing the OS copy of them
> to make the user think that trip events will actually
> happen when the temperature crosses the OS copy is crazy.
>
> If there are systems with broken thermals and the
> ACPI thermal control needs and over-ride to turn
> on the fan, then that is fine -- but using
> fake trip-points and giving the user the impression
> that they are real is not viable.


2007-05-20 10:13:13

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hello,

I tried it on iMac G3. I got a bunch of warnings
and finally it failed to build.

WARNING: "fee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol
WARNING: "ee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_string_start (offset 0x8)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_string_end (offset 0xc)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_entry (offset 0x10)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom (offset 0x3c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from of_platform (offset 0x50)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from mem_reserve_cnt (offset 0x58)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from mem_reserve_map (offset 0x60)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from alloc_bottom (offset 0x64)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from ram_top (offset 0x68)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from alloc_top (offset 0x70)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_scratch (offset 0x8c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_header_start (offset 0xbc)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_struct_start (offset 0xc4)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_struct_end (offset 0xcc)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from of_stdout_device (offset 0x11c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_initrd_start (offset 0x14c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_initrd_end (offset 0x150)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_cmd_line (offset 0x15c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from regbuf (offset 0x17c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from rmo_top (offset 0x184)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from alloc_top_high (offset 0x18c)
WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from disp_BAT (offset 0x25c)
WARNING: "primary_pteg_full" [arch/powerpc/mm/built-in] is COMMON symbol
WARNING: "next_slot" [arch/powerpc/mm/built-in] is COMMON symbol
WARNING: "htab_hash_searches" [arch/powerpc/mm/built-in] is COMMON symbol
WARNING: arch/powerpc/mm/built-in.o - Section mismatch: reference to .init.text:early_get_page from .text between 'pte_alloc_one_kernel' (at offset 0x14c4) and 'v_mapped_by_bats'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:mv643xx_eth_pd_devs from .text between 'mv643xx_eth_add_pds' (at offset 0xd8fe) and 'chrp_pci_fixup_winbond_ata'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:mv643xx_eth_pd_devs from .text between 'mv643xx_eth_add_pds' (at offset 0xd902) and 'chrp_pci_fixup_winbond_ata'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:.got2 from (offset 0x0)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:.got2 from bootx_dt_strend (offset 0x4)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:.got2 from bootx_node_chosen (offset 0x30)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:.got2 from bootx_info (offset 0x34)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.data:.got2 from bootx_disp_path (offset 0x40)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_probe from .machine.desc between 'mach_powermac' (at offset 0x4) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_setup_arch from .machine.desc between 'mach_powermac' (at offset 0x8) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_init_early from .machine.desc between 'mach_powermac' (at offset 0xc) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_pic_init from .machine.desc between 'mach_powermac' (at offset 0x18) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_time_init from .machine.desc between 'mach_powermac' (at offset 0x44) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_calibrate_decr from .machine.desc between 'mach_powermac' (at offset 0x5c) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:pmac_pcibios_after_init from .machine.desc between 'mach_powermac' (at offset 0xc4) and 'mach_chrp'
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:chrp_probe from .machine.desc after 'mach_chrp' (at offset 0xd0)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:chrp_setup_arch from .machine.desc after 'mach_chrp' (at offset 0xd4)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:chrp_init_IRQ from .machine.desc after 'mach_chrp' (at offset 0xe4)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:chrp_time_init from .machine.desc after 'mach_chrp' (at offset 0x110)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:chrp_init2 from .machine.desc after 'mach_chrp' (at offset 0x170)
WARNING: drivers/built-in.o - Section mismatch: reference to .init.data:chipsfb_fix from .text between 'chipsfb_pci_init' (at offset 0x54402) and 'chipsfb_set_par'
WARNING: drivers/built-in.o - Section mismatch: reference to .init.data:chipsfb_fix from .text between 'chipsfb_pci_init' (at offset 0x5440a) and 'chipsfb_set_par'
WARNING: drivers/built-in.o - Section mismatch: reference to .init.data:chipsfb_var from .text between 'chipsfb_pci_init' (at offset 0x5441a) and 'chipsfb_set_par'
WARNING: drivers/built-in.o - Section mismatch: reference to .init.data:chipsfb_var from .text between 'chipsfb_pci_init' (at offset 0x54422) and 'chipsfb_set_par'

[snip]

BOOTCC arch/powerpc/boot/treeboot-ebony.o
BOOTCC arch/powerpc/boot/prpmc2800.o
BOOTCC arch/powerpc/boot/empty.o
HOSTCC arch/powerpc/boot/addnote
HOSTCC arch/powerpc/boot/hack-coff
HOSTCC arch/powerpc/boot/mktree
WRAP arch/powerpc/boot/zImage.chrp
WRAP arch/powerpc/boot/zImage.pmac
WRAP arch/powerpc/boot/zImage.coff
ld: arch/powerpc/boot/coff.o: No such file: Nie ma takiego pliku ani katalogu
nm: 'arch/powerpc/boot/zImage.coff': No such file
objdump: 'arch/powerpc/boot/zImage.coff': No such file
WRAP arch/powerpc/boot/zImage.miboot
Building modules, stage 2.
MODPOST 779 modules
ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!
make[1]: *** [__modpost] Blad 1
make: *** [modules] Blad 2

The bug causing the above error message is also present in 2.6.22-rc2 (verified).
PS. The config (attached) is from debian 2.6.8 powerpc + make oldconfig.

Regards,

Mariusz

processor : 0
cpu : 740/750
temperature : 47-49 C (uncalibrated)
clock : 400MHz
revision : 2.2 (pvr 0008 0202)
bogomips : 796.67
machine : PowerMac2,1
motherboard : PowerMac2,1 MacRISC2 MacRISC Power Macintosh
detected as : 66 (iMac FireWire)
pmac flags : 00000005
L2 cache : 512K unified
memory : 256MB
pmac-generation : NewWorld

Gnu C 4.1.2
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.3-pre2
e2fsprogs 1.40-WIP
Linux C Library 2.3.6
Dynamic linker (ldd) 2.3.6
Procps 3.2.7
Net-tools 1.60
Console-tools 0.2.3
Sh-utils 5.97
Modules Loaded ipv6 af_packet joydev tsdev evdev eth1394 tulip crc32 ohci1394 ieee1394
uninorth_agp agpgart dm_snapshot dm_mirror dm_mod snd_powermac snd_pcm_oss snd_pcm snd_page_alloc
snd_mixer_oss snd_seq_oss snd_seq_device snd_seq_midi_event snd_seq snd_timer snd soundcore ide_cd
cdrom ext3 jbd mbcache usbhid uhci_hcd ohci_hcd usbcore ide_disk unix


Attachments:
(No filename) (8.88 kB)
config-ppc-2.6.22-rc1-mm1 (55.42 kB)
Download all attachments

2007-05-20 10:20:43

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

On Sun, May 20, 2007 at 12:12:50PM +0200, Mariusz Kozlowski wrote:
> Hello,
>
> I tried it on iMac G3. I got a bunch of warnings
> and finally it failed to build.
>
> WARNING: "fee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol
> WARNING: "ee_restarts" [arch/powerpc/kernel/built-in] is COMMON symbol
> WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from dt_string_start (offset 0x8)
....

Most - but not all of these warnings should be gone when
Linus pulls kbuild-fix.git.
When -rc3 is ready can you then please post the result of a build.
Then I can take a look at the remaining section mismatch warnings.

Sam

2007-05-20 15:36:01

by Kumar Gala

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1


On May 20, 2007, at 5:21 AM, Sam Ravnborg wrote:

> On Sun, May 20, 2007 at 12:12:50PM +0200, Mariusz Kozlowski wrote:
>> Hello,
>>
>> I tried it on iMac G3. I got a bunch of warnings
>> and finally it failed to build.
>>
>> WARNING: "fee_restarts" [arch/powerpc/kernel/built-in] is COMMON
>> symbol
>> WARNING: "ee_restarts" [arch/powerpc/kernel/built-in] is COMMON
>> symbol
>> WARNING: arch/powerpc/kernel/built-in.o - Section mismatch:
>> reference to .init.data:.got2 from dt_string_start (offset 0x8)
> ....
>
> Most - but not all of these warnings should be gone when
> Linus pulls kbuild-fix.git.
> When -rc3 is ready can you then please post the result of a build.
> Then I can take a look at the remaining section mismatch warnings.

Also, I've got fixes for the COMMON symbol warnings.

- k

2007-05-21 00:53:59

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,
My cpu is Intel(R) Pentium(R) D CPU 2.80GHz, below are the lspci
output and kernel

-------lspci-----------
00:00.0 Host bridge: Intel Corporation 945G/GZ/P/PL Express Memory
Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 945G/GZ/P/PL Express PCI Express
Root Port (rev 02)
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: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 82801GB/GR (ICH7 Family) LPC
Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE
Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family)
Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc RV380 [Radeon
X600 (PCIE)]
01:00.1 Display controller: ATI Technologies Inc RV380 [Radeon X600]
03:08.0 Ethernet controller: Intel Corporation 82801G (ICH7 Family)
LAN Controller (rev 01)

------------config-------------

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc1-mm1
# Fri May 18 15:55:20 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=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"

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

#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
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_TIMERFD=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_SMAPS=y
CONFIG_PROC_CLEAR_REFS=y
CONFIG_PROC_PAGEMAP=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_BLOCK=y
CONFIG_LBD=y
# CONFIG_BLK_DEV_IO_TRACE is not set
CONFIG_LSF=y

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

#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_PARAVIRT is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MCORE2 is not set
CONFIG_MPENTIUM4=y
# 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=y
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_CMPXCHG64=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_MODEL=4
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=m
CONFIG_VM86=y
CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
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_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_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_NR_QUICK=1
CONFIG_HIGHPTE=y
CONFIG_MATH_EMULATION=y
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_COMPAT_VDSO=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set
# CONFIG_SOFTWARE_SUSPEND is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
CONFIG_ACPI_PROCFS=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_THERMAL=m
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_TOSHIBA=m
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=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=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 is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
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_ACPI=y
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 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=m
CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=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 is not set
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
CONFIG_SCx200=m
CONFIG_SCx200HR_TIMER=m
CONFIG_K8_NB=y
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
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_I82365=m
CONFIG_TCIC=m
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=m
# 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=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# 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_MULTIPATH_CACHED is not set
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=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# 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=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 is not set
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 is not set
# CONFIG_NF_CONNTRACK is not set
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=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_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 is not set
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set

#
# IP: Netfilter Configuration
#
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_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_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
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 is not set
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 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=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_LTPC=m
CONFIG_COPS=m
CONFIG_COPS_DAYNA=y
CONFIG_COPS_TANGENT=y
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=m

#
# 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_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=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=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_ESTIMATOR=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
CONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_DEBUG is not set
# CONFIG_RXKAD is not set
CONFIG_FIB_RULES=y

#
# Wireless
#
# CONFIG_CFG80211 is not set
CONFIG_WIRELESS_EXT=y
# CONFIG_MAC80211 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

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=m
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
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

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
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 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
# CONFIG_MTD_SC520CDP is not set
# CONFIG_MTD_NETSC520 is not set
# CONFIG_MTD_TS5500 is not set
# CONFIG_MTD_SCx200_DOCFLASH is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=m
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_CS553X is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
CONFIG_MTD_ONENAND=m
# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
# CONFIG_MTD_ONENAND_OTP is not set

#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_XD=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=y
CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_SX8=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_STRANGE_DEV=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_BLINK is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECS=m
# CONFIG_BLK_DEV_DELKIN is not set
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=y
# 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_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_AEC62XX=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
CONFIG_BLK_DEV_CY82C693=y
CONFIG_BLK_DEV_CS5520=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_CS5535=y
CONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_JMICRON is not set
CONFIG_BLK_DEV_SC1200=y
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
CONFIG_BLK_DEV_IT821X=y
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
CONFIG_PDC202XX_BURST=y
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
CONFIG_BLK_DEV_SLC90E66=y
CONFIG_BLK_DEV_TRM290=m
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
CONFIG_IDE_CHIPSETS=y

#
# Note: most of these also require special kernel boot parameters
#
CONFIG_BLK_DEV_4DRIVES=y
CONFIG_BLK_DEV_ALI14XX=m
CONFIG_BLK_DEV_DTC2278=m
CONFIG_BLK_DEV_HT6560B=m
CONFIG_BLK_DEV_QD65XX=m
CONFIG_BLK_DEV_UMC8672=m
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=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=y
# CONFIG_CHR_DEV_ST is not set
# 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=m

#
# 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=y
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
CONFIG_SCSI_EATA=y
# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
CONFIG_SCSI_EATA_MAX_TAGS=16
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_ESP_CORE is not set
# CONFIG_SCSI_SRP is not set
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
# CONFIG_PCMCIA_AHA152X is not set
# CONFIG_PCMCIA_FDOMAIN is not set
# CONFIG_PCMCIA_NINJA_SCSI is not set
# CONFIG_PCMCIA_QLOGIC is not set
# CONFIG_PCMCIA_SYM53C500 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=y
CONFIG_SATA_NV=y
# 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=y
CONFIG_SATA_SIL24=y
CONFIG_SATA_SIS=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y
# CONFIG_SATA_INIC162X is not set
CONFIG_PATA_ALI=y
CONFIG_PATA_AMD=y
CONFIG_PATA_ARTOP=y
CONFIG_PATA_ATIIXP=y
# 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=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_LEGACY is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
CONFIG_PATA_MPIIX=y
CONFIG_PATA_OLDPIIX=y
# 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_QDI 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=y
CONFIG_PATA_VIA=y
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_WINBOND_VLB is not set
# CONFIG_CD_NO_IDESCSI is not set
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set
CONFIG_IEEE1394_SUPPORT=y
# CONFIG_FIREWIRE is not set
CONFIG_IEEE1394=y

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#
CONFIG_IEEE1394_PCILYNX=y
CONFIG_IEEE1394_OHCI1394=y

#
# Protocols
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=y
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_I2O=y
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=y
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
CONFIG_I2O_BUS=y
CONFIG_I2O_BLOCK=y
CONFIG_I2O_SCSI=y
CONFIG_I2O_PROC=y
CONFIG_MACINTOSH_DRIVERS=y
# CONFIG_MAC_EMUMOUSEBTN is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL1=m
CONFIG_EL2=m
CONFIG_ELPLUS=m
CONFIG_EL16=m
CONFIG_EL3=m
CONFIG_3C515=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_LANCE=m
CONFIG_NET_VENDOR_SMC=y
CONFIG_WD80x3=m
CONFIG_ULTRA=m
CONFIG_SMC9194=m
CONFIG_NET_VENDOR_RACAL=y
CONFIG_NI5010=m
CONFIG_NI52=m
CONFIG_NI65=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA_XIRTULIP=m
CONFIG_AT1700=m
CONFIG_DEPCA=m
CONFIG_HP100=m
CONFIG_NET_ISA=y
CONFIG_E2100=m
CONFIG_EWRK3=m
CONFIG_EEXPRESS=m
CONFIG_EEXPRESS_PRO=m
CONFIG_HPLAN_PLUS=m
CONFIG_HPLAN=m
CONFIG_LP486E=m
CONFIG_ETH16I=m
CONFIG_NE2000=m
CONFIG_ZNET=m
CONFIG_SEEQ8005=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_AC3200=m
CONFIG_APRICOT=m
CONFIG_B44=m
CONFIG_B44_PCI=y
CONFIG_FORCEDETH=m
# CONFIG_FORCEDETH_NAPI is not set
CONFIG_CS89x0=m
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=y
# 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=y
# CONFIG_VIA_RHINE_NAPI is not set
# CONFIG_SC92031 is not set
CONFIG_NETDEV_1000=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
# CONFIG_R8169_NAPI is not set
CONFIG_R8169_VLAN=y
CONFIG_SIS190=m
CONFIG_SKGE=m
CONFIG_SKY2=m
CONFIG_SK98LIN=m
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_RTL818X 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 is not set
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
# CONFIG_USB_NET_MCS7830 is not set
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 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=m
# CONFIG_NET_PCMCIA is not set
CONFIG_WAN=y
CONFIG_HOSTESS_SV11=m
CONFIG_COSA=m
CONFIG_LANMEDIA=m
CONFIG_SEALEVEL_4021=m
CONFIG_HDLC=m
CONFIG_HDLC_RAW=m
CONFIG_HDLC_RAW_ETH=m
CONFIG_HDLC_CISCO=m
CONFIG_HDLC_FR=m
CONFIG_HDLC_PPP=m

#
# X.25/LAPB support is disabled
#
CONFIG_PCI200SYN=m
CONFIG_WANXL=m
CONFIG_PC300=m
# CONFIG_PC300_MLPPP is not set

#
# Cyclades-PC300 MLPPP support is disabled.
#

#
# Refer to the file README.mlppp, provided by PC300 package.
#
# CONFIG_PC300TOO is not set
CONFIG_N2=m
CONFIG_C101=m
CONFIG_FARSYNC=m
CONFIG_DSCC4=m
# CONFIG_DSCC4_PCISYNC is not set
# CONFIG_DSCC4_PCI_RST is not set
CONFIG_DLCI=m
CONFIG_DLCI_MAX=8
CONFIG_SDLA=m
CONFIG_WAN_ROUTER_DRIVERS=m
CONFIG_CYCLADES_SYNC=m
CONFIG_CYCLOMX_X25=y
CONFIG_SBNI=m
# CONFIG_SBNI_MULTILINE is not set
CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not set
# CONFIG_ATM_TCP is not set
# CONFIG_ATM_LANAI is not set
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_FIRESTREAM is not set
# CONFIG_ATM_ZATM is not set
# CONFIG_ATM_NICSTAR is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_AMBASSADOR is not set
# CONFIG_ATM_HORIZON is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E_MAYBE is not set
# CONFIG_ATM_HE is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI 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_PPPOATM 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_NET_FC=y
CONFIG_SHAPER=m
CONFIG_NETCONSOLE=m
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=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=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=m
# CONFIG_MOUSE_APPLETOUCH is not set
CONFIG_MOUSE_INPORT=m
CONFIG_MOUSE_ATIXL=y
CONFIG_MOUSE_LOGIBM=m
CONFIG_MOUSE_PC110PAD=m
CONFIG_MOUSE_VSXXXAA=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_JOYDUMP=m
# CONFIG_JOYSTICK_XPAD is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_MK712=m
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
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
# CONFIG_INPUT_POLLDEV is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=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_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_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=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_FOURPORT=m
CONFIG_SERIAL_8250_ACCENT=m
CONFIG_SERIAL_8250_BOCA=m
# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
CONFIG_SERIAL_8250_HUB6=m
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
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_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# 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 is not set
CONFIG_SC1200_WDT=m
CONFIG_SCx200_WDT=m
# CONFIG_PC87413_WDT is not set
CONFIG_60XX_WDT=m
CONFIG_SBC8360_WDT=m
CONFIG_CPU5_WDT=m
# CONFIG_SMSC37B787_WDT is not set
CONFIG_W83627HF_WDT=m
# CONFIG_W83697HF_WDT is not set
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
CONFIG_SBC_EPX_C3_WATCHDOG=m

#
# ISA-based Watchdog Cards
#
CONFIG_PCWATCHDOG=m
CONFIG_MIXCOMWD=m
CONFIG_WDT=m
# CONFIG_WDT_501 is not set

#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m
CONFIG_WDT_501_PCI=y

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y
CONFIG_HW_RANDOM_AMD=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
CONFIG_NVRAM=m
CONFIG_RTC=y
CONFIG_DTLK=m
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
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 is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_AGP_VIA=m
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=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

#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
# CONFIG_IPWIRELESS_CS is not set
# CONFIG_MWAVE is not set
# CONFIG_SCx200_GPIO is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_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=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
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_ELEKTOR=m
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_PARPORT_LIGHT=m
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
# CONFIG_I2C_SIMTEC is not set
CONFIG_SCx200_ACB=m
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_STUB=m
# CONFIG_I2C_TINY_USB is not set
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_VOODOO3=m
CONFIG_I2C_PCA_ISA=m

#
# 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 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set

#
# Sonics Silicon Backplane
#
CONFIG_SSB=m
CONFIG_SSB_PCIHOST=y
# CONFIG_SSB_PCMCIAHOST is not set
# CONFIG_SSB_SILENT is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE=y

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# 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_TDA9840=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_TEA6415C=m
CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_SAA7110=m
CONFIG_VIDEO_SAA7111=m
CONFIG_VIDEO_SAA7114=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
CONFIG_VIDEO_VPX3220=m
CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
CONFIG_VIDEO_VIVI=m
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_BT848_DVB=y
CONFIG_VIDEO_SAA6588=m
CONFIG_VIDEO_PMS=m
CONFIG_VIDEO_CPIA=m
CONFIG_VIDEO_CPIA_USB=m
CONFIG_VIDEO_CPIA2=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_TUNER_3036=m
# CONFIG_TUNER_TEA5761 is not set
CONFIG_VIDEO_STRADIS=m
CONFIG_VIDEO_ZORAN_ZR36060=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_BUZ=m
CONFIG_VIDEO_ZORAN_DC10=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
# CONFIG_VIDEO_ZORAN_AVS6EYES is not set
CONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_SAA7134_ALSA is not set
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
# CONFIG_VIDEO_CX88_ALSA is not set
# CONFIG_VIDEO_CX88_BLACKBIRD is not set
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_CX88_VP3054=m
# 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=m
# CONFIG_VIDEO_USBVISION is not set
CONFIG_VIDEO_USBVIDEO=m
CONFIG_USB_VICAM=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
# CONFIG_USB_QUICKCAM_MESSENGER is not set
CONFIG_USB_ET61X251=m
CONFIG_VIDEO_OVCAMCHIP=m
CONFIG_USB_W9968CF=m
CONFIG_USB_OV511=m
CONFIG_USB_SE401=m
CONFIG_USB_SN9C102=m
CONFIG_USB_STV680=m
CONFIG_USB_ZC0301=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
# CONFIG_USB_ZR364XX is not set
CONFIG_RADIO_ADAPTERS=y
CONFIG_RADIO_CADET=m
CONFIG_RADIO_RTRACK=m
CONFIG_RADIO_RTRACK2=m
CONFIG_RADIO_AZTECH=m
CONFIG_RADIO_GEMTEK=m
CONFIG_RADIO_GEMTEK_PCI=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_MAESTRO=m
CONFIG_RADIO_SF16FMI=m
CONFIG_RADIO_SF16FMR2=m
CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_TYPHOON_PROC_FS=y
CONFIG_RADIO_ZOLTRIX=m
CONFIG_USB_DSBR=m
CONFIG_DVB_CORE=m
# CONFIG_DVB_CORE_ATTACH is not set
CONFIG_DVB_CAPTURE_DRIVERS=y

#
# Supported SAA7146 based PCI Adapters
#
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
# CONFIG_DVB_BUDGET_AV is not set
CONFIG_DVB_BUDGET_PATCH=m

#
# Supported USB Adapters
#
CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_DIBUSB_MB=m
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
CONFIG_DVB_USB_DIBUSB_MC=m
# CONFIG_DVB_USB_DIB0700 is not set
CONFIG_DVB_USB_UMT_010=m
CONFIG_DVB_USB_CXUSB=m
# CONFIG_DVB_USB_M920X is not set
# CONFIG_DVB_USB_GL861 is not set
# CONFIG_DVB_USB_AU6610 is not set
CONFIG_DVB_USB_DIGITV=m
CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_USB_VP702X=m
# CONFIG_DVB_USB_GP8PSK is not set
CONFIG_DVB_USB_NOVA_T_USB2=m
# CONFIG_DVB_USB_TTUSB2 is not set
CONFIG_DVB_USB_DTT200U=m
# CONFIG_DVB_USB_OPERA1 is not set
# CONFIG_DVB_USB_AF9005 is not set
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_DVB_CINERGYT2=m
CONFIG_DVB_CINERGYT2_TUNING=y
CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
# CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE is not set

#
# Supported FlexCopII (B2C2) Adapters
#
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set

#
# Supported BT878 Adapters
#
CONFIG_DVB_BT8XX=m

#
# Supported Pluto2 Adapters
#
CONFIG_DVB_PLUTO2=m

#
# Supported DVB Frontends
#

#
# Customise DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set

#
# DVB-S (satellite) frontends
#
CONFIG_DVB_STV0299=m
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24123=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_MT312=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_S5H1420=m
CONFIG_DVB_TDA10086=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_L64781=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_MT352=m
CONFIG_DVB_ZL10353=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m
# CONFIG_DVB_DIB7000M is not set
# CONFIG_DVB_DIB7000P is not set

#
# DVB-C (cable) frontends
#
CONFIG_DVB_VES1820=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_TDA10023=m
CONFIG_DVB_STV0297=m

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
CONFIG_DVB_NXT200X=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m

#
# Tuners/PLL support
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TDA827X=m
# CONFIG_DVB_TUNER_QT1010 is not set
CONFIG_DVB_TUNER_MT2060=m

#
# Miscellaneous devices
#
CONFIG_DVB_LNBP21=m
CONFIG_DVB_ISL6421=m
# CONFIG_DVB_TUA6100 is not set
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_DAB=y
CONFIG_USB_DABUSB=m

#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_PROGEAR is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
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_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=y
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=m
CONFIG_FB_VESA=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=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
# CONFIG_FB_MATROX_I2C is not set
CONFIG_FB_MATROX_MULTIHEAD=y
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
CONFIG_FB_RADEON_DEBUG=y
# 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_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_VIDEO_SELECT=y
CONFIG_MDA_CONSOLE=m
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
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 is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=m
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=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_OPL4_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_GENERIC_DRIVERS=y
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_ISA_DRIVERS=y
CONFIG_SND_AD1848_LIB=m
CONFIG_SND_CS4231_LIB=m
CONFIG_SND_ADLIB=m
# CONFIG_SND_AD1816A is not set
CONFIG_SND_AD1848=m
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
CONFIG_SND_CMI8330=m
CONFIG_SND_CS4231=m
CONFIG_SND_CS4232=m
CONFIG_SND_CS4236=m
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
CONFIG_SND_ES1688=m
CONFIG_SND_ES18XX=m
CONFIG_SND_GUS_SYNTH=m
CONFIG_SND_GUSCLASSIC=m
CONFIG_SND_GUSEXTREME=m
CONFIG_SND_GUSMAX=m
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
CONFIG_SND_OPL3SA2=m
CONFIG_SND_OPTI92X_AD1848=m
CONFIG_SND_OPTI92X_CS4231=m
CONFIG_SND_OPTI93X=m
CONFIG_SND_MIRO=m
CONFIG_SND_SB8=m
CONFIG_SND_SB16=m
CONFIG_SND_SBAWE=m
CONFIG_SND_SB16_CSP=y
CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y
CONFIG_SND_SGALAXY=m
CONFIG_SND_SSCAPE=m
CONFIG_SND_WAVEFRONT=m
CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y
CONFIG_SND_PCI_DRIVERS=y
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_CS5535AUDIO=m
# 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=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=y
CONFIG_SND_FM801_TEA575X=m
CONFIG_SND_HDA_INTEL=m
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 is not set
CONFIG_SND_USB_DRIVERS=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
# CONFIG_SND_USB_CAIAQ is not set
CONFIG_SND_PCMCIA_DRIVERS=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
CONFIG_SND_SOC_DRIVERS=y
# CONFIG_SND_SOC is not set

#
# SoC Audio support for SuperH
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m

#
# HID Devices
#
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=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_THRUSTMASTER_FF=y
# CONFIG_ZEROPLUS_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_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_ISP116X_HCD=y
CONFIG_USB_OHCI_HCD=y
# 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=y
CONFIG_USB_SL811_CS=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=y
# 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 is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
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=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=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 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
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 is not set
CONFIG_USB_EZUSB=y

#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
# CONFIG_USB_ADUTUX is not set
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
# CONFIG_USB_BERRY_CHARGE is not set
CONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
CONFIG_USB_CYTHERM=m
# CONFIG_USB_PHIDGET is not set
CONFIG_USB_IDMOUSE=m
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
CONFIG_USB_TEST=m
# CONFIG_USB_GOTEMP is not set

#
# USB DSL modem support
#
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
CONFIG_MMC=m
CONFIG_MMC_DEBUG=y
# CONFIG_MMC_UNSAFE_RESUME is not set

#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y

#
# 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_IDE_DISK=y
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set

#
# Real Time Clock
#
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=m

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
CONFIG_RTC_DRV_DS1672=m
# CONFIG_RTC_DRV_MAX6900 is not set
CONFIG_RTC_DRV_RS5C372=m
# CONFIG_RTC_DRV_ISL1208 is not set
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF8563=m
# CONFIG_RTC_DRV_PCF8583 is not set

#
# SPI RTC drivers
#

#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
CONFIG_RTC_DRV_M48T86=m
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#
# CONFIG_ASYNC_TX_DMA is not set

#
# DMA Devices
#
CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set

#
# Userspace I/O
#
# CONFIG_UIO is not set

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR 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=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
CONFIG_REISERFS_FS=y
# 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 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=m
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_ROMFS_ON_MTD=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=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

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
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 is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m

#
# Layered filesystems
#
# CONFIG_ECRYPT_FS is not set
# CONFIG_UNION_FS is not set

#
# Miscellaneous filesystems
#
CONFIG_ADFS_FS=m
# CONFIG_ADFS_FS_RW is not set
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
CONFIG_HPFS_FS=m
CONFIG_QNX4FS_FS=m
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=m
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
# CONFIG_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 is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
CONFIG_CODA_FS=m
# CONFIG_CODA_FS_OLD_API is not set
CONFIG_AFS_FS=m
# CONFIG_AFS_DEBUG is not set
CONFIG_9P_FS=m

#
# 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=y
# CONFIG_MINIX_SUBPARTITION is not set
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
CONFIG_KARMA_PARTITION=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
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=y
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=y

#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
CONFIG_INSTRUMENTATION=y
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_UNUSED_SYMBOLS=y
# 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_EARLY_PRINTK=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_INTEGRITY is not set
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_CAPABILITIES=m
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_SECURITY_ROOTPLUG=m
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 is not set
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_586 is not set
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
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_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CAMELLIA is not set
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=y
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 is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
# CONFIG_LZO is not set
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_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y


2007/5/18, H. Peter Anvin <[email protected]>:
> young dave wrote:
> > Hi,
> >
> > After installation the new mm1 kernel, My system can not boot, the rc1
> > kernel works ok.
> >
> > The cursor just blinks after appearing "Bios data check successful"
> > message.
> >
> > what do you think about this?
>
> "Bios data check successful" is not a message that comes from Linux, nor
> from the boot loader.
>
> Since you have left absolutely zero details about your system or
> anything else, there isn't much anyone can do about it.
>
> -hpa
>
>

2007-05-21 03:53:42

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Saturday 19 May 2007 15:56, Thomas Renninger wrote:
> On Thu, 2007-05-17 at 15:17 -0400, Len Brown wrote:
> > On Thursday 17 May 2007 05:23, Pavel Machek wrote:
> >
> > > > ACPI: thermal trip points are read-only
> > >
> > > What was the rationale? Can we get this one reverted?
> > >
> > > Some machines (HP omnibook xe3) have broken trip points -- too high --
> > > so machine will overheat and trigger hw shutdown before starting
> > > passive cooling.
> > >
> > > That's really broken, and write to trip points is reasonable way to
> > > 'fix' that. (I'd understand if you only ever let trip points to
> > > decrease... but otoh root should be able to shoot himself....)
> >
> > No, writing trip-points is neither a fix, nor it is reasonable.
> > It is a workaround at best, and it is a dangerous and mis-leading hack.
> Yes it is a workaround for critical ACPI bugs like that or similar:
> https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/22336

Thanks for pointing that out -- it is a great example
of how powerful mis-information can be.

The fact that the trip-points are writable has obscured,
rather than clarified, the actual causes of the failures.
No less than 4 people in that bug report declared that
cleaning the dust out of their fan fixed the root cause.
A bunch more said that the issues went away when they
stopped using ubuntu's user-space power save daemon.

There are a couple more with broken active fan control --
which also gets obscured rather than clarified by
over-riding trip points.

And finally, there are probably some with clean fans
that are working properly, but are thermally challenged
systems. I'll venture that Windows is NOT modifying or disabling
the critical trip point to work around this issue.
I'll venture that their thermal throttling is working
and ours may not be.

perhaps it was the recently fixed mod_timer() bug in thermal.c,
or perhaps it is one that we don't know about yet...

> It's also convenient to e.g. lower passive trip point to avoid fan
> noise.

nope, the OS can't reliably override the processor passive trip point.
That is what _SCP and cooling_mode are for.

The reason is that the BIOS can send us a trip-point changed event at any time,
the kernel will evaluate _PSV, and wipe out the modified OS version.

if you want to change the state of the fans,
then poke /proc/acpi/fan/ directly.
This will have effect until the next trip point
changes its state.

> Some people are used to it, I already wanted to write a little userspace
> prog to use them as it is really easy to fake cooling_mode (trip points
> are modified by BIOS) and eliminate fan noise and other things by e.g.
> reducing passsive or whatever trip point.

please save this effort for a non-ACPI system.

> This is at least a major sysfs interface change, has this been discussed
> somewhere before or declared deprecated?

it went out on linux-acpi, but I don't recall any discussion about it.

> It's there for a long time, why is this "a dangerous and mis-leading
> hack." now?

It has been dangerous and misleading since the day it went in.
If the user doesn't enable polling, then they are effectively
writing random numbers that have absolutely no effect on
the operation of the system, and hiding the numbers that
do control the operation of the system.

> I'd suggest to revert this and I can come with something like "only
> allow lower values
> than BIOS provides" patch if the current implementation is considered
> dangerous.

That simply will not address the issue.
Indeed, all the entries in the ubuntu bug report are about hitting
the critical temperature and having a critical shutdown when
it isn't wanted. These people want to RAISE the critical shutdown
trip-point. Their cooling problems must be fixed -- raising critical
trip points causes them instead to be ignored.

For folks with the reverse problem -- active cooling where the
fans kick in early than they'd like, they should just turn off
the fans via /proc/acpi/fan and not mess with the trip points at all.
If they make a mistake, they will be forgiven when the system
reaches the next trip point and turns the fan back on.

thanks,
-Len


> > The OS has no capability to actually change the ACPI trip points
> > that are used by the BIOS. Changing the OS copy of them
> > to make the user think that trip events will actually
> > happen when the temperature crosses the OS copy is crazy.
> >
> > If there are systems with broken thermals and the
> > ACPI thermal control needs and over-ride to turn
> > on the fan, then that is fine -- but using
> > fake trip-points and giving the user the impression
> > that they are real is not viable.
>
>

2007-05-21 04:50:02

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

young dave wrote:
> Hi,
> My cpu is Intel(R) Pentium(R) D CPU 2.80GHz, below are the lspci
> output and kernel

Could you please try booting with "vga=ask", and see if you get the
video mode selection menu?

-hpa

2007-05-21 05:00:59

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,

I tried the vga option , and the selection menu appeared, then I
select 0(80x25) and nothing happened.

2007/5/21, H. Peter Anvin <[email protected]>:
> young dave wrote:
> > Hi,
> > My cpu is Intel(R) Pentium(R) D CPU 2.80GHz, below are the lspci
> > output and kernel
>
> Could you please try booting with "vga=ask", and see if you get the
> video mode selection menu?
>
> -hpa
>

2007-05-21 05:03:43

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

young dave wrote:
> Hi,
>
> I tried the vga option , and the selection menu appeared, then I
> select 0(80x25) and nothing happened.
>

OK.

Could you put printf's in the setup code (especially
arch/i386/boot/main.c) to see how far it runs before it dies?

-hpa

2007-05-21 05:39:47

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,
> Could you put printf's in the setup code (especially
> arch/i386/boot/main.c) to see how far it runs before it dies?
>
> -hpa

I add some debug info to main.c, the result is that the kernel stopped
in query_edd();

Then I use kernel argument edd=off, the kernel booted happilly.

I will read the edd.c to see what happened. do you have some suggestion?

2007-05-21 08:41:52

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,

kernel booting and stopped in edd.c:read_sector.

I add debug messages around the two inline assemblly sentence, recompile kernel,
now strange thing happend, the kernel booting directly, but the printf
messages can't be seen because it's too rapid.

can we use printk in boot code?

the change of edd.c:
--- edd.c.bak 2007-05-21 14:38:34.000000000 +0000
+++ edd.c 2007-05-21 15:58:02.000000000 +0000
@@ -47,9 +47,11 @@ static int read_sector(u8 devno, u64 lba
ax = 0x4200; /* Extended Read */
si = (size_t)&dapa;
dx = devno;
+ printf("before first inline\n");
asm("pushfl; stc; int $0x13; setc %%al; popfl"
: "+a" (ax), "+S" (si), "+d" (devno)
: : "ebx", "ecx", "edi");
+ printf("after first inline\n");

if (!(u8)ax)
return 0; /* OK */
@@ -58,9 +60,11 @@ static int read_sector(u8 devno, u64 lba
cx = 0x0001; /* Sector 0-0-1 */
dx = devno;
bx = (size_t)buf;
+ printf("before second inline\n");
asm("pushfl; stc; int $0x13; setc %%al; popfl"
: "+a" (ax), "+c" (cx), "+d" (dx), "+b" (bx)
: : "esi", "edi");
+ printf("after second inline\n");

return -(u8)ax; /* 0 or -1 */
}



Regards
dave

2007-05-21 10:20:54

by David Chinner

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Fri, May 18, 2007 at 12:11:14PM +1000, David Chinner wrote:
> On Thu, May 17, 2007 at 10:05:11PM +0200, Michal Piotrowski wrote:
> > I applied your patch and I get another oops
> >
> > [ 261.491499] XFS mounting filesystem loop0
> > [ 261.501641] Ending clean XFS mount for filesystem: loop0
> > [ 261.507698] SELinux: initialized (dev loop0, type xfs), uses xattr
> > [ 261.567441] XFS mounting filesystem loop0
> > [ 261.573931] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > [ 261.582935] xfs_buf_get_noaddr: failed to map pages
> > [ 261.592478] Ending clean XFS mount for filesystem: loop0
> > [ 261.618543] SELinux: initialized (dev loop0, type xfs), uses xattr
> > [ 261.691563] XFS mounting filesystem loop0
> > [ 261.698927] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > ^^^^^^^^^^^^^^^^^^^^
> > interesting
>
> Yeah, looks like a vmalloc leak is occurring. I haven't noticed
> it before because:
>
> VmallocTotal: 137427898368 kB
> VmallocUsed: 3128272 kB
> VmallocChunk: 137424770048 kB
>
> It takes a long time to leak enough vmapped space to run out on ia64...
>
> That tends to imply we have a mapped buffer being leaked somewhere.
> Interestingly, I don't see a memory leak so we must be freeing the
> memory associated with the buffer, just not unmapping it first. Not
> sure how that can happen yet.....
.....
>
> Looks like we're leaking 272kB of vmalloc space on each mount/unmount
> cycle. I'm trying to track this down now....

I've found what is going on here - kmem_alloc() is decidedly more
forgiving than manually built page arrays and vmap/vunmap. Prior
to this change we wouldn't have even leaked memory....

Christoph - this is an interaction with xfs_buf_associate_memory();
I'm not sure what it is doing is at all safe now that it never gets
passed kmem_alloc()d memory - it works for the log recovery case
because we use it in pairs - once to shorten the buffer and then once
to put it back the way it was.

But that doesn't work for the log buffers (we never return them to their
original state) and the log wrap case looks to work mostly by accident
now (and could posibly lead to double freeing pages)....

It seems that what we really need with the new code is a xfs_buf_clone()
operation followed by trimming the range to what the secondary I/O needs
to span. This would work for the log buffer case as well. Your thoughts?

In the meantime, the following patch appears to fix the leak.

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group

---
fs/xfs/xfs_log.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: 2.6.x-xfs-new/fs/xfs/xfs_log.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/xfs_log.c 2007-05-21 19:51:18.000000000 +1000
+++ 2.6.x-xfs-new/fs/xfs/xfs_log.c 2007-05-21 19:57:30.960084657 +1000
@@ -1457,7 +1457,7 @@ xlog_sync(xlog_t *log,
} else {
iclog->ic_bwritecnt = 1;
}
- XFS_BUF_SET_PTR(bp, (xfs_caddr_t) &(iclog->ic_header), count);
+ XFS_BUF_SET_COUNT(bp, count);
XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */
XFS_BUF_ZEROFLAGS(bp);
XFS_BUF_BUSY(bp);

2007-05-21 10:24:38

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Mon, May 21, 2007 at 08:11:42PM +1000, David Chinner wrote:
> Christoph - this is an interaction with xfs_buf_associate_memory();
> I'm not sure what it is doing is at all safe now that it never gets
> passed kmem_alloc()d memory - it works for the log recovery case
> because we use it in pairs - once to shorten the buffer and then once
> to put it back the way it was.
>
> But that doesn't work for the log buffers (we never return them to their
> original state) and the log wrap case looks to work mostly by accident
> now (and could posibly lead to double freeing pages)....
>
> It seems that what we really need with the new code is a xfs_buf_clone()
> operation followed by trimming the range to what the secondary I/O needs
> to span. This would work for the log buffer case as well. Your thoughts?

xfs_buf_associate_memory is a mess. My original plan was to get rid of
it, but I kept that out to keep that patchset small and easily reviable,
but it seems like that was a mistake. My plan is the following:

- xlog_bread and thus the whole buffer I/O path grows an iooffset
paramater that specifies at which offset into the buffer we start
the actual I/O. That gets rid of all the xfs_buf_associate_memory
memory uses in the log recovery code
- add a buffer clone operation as suggested by you above, and use
the offset in xlog_sync aswell.

until then you patch below looks fine.

2007-05-21 11:31:40

by Thomas Renninger

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Sun, 2007-05-20 at 23:50 -0400, Len Brown wrote:
> On Saturday 19 May 2007 15:56, Thomas Renninger wrote:
> > On Thu, 2007-05-17 at 15:17 -0400, Len Brown wrote:
> > > On Thursday 17 May 2007 05:23, Pavel Machek wrote:
> > >
> > > > > ACPI: thermal trip points are read-only
> > > >
> > > > What was the rationale? Can we get this one reverted?
> > > >
> > > > Some machines (HP omnibook xe3) have broken trip points -- too high --
> > > > so machine will overheat and trigger hw shutdown before starting
> > > > passive cooling.
> > > >
> > > > That's really broken, and write to trip points is reasonable way to
> > > > 'fix' that. (I'd understand if you only ever let trip points to
> > > > decrease... but otoh root should be able to shoot himself....)
> > >
> > > No, writing trip-points is neither a fix, nor it is reasonable.
> > > It is a workaround at best, and it is a dangerous and mis-leading hack.
> > Yes it is a workaround for critical ACPI bugs like that or similar:
> > https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/22336
>
> Thanks for pointing that out -- it is a great example
> of how powerful mis-information can be.
>
> The fact that the trip-points are writable has obscured,
> rather than clarified, the actual causes of the failures.
> No less than 4 people in that bug report declared that
> cleaning the dust out of their fan fixed the root cause.
> A bunch more said that the issues went away when they
> stopped using ubuntu's user-space power save daemon.
>
> There are a couple more with broken active fan control --
> which also gets obscured rather than clarified by
> over-riding trip points.
>
> And finally, there are probably some with clean fans
> that are working properly, but are thermally challenged
> systems. I'll venture that Windows is NOT modifying or disabling
> the critical trip point to work around this issue.
> I'll venture that their thermal throttling is working
> and ours may not be.
>
> perhaps it was the recently fixed mod_timer() bug in thermal.c,
> or perhaps it is one that we don't know about yet...
>
Whatever it was, it's in a final Ubuntu dist and the trip point
interface
could help some people to still be able to use it.

ACPI is very machine specific. 100 machines may work well and QA might
oversee the 100 and first where critical shutdowns or whatever happens.
Such workarounds are really helpful then.

Same for ignore _PPC and thermal polling (the latter is always on in our
distro,
I bet a lot machine would break if disabling it and just ripping out the
ability to set it, is really not a solution).

One big challenge in the ACPI subsystem (kernel or userspace) is to find
out BIOS implemenations that are at the limit of specs or which violate
the
specs and try to workaround them.
We are not in the position of M$ (at least in the desktop/laptop
segment) yet.
BIOS developers won't follow our implementations and IMO we should go
the
other way and provide more workarounds. If nobody needs them, the
better.

> > It's also convenient to e.g. lower passive trip point to avoid fan
> > noise.
>
> nope, the OS can't reliably override the processor passive trip point.
> That is what _SCP and cooling_mode are for.
>
> The reason is that the BIOS can send us a trip-point changed event at any time,
> the kernel will evaluate _PSV, and wipe out the modified OS version.
>
> if you want to change the state of the fans,
> then poke /proc/acpi/fan/ directly.
> This will have effect until the next trip point
> changes its state.

>
> > Some people are used to it, I already wanted to write a little userspace
> > prog to use them as it is really easy to fake cooling_mode (trip points
> > are modified by BIOS) and eliminate fan noise and other things by e.g.
> > reducing passsive or whatever trip point.
>
> please save this effort for a non-ACPI system.
>
> > This is at least a major sysfs interface change, has this been discussed
> > somewhere before or declared deprecated?
>
> it went out on linux-acpi, but I don't recall any discussion about it.
>
> > It's there for a long time, why is this "a dangerous and mis-leading
> > hack." now?
>
> It has been dangerous and misleading since the day it went in.
> If the user doesn't enable polling, then they are effectively
> writing random numbers that have absolutely no effect on
> the operation of the system, and hiding the numbers that
> do control the operation of the system.
>
> > I'd suggest to revert this and I can come with something like "only
> > allow lower values
> > than BIOS provides" patch if the current implementation is considered
> > dangerous.
>
> That simply will not address the issue.
> Indeed, all the entries in the ubuntu bug report are about hitting
> the critical temperature and having a critical shutdown when
> it isn't wanted. These people want to RAISE the critical shutdown
> trip-point. Their cooling problems must be fixed -- raising critical
> trip points causes them instead to be ignored.
>
> For folks with the reverse problem -- active cooling where the
> fans kick in early than they'd like, they should just turn off
> the fans via /proc/acpi/fan and not mess with the trip points at all.
> If they make a mistake, they will be forgiven when the system
> reaches the next trip point and turns the fan back on.

Yes, it's not correct and those trip points might get overridden by BIOS
again on some machines. It still could help and doesn't hurt (Ok, one
should
not increase the critical trip point, but that can be implemented...).

Again, pls go for more workarounds.

The most annoying situation for the developer and the user is after
investing
a lot of time, finding and possibly fixing a bug and then you need to
tell the guy:
- Got it, please wait for the next kernel release coming out in some
weeks/months
- Thanks for the work, but implementing it in the kernel of this ditro
version
is too dangerous. Other machines might break (especially with ACPI
bugs). Better
you wait for the next distro version coming out in half a year.


Thomas

>
> > > The OS has no capability to actually change the ACPI trip points
> > > that are used by the BIOS. Changing the OS copy of them
> > > to make the user think that trip events will actually
> > > happen when the temperature crosses the OS copy is crazy.
> > >
> > > If there are systems with broken thermals and the
> > > ACPI thermal control needs and over-ride to turn
> > > on the fan, then that is fine -- but using
> > > fake trip-points and giving the user the impression
> > > that they are real is not viable.
> >
> >

2007-05-21 12:11:14

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Hi!

> > > No, writing trip-points is neither a fix, nor it is reasonable.
> > > It is a workaround at best, and it is a dangerous and mis-leading hack.
> > Yes it is a workaround for critical ACPI bugs like that or similar:
> > https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/22336
>
> Thanks for pointing that out -- it is a great example
> of how powerful mis-information can be.
>
> The fact that the trip-points are writable has obscured,
> rather than clarified, the actual causes of the failures.
> No less than 4 people in that bug report declared that
> cleaning the dust out of their fan fixed the root cause.
> A bunch more said that the issues went away when they
> stopped using ubuntu's user-space power save daemon.
>
> There are a couple more with broken active fan control --
> which also gets obscured rather than clarified by
> over-riding trip points.
>
> And finally, there are probably some with clean fans
> that are working properly, but are thermally challenged
> systems. I'll venture that Windows is NOT modifying or disabling
> the critical trip point to work around this issue.
> I'll venture that their thermal throttling is working
> and ours may not be.
>
> perhaps it was the recently fixed mod_timer() bug in thermal.c,
> or perhaps it is one that we don't know about yet...
>
> > It's also convenient to e.g. lower passive trip point to avoid fan
> > noise.
>
> nope, the OS can't reliably override the processor passive trip point.
> That is what _SCP and cooling_mode are for.

Yes, it is reliable if you turn on thermal polling.

> The reason is that the BIOS can send us a trip-point changed event at any time,
> the kernel will evaluate _PSV, and wipe out the modified OS version.
>
> if you want to change the state of the fans,
> then poke /proc/acpi/fan/ directly.

Heh, you suggest this? It is even less functional than current
solution -- which works okay as long as you keep thermal polling
working.

> > It's there for a long time, why is this "a dangerous and mis-leading
> > hack." now?
>
> It has been dangerous and misleading since the day it went in.
> If the user doesn't enable polling, then they are effectively
> writing random numbers that have absolutely no effect on
> the operation of the system, and hiding the numbers that
> do control the operation of the system.

You are misstating the situation. With thermal polling, it is pretty
much okay, and it is certainly better than "ride fans manually" hack
you suggested.

> For folks with the reverse problem -- active cooling where the
> fans kick in early than they'd like, they should just turn off
> the fans via /proc/acpi/fan and not mess with the trip points at
> all.

No. Manually turning off fans is even worse hack.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-21 12:11:57

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thu 2007-05-17 18:42:43, Len Brown wrote:
> > Something similar happened to me on XE3, yes.
> >
> > (Actual values were different; BIOS specified critical temperature at
> > cca 95C, but hw killed the power at cca 83C. Setting critical trip
> > point at 80C made the problem go away.)
>
> Great, please file a bug and include the acpidump from the XE3
> and we'll fix it, rather than supporting a bogus (manual) workaround for it.

It is few years since I do not have that XE3 machine.

> Of course if your system is running at 80*C and the hardware shuts
> off at 83*C, you may have a broken fan, or one clogged with dust...

It _did_ have broken fan. It also had broken trip points.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-21 13:29:06

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon, May 21, 2007 at 02:10:48PM +0200, Pavel Machek wrote:

> > nope, the OS can't reliably override the processor passive trip point.
> > That is what _SCP and cooling_mode are for.
>
> Yes, it is reliable if you turn on thermal polling.

As Len says, the system can force a reevaluation of the trip points at
any time which will wipe out the local settings. Either you ignore the
spec and the notifications (potentially risking misbehaving hardware) or
you end up in a perpetual race.

> > if you want to change the state of the fans,
> > then poke /proc/acpi/fan/ directly.
>
> Heh, you suggest this? It is even less functional than current
> solution -- which works okay as long as you keep thermal polling
> working.

If there are problems with the fan behaviour, why don't we fix them?

> > For folks with the reverse problem -- active cooling where the
> > fans kick in early than they'd like, they should just turn off
> > the fans via /proc/acpi/fan and not mess with the trip points at
> > all.
>
> No. Manually turning off fans is even worse hack.

It's significantly more correct.

--
Matthew Garrett | [email protected]

2007-05-21 13:30:09

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Hi!

> > > For folks with the reverse problem -- active cooling where the
> > > fans kick in early than they'd like, they should just turn off
> > > the fans via /proc/acpi/fan and not mess with the trip points at
> > > all.
> >
> > No. Manually turning off fans is even worse hack.
>
> It's significantly more correct.

Significantly more correct? It forces you to do all the thermal
management in userspace!
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-21 13:36:45

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon, May 21, 2007 at 03:29:48PM +0200, Pavel Machek wrote:
> > > No. Manually turning off fans is even worse hack.
> >
> > It's significantly more correct.
>
> Significantly more correct? It forces you to do all the thermal
> management in userspace!

Why's that a problem? Overriding the hardware policy has to be done
somewhere, and doing it in userspace is no more dangerous than
kernelspace.

--
Matthew Garrett | [email protected]

2007-05-21 13:41:08

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon 2007-05-21 14:36:08, Matthew Garrett wrote:
> On Mon, May 21, 2007 at 03:29:48PM +0200, Pavel Machek wrote:
> > > > No. Manually turning off fans is even worse hack.
> > >
> > > It's significantly more correct.
> >
> > Significantly more correct? It forces you to do all the thermal
> > management in userspace!
>
> Why's that a problem?

Duplicating all the kernel logic in userspace, badly?
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-21 13:47:34

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon, May 21, 2007 at 03:40:46PM +0200, Pavel Machek wrote:
> On Mon 2007-05-21 14:36:08, Matthew Garrett wrote:
> > On Mon, May 21, 2007 at 03:29:48PM +0200, Pavel Machek wrote:
> > > Significantly more correct? It forces you to do all the thermal
> > > management in userspace!
> >
> > Why's that a problem?
>
> Duplicating all the kernel logic in userspace, badly?

So don't do it badly. The advantage of doing so is that you can make it
work properly, which you can't by putting it in the kernel.

--
Matthew Garrett | [email protected]

2007-05-21 16:36:11

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

young dave wrote:
> Hi,
>
> kernel booting and stopped in edd.c:read_sector.
>
> I add debug messages around the two inline assemblly sentence, recompile
> kernel,
> now strange thing happend, the kernel booting directly, but the printf
> messages can't be seen because it's too rapid.
>
> can we use printk in boot code?

Well, it's spelt "printf", but same thing. (Since it doesn't take a
logging priority, it seems better to name it printf.)

This implies a miscompile somewhere, *or* that your bios stomps on
registers that gcc expect preserved, and adding printf's disturbs the
register allocation sufficiently.

Could you send me the arch/i386/boot/setup.elf file from the original,
failed, build?

Thanks.

-hpa

2007-05-21 22:42:32

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon 2007-05-21 14:45:53, Matthew Garrett wrote:
> On Mon, May 21, 2007 at 03:40:46PM +0200, Pavel Machek wrote:
> > On Mon 2007-05-21 14:36:08, Matthew Garrett wrote:
> > > On Mon, May 21, 2007 at 03:29:48PM +0200, Pavel Machek wrote:
> > > > Significantly more correct? It forces you to do all the thermal
> > > > management in userspace!
> > >
> > > Why's that a problem?
> >
> > Duplicating all the kernel logic in userspace, badly?
>
> So don't do it badly. The advantage of doing so is that you can make it
> work properly, which you can't by putting it in the kernel.

You want stuff like critical shutdowns to work even if userspace is
dead.

I do not think you can control passive cooling adequately from
userspace, and you can certainly not prevent kernel from slowing
machine down too soon.

Plus, this is actually nasty user-visible change, and a regression
from 2.6.21. I am not sure why we are even debating this; user-kernel
interface changed without warning. Patch should be simply reverted.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-22 00:32:54

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Tue, May 22, 2007 at 12:42:00AM +0200, Pavel Machek wrote:
> On Mon 2007-05-21 14:45:53, Matthew Garrett wrote:
> > So don't do it badly. The advantage of doing so is that you can make it
> > work properly, which you can't by putting it in the kernel.
>
> You want stuff like critical shutdowns to work even if userspace is
> dead.

I don't think anyone suggested putting the critical shutdown control in
userspace. The kernel already handles that fine.

> I do not think you can control passive cooling adequately from
> userspace, and you can certainly not prevent kernel from slowing
> machine down too soon.

Given the choice between something impossible and something difficult,
I'm inclined towards picking the difficult one.

> Plus, this is actually nasty user-visible change, and a regression
> from 2.6.21. I am not sure why we are even debating this; user-kernel
> interface changed without warning. Patch should be simply reverted.

In http://lkml.org/lkml/2007/1/27/93 you were more than happy to break
an interface even though it could be fixed in a (ugly) way that made it
work again. Here, there's no way to fix this properly - the platform
will quite happily do things based on what it believes the trip points
should be, and one of those things may be to alter the trip points.
Imagine the following situation:

1) Platform sets critical shutdown trip point to 85C
2) Userspace sets critical shutdown trip point to 95C
3) Temperature reaches 90C
4) Platform forces reevaluation of trip points
5) Entire invasion fleet is lost

How do you avoid that? Disable the ability for the platform to set trip
points? You're breaking the spec and potentially causing hardware
damage. If you have specific hardware that requires specific spec
breakage, then a better approach would probably be to quirk the kernel
to rectify it. On the other hand, if it works with the Other Leading OS,
we ought to be able to just fix the problem properly.
--
Matthew Garrett | [email protected]

2007-05-22 02:14:31

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,
> This implies a miscompile somewhere, *or* that your bios stomps on
> registers that gcc expect preserved, and adding printf's disturbs the
> register allocation sufficiently.

I think maybe it's caused by gcc optimize, so I add volatile to
read_sector inline assemblly, then kernel can boot successfully.

please check this patch :

diff -ur linux/arch/i386/boot/edd.c linux.new/arch/i386/boot/edd.c
--- linux/arch/i386/boot/edd.c 2007-05-22 10:08:59.000000000 +0000
+++ linux.new/arch/i386/boot/edd.c 2007-05-22 10:06:24.000000000 +0000
@@ -47,7 +47,7 @@
ax = 0x4200; /* Extended Read */
si = (size_t)&dapa;
dx = devno;
- asm ("pushfl; stc; int $0x13; setc %%al; popfl"
+ asm volatile("pushfl; stc; int $0x13; setc %%al; popfl"
: "+a" (ax), "+S" (si), "+d" (devno)
: : "ebx", "ecx", "edi");

@@ -58,7 +58,7 @@
cx = 0x0001; /* Sector 0-0-1 */
dx = devno;
bx = (size_t)buf;
- asm ("pushfl; stc; int $0x13; setc %%al; popfl"
+ asm volatile("pushfl; stc; int $0x13; setc %%al; popfl"
: "+a" (ax), "+c" (cx), "+d" (dx), "+b" (bx)
: : "esi", "edi");

Regards
dave

2007-05-22 09:06:57

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Hi!

> > > So don't do it badly. The advantage of doing so is that you can make it
> > > work properly, which you can't by putting it in the kernel.
> >
> > You want stuff like critical shutdowns to work even if userspace is
> > dead.
>
> I don't think anyone suggested putting the critical shutdown control in
> userspace. The kernel already handles that fine.

No it does not. That is what this thread is about.

(On old xe3, critical trip point set by BIOS is ~95C, but machine dies
by hw safeguard at ~83C. Workaround is to lower critical trip point to
80C or so. Len broke this.)

> Imagine the following situation:
>
> 1) Platform sets critical shutdown trip point to 85C
> 2) Userspace sets critical shutdown trip point to 95C
> 3) Temperature reaches 90C
> 4) Platform forces reevaluation of trip points
> 5) Entire invasion fleet is lost
>
> How do you avoid that? Disable the ability for the platform to set trip
> points? You're breaking the spec and potentially causing hardware

We need to ignore trip point updates from BIOS, and we need to poll
thermals when use overrides trip points. That's expected. Plus I've
yet to see platform actually updating the trip points.

Speaking about hw damage... The broken BIOS on xe3 definitely caused
damage to its harddrive, so... we are preventing hw damage here.

(Plus, Len's patch broke user-kernel in stable series, without warning).
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-22 09:22:00

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Tue, May 22, 2007 at 11:06:36AM +0200, Pavel Machek wrote:

> We need to ignore trip point updates from BIOS, and we need to poll
> thermals when use overrides trip points. That's expected. Plus I've
> yet to see platform actually updating the trip points.

Try any recent HP bios.

--
Matthew Garrett | [email protected]

2007-05-22 09:29:53

by Goulven Guillard

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Le 05/22/2007 11:16 AM, Matthew Garrett a d?clar? :
> On Tue, May 22, 2007 at 11:06:36AM +0200, Pavel Machek wrote:
>
>> We need to ignore trip point updates from BIOS, and we need to poll
>> thermals when use overrides trip points. That's expected. Plus I've
>> yet to see platform actually updating the trip points.
>
> Try any recent HP bios.
>

man cron... ;-)





--
~~
|Oo| La banquise fond !!! Adoptez un pingouin...
/|\/|\
|__| => http://doc.ubuntu-fr.org/
^__^
~~~| |~~~








2007-05-22 10:05:58

by Maciej Rutecki

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

Matthew Garrett pisze:
.
>
> Try any recent HP bios.
>

Yes...

hp nx 6310, bios version:
F.06. cpufreq works, MFCG Bios Error in dmesg (PCI: BIOS Bug: MCFG area
at f8000000 is not E820-reserved)
F.08. like above + cpufreq broken
F.09 Remove this errors, but problem with reboot (too long time - remove
psmouse module doesn't help) - some people reports it (i didn't test it)
F.0B suspend to ram broken, after suspend to disk keyboard doesn't work
F.0D I don't have the heart test it...

--
Maciej Rutecki
http://www.maciek.unixy.pl


Attachments:
smime.p7s (3.19 kB)
S/MIME Cryptographic Signature

2007-05-22 10:45:04

by David Chinner

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Mon, May 21, 2007 at 12:23:21PM +0200, Christoph Hellwig wrote:
> On Mon, May 21, 2007 at 08:11:42PM +1000, David Chinner wrote:
> > Christoph - this is an interaction with xfs_buf_associate_memory();
> > I'm not sure what it is doing is at all safe now that it never gets
> > passed kmem_alloc()d memory - it works for the log recovery case
> > because we use it in pairs - once to shorten the buffer and then once
> > to put it back the way it was.
> >
> > But that doesn't work for the log buffers (we never return them to their
> > original state) and the log wrap case looks to work mostly by accident
> > now (and could posibly lead to double freeing pages)....
> >
> > It seems that what we really need with the new code is a xfs_buf_clone()
> > operation followed by trimming the range to what the secondary I/O needs
> > to span. This would work for the log buffer case as well. Your thoughts?
>
> xfs_buf_associate_memory is a mess. My original plan was to get rid of
> it, but I kept that out to keep that patchset small and easily reviable,
> but it seems like that was a mistake. My plan is the following:
>
> - xlog_bread and thus the whole buffer I/O path grows an iooffset
> paramater that specifies at which offset into the buffer we start
> the actual I/O. That gets rid of all the xfs_buf_associate_memory
> memory uses in the log recovery code

Perhaps a new field in the xfs_buf structure - that way call paths
don't need to grow extra parameters and potentially increase
stack usage. The read path tends to be at the top of the stack
when it gets blown in the writeback path....

> - add a buffer clone operation as suggested by you above, and use
> the offset in xlog_sync aswell.

I don't want to have to introduce a mempool just for one xfs_buf per
filesystem, so this would need to be able to take a xfs_buf (log->l_xbuf)
that it clones to....

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group

2007-05-22 11:43:42

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Tue, May 22, 2007 at 08:44:30PM +1000, David Chinner wrote:
> Perhaps a new field in the xfs_buf structure - that way call paths
> don't need to grow extra parameters and potentially increase
> stack usage. The read path tends to be at the top of the stack
> when it gets blown in the writeback path....

I have some patches to unwind the buffer I/O path, it's a little
to overcomplicated due to historical reasons.

> > the offset in xlog_sync aswell.
>
> I don't want to have to introduce a mempool just for one xfs_buf per
> filesystem, so this would need to be able to take a xfs_buf (log->l_xbuf)
> that it clones to....

Yes. Note that we currently do a non-mempooled allocated for the page
array, which this would cure aswell.

2007-05-22 14:45:34

by Michal Piotrowski

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

Hi David,

On 21/05/07, David Chinner <[email protected]> wrote:
> On Fri, May 18, 2007 at 12:11:14PM +1000, David Chinner wrote:
> > On Thu, May 17, 2007 at 10:05:11PM +0200, Michal Piotrowski wrote:
> > > I applied your patch and I get another oops
> > >
> > > [ 261.491499] XFS mounting filesystem loop0
> > > [ 261.501641] Ending clean XFS mount for filesystem: loop0
> > > [ 261.507698] SELinux: initialized (dev loop0, type xfs), uses xattr
> > > [ 261.567441] XFS mounting filesystem loop0
> > > [ 261.573931] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > > [ 261.582935] xfs_buf_get_noaddr: failed to map pages
> > > [ 261.592478] Ending clean XFS mount for filesystem: loop0
> > > [ 261.618543] SELinux: initialized (dev loop0, type xfs), uses xattr
> > > [ 261.691563] XFS mounting filesystem loop0
> > > [ 261.698927] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > > ^^^^^^^^^^^^^^^^^^^^
> > > interesting
> >
> > Yeah, looks like a vmalloc leak is occurring. I haven't noticed
> > it before because:
> >
> > VmallocTotal: 137427898368 kB
> > VmallocUsed: 3128272 kB
> > VmallocChunk: 137424770048 kB
> >
> > It takes a long time to leak enough vmapped space to run out on ia64...
> >
> > That tends to imply we have a mapped buffer being leaked somewhere.
> > Interestingly, I don't see a memory leak so we must be freeing the
> > memory associated with the buffer, just not unmapping it first. Not
> > sure how that can happen yet.....
> .....
> >
> > Looks like we're leaking 272kB of vmalloc space on each mount/unmount
> > cycle. I'm trying to track this down now....
>
> I've found what is going on here - kmem_alloc() is decidedly more
> forgiving than manually built page arrays and vmap/vunmap. Prior
> to this change we wouldn't have even leaked memory....
>
> Christoph - this is an interaction with xfs_buf_associate_memory();
> I'm not sure what it is doing is at all safe now that it never gets
> passed kmem_alloc()d memory - it works for the log recovery case
> because we use it in pairs - once to shorten the buffer and then once
> to put it back the way it was.
>
> But that doesn't work for the log buffers (we never return them to their
> original state) and the log wrap case looks to work mostly by accident
> now (and could posibly lead to double freeing pages)....
>
> It seems that what we really need with the new code is a xfs_buf_clone()
> operation followed by trimming the range to what the secondary I/O needs
> to span. This would work for the log buffer case as well. Your thoughts?
>
> In the meantime, the following patch appears to fix the leak.

After a few minutes of mount/umount cycle everything seems to be ok,
problem fixed.

Thanks!

>
> Cheers,
>
> Dave.

Regards,
Michal

--
Michal K. K. Piotrowski
Kernel Monkeys
(http://kernel.wikidot.com/start)

2007-05-22 20:56:25

by Joseph Fannin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: evm BUG when reading sysfs file

On Tue, May 15, 2007 at 08:19:14PM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/

I've been getting this since 2.6.21-rc7-mm1:

[ 2.379310] BUG: unable to handle kernel paging request at virtual address 4400d340
[ 2.379491] printing eip:
[ 2.379573] c021c978
[ 2.379656] *pdpt = 000000000353c001
[ 2.379739] *pde = 0000000000000000
[ 2.379824] Oops: 0000 [#1]
[ 2.379906] PREEMPT SMP
[ 2.380059] Modules linked in: thermal processor dm_mod
[ 2.380288] CPU: 0
[ 2.380289] EIP: 0060:[<c021c978>] Not tainted VLI
[ 2.380291] EFLAGS: 00010297 (2.6.22-rc1-mm1 #2)
[ 2.380547] EIP is at vsnprintf+0x448/0x5d0
[ 2.380633] eax: 4400d340 ebx: c348f034 ecx: 4400d340 edx: fffffffe
[ 2.380721] esi: c03e0100 edi: 4400d340 ebp: c357ecc0 esp: c357ec68
[ 2.380810] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
[ 2.380898] Process udevtrigger (pid: 686, ti=c357e000 task=c1876df0 task.ti=c357e000)
[ 2.380987] Stack: c348f014 00000fec c03e1c60 c03e3cec c357eccc c0499b88 c357ece0 c0282513
[ 2.381428] c348f014 00000fec 3cb70fcb c348f034 ffffffff 00000000 ffffffff ffffffff
[ 2.381867] ffffffff fffffffe c03e017c c357ed18 00000034 c0494a20 c357ece0 c021cb9f
[ 2.382305] Call Trace:
[ 2.382470] [<c021cb9f>] sprintf+0x1f/0x30
[ 2.382594] [<c02815ed>] show_uevent+0xed/0x130
[ 2.382720] [<c0281163>] dev_attr_show+0x23/0x30
[ 2.382843] [<c01dc077>] sysfs_read_file+0x97/0x140
[ 2.382968] [<c019502f>] vfs_read+0xaf/0x180
[ 2.383096] [<c0198c3a>] kernel_read+0x3a/0x50
[ 2.383221] [<c01f126c>] evm_calc_hash+0x11c/0x240
[ 2.383347] [<c01efd39>] evm_file_free+0xb9/0x330
[ 2.383470] [<c0195a3a>] __fput+0xba/0x180
[ 2.383593] [<c0195c32>] fput+0x22/0x40
[ 2.383715] [<c0192e07>] filp_close+0x47/0x70
[ 2.383839] [<c0194109>] sys_close+0x69/0xc0
[ 2.383965] [<c01043c8>] syscall_call+0x7/0xb
[ 2.384092] [<b7ebd0a7>] 0xb7ebd0a7
[ 2.384212] =======================
[ 2.384295] INFO: lockdep is turned off.
[ 2.384379] Code: 21 fd ff ff c6 03 25 e9 19 fd ff ff 8d 4f 04 b8
3b a2 3d c0 8b 55 e4 89 4d 08 8b 3f 81 ff ff 0f 00 00 0f 46 f8 89 f9
89 c8 eb 06 <80> 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 c6 8b 45 e0
f6 45
[ 2.386787] EIP: [<c021c978>] vsnprintf+0x448/0x5d0 SS:ESP 0068:c357ec68

This comes a bit after IMA bails out successfully, if that's relevant:

[ 1.708761] ima (ima_init): No TPM chip found(rc = -19), activating
TPM-bypass!

--
Joseph Fannin
[email protected]

2007-05-22 21:25:36

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: evm BUG when reading sysfs file

On Tue, 22 May 2007 03:25:48 -0400
[email protected] (Joseph Fannin) wrote:

> On Tue, May 15, 2007 at 08:19:14PM -0700, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc1/2.6.22-rc1-mm1/
>
> I've been getting this since 2.6.21-rc7-mm1:
>
> [ 2.379310] BUG: unable to handle kernel paging request at virtual address 4400d340
> [ 2.379491] printing eip:
> [ 2.379573] c021c978
> [ 2.379656] *pdpt = 000000000353c001
> [ 2.379739] *pde = 0000000000000000
> [ 2.379824] Oops: 0000 [#1]
> [ 2.379906] PREEMPT SMP
> [ 2.380059] Modules linked in: thermal processor dm_mod
> [ 2.380288] CPU: 0
> [ 2.380289] EIP: 0060:[<c021c978>] Not tainted VLI
> [ 2.380291] EFLAGS: 00010297 (2.6.22-rc1-mm1 #2)
> [ 2.380547] EIP is at vsnprintf+0x448/0x5d0
> [ 2.380633] eax: 4400d340 ebx: c348f034 ecx: 4400d340 edx: fffffffe
> [ 2.380721] esi: c03e0100 edi: 4400d340 ebp: c357ecc0 esp: c357ec68
> [ 2.380810] ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
> [ 2.380898] Process udevtrigger (pid: 686, ti=c357e000 task=c1876df0 task.ti=c357e000)
> [ 2.380987] Stack: c348f014 00000fec c03e1c60 c03e3cec c357eccc c0499b88 c357ece0 c0282513
> [ 2.381428] c348f014 00000fec 3cb70fcb c348f034 ffffffff 00000000 ffffffff ffffffff
> [ 2.381867] ffffffff fffffffe c03e017c c357ed18 00000034 c0494a20 c357ece0 c021cb9f
> [ 2.382305] Call Trace:
> [ 2.382470] [<c021cb9f>] sprintf+0x1f/0x30
> [ 2.382594] [<c02815ed>] show_uevent+0xed/0x130
> [ 2.382720] [<c0281163>] dev_attr_show+0x23/0x30
> [ 2.382843] [<c01dc077>] sysfs_read_file+0x97/0x140
> [ 2.382968] [<c019502f>] vfs_read+0xaf/0x180
> [ 2.383096] [<c0198c3a>] kernel_read+0x3a/0x50
> [ 2.383221] [<c01f126c>] evm_calc_hash+0x11c/0x240
> [ 2.383347] [<c01efd39>] evm_file_free+0xb9/0x330
> [ 2.383470] [<c0195a3a>] __fput+0xba/0x180
> [ 2.383593] [<c0195c32>] fput+0x22/0x40
> [ 2.383715] [<c0192e07>] filp_close+0x47/0x70
> [ 2.383839] [<c0194109>] sys_close+0x69/0xc0
> [ 2.383965] [<c01043c8>] syscall_call+0x7/0xb
> [ 2.384092] [<b7ebd0a7>] 0xb7ebd0a7
> [ 2.384212] =======================
> [ 2.384295] INFO: lockdep is turned off.
> [ 2.384379] Code: 21 fd ff ff c6 03 25 e9 19 fd ff ff 8d 4f 04 b8
> 3b a2 3d c0 8b 55 e4 89 4d 08 8b 3f 81 ff ff 0f 00 00 0f 46 f8 89 f9
> 89 c8 eb 06 <80> 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 c6 8b 45 e0
> f6 45
> [ 2.386787] EIP: [<c021c978>] vsnprintf+0x448/0x5d0 SS:ESP 0068:c357ec68
>
> This comes a bit after IMA bails out successfully, if that's relevant:
>
> [ 1.708761] ima (ima_init): No TPM chip found(rc = -19), activating
> TPM-bypass!

OK, thanks. Does the crash go away if you disable IMA, SLIM, etc in .config?

I think I'll drop all those patches, actually - they don't seem to be going
anywhere.

2007-05-22 23:51:59

by Nathan Scott

[permalink] [raw]
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1

On Tue, 2007-05-22 at 20:44 +1000, David Chinner wrote:
>
> > xfs_buf_associate_memory is a mess. My original plan was to get rid
> of
> > it, but I kept that out to keep that patchset small and easily
> reviable,
> > but it seems like that was a mistake. My plan is the following:
> >
> > - xlog_bread and thus the whole buffer I/O path grows an iooffset
> > paramater that specifies at which offset into the buffer we start
> > the actual I/O. That gets rid of all the
> xfs_buf_associate_memory
> > memory uses in the log recovery code
>
> Perhaps a new field in the xfs_buf structure - that way call paths
> don't need to grow extra parameters and potentially increase

Thatd be unfortunate - there are very few iclog buffers relative to
every other metadata buffer, so growing the struct for all of those
too would not be ideal (I remember Steve going on pagebuf shrinking
exercises in the distant past, to fit more of em in memory at once,
I can't remember what benchmark in particular he was using though).

cheers.

--
Nathan

2007-05-23 01:15:35

by Dave Young

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Hi,
I have tried the patch, it works.
could you explain it for me? thanks very much.

Regards
dave

2007/5/22, H. Peter Anvin <[email protected]>:
> Could you try the attached patch for me?
>
> -hpa
>
> diff --git a/arch/i386/boot/edd.c b/arch/i386/boot/edd.c
> index 84a0302..9697a56 100644
> --- a/arch/i386/boot/edd.c
> +++ b/arch/i386/boot/edd.c
> @@ -47,8 +47,9 @@ static int read_sector(u8 devno, u64 lba, void *buf)
> si = (size_t)&dapa;
> dx = devno;
> asm("pushfl; stc; int $0x13; setc %%al; popfl"
> - : "+a" (ax), "+S" (si), "+d" (devno)
> - : : "ebx", "ecx", "edi");
> + : "+a" (ax), "+S" (si), "+d" (dx)
> + : "m" (dapa)
> + : "ebx", "ecx", "edi", "memory");
>
> if (!(u8)ax)
> return 0; /* OK */
> @@ -59,7 +60,7 @@ static int read_sector(u8 devno, u64 lba, void *buf)
> bx = (size_t)buf;
> asm("pushfl; stc; int $0x13; setc %%al; popfl"
> : "+a" (ax), "+c" (cx), "+d" (dx), "+b" (bx)
> - : : "esi", "edi");
> + : : "esi", "edi", "memory");
>
> return -(u8)ax; /* 0 or -1 */
> }
>
>

Subject: Re: 2.6.22-rc1-mm1: IDE compile error


Hi,

On Wednesday 16 May 2007, Adrian Bunk wrote:
> On Tue, May 15, 2007 at 08:19:14PM -0700, Andrew Morton wrote:
> >...
> > - Added an i386 early-startup development tree, as git-newsetup.patch ("H.
> > Peter Anvin" <[email protected]>)
> >...
> > Changes since 2.6.21-mm2:
> >...
> > git-newsetup.patch
> >...
> > git trees
> >...
>
> This breaks the compilation of the oldest of our IDE disk drivers:
>
> <-- snip -->
>
> ...
> LD .tmp_vmlinux1
> drivers/built-in.o: In function `hd_init':
> hd.c:(.init.text+0x44a7d): undefined reference to `drive_info'
> hd.c:(.init.text+0x44a89): undefined reference to `drive_info'
> hd.c:(.init.text+0x44a95): undefined reference to `drive_info'
> hd.c:(.init.text+0x44aa1): undefined reference to `drive_info'
> hd.c:(.init.text+0x44aad): undefined reference to `drive_info'
> drivers/built-in.o:hd.c:(.init.text+0x44ab9): more undefined references to `drive_info' follow
> make[1]: *** [.tmp_vmlinux1] Error 1
>
> <-- snip -->
>
> Considering the fact that we have two more recent drivers with the same
> functionality, it might be an option to simply remove this driver...

Care to send a patch?

Thanks,
Bart

2007-05-24 10:53:17

by Alan

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

> > hd.c:(.init.text+0x44a7d): undefined reference to `drive_info'
> > hd.c:(.init.text+0x44a89): undefined reference to `drive_info'
> > hd.c:(.init.text+0x44a95): undefined reference to `drive_info'
> > hd.c:(.init.text+0x44aa1): undefined reference to `drive_info'
> > hd.c:(.init.text+0x44aad): undefined reference to `drive_info'
> > drivers/built-in.o:hd.c:(.init.text+0x44ab9): more undefined references to `drive_info' follow
> > make[1]: *** [.tmp_vmlinux1] Error 1
> >
> > <-- snip -->
> >
> > Considering the fact that we have two more recent drivers with the same
> > functionality, it might be an option to simply remove this driver...
>
> Care to send a patch?

hd.c can drive MFM and RLL disks and drivers/ide cannot. Although it
really wants burying further down the config tree the ability to read MFM
and RLL disks when recovering ancient data is useful and people do
actually use this driver now and then rescuing stuff like twenty year old
datasets.

It thus needs fixing not removing.


Alan

2007-05-24 14:17:18

by Thomas Renninger

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

Stripping some CCs, acpi and kernel list should be enough this one goes
to...

On Tue, 2007-05-22 at 01:31 +0100, Matthew Garrett wrote:
> On Tue, May 22, 2007 at 12:42:00AM +0200, Pavel Machek wrote:
> > On Mon 2007-05-21 14:45:53, Matthew Garrett wrote:
> > > So don't do it badly. The advantage of doing so is that you can make it
> > > work properly, which you can't by putting it in the kernel.
> >
> > You want stuff like critical shutdowns to work even if userspace is
> > dead.
>
> I don't think anyone suggested putting the critical shutdown control in
> userspace. The kernel already handles that fine.
>
> > I do not think you can control passive cooling adequately from
> > userspace, and you can certainly not prevent kernel from slowing
> > machine down too soon.
>
> Given the choice between something impossible and something difficult,
> I'm inclined towards picking the difficult one.

I doubt it is impossible, would you mind sharing your knowledge why you
think it is impossible or point to some related discussion, pls.

Does this mean checking temperature against trip points and adjust fan
and cpufreq should be done in a hal module?
In which stage is this, rfc, development, already in some git tree?

Yes, trip points are overridden by BIOS on HPs and what is the problem?
The workaround won't work for them, but it still does on others
(mainly on ThinkPads which have passive tp at about 89 C and critical on
91 C).

I could imagine an implementation for this, that e.g. critical...active9
get module parameters. BIOS updates for trip points get ignored as soon
as one is set and you can only decrease a value. Nothing bad can happen
and it will make some people happy (yes it's hacky, violates the specs
and so on..., but some more people have a working machine). Will this
(or similar) get accepted?

It's even more impossible to get ACPI working correctly for all machines
and all subsystems, these little workarounds can help some people to at
least use their machine or get some parts working better.

Thomas

2007-05-24 14:37:10

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

On Thu, May 24, 2007 at 04:16:53PM +0200, Thomas Renninger wrote:

> I doubt it is impossible, would you mind sharing your knowledge why you
> think it is impossible or point to some related discussion, pls.

Because, as Len has pointed out, you end up with two different ideas
about what the trip points are - the kernel's and the hardware's. That
works fine until some event in the firmware either forcibly
resynchronises the two or makes assumptions about the spec-compliance of
the interpreter.

> Yes, trip points are overridden by BIOS on HPs and what is the problem?
> The workaround won't work for them, but it still does on others
> (mainly on ThinkPads which have passive tp at about 89 C and critical on
> 91 C).

You don't know whether the workaround will work or not until you've
performed a full audit of the platform firmware, which is going to
potentially change between BIOS versions. It's entirely legal for the
firmware to behave in this way, and even beneficial under various
circumstances.

> I could imagine an implementation for this, that e.g. critical...active9
> get module parameters. BIOS updates for trip points get ignored as soon
> as one is set and you can only decrease a value. Nothing bad can happen
> and it will make some people happy (yes it's hacky, violates the specs
> and so on..., but some more people have a working machine). Will this
> (or similar) get accepted?

The interface would need to be more complicated than that if you wanted
to be able to implement hysteresis, and there's the potential for
hardware damage if paramaters are set inappropriately. Even then,
there's no easy way of programatically determining whether it would work
on any given hardware.

> It's even more impossible to get ACPI working correctly for all machines
> and all subsystems, these little workarounds can help some people to at
> least use their machine or get some parts working better.

It's fairly clearly not impossible, given that there exists at least one
OS that these machines work with.

--
Matthew Garrett | [email protected]

2007-05-24 18:19:24

by Thomas Renninger

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

On Thu, 2007-05-24 at 15:36 +0100, Matthew Garrett wrote:
> On Thu, May 24, 2007 at 04:16:53PM +0200, Thomas Renninger wrote:
>
> > I doubt it is impossible, would you mind sharing your knowledge why you
> > think it is impossible or point to some related discussion, pls.
>
> Because, as Len has pointed out, you end up with two different ideas
> about what the trip points are - the kernel's and the hardware's. That
> works fine until some event in the firmware either forcibly
> resynchronises the two or makes assumptions about the spec-compliance of
> the interpreter.

Not sure what exactly you'd like to do in userspace, maybe you can be a
bit more precise here:
a) Doing whole thermal management in userspace, reading temp, writing
fan and cpufreq_max_freq, shutting down machine,...
b) Workaround not switching on fans by double checking fan/temperature
by a userspace daemon and try to finally trigger the switch by
writing to /proc/acpi/fan/state (or corresponding /sys,..)

IMO we need a some kind of fan watchdog like Henrique described
recently, maybe this could be put in userspace not sure.
Currently the fan can runs out of sync easily if the fan state is
changed behind the OSs back.


> > Yes, trip points are overridden by BIOS on HPs and what is the problem?
> > The workaround won't work for them, but it still does on others
> > (mainly on ThinkPads which have passive tp at about 89 C and critical on
> > 91 C).
>
> You don't know whether the workaround will work or not
Hmm, I don't get the point. If it works it's great, if not you have a
problem anyway and can at least test a workaround.
> until you've
> performed a full audit of the platform firmware, which is going to
> potentially change between BIOS versions. It's entirely legal for the
> firmware to behave in this way, and even beneficial under various
> circumstances.
But that's exactly what all these workarounds are for. You pass them if
you have a buggy BIOS. You wait for new BIOSes and hope that you can get
rid of the workaround...

> > I could imagine an implementation for this, that e.g. critical...active9
> > get module parameters. BIOS updates for trip points get ignored as soon
> > as one is set and you can only decrease a value. Nothing bad can happen
> > and it will make some people happy (yes it's hacky, violates the specs
> > and so on..., but some more people have a working machine). Will this
> > (or similar) get accepted?
>
> The interface would need to be more complicated than that if you wanted
> to be able to implement hysteresis, and there's the potential for
> hardware damage if paramaters are set inappropriately. Even then,
> there's no easy way of programatically determining whether it would work
> on any given hardware.

The fact that 3 people complained rather fast for a patch in rc1-mm1,
looks like this is a workaround that is needed. I personally advised two
guys to use it with their ThinkPad in the summer and they are happy with
it.

I'd also like to have this a bit extended: be able to just modify
passive trip point.
IMO this is a very powerful feature allowing people a fanless system as
long as they have a cpufreq capable processor.

The idea having this in userspace is interesting. But as said rather
complicated to implement. The hysteresis implementation for passive
cooling works fine in kernel and is field tested, it should get used.

The problem with the ACPI spec is that it's rather complicated. This is
IMO mainly for a BIOS developer point of view for what I can say.
Therefore it's rather seldom picked up by BIOS vendors.
However for the kernel it's easy (to fake, to do) and it's working fine,
so why not making use of it?

IMO we should even provide a passive trip point (initially unused) when
there is no one defined by BIOS.

I agree that it's hard to find the temperature to not let the fan kick
in automatically. But it's really easy then for everyone to:
- get a fanless system
- workaround critical shutdowns
and all this is safe in respect to HW damage.

IMO this is an area where we can easily behave better than M$ does.

Maybe my first mails were a bit offending, don't know, we should get
this back to an objective discussion.

I especially like to have some comments from Len, before doing any work
for nothing (or before giving up):
- Would such a passive trip point override be acceptable in any way
(be it in userspace, kernel space or in whatever form -> to be
discussed)
- Would such a workaround as I described in my mail before be
acceptable
- If done in userspace, how should it look like exactly

Thanks,

Thomas

2007-05-24 18:56:33

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

Alan Cox wrote:
>>> hd.c:(.init.text+0x44a7d): undefined reference to `drive_info'
>>> hd.c:(.init.text+0x44a89): undefined reference to `drive_info'
>>> hd.c:(.init.text+0x44a95): undefined reference to `drive_info'
>>> hd.c:(.init.text+0x44aa1): undefined reference to `drive_info'
>>> hd.c:(.init.text+0x44aad): undefined reference to `drive_info'
>>> drivers/built-in.o:hd.c:(.init.text+0x44ab9): more undefined references to `drive_info' follow
>>> make[1]: *** [.tmp_vmlinux1] Error 1
>>>
>>> <-- snip -->
>>>
>>> Considering the fact that we have two more recent drivers with the same
>>> functionality, it might be an option to simply remove this driver...
>> Care to send a patch?
>
> hd.c can drive MFM and RLL disks and drivers/ide cannot. Although it
> really wants burying further down the config tree the ability to read MFM
> and RLL disks when recovering ancient data is useful and people do
> actually use this driver now and then rescuing stuff like twenty year old
> datasets.
>
> It thus needs fixing not removing.

Why is this driver parked in drivers/ide/legacy when the companion
driver, xd.c, is in drivers/block (where hd.c used to be at one point,
too)? Especially so since it's not really for IDE, but for ST-506.

HOWEVER, the code that fails above hard-assumes that the ST-506 disks
that you have are your primary system drives, which is obviously a wrong
assumption -- ST-506 drives were obsolete quite a while before Linux
existed[1].

xd.c, on the other hand, seems to actually go out and query the hardware
directly. I guess this is understandably, since this controller would
never have been primary.

If hd.c is pure legacy, which it obviously is, should we remove the code
to assume the BIOS settings are the MFM/RLL settings (i.e. the __i386__
clause), and instead do something more like the __arm__ clause which
means that "if you really want to use this you have to specify the
parameters manually"?

-hpa


[1] The 386-16 that I had access to at Northwestern, which with 0.59
BogoMIPS was the slowest Linux system in existence until Linux was
ported to other architectures, might have been an ST-506 drive, but I'm
not sure.

2007-05-25 00:07:57

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

Alan Cox wrote:
>
> hd.c can drive MFM and RLL disks and drivers/ide cannot. Although it
> really wants burying further down the config tree the ability to read MFM
> and RLL disks when recovering ancient data is useful and people do
> actually use this driver now and then rescuing stuff like twenty year old
> datasets.
>
> It thus needs fixing not removing.
>

Opinions, anyone (especially Alan):

http://git.kernel.org/?p=linux/kernel/git/hpa/linux-2.6-newsetup.git;a=commitdiff;h=369f16fdd423d79640c4390915e6ab71189cb497

-hpa

2007-05-25 00:11:22

by Alan

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

> > It thus needs fixing not removing.
> >
>
> Opinions, anyone (especially Alan):
>
> http://git.kernel.org/?p=linux/kernel/git/hpa/linux-2.6-newsetup.git;a=commitdiff;h=369f16fdd423d79640c4390915e6ab71189cb497

I believe the technical description for the comment is "bullshit" 8)

Almost all MFM controllers and RLL controllers will only run at the
standard primary and secondary ATA address.

Given the intended use of the driver today I don't see a big problem in
requiring "hd=" although you have to question the point of this boot code
rewrite when it seems primarily to be removing features

Alan

2007-05-25 00:20:55

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

Alan Cox wrote:
> I believe the technical description for the comment is "bullshit" 8)
>
> Almost all MFM controllers and RLL controllers will only run at the
> standard primary and secondary ATA address.

Yes, but that doesn't (necessarily) apply to the controller that is
likely to be the primary controller in a modern system.

The whole point is that what the BIOS considers primary isn't
necessarily tied to the standard ATA addresses anymore, with SATA
controllers being primary.

The question I'm asking is: do you think it's better to remove this from
hd.c, or do you think it's better to add it back boot code BIOS
detection (and take the risk of poking an ST-506 disk with legacy data
with parameters which may belong to another disk -- keep in mind this
can permanently damage an ST-506 disk)?

> Given the intended use of the driver today I don't see a big problem in
> requiring "hd=" although you have to question the point of this boot code
> rewrite when it seems primarily to be removing features

I've been trying to remove features that are obsolete and/or broken. I
don't have access to this particular ancient hardware, nor any system
that can even host them. It's very easy to add the stuff back in the
boot code; it's a much more tricky/annoying question if one *should* do
so. That's part of a rewrite/cleanup.

-hpa

2007-05-25 00:35:58

by Alan

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

> The question I'm asking is: do you think it's better to remove this from
> hd.c, or do you think it's better to add it back boot code BIOS
> detection (and take the risk of poking an ST-506 disk with legacy data
> with parameters which may belong to another disk -- keep in mind this
> can permanently damage an ST-506 disk)?

To set it up the user will have to know the parameters and have typed
them into the BIOS (if it even has an option for it). I see no problem

2007-05-25 00:54:20

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

Alan Cox wrote:
>> The question I'm asking is: do you think it's better to remove this from
>> hd.c, or do you think it's better to add it back boot code BIOS
>> detection (and take the risk of poking an ST-506 disk with legacy data
>> with parameters which may belong to another disk -- keep in mind this
>> can permanently damage an ST-506 disk)?
>
> To set it up the user will have to know the parameters and have typed
> them into the BIOS (if it even has an option for it). I see no problem

Sorry, see no problem which way? My concern here is with getting
incorrect data, not getting no data. The BIOS probe amounts to pulling
data out of two tables (INT 0x41/0x46, corresponding to BIOS drives 0x80
and 0x81 -- the EDD 1.1 spec is quite specific that if implemented they
follow the BIOS drive numbers, not the ATA port addresses), and hoping
that they actually match the drives that hd.c uses. That scares me,
since we're talking about old legacy data here.

I'm not concerned with what's easy, I'm concerned with what's the right
thing to do.

-hpa

2007-05-25 14:16:34

by Alan

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: IDE compile error

> > To set it up the user will have to know the parameters and have typed
> > them into the BIOS (if it even has an option for it). I see no problem
>
> Sorry, see no problem which way?

Forcing the user to provide the geometry. Historically that driver dealt
with the main disks the user had. Today its only use is specialist
recovery work. Anyone recovering a disk has to get the geometry data into
the BIOS (if the BIOS even allows it - many now don't) and will therefore
know it for hd= arguments as well

Alan

2007-05-25 21:06:18

by Mimi Zohar

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1: evm BUG when reading sysfs file

Andrew Morton <[email protected]> wrote on 05/22/2007 05:23:05 PM:

> On Tue, 22 May 2007 03:25:48 -0400
> [email protected] (Joseph Fannin) wrote:
>
> > This comes a bit after IMA bails out successfully, if that's
relevant:
...
> >
> > [ 1.708761] ima (ima_init): No TPM chip found(rc = -19), activating
> > TPM-bypass!
>
> OK, thanks. Does the crash go away if you disable IMA, SLIM, etc in
.config?
>
> I think I'll drop all those patches, actually - they don't seem to be
going
> anywhere.

You are absolutely right, we have been stalled on EVM/IMA/SLIM, while
trying
to figure out the mtime and revocation issues. In retrospect we tried to
submit
too much complex code all at once.

We will resubmit in small functional pieces as the technical issues have
been
resolved, starting with the LIM API and hooks, which are independent of
the
mtime and revocation issues.

Mimi Zohar


2007-05-27 21:00:33

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

Hi!

>
> > I doubt it is impossible, would you mind sharing your knowledge why you
> > think it is impossible or point to some related discussion, pls.
>
> Because, as Len has pointed out, you end up with two different ideas
> about what the trip points are - the kernel's and the hardware's. That
> works fine until some event in the firmware either forcibly
> resynchronises the two or makes assumptions about the spec-compliance of
> the interpreter.

...and suggested workaround is to drive fans directly from userspace,
which not only violates the specs and has all the problems with
desynchronized state, but ALSO FAILS TO WORK IN PRACTICE.

> > I could imagine an implementation for this, that e.g. critical...active9
> > get module parameters. BIOS updates for trip points get ignored as soon
> > as one is set and you can only decrease a value. Nothing bad can happen
> > and it will make some people happy (yes it's hacky, violates the specs
> > and so on..., but some more people have a working machine). Will this
> > (or similar) get accepted?
>
> The interface would need to be more complicated than that if you wanted
> to be able to implement hysteresis, and there's the potential for
> hardware damage if paramaters are set inappropriately. Even then,
> there's no easy way of programatically determining whether it would work
> on any given hardware.

Not sure why you try to scare people with 'hardware damage'. HP XE3
bios already _was_ damaging hardware (it cooked the hard drive using
cpu as a heater), and no acpi magic can damage correctly working
machine.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-27 21:51:41

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

On Fri, May 25, 2007 at 06:38:15AM +0000, Pavel Machek wrote:
> Hi!
> > Because, as Len has pointed out, you end up with two different ideas
> > about what the trip points are - the kernel's and the hardware's. That
> > works fine until some event in the firmware either forcibly
> > resynchronises the two or makes assumptions about the spec-compliance of
> > the interpreter.
>
> ...and suggested workaround is to drive fans directly from userspace,
> which not only violates the specs and has all the problems with
> desynchronized state, but ALSO FAILS TO WORK IN PRACTICE.

I don't think that's obviously true. 11.3.2 of the 3.0 spec states:

"A package consisting of references to all active cooling devices that
should be engaged when the associated active cooling threshold (_ACx) is
exceeded."

(referring to _ALx objects).

> > The interface would need to be more complicated than that if you wanted
> > to be able to implement hysteresis, and there's the potential for
> > hardware damage if paramaters are set inappropriately. Even then,
> > there's no easy way of programatically determining whether it would work
> > on any given hardware.
>
> Not sure why you try to scare people with 'hardware damage'. HP XE3
> bios already _was_ damaging hardware (it cooked the hard drive using
> cpu as a heater), and no acpi magic can damage correctly working
> machine.

Given that this presumably didn't occur under Windows, I think it would
be significantly better to figure out why and then fix that.
Alternatively, if the firmware tables are actually genuinely broken in a
way that's impossible to repair, you can replace the table. That has the
advantage that there's no risk of the platform and the OS becoming
confused.

--
Matthew Garrett | [email protected]

2007-05-28 10:59:38

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

Hi!

> > > Because, as Len has pointed out, you end up with two different ideas
> > > about what the trip points are - the kernel's and the hardware's. That
> > > works fine until some event in the firmware either forcibly
> > > resynchronises the two or makes assumptions about the spec-compliance of
> > > the interpreter.
> >
> > ...and suggested workaround is to drive fans directly from userspace,
> > which not only violates the specs and has all the problems with
> > desynchronized state, but ALSO FAILS TO WORK IN PRACTICE.
>
> I don't think that's obviously true. 11.3.2 of the 3.0 spec states:

> "A package consisting of references to all active cooling devices that
> should be engaged when the associated active cooling threshold (_ACx) is
> exceeded."

We'd need:

a) way to tell acpi not to control fans any more

b) in kernel watchdog so that acpi starts controlling fans after oom
killer

c) way to control passive cooling from userspace.

Not something doable for 2.6.22.


> > > The interface would need to be more complicated than that if you wanted
> > > to be able to implement hysteresis, and there's the potential for
> > > hardware damage if paramaters are set inappropriately. Even then,
> > > there's no easy way of programatically determining whether it would work
> > > on any given hardware.
> >
> > Not sure why you try to scare people with 'hardware damage'. HP XE3
> > bios already _was_ damaging hardware (it cooked the hard drive using
> > cpu as a heater), and no acpi magic can damage correctly working
> > machine.
>
> Given that this presumably didn't occur under Windows, I think it would
> be significantly better to figure out why and then fix that.

It would happily occur under Windows. You just needed to load machine
in a way that cpu stayed ~80C.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-28 12:50:51

by Matthew Garrett

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

On Mon, May 28, 2007 at 12:58:51PM +0200, Pavel Machek wrote:

> It would happily occur under Windows. You just needed to load machine
> in a way that cpu stayed ~80C.

So replace the DSDT. All the problems get solved that way.
--
Matthew Garrett | [email protected]

2007-05-28 12:53:29

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: [cannot change thermal trip points]

On Mon 2007-05-28 13:50:36, Matthew Garrett wrote:
> On Mon, May 28, 2007 at 12:58:51PM +0200, Pavel Machek wrote:
>
> > It would happily occur under Windows. You just needed to load machine
> > in a way that cpu stayed ~80C.
>
> So replace the DSDT. All the problems get solved that way.

We are in the middle of stable series, and Len's patch breaks existing
setups without prior warning. That's "no-no". Of course I could
replace DSDT. I also could throw that machine out of window.

I'm not sure what we are arguing about here, that patch is broken.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-05-29 22:35:06

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Mel Gorman wrote:
> On Wed, 16 May 2007, H. Peter Anvin wrote:
>
>> Correction, does *this patch* do it for you?
>>
>
> With these two patches in combination, previously failing machines
> elm3b6 (x86_64 on test.kernel.org) and a modern x86 built a kernel and
> booted correctly.
>
> elm3b132 and elm3b132 (x86 numaq on test.kernel.org) built with these
> patches but silently fail on boot with no output via earlyprintk.
> According to test.kernel.org, this failure occurs with git-newsetup
> reverted so it is a separate problem.

Ok, I've been following up on this failure on elm3b132/3. I moved
forward to v2.6.22-rc2-mm1 and that also fails. I ran a bisection on
the git-newsetup patch in as in -mm and basically it came down to the
first patch, ie. any and all of this tree stops the boot.

I just tried reproducing git-newsetup boot failures with the latest
version of your tree (369f16fdd423d79640c4390915e6ab71189cb497) and that
also fails.

Fails in this context is hard boot failure after loading the kernel and
before anything is printed. I also added a printf to the top of main()
in boot/main.c and it doesn't come out, not that I really know if that
means it got there or not.

Any suggestions how to debug this puppy?

-apw

2007-06-01 02:46:39

by Len Brown

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Monday 21 May 2007 08:11, Pavel Machek wrote:
> On Thu 2007-05-17 18:42:43, Len Brown wrote:
> > > Something similar happened to me on XE3, yes.
> > >
> > > (Actual values were different; BIOS specified critical temperature at
> > > cca 95C, but hw killed the power at cca 83C. Setting critical trip
> > > point at 80C made the problem go away.)
> >
> > Great, please file a bug and include the acpidump from the XE3
> > and we'll fix it, rather than supporting a bogus (manual) workaround for it.
>
> It is few years since I do not have that XE3 machine.
>
> > Of course if your system is running at 80*C and the hardware shuts
> > off at 83*C, you may have a broken fan, or one clogged with dust...
>
> It _did_ have broken fan. It also had broken trip points.

Thanks for clarifying this, Pavel.
If you come upon an XE3 where Linux-2.6.22 doesn't work as well
as Windows, please let me know.

Given that the justification for this ill-conceived workaround
seems to have diminished to the memory of broken hardware,
it is clear that we should stay the course of removing it
so that it doesn't further confuse future users.

If SuSE violently disagrees with me, you are certainly empowered
to restore the workaround in your distribution staring at 2.6.22
as part of your value add. However, given its history of confusing
users, it seems that it might increase your support burden rather
than decrease it.

-Len

2007-06-01 09:50:27

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andy Whitcroft wrote:
> Mel Gorman wrote:
>> On Wed, 16 May 2007, H. Peter Anvin wrote:
>>
>>> Correction, does *this patch* do it for you?
>>>
>> With these two patches in combination, previously failing machines
>> elm3b6 (x86_64 on test.kernel.org) and a modern x86 built a kernel and
>> booted correctly.
>>
>> elm3b132 and elm3b132 (x86 numaq on test.kernel.org) built with these
>> patches but silently fail on boot with no output via earlyprintk.
>> According to test.kernel.org, this failure occurs with git-newsetup
>> reverted so it is a separate problem.
>
> Ok, I've been following up on this failure on elm3b132/3. I moved
> forward to v2.6.22-rc2-mm1 and that also fails. I ran a bisection on
> the git-newsetup patch in as in -mm and basically it came down to the
> first patch, ie. any and all of this tree stops the boot.
>
> I just tried reproducing git-newsetup boot failures with the latest
> version of your tree (369f16fdd423d79640c4390915e6ab71189cb497) and that
> also fails.
>
> Fails in this context is hard boot failure after loading the kernel and
> before anything is printed. I also added a printf to the top of main()
> in boot/main.c and it doesn't come out, not that I really know if that
> means it got there or not.
>
> Any suggestions how to debug this puppy?

Thanks to Peter for all his encouragement off list.

I cannot claim to have sorted this one out, I do however understand why
my experiences and Mels did not seem consistent. Basically I am getting
inconsistent results with different machines.

I started my debug on a machine where 2.6.22-rc2 which worked and
2.6.22-rc2+newsetup which did not. I debugged the latter and managed to
prove that it was in fact getting all the way to the kernel
decompressor, and then crashing hard. The gzip image in memory was
intact and yet it did not decrypt correctly, the first about 60% was
intact, the remainder was damaged.

Suspecting that this was an "uncompress in place" overlap problem I
moved the compressed kernel way up out of the way and this then booted
successfully. Experimenting I was able to get it to boot by increasing
the overlap 'gap' from 32KB's to 64KB's. I was able to use the same
patch to boot 2.6.22-rc2-mm1 on the same problems machines. However,
this same overlap change did not fix another similar machine (the one in
the TKO grid).

I think that my debugging says that newsetup got the compressed kernel
and decompressor into memory ok and execution passed to it normally.
But I cannot figure out where the corruption is coming from. I tried
annotating the gzip decompressor to see if the input and output buffers
were overlapping at any time and that debug said no (unsure how reliable
that is). And yet at some point the output image is munched up.

One last piece of information. The decompressor also always seems to
get to the end of the input stream in exactly the right place without
reporting any kind of error, that is with exactly 8 bytes left over for
the length and crc checks. Which given the context sensitive nature of
the algorithm tends to imply the input stream was ok for the whole
duration of the decompress. Yet the output stream is badly broken.

Anyone got any wacky suggestions ...

-apw

2007-06-01 23:13:30

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andy Whitcroft wrote:
>
> I think that my debugging says that newsetup got the compressed kernel
> and decompressor into memory ok and execution passed to it normally.
> But I cannot figure out where the corruption is coming from. I tried
> annotating the gzip decompressor to see if the input and output buffers
> were overlapping at any time and that debug said no (unsure how reliable
> that is). And yet at some point the output image is munched up.
>
> One last piece of information. The decompressor also always seems to
> get to the end of the input stream in exactly the right place without
> reporting any kind of error, that is with exactly 8 bytes left over for
> the length and crc checks. Which given the context sensitive nature of
> the algorithm tends to imply the input stream was ok for the whole
> duration of the decompress. Yet the output stream is badly broken.
>
> Anyone got any wacky suggestions ...
>

It definitely sounds like a memory clobber of some sort.

Usual suspects, in addition to the input/output buffers you already
looked at, would be the heap and the stack. Finding where the stack
pointer lives would be my first, instinctive guess.

-hpa

2007-06-04 09:23:46

by Stefan Seyfried

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thu, May 17, 2007 at 06:35:48PM -0400, Len Brown wrote:

> Yes, SuSE enables polling mode by default, but that is just
> distro specific "value add" that should eventually be fixed.

I will do that for openSUSE FACTORY.
--
Stefan Seyfried
QA / R&D Team Mobile Devices | "Any ideas, John?"
SUSE LINUX Products GmbH, N?rnberg | "Well, surrounding them's out."

This footer brought to you by insane German lawmakers:
SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG N?rnberg)

2007-06-04 09:23:57

by Stefan Seyfried

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Tue, May 22, 2007 at 11:06:36AM +0200, Pavel Machek wrote:

> We need to ignore trip point updates from BIOS, and we need to poll
> thermals when use overrides trip points. That's expected. Plus I've
> yet to see platform actually updating the trip points.

Thinkpad 600, whenever a trip point is crossed, all trip points are updated.
I think they implemented hysteresis that way.
ISTR that hp nx5000 did something similar, but i might be wrong on this one.
--
Stefan Seyfried
QA / R&D Team Mobile Devices | "Any ideas, John?"
SUSE LINUX Products GmbH, N?rnberg | "Well, surrounding them's out."

This footer brought to you by insane German lawmakers:
SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG N?rnberg)

2007-06-04 11:06:36

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Mon 2007-06-04 11:02:01, Stefan Seyfried wrote:
> On Thu, May 17, 2007 at 06:35:48PM -0400, Len Brown wrote:
>
> > Yes, SuSE enables polling mode by default, but that is just
> > distro specific "value add" that should eventually be fixed.
>
> I will do that for openSUSE FACTORY.

Well, I still believe right solution is to enable polling mode as soon
as trip points are written (and ignoring bios updates from then
on). That gets trip point writing into functional state.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-06-04 11:16:27

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1 [cannot change thermal trip points]

On Thu 2007-05-31 22:46:11, Len Brown wrote:
> On Monday 21 May 2007 08:11, Pavel Machek wrote:
> > On Thu 2007-05-17 18:42:43, Len Brown wrote:
> > > > Something similar happened to me on XE3, yes.
> > > >
> > > > (Actual values were different; BIOS specified critical temperature at
> > > > cca 95C, but hw killed the power at cca 83C. Setting critical trip
> > > > point at 80C made the problem go away.)
> > >
> > > Great, please file a bug and include the acpidump from the XE3
> > > and we'll fix it, rather than supporting a bogus (manual) workaround for it.
> >
> > It is few years since I do not have that XE3 machine.
> >
> > > Of course if your system is running at 80*C and the hardware shuts
> > > off at 83*C, you may have a broken fan, or one clogged with dust...
> >
> > It _did_ have broken fan. It also had broken trip points.
>
> Thanks for clarifying this, Pavel.
> If you come upon an XE3 where Linux-2.6.22 doesn't work as well
> as Windows, please let me know.

"work as well as windows" is not good enough goal as far as I'm
concerned. Please don't break working setups.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2007-06-05 18:38:19

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

H. Peter Anvin wrote:
> Andy Whitcroft wrote:
>> I think that my debugging says that newsetup got the compressed kernel
>> and decompressor into memory ok and execution passed to it normally.
>> But I cannot figure out where the corruption is coming from. I tried
>> annotating the gzip decompressor to see if the input and output buffers
>> were overlapping at any time and that debug said no (unsure how reliable
>> that is). And yet at some point the output image is munched up.
>>
>> One last piece of information. The decompressor also always seems to
>> get to the end of the input stream in exactly the right place without
>> reporting any kind of error, that is with exactly 8 bytes left over for
>> the length and crc checks. Which given the context sensitive nature of
>> the algorithm tends to imply the input stream was ok for the whole
>> duration of the decompress. Yet the output stream is badly broken.
>>
>> Anyone got any wacky suggestions ...
>>
>
> It definitely sounds like a memory clobber of some sort.
>
> Usual suspects, in addition to the input/output buffers you already
> looked at, would be the heap and the stack. Finding where the stack
> pointer lives would be my first, instinctive guess.

The stack seems to be where it should be and seems to stay pretty much
in the same place as it should. Adding checks for the heap also seem to
stay within bounds. I've tried making the stack and the heap 64k to no
effect.

Moving the kernel to other places in memory seems to kill the decode
completely during gunzip() which may be a hint I am not sure.

This thing is trying to ruin my mind.

-apw

2007-06-05 22:58:18

by H. Peter Anvin

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andy Whitcroft wrote:
>>>
>> It definitely sounds like a memory clobber of some sort.
>>
>> Usual suspects, in addition to the input/output buffers you already
>> looked at, would be the heap and the stack. Finding where the stack
>> pointer lives would be my first, instinctive guess.
>
> The stack seems to be where it should be and seems to stay pretty much
> in the same place as it should. Adding checks for the heap also seem to
> stay within bounds. I've tried making the stack and the heap 64k to no
> effect.
>
> Moving the kernel to other places in memory seems to kill the decode
> completely during gunzip() which may be a hint I am not sure.
>
> This thing is trying to ruin my mind.
>

Yours and mine both. Seems like *something* is clobbering memory, but
what and why is a mystery. The fact that putting the kernel in a higher
point in memory is a good indication that this clobber is at a
relatively high address.

How much RAM does this machine have?

-hpa

2007-06-07 09:50:37

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

H. Peter Anvin wrote:
> Andy Whitcroft wrote:
>>> It definitely sounds like a memory clobber of some sort.
>>>
>>> Usual suspects, in addition to the input/output buffers you already
>>> looked at, would be the heap and the stack. Finding where the stack
>>> pointer lives would be my first, instinctive guess.
>> The stack seems to be where it should be and seems to stay pretty much
>> in the same place as it should. Adding checks for the heap also seem to
>> stay within bounds. I've tried making the stack and the heap 64k to no
>> effect.
>>
>> Moving the kernel to other places in memory seems to kill the decode
>> completely during gunzip() which may be a hint I am not sure.
>>
>> This thing is trying to ruin my mind.
>>
>
> Yours and mine both. Seems like *something* is clobbering memory, but
> what and why is a mystery. The fact that putting the kernel in a higher
> point in memory is a good indication that this clobber is at a
> relatively high address.
>
> How much RAM does this machine have?

This is as 12GB machine. 3 numa nodes.

I checked out the location of the IDT and GDT and both seem sane, in the
9xxxx range below the kernel destination.

I also note that on another machine of this type, one Node only in that
case some of the "did work" cases do not work. Also when I applied some
of my patches on the top "working" cases stopped working. So whatever
it is is definatly related to the shape of the kernel to be loaded.
Very confusing.

-apw

2007-06-11 13:59:19

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.22-rc1-mm1

Andy Whitcroft wrote:
> H. Peter Anvin wrote:
>> Andy Whitcroft wrote:
>>>> It definitely sounds like a memory clobber of some sort.
>>>>
>>>> Usual suspects, in addition to the input/output buffers you already
>>>> looked at, would be the heap and the stack. Finding where the stack
>>>> pointer lives would be my first, instinctive guess.
>>> The stack seems to be where it should be and seems to stay pretty much
>>> in the same place as it should. Adding checks for the heap also seem to
>>> stay within bounds. I've tried making the stack and the heap 64k to no
>>> effect.
>>>
>>> Moving the kernel to other places in memory seems to kill the decode
>>> completely during gunzip() which may be a hint I am not sure.
>>>
>>> This thing is trying to ruin my mind.
>>>
>> Yours and mine both. Seems like *something* is clobbering memory, but
>> what and why is a mystery. The fact that putting the kernel in a higher
>> point in memory is a good indication that this clobber is at a
>> relatively high address.
>>
>> How much RAM does this machine have?
>
> This is as 12GB machine. 3 numa nodes.
>
> I checked out the location of the IDT and GDT and both seem sane, in the
> 9xxxx range below the kernel destination.
>
> I also note that on another machine of this type, one Node only in that
> case some of the "did work" cases do not work. Also when I applied some
> of my patches on the top "working" cases stopped working. So whatever
> it is is definatly related to the shape of the kernel to be loaded.
> Very confusing.

Ok, in fact when the kernel is moved elsewhere in the address space it
will decode properly. There was a check in there for not loading at the
right address which was catching me out ... as errors do not show up as
we have no serial support. Doh.

Once I had gotten this decoding at other addresses I simply tried moving
the base address for the kernel elsewhere. I am able to successfully
boot the kernel at 16MB and 256MB. This seems like something outside
the decoder scribbling.

I would not normally recommend moving the base address of the kernel.
However, this problem at least so far has only shown up on the NUMA-Q
platform which is at best described as a very small volume
sub-architecture. There are areas in which it differers from mainstream
BIOS and we are no longer able to get details of these differences.

We actually have no proof as yet this is or is not a NUMA-Q specific
problem. For instance these machines tend to run less modules and more
builtin stuff than the average due to an owner dislike of modules. So
we could have a lurking kernel size issue or similar.

I am therefore proposing change the base address for NUMA-Q only (patch
to follow this email). And that we remain aware of the issue and on the
lookout for similar breakage on mainstream x86 platforms. At least with
this patch we can get wider testing on the rest of the kernel.

-apw