* 2.6.16-rc6-mm2
@ 2006-06-10 4:40 Andrew Morton
2006-06-10 10:23 ` 2.6.16-rc6-mm2 Michal Piotrowski
` (6 more replies)
0 siblings, 7 replies; 76+ messages in thread
From: Andrew Morton @ 2006-06-10 4:40 UTC (permalink / raw)
To: linux-kernel
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/
- Added the s390 git tree to the -mm lineup, as git-s390.patch (Martin
Schwidefsky)
- ppc64 (on mac g5) fails to boot for me, due to changes in the powerpc tree.
- `make allnoconfig' builds will fail due to the IPC namespaces patches
- A reminder that I'm travelling for the next week and shall be more than
usually useless.
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 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 majordomo@vger.kernel.org
- 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.
Changes since 2.6.16-rc6-mm1:
origin.patch
git-acpi.patch
git-agpgart.patch
git-alsa.patch
git-arm.patch
git-audit-master.patch
git-block.patch
git-cifs.patch
git-cpufreq.patch
git-dvb.patch
git-gfs2.patch
git-ia64.patch
git-infiniband.patch
git-input.patch
git-intelfb.patch
git-jfs.patch
git-kbuild.patch
git-klibc.patch
git-hdrcleanup.patch
git-hdrinstall.patch
git-libata-all.patch
git-mips.patch
git-mtd.patch
git-netdev-all.patch
git-net.patch
git-nfs.patch
git-ocfs2.patch
git-powerpc.patch
git-rbtree.patch
git-sas.patch
git-pcmcia.patch
git-s390.patch
git-scsi-target.patch
git-supertrak.patch
git-watchdog.patch
git-xfs.patch
git-cryptodev.patch
git trees
-fix-hpet-operation-on-32-bit-nvidia-platforms.patch
-fix-hpet-operation-on-64-bit-nvidia-platforms.patch
-ep93xx-build-fix.patch
-fix-mempolicyh-build-error.patch
-fbcon-fix-limited-scroll-in-scroll_pan_redraw-mode.patch
-s390-cleanup-bitopsh.patch
-uninorth-agp-warning-fixes.patch
-alpha-agp-warning-fix.patch
-s390_hypfs-filesystem.patch
-opencores-i2c-bus-driver.patch
-add-dependency-on-kernelrelease-to-the-package-targets.patch
-kconfig-improve-config-load-save-output.patch
-kconfig-fix-config-dependencies.patch
-kconfig-remove-symbol_yesmodno.patch
-kconfig-allow-multiple-default-values-per-symbol.patch
-kconfig-allow-loading-multiple-configurations.patch
-kconfig-integrate-split-config-into-silentoldconfig.patch
-kconfig-integrate-split-config-into-silentoldconfig-fix.patch
-kconfig-move-kernelrelease.patch
-kconfig-add-symbol-option-config-syntax.patch
-kconfig-add-defconfig_list-module-option.patch
-kconfig-add-search-option-for-xconfig.patch
-kconfig-finer-customization-via-popup-menus.patch
-kconfig-create-links-in-info-window.patch
-kconfig-jump-to-linked-menu-prompt.patch
-kconfig-warn-about-leading-whitespace-for-menu-prompts.patch
-kconfig-remove-leading-whitespace-in-menu-prompts.patch
-config-exit-if-no-beginning-filename.patch
-make-kernelrelease-speedup.patch
-kconfig-kconfig_overwriteconfig.patch
-sane-menuconfig-colours.patch
-kbuild-export-type-enhancement-to-modpostc.patch
-kbuild-export-type-enhancement-to-modpostc-fix.patch
-kbuild-prevent-building-modules-that-wont-load.patch
-kbuild-obj-dirs-is-calculated-incorrectly-if-hostprogs-y-is-defined.patch
-fix-make-rpm-for-powerpc.patch
-kinit-convert--in-block-device-names-to-not.patch
-klibc-ia64-fix.patch
-myri10ge-alpha-build-fix.patch
-pci-error-recovery-e1000-network-device-driver.patch
-pci-error-recovery-e100-network-device-driver.patch
-drivers-char-hw_randomc-remove-asserts.patch
-selinux-add-security-class-for-appletalk-sockets.patch
-secmark-add-new-flask-definitions-to-selinux.patch
-secmark-add-selinux-exports.patch
-secmark-add-secmark-support-to-core-networking.patch
-secmark-add-xtables-secmark-target.patch
-secmark-add-secmark-support-to-conntrack.patch
-secmark-add-connsecmark-xtables-target.patch
-secmark-add-new-packet-controls-to-selinux.patch
-recent-match-fix-sleeping-function-called-from-invalid-context.patch
-recent-match-missing-refcnt-initialization.patch
-powerpc-kbuild-warning-fix.patch
-gregkh-pci-kconfigurable-resources-arch-dependent-changes-arm-fix.patch
-gregkh-pci-pci-64-bit-resources-core-changes-mips-fix.patch
-kconfigurable-resources-mtd-fixes.patch
-msi-k8t-neo2-fir-run-only-where-needed.patch
-pcmcia-fix-kernel-doc-function-name.patch
-drivers-scsi-fix-proc_scsi_write-to-return-length-on.patch
-gregkh-usb-usb-sisusbvga-possible-cleanups-fix.patch
-add-apple-macbook-product-ids-to-usbhid.patch
-fall-back-to-old-style-call-trace-if-no-unwinding.patch
-allow-unwinder-to-build-without-module-support.patch
-add-abilty-to-enable-disable-nmi-watchdog-from-procfs.patch
-lock-validator-lockdep-small-xfs-init_rwsem-cleanup.patch
-powerpc-vdso-updates.patch
-add-prctl-to-change-endian-of-a-task.patch
-powerpc-implement-support-for-setting.patch
-powerpc-implement-pr_et_unalign-prctls-for-powerpc.patch
-ip2-fix-sections.patch
Merged into mainline or a subsystem tree
+ehci-works-again-on-nvidia-controllers-with-2gb-ram.patch
+further-alterations-for-memory-barrier-document.patch
+powernow-k8-crash-workaround.patch
+bugfixes-to-get-i2o-working-again.patch
2.6.17 queue
+revert-powernow-k8-crash-workaround.patch
Needed to make git-acpi apply
git-acpi.patch
+reapply-powernow-k8-crash-workaround.patch
Apply it again after git-acpi
-acpi-dock-driver-acpi_get_device-fix.patch
Folded into acpi-dock-driver.patch
-acpi-atlas-acpi-driver-fix.patch
Folded into acpi-atlas-acpi-driver.patch
-remove-acpi_os_create_lock-acpi_os_delete_lock.patch
Dropped
-acpi-remove-__init-__exit-from-sony-add-remove-methods.patch
Folded into 2.6-sony_acpi4.patch
+gregkh-i2c-i2c-Kconfig-suggest-N-for-rare-devices.patch
+gregkh-i2c-i2c-opencores-new-driver.patch
+gregkh-i2c-hwmon-sysfs-interface-update-1.patch
+gregkh-i2c-hwmon-sysfs-interface-update-2.patch
+gregkh-i2c-hwmon-hdaps-typo.patch
+gregkh-i2c-hwmon-maintenance-update.patch
+gregkh-i2c-hwmon-w83792d-pwm-set-fix.patch
+gregkh-i2c-hwmon-w83792d-add-data-lock.patch
+gregkh-i2c-hwmon-abituguru-new-driver.patch
+gregkh-i2c-hwmon-abituguru-fixes.patch
+gregkh-i2c-hwmon-abituguru-nofans-detect-fix.patch
I2C tree updates
+git-kbuild-modpost-build-fix.patch
Make git-kbuild build
+git-klibc-ia64-build-fix.patch
klibc fix
-libata-add-missing-data_xfer-for-pata_pdc2027x-and-pdc_adma-fix.patch
Folded into libata-add-missing-data_xfer-for-pata_pdc2027x-and-pdc_adma.patch
-lock-validator-fix-ns83820c-irq-flags-bug-part.patch
-lock-validator-fix-ns83820c-irq-flags-part-3.patch
Folded into lock-validator-fix-ns83820c-irq-flags-bug.patch
+forcedeth-xmit_lock-went-away.patch
Fix forcedeth patches in -mm for git-net changes
+gregkh-pci-pci-64-bit-resource-drivers-mips-changes.patch
-gregkh-pci-pci-ignore-pre-set-64-bit-bars-on-32-bit-platforms.patch
+gregkh-pci-pci-ignore-pre-set-64-bit-bars-on-32-bit-platforms.patch
+gregkh-pci-pci-msi-k8t-neo2-fir-run-only-where-needed.patch
+gregkh-pci-fix-pci_get_device-usage-in-mpc85xx.patch
PCI tree updates
+mm-gregkh-pci-pci-ignore-pre-set-64-bit-bars-on-32-bit-platforms-fix.patch
Fix it.
+git-pcmcia-fixup.patch
+git-pcmcia-fixup-2.patch
Fix rejects in git-pcmcia (due to git-alsa)
-gdth-add-execute-firmware-command-abstraction.patch
-drivers-scsi-gdthc-make-__gdth_execute-static.patch
Dropped, due to remove-the-scsi_request-interface-from-the-gdth-driver.patch
+remove-the-scsi_request-interface-from-the-gdth-driver.patch
gdth scsi driver update
-gregkh-usb-usb-zd1201-cleanups.patch
+gregkh-usb-usb-free-allocated-memory-on-io_edgeport-startup-memory-failure.patch
+gregkh-usb-usb-ehci-on-non-au1200-build-fix.patch
+gregkh-usb-usb-add-apple-macbook-product-ids-to-usbhid.patch
+gregkh-usb-usb-storage-unusual_devs-entry-for-nikon-dsc-d70s.patch
+gregkh-usb-uhci-various-updates.patch
+gregkh-usb-uhci-remove-hc_inaccessible-flag.patch
+gregkh-usb-uhci-improve-fsbr-off-timing.patch
USB tree updates
+x86_64-mm-x86_86-msi-miss-one-entry-handler.patch
+x86_64-mm-fall-back-to-old-style-call-trace-if-no-unwinding.patch
+x86_64-mm-allow-unwinder-to-build-without-module-support.patch
-x86_64-mm-spinlock-short.patch
+x86_64-mm-polling-thread-status.patch
-revert-x86_64-mm-spinlock-short.patch
x86_64 updates
+mm-x86_64-mm-polling-thread-status-fix.patch
Fix it.
+x86_64-setupc-print-cmp-related-boottime-information.patch
x86_64 diagnostic info
+zoned-vm-counters-per-zone-counter-functionality.patch
+zoned-vm-counters-per-zone-counter-functionality-tidy.patch
+zoned-vm-counters-per-zone-counter-functionality-fix.patch
+zoned-vm-counters-per-zone-counter-functionality-fix-fix.patch
+zoned-vm-counters-include-per-zone-counters-in-proc-vmstat.patch
+zoned-vm-counters-conversion-of-nr_mapped-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_pagecache-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_pagecache-to-per-zone-counter-fix.patch
+zoned-vm-counters-use-per-zone-counters-to-remove-zone_reclaim_interval.patch
+zoned-vm-counters-add-per-zone-counters-to-zone-node-and-global-vm-statistics.patch
+zoned-vm-counters-conversion-of-nr_slab-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_pagetable-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_dirty-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_writeback-to-per-zone-counter.patch
+zoned-vm-counters-conversion-of-nr_unstable-to-per-zone-counter.patch
+zoned-vm-counters-remove-unused-get_page_stat-functions.patch
+zoned-vm-counters-conversion-of-nr_bounce-to-per-zone-counter.patch
+zoned-vm-counters-remove-useless-writeback-structure.patch
+zoned-vm-stats-remove-nr_mapped-from-zone-reclaim.patch
+zoned-vm-stats-add-nr_anon.patch
+light-weight-counters-framework.patch
+light-weight-counters-framework-warning-fixes.patch
+light-weight-counters-framework-fix.patch
+light-weight-counters-framework-s390-fix.patch
+light-weight-counters-framework-s390-fix-fix.patch
+light-weight-counters-framework-s390-fix-fix-fix.patch
+light-weight-counters-framework-arm-fix.patch
+light-weight-counters-framework-uml-fix.patch
New way of accumulating VM metrics.
+vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2-revert-maxmem-change.patch
Revert stray hunk from the vdso patches
+add-__iowrite64_copy-s390-fix.patch
Fix add-__iowrite64_copy.patch
-allow-for-per-cpu-data-being-in-tdata-and-tbss-sections.patch
-allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-fix.patch
-allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-tidy.patch
Dropped
+add-driver-for-arm-amba-pl031-rtc-fix.patch
Fix rtc-subsystem-fix-capability-checks-in-kernel-interface.patch
+rtc-add-rtc_year_days-to-calculate-tm_yday.patch
+at91rm9200-rtc-driver.patch
+at91rm9200-rtc-driver-tidy.patch
More RTC driver work
+fix-broken-dubious-driver-suspend-methods.patch
+checkstack-pirnt-module-names.patch
+get-rid-of-proc-sys-proc.patch
+sound-vxpocket-fix-printk-warning.patch
+9pfs-missing-result-check-in-v9fs_vfs_readlink-and-v9fs_vfs_link.patch
+ext3-cleanup-dead-code-in-ext3_add_entry.patch
+n32-sigset-and-__compat_endian_swap__.patch
+ftruncate-does-not-always-update-m-ctime.patch
+wan-sdla-section-fixes.patch
+trident-fb-section-fixes.patch
+cdrom-mcdx-section-fixes.patch
+char-ip2-more-section-fixes-replacement.patch
+advansys-section-fixes.patch
+r3964-fix-gfp_kernel-allocations-in-timer-function.patch
Misc patches
+per-task-delay-accounting-delay-accounting-usage-of-taskstats-interface-fix-return-value-of-delayacct_add_tsk.patch
per-task accounting fix
+sched-mc-smt-power-savings-sched-policy-sparc64-build-fix.patch
CPU scheduler spacr64 build fix (might be wrong)
+swap_prefetch-conversion-of-nr_mapped-to-per-zone-counter.patch
+swap_prefetch-conversion-of-nr_slab-to-per-zone-counter.patch
+swap_prefetch-conversion-of-nr_dirty-to-per-zone-counter.patch
+swap_prefetch-conversion-of-nr_writeback-to-per-zone-counter.patch
+swap_prefetch-conversion-of-nr_unstable-to-per-zone-counter.patch
+swap_prefetch-remove-unused-get_page_stat-functions.patch
+zoned-vm-stats-nr_slab-is-accurate-fix-comment.patch
+swap_prefetch-zoned-vm-stats-add-nr_anon.patch
Update the swap prefetch patch for the zoned accounting patches
+namespaces-utsname-implement-utsname-namespaces-remove-unused-exit_utsname.patch
Clean up namespaces-utsname-implement-utsname-namespaces.patch
+ipc-namespace-core.patch
+ipc-namespace-core-fix.patch
+ipc-namespace-utils.patch
+ipc-namespace-msg.patch
+ipc-namespace-sem.patch
+ipc-namespace-shm.patch
+ipc-namespace-sysctls.patch
Separable namespaces for SYSV IPC
+readahead-state-based-method-routines-no-ra_flag_eof-on-single-page-file.patch
+readahead-initial-method-guiding-sizes-aggressive-initial-sizes.patch
+readahead-call-scheme-no-fastcall-for-readahead_cache_hit.patch
+readahead-backoff-on-i-o-error.patch
+readahead-remove-size-limit-on-read_ahead_kb.patch
Update the readahead patches in -mm.
+reiser4-conversion-of-nr_dirty-to-per-zone-counter.patch
Update reiser4 for the zoned accounting patches
+vt-binding-add-binding-unbinding-support-for-the-vt.patch
+vt-binding-add-sysfs-support.patch
+vt-binding-update-fbcon-to-support-binding.patch
+vt-binding-fbcon-update-documentation.patch
+vt-binding-add-new-doc-file-describing-the-feature.patch
fbcon feature work
+lock-validator-x86_64-irqflags-trace-entrys-fix-fix.patch
Fix lock-validator-x86_64-irqflags-trace-entrys-fix.patch
+lock-validator-annotate-ieee1394-skb-head-locking.patch
Prevent lockdep noise in 1394
+lock-validator-fix-sparc32-breakage.patch
lockdep sparc32 build fix
All 1569 patches:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/patch-list
^ permalink raw reply [flat|nested] 76+ messages in thread* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-10 10:23 ` Michal Piotrowski 2006-06-10 16:24 ` 2.6.16-rc6-mm2 Andrew Morton 2006-06-10 14:56 ` 2.6.16-rc6-mm2 Martin J. Bligh ` (5 subsequent siblings) 6 siblings, 1 reply; 76+ messages in thread From: Michal Piotrowski @ 2006-06-10 10:23 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel Hi, On 10/06/06, Andrew Morton <akpm@osdl.org> wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > I get a lot of "BUG: using smp_processor_id() in preemptible" Real Time Clock Driver v1.12ac printk: 22314 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: restorecon/393 caller is __handle_mm_fault+0x2b/0x20d [<c0103ba8>] show_trace+0xd/0xf [<c0103c7a>] dump_stack+0x17/0x19 [<c0203bcc>] debug_smp_processor_id+0x8c/0xa0 [<c0160e60>] __handle_mm_fault+0x2b/0x20d [<c0116f7b>] do_page_fault+0x226/0x61f [<c0103959>] error_code+0x39/0x40 Here is dmesg http://www.stardust.webpages.pl/files/mm/2.6.17-rc6-mm2/mm-dmesg Here is config http://www.stardust.webpages.pl/files/mm/2.6.17-rc6-mm2/mm-config Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 10:23 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-10 16:24 ` Andrew Morton 2006-06-10 16:43 ` 2.6.16-rc6-mm2 Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Andrew Morton @ 2006-06-10 16:24 UTC (permalink / raw) To: Michal Piotrowski; +Cc: linux-kernel, Christoph Lameter On Sat, 10 Jun 2006 12:23:37 +0200 "Michal Piotrowski" <michal.k.k.piotrowski@gmail.com> wrote: > On 10/06/06, Andrew Morton <akpm@osdl.org> wrote: > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > > > I get a lot of "BUG: using smp_processor_id() in preemptible" > > Real Time Clock Driver v1.12ac > printk: 22314 messages suppressed. > BUG: using smp_processor_id() in preemptible [00000001] code: restorecon/393 > caller is __handle_mm_fault+0x2b/0x20d > [<c0103ba8>] show_trace+0xd/0xf > [<c0103c7a>] dump_stack+0x17/0x19 > [<c0203bcc>] debug_smp_processor_id+0x8c/0xa0 > [<c0160e60>] __handle_mm_fault+0x2b/0x20d > [<c0116f7b>] do_page_fault+0x226/0x61f > [<c0103959>] error_code+0x39/0x40 You'll need to disable CONFIG_DEBUG_PREEMPT, sorry. Christoph, that is the last straw - I'll drop all these patches. There's a file in -mm Documentation/SubmitChecklist - please tape to to yor monitor. page-flags.h was an inappropriate place for that code. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:24 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-10 16:43 ` Christoph Lameter 2006-06-10 16:51 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-10 16:58 ` 2.6.16-rc6-mm2 Andrew Morton 0 siblings, 2 replies; 76+ messages in thread From: Christoph Lameter @ 2006-06-10 16:43 UTC (permalink / raw) To: Andrew Morton; +Cc: Michal Piotrowski, linux-kernel On Sat, 10 Jun 2006, Andrew Morton wrote: > You'll need to disable CONFIG_DEBUG_PREEMPT, sorry. > > Christoph, that is the last straw - I'll drop all these patches. There's a > file in -mm Documentation/SubmitChecklist - please tape to to yor monitor. Would it be possible only the drop the patchset that caused this? This seems to be caused by the event counters and not by the zoned VM counters. I intentially try to separate these two. There are numerous issues still to be resolved for the zoned VM counters. I listed some in the header. > page-flags.h was an inappropriate place for that code. You mean I should move all the vm counters into separate header and c file right? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:43 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 16:51 ` Christoph Lameter 2006-06-10 17:03 ` 2.6.16-rc6-mm2 Andrew Morton 2006-06-10 16:58 ` 2.6.16-rc6-mm2 Andrew Morton 1 sibling, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-10 16:51 UTC (permalink / raw) To: Andrew Morton; +Cc: Michal Piotrowski, linux-kernel On Sat, 10 Jun 2006, Christoph Lameter wrote: > This seems to be caused by the event counters and not by the zoned VM > counters. I intentially try to separate these two. There are numerous > issues still to be resolved for the zoned VM counters. I listed some in s/zoned/eventcounters/ yuck! ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:51 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 17:03 ` Andrew Morton 2006-06-10 18:04 ` 2.6.16-rc6-mm2 Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Andrew Morton @ 2006-06-10 17:03 UTC (permalink / raw) To: Christoph Lameter; +Cc: michal.k.k.piotrowski, linux-kernel I've placed a rollup of 2.6.17-rc6-mm2 minus the zoned-vm and eventcounter patches at http://www.zip.com.au/~akpm/linux/patches/stuff/cl.bz2 Patches against that would suit. I won't be in a position to do much merging or any testing for the next week, so no rush. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 17:03 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-10 18:04 ` Christoph Lameter 2006-06-10 18:14 ` 2.6.16-rc6-mm2 Michal Piotrowski 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-10 18:04 UTC (permalink / raw) To: Andrew Morton; +Cc: michal.k.k.piotrowski, linux-kernel On Sat, 10 Jun 2006, Andrew Morton wrote: > I've placed a rollup of 2.6.17-rc6-mm2 minus the zoned-vm and eventcounter > patches at Oh. So 2.6.17-rc6-mm2 is out with that counter patchset. If someone needs a fix then please try this patch that was posted last night. Seems that was too late for 2.6.17-rc6-mm2. light weight counters: race free through local_t One way of making the light weight counters race free for x86_64 and i386 is to use local_t. With that those two platforms are fine. However, the others fall back to atomic operations. Maybe we could deal with that on per platform basis? Some platforms may want to switch away from atomics to regular integers if preemption is not configured. Most commercial Linux distros ship with preempt off. So this would preserve the speed of light weight counters. Some of the potential races with just plain integers are not that good. F.e. if an integer is loaded via the per cpu area and then we switch to another processor. At that point the per cpu area changes. We may then increment the count from the old processor and store it to the counter of the new processor. Ick. Signed-off-by: Christoph Lameter <clameter@sgi.com> Index: linux-2.6.17-rc6-mm1/mm/page_alloc.c =================================================================== --- linux-2.6.17-rc6-mm1.orig/mm/page_alloc.c 2006-06-09 17:51:18.789713315 -0700 +++ linux-2.6.17-rc6-mm1/mm/page_alloc.c 2006-06-09 22:06:09.491210492 -0700 @@ -1583,7 +1583,7 @@ static void show_node(struct zone *zone) #endif #ifdef CONFIG_VM_EVENT_COUNTERS -DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; +DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{LOCAL_INIT(0)}}; static void sum_vm_events(unsigned long *ret, cpumask_t *cpumask) { @@ -1603,7 +1603,7 @@ static void sum_vm_events(unsigned long for (i=0; i< NR_VM_EVENT_ITEMS; i++) - ret[i] += this->event[i]; + ret[i] += local_read(&this->event[i]); } } @@ -2881,7 +2881,7 @@ static void vm_events_fold_cpu(int cpu) for (i = 0; i < NR_VM_EVENT_ITEMS; i++) { count_vm_events(i, fold_state->event[i]); - fold_state->event[i] = 0; + local_set(fold_state->event[i], 0); } } Index: linux-2.6.17-rc6-mm1/include/linux/page-flags.h =================================================================== --- linux-2.6.17-rc6-mm1.orig/include/linux/page-flags.h 2006-06-09 22:06:18.001424043 -0700 +++ linux-2.6.17-rc6-mm1/include/linux/page-flags.h 2006-06-09 22:29:48.581945624 -0700 @@ -8,7 +8,7 @@ #include <linux/percpu.h> #include <linux/cache.h> #include <linux/types.h> - +#include <asm/local.h> #include <asm/pgtable.h> /* @@ -108,10 +108,6 @@ /* * Light weight per cpu counter implementation. * - * Note that these can race. We do not bother to enable preemption - * or care about interrupt races. All we care about is to have some - * approximate count of events. - * * Counters should only be incremented and no critical kernel component * should rely on the counter values. * @@ -134,24 +130,24 @@ enum vm_event_item { PGPGIN, PGPGOUT, PS }; struct vm_event_state { - unsigned long event[NR_VM_EVENT_ITEMS]; + local_t event[NR_VM_EVENT_ITEMS]; }; DECLARE_PER_CPU(struct vm_event_state, vm_event_states); static inline unsigned long get_cpu_vm_events(enum vm_event_item item) { - return __get_cpu_var(vm_event_states).event[item]; + cpu_local_read(vm_event_states.event[item]); } static inline void count_vm_event(enum vm_event_item item) { - __get_cpu_var(vm_event_states).event[item]++; + cpu_local_inc(vm_event_states.event[item]); } static inline void count_vm_events(enum vm_event_item item, long delta) { - __get_cpu_var(vm_event_states).event[item] += delta; + cpu_local_add(delta, vm_event_states.event[item]); } extern void all_vm_events(unsigned long *); ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:04 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 18:14 ` Michal Piotrowski 2006-06-10 18:31 ` 2.6.16-rc6-mm2 Christoph Lameter [not found] ` <6bffcb0e0606101126v55cc20dbk275d8aa7fdcb0f1a@mail.gmail.com> 0 siblings, 2 replies; 76+ messages in thread From: Michal Piotrowski @ 2006-06-10 18:14 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel Hi Christoph On 10/06/06, Christoph Lameter <clameter@sgi.com> wrote: > On Sat, 10 Jun 2006, Andrew Morton wrote: > > > I've placed a rollup of 2.6.17-rc6-mm2 minus the zoned-vm and eventcounter > > patches at > > Oh. So 2.6.17-rc6-mm2 is out with that counter patchset. > > If someone needs a fix then please try this patch that was posted last > night. Seems that was too late for 2.6.17-rc6-mm2. > > [michal@ltg01-fedora linux-mm]$ cat ~/page_alloc.patch | patch -p1 --dry-run patching file mm/page_alloc.c Hunk #1 FAILED at 1583. Hunk #2 succeeded at 1604 (offset 1 line). 1 out of 3 hunks FAILED -- saving rejects to file mm/page_alloc.c.rej patching file include/linux/page-flags.h PITA for people that aren't kernel hackers. Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:14 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-10 18:31 ` Christoph Lameter 2006-06-10 18:35 ` 2.6.16-rc6-mm2 Michal Piotrowski 2006-06-12 11:05 ` 2.6.16-rc6-mm2 Ingo Molnar [not found] ` <6bffcb0e0606101126v55cc20dbk275d8aa7fdcb0f1a@mail.gmail.com> 1 sibling, 2 replies; 76+ messages in thread From: Christoph Lameter @ 2006-06-10 18:31 UTC (permalink / raw) To: Michal Piotrowski; +Cc: Andrew Morton, linux-kernel On Sat, 10 Jun 2006, Michal Piotrowski wrote: > [michal@ltg01-fedora linux-mm]$ cat ~/page_alloc.patch | patch -p1 --dry-run > patching file mm/page_alloc.c > Hunk #1 FAILED at 1583. > Hunk #2 succeeded at 1604 (offset 1 line). > 1 out of 3 hunks FAILED -- saving rejects to file mm/page_alloc.c.rej > patching file include/linux/page-flags.h > > PITA for people that aren't kernel hackers. Sorry that patch was still against mm1. Here is a fixed up version that applies cleanly against mm2: light weight counters: race free through local_t One way of making the light weight counters race free for x86_64 and i386 is to use local_t. With that those two platforms are fine. However, the others fall back to atomic operations. Maybe we could deal with that on per platform basis? Some platforms may want to switch away from atomics to regular integers if preemption is not configured. Most commercial Linux distros ship with preempt off. So this would preserve the speed of light weight counters. Some of the potential races with just plain integers are not that good. F.e. if an integer is loaded via the per cpu area and then we switch to another processor. At that point the per cpu area changes. We may then increment the count from the old processor and store it to the counter of the new processor. Ick. Signed-off-by: Christoph Lameter <clameter@sgi.com> Index: linux-2.6.17-rc6-mm2/mm/page_alloc.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/mm/page_alloc.c 2006-06-10 11:11:58.068665310 -0700 +++ linux-2.6.17-rc6-mm2/mm/page_alloc.c 2006-06-10 11:13:54.679609667 -0700 @@ -1583,7 +1583,7 @@ static void show_node(struct zone *zone) #endif #ifdef CONFIG_VM_EVENT_COUNTERS -DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; +DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{LOCAL_INIT(0)}}; EXPORT_PER_CPU_SYMBOL(vm_event_states); static void sum_vm_events(unsigned long *ret, cpumask_t *cpumask) @@ -1604,7 +1604,7 @@ static void sum_vm_events(unsigned long for (i=0; i< NR_VM_EVENT_ITEMS; i++) - ret[i] += this->event[i]; + ret[i] += local_read(&this->event[i]); } } @@ -2882,7 +2882,7 @@ static void vm_events_fold_cpu(int cpu) for (i = 0; i < NR_VM_EVENT_ITEMS; i++) { count_vm_events(i, fold_state->event[i]); - fold_state->event[i] = 0; + local_set(fold_state->event[i], 0); } } Index: linux-2.6.17-rc6-mm2/include/linux/page-flags.h =================================================================== --- linux-2.6.17-rc6-mm2.orig/include/linux/page-flags.h 2006-06-10 11:11:57.173212937 -0700 +++ linux-2.6.17-rc6-mm2/include/linux/page-flags.h 2006-06-10 11:14:23.596764624 -0700 @@ -8,7 +8,7 @@ #include <linux/percpu.h> #include <linux/cache.h> #include <linux/types.h> - +#include <asm/local.h> #include <asm/pgtable.h> /* @@ -108,10 +108,6 @@ /* * Light weight per cpu counter implementation. * - * Note that these can race. We do not bother to enable preemption - * or care about interrupt races. All we care about is to have some - * approximate count of events. - * * Counters should only be incremented and no critical kernel component * should rely on the counter values. * @@ -134,24 +130,24 @@ enum vm_event_item { PGPGIN, PGPGOUT, PS }; struct vm_event_state { - unsigned long event[NR_VM_EVENT_ITEMS]; + local_t event[NR_VM_EVENT_ITEMS]; }; DECLARE_PER_CPU(struct vm_event_state, vm_event_states); static inline unsigned long get_cpu_vm_events(enum vm_event_item item) { - return __get_cpu_var(vm_event_states).event[item]; + return cpu_local_read(vm_event_states.event[item]); } static inline void count_vm_event(enum vm_event_item item) { - __get_cpu_var(vm_event_states).event[item]++; + cpu_local_inc(vm_event_states.event[item]); } static inline void count_vm_events(enum vm_event_item item, long delta) { - __get_cpu_var(vm_event_states).event[item] += delta; + cpu_local_add(delta, vm_event_states.event[item]); } extern void all_vm_events(unsigned long *); ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:31 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 18:35 ` Michal Piotrowski 2006-06-12 11:05 ` 2.6.16-rc6-mm2 Ingo Molnar 1 sibling, 0 replies; 76+ messages in thread From: Michal Piotrowski @ 2006-06-10 18:35 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel On 10/06/06, Christoph Lameter <clameter@sgi.com> wrote: > On Sat, 10 Jun 2006, Michal Piotrowski wrote: > > [michal@ltg01-fedora linux-mm]$ cat ~/page_alloc.patch | patch -p1 --dry-run > > patching file mm/page_alloc.c > > Hunk #1 FAILED at 1583. > > Hunk #2 succeeded at 1604 (offset 1 line). > > 1 out of 3 hunks FAILED -- saving rejects to file mm/page_alloc.c.rej > > patching file include/linux/page-flags.h > > > > PITA for people that aren't kernel hackers. > > Sorry that patch was still against mm1. Here is a fixed up version that > applies cleanly against mm2: > Great, thanks! Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:31 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-10 18:35 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-12 11:05 ` Ingo Molnar 2006-06-12 11:48 ` 2.6.16-rc6-mm2 Ingo Molnar 2006-06-12 13:50 ` 2.6.16-rc6-mm2 Michal Piotrowski 1 sibling, 2 replies; 76+ messages in thread From: Ingo Molnar @ 2006-06-12 11:05 UTC (permalink / raw) To: Christoph Lameter; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel * Christoph Lameter <clameter@sgi.com> wrote: > Sorry that patch was still against mm1. Here is a fixed up version > that applies cleanly against mm2: i have applied both patches you sent in this thread but it still triggers tons of messages: printk: 104 messages suppressed. BUG: using smp_processor_id() in preemptible [00000001] code: distccd/9263 caller is __handle_mm_fault+0x58/0xd70 [<c0105d6f>] show_trace+0xd/0x10 [<c0105d89>] dump_stack+0x17/0x1a [<c0585ab4>] debug_smp_processor_id+0x88/0xa0 [<c016eb63>] __handle_mm_fault+0x58/0xd70 [<c110ff1c>] do_page_fault+0x2e5/0x672 [<c0104a69>] error_code+0x39/0x40 [<c110eade>] __kprobes_text_start+0x6/0x14 trying to fix it i realized that i'd have to touch tons of architectures, which all duplicate this piece of code: /* Use these for per-cpu local_t variables: on some archs they are * much more efficient than these naive implementations. Note they take * a variable, not an address. */ #define cpu_local_read(v) local_read(&__get_cpu_var(v)) #define cpu_local_set(v, i) local_set(&__get_cpu_var(v), (i)) #define cpu_local_inc(v) local_inc(&__get_cpu_var(v)) #define cpu_local_dec(v) local_dec(&__get_cpu_var(v)) #define cpu_local_add(i, v) local_add((i), &__get_cpu_var(v)) #define cpu_local_sub(i, v) local_sub((i), &__get_cpu_var(v)) #define __cpu_local_inc(v) cpu_local_inc(v) #define __cpu_local_dec(v) cpu_local_dec(v) #define __cpu_local_add(i, v) cpu_local_add((i), (v)) #define __cpu_local_sub(i, v) cpu_local_sub((i), (v)) that code must all be consolidated into a header in asm-generic, so that the per-arch file only implements _truly_ per-arch logic. Ingo ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 11:05 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-12 11:48 ` Ingo Molnar 2006-06-12 12:14 ` 2.6.16-rc6-mm2 Andi Kleen 2006-06-12 16:37 ` broken local_t on i386 Christoph Lameter 2006-06-12 13:50 ` 2.6.16-rc6-mm2 Michal Piotrowski 1 sibling, 2 replies; 76+ messages in thread From: Ingo Molnar @ 2006-06-12 11:48 UTC (permalink / raw) To: Christoph Lameter; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel * Ingo Molnar <mingo@elte.hu> wrote: > > * Christoph Lameter <clameter@sgi.com> wrote: > > > Sorry that patch was still against mm1. Here is a fixed up version > > that applies cleanly against mm2: > > i have applied both patches you sent in this thread but it still > triggers tons of messages: > trying to fix it i realized that i'd have to touch tons of > architectures, which all duplicate this piece of code: below is an updated patch that includes fixups for i386 - but the real fix should be to properly reduce the per-arch local.h footprint to the bare minimum possible, and to do this fix on the asm-generic headers. Ingo --- include/asm-generic/local.h | 20 ++++++++++---------- include/asm-i386/local.h | 25 ++++++++++++++----------- include/linux/page-flags.h | 14 +++++--------- mm/page_alloc.c | 8 ++++---- 4 files changed, 33 insertions(+), 34 deletions(-) Index: linux/include/asm-generic/local.h =================================================================== --- linux.orig/include/asm-generic/local.h +++ linux/include/asm-generic/local.h @@ -44,19 +44,19 @@ typedef struct * much more efficient than these naive implementations. Note they take * a variable (eg. mystruct.foo), not an address. */ -#define cpu_local_read(v) local_read(&__get_cpu_var(v)) -#define cpu_local_set(v, i) local_set(&__get_cpu_var(v), (i)) -#define cpu_local_inc(v) local_inc(&__get_cpu_var(v)) -#define cpu_local_dec(v) local_dec(&__get_cpu_var(v)) -#define cpu_local_add(i, v) local_add((i), &__get_cpu_var(v)) -#define cpu_local_sub(i, v) local_sub((i), &__get_cpu_var(v)) +#define cpu_local_read(v) local_read(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_set(v, i) local_set(&per_cpu(v, raw_smp_processor_id()), (i)) +#define cpu_local_inc(v) local_inc(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_dec(v) local_dec(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_add(i, v) local_add((i), &per_cpu(v, raw_smp_processor_id())) +#define cpu_local_sub(i, v) local_sub((i), &per_cpu(v, raw_smp_processor_id())) /* Non-atomic increments, ie. preemption disabled and won't be touched * in interrupt, etc. Some archs can optimize this case well. */ -#define __cpu_local_inc(v) __local_inc(&__get_cpu_var(v)) -#define __cpu_local_dec(v) __local_dec(&__get_cpu_var(v)) -#define __cpu_local_add(i, v) __local_add((i), &__get_cpu_var(v)) -#define __cpu_local_sub(i, v) __local_sub((i), &__get_cpu_var(v)) +#define __cpu_local_inc(v) __local_inc(&per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_dec(v) __local_dec(&per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_add(i, v) __local_add((i), &per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_sub(i, v) __local_sub((i), &per_cpu(v, raw_smp_processor_id())) #endif /* _ASM_GENERIC_LOCAL_H */ Index: linux/include/asm-i386/local.h =================================================================== --- linux.orig/include/asm-i386/local.h +++ linux/include/asm-i386/local.h @@ -53,18 +53,21 @@ static __inline__ void local_sub(long i, /* Use these for per-cpu local_t variables: on some archs they are * much more efficient than these naive implementations. Note they take - * a variable, not an address. + * a variable (eg. mystruct.foo), not an address. */ -#define cpu_local_read(v) local_read(&__get_cpu_var(v)) -#define cpu_local_set(v, i) local_set(&__get_cpu_var(v), (i)) -#define cpu_local_inc(v) local_inc(&__get_cpu_var(v)) -#define cpu_local_dec(v) local_dec(&__get_cpu_var(v)) -#define cpu_local_add(i, v) local_add((i), &__get_cpu_var(v)) -#define cpu_local_sub(i, v) local_sub((i), &__get_cpu_var(v)) +#define cpu_local_read(v) local_read(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_set(v, i) local_set(&per_cpu(v, raw_smp_processor_id()), (i)) +#define cpu_local_inc(v) local_inc(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_dec(v) local_dec(&per_cpu(v, raw_smp_processor_id())) +#define cpu_local_add(i, v) local_add((i), &per_cpu(v, raw_smp_processor_id())) +#define cpu_local_sub(i, v) local_sub((i), &per_cpu(v, raw_smp_processor_id())) -#define __cpu_local_inc(v) cpu_local_inc(v) -#define __cpu_local_dec(v) cpu_local_dec(v) -#define __cpu_local_add(i, v) cpu_local_add((i), (v)) -#define __cpu_local_sub(i, v) cpu_local_sub((i), (v)) +/* Non-atomic increments, ie. preemption disabled and won't be touched + * in interrupt, etc. Some archs can optimize this case well. + */ +#define __cpu_local_inc(v) __local_inc(&per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_dec(v) __local_dec(&per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_add(i, v) __local_add((i), &per_cpu(v, raw_smp_processor_id())) +#define __cpu_local_sub(i, v) __local_sub((i), &per_cpu(v, raw_smp_processor_id())) #endif /* _ARCH_I386_LOCAL_H */ Index: linux/include/linux/page-flags.h =================================================================== --- linux.orig/include/linux/page-flags.h +++ linux/include/linux/page-flags.h @@ -8,7 +8,7 @@ #include <linux/percpu.h> #include <linux/cache.h> #include <linux/types.h> - +#include <asm/local.h> #include <asm/pgtable.h> /* @@ -108,10 +108,6 @@ /* * Light weight per cpu counter implementation. * - * Note that these can race. We do not bother to enable preemption - * or care about interrupt races. All we care about is to have some - * approximate count of events. - * * Counters should only be incremented and no critical kernel component * should rely on the counter values. * @@ -134,24 +130,24 @@ enum vm_event_item { PGPGIN, PGPGOUT, PS }; struct vm_event_state { - unsigned long event[NR_VM_EVENT_ITEMS]; + local_t event[NR_VM_EVENT_ITEMS]; }; DECLARE_PER_CPU(struct vm_event_state, vm_event_states); static inline unsigned long get_cpu_vm_events(enum vm_event_item item) { - return __get_cpu_var(vm_event_states).event[item]; + return cpu_local_read(vm_event_states.event[item]); } static inline void count_vm_event(enum vm_event_item item) { - __get_cpu_var(vm_event_states).event[item]++; + cpu_local_inc(vm_event_states.event[item]); } static inline void count_vm_events(enum vm_event_item item, long delta) { - __get_cpu_var(vm_event_states).event[item] += delta; + cpu_local_add(delta, vm_event_states.event[item]); } extern void all_vm_events(unsigned long *); Index: linux/mm/page_alloc.c =================================================================== --- linux.orig/mm/page_alloc.c +++ linux/mm/page_alloc.c @@ -1583,7 +1583,7 @@ static void show_node(struct zone *zone) #endif #ifdef CONFIG_VM_EVENT_COUNTERS -DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; +DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{LOCAL_INIT(0)}}; EXPORT_PER_CPU_SYMBOL(vm_event_states); static void sum_vm_events(unsigned long *ret, cpumask_t *cpumask) @@ -1604,7 +1604,7 @@ static void sum_vm_events(unsigned long for (i=0; i< NR_VM_EVENT_ITEMS; i++) - ret[i] += this->event[i]; + ret[i] += local_read(&this->event[i]); } } @@ -2881,8 +2881,8 @@ static void vm_events_fold_cpu(int cpu) int i; for (i = 0; i < NR_VM_EVENT_ITEMS; i++) { - count_vm_events(i, fold_state->event[i]); - fold_state->event[i] = 0; + count_vm_events(i, local_read(&fold_state->event[i])); + local_set(&fold_state->event[i], 0); } } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 11:48 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-12 12:14 ` Andi Kleen 2006-06-12 13:07 ` 2.6.16-rc6-mm2 Ingo Molnar 2006-06-13 3:28 ` 2.6.16-rc6-mm2 Keith Owens 2006-06-12 16:37 ` broken local_t on i386 Christoph Lameter 1 sibling, 2 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-12 12:14 UTC (permalink / raw) To: Ingo Molnar; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel Ingo Molnar <mingo@elte.hu> writes: > * Ingo Molnar <mingo@elte.hu> wrote: > > > > > * Christoph Lameter <clameter@sgi.com> wrote: > > > > > Sorry that patch was still against mm1. Here is a fixed up version > > > that applies cleanly against mm2: > > > > i have applied both patches you sent in this thread but it still > > triggers tons of messages: > > > trying to fix it i realized that i'd have to touch tons of > > architectures, which all duplicate this piece of code: > > below is an updated patch that includes fixups for i386 - but the real > fix should be to properly reduce the per-arch local.h footprint to the > bare minimum possible, and to do this fix on the asm-generic headers. I think an even better approach would be to use local_save_flags() / local_restore_flags () and then use a normal increment and get rid of smp_processor_id completely. I've never seen any evidence that the complex and bloated code generated by this is any better that just enabling/disabling interrupts. In the x86 world P4 has costly cli/sti, but I wouldn't expect that problem to be very widespread. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 12:14 ` 2.6.16-rc6-mm2 Andi Kleen @ 2006-06-12 13:07 ` Ingo Molnar 2006-06-12 13:41 ` 2.6.16-rc6-mm2 Andi Kleen 2006-06-13 3:28 ` 2.6.16-rc6-mm2 Keith Owens 1 sibling, 1 reply; 76+ messages in thread From: Ingo Molnar @ 2006-06-12 13:07 UTC (permalink / raw) To: Andi Kleen; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel * Andi Kleen <ak@suse.de> wrote: > > below is an updated patch that includes fixups for i386 - but the real > > fix should be to properly reduce the per-arch local.h footprint to the > > bare minimum possible, and to do this fix on the asm-generic headers. > > I think an even better approach would be to use local_save_flags() / > local_restore_flags () and then use a normal increment and get rid of > smp_processor_id completely. local_irq_save()/local_irq_restore() you must have meant :-) > I've never seen any evidence that the complex and bloated code > generated by this is any better that just enabling/disabling > interrupts. > > In the x86 world P4 has costly cli/sti, but I wouldn't expect that > problem to be very widespread. i think you are right - but if someone goes the trouble of implementing per-arch support for local increments then i'm not against it. (except if the generated code is grossly inefficient) There are architectures where cli/sti hurts alot. In any case, on x86 we should switch to a cli/sti implementation indeed - it will quite likely have alot smaller footprint than __per_cpu_offset based approaches. Although on x86_64 we'd probably be pretty OK if all per-cpu variables were in the PDA and were thus at a constant %gs-relative offset. But for now we only have data_offset in the PDA so there's one more unnecessary indirection. Ingo ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 13:07 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-12 13:41 ` Andi Kleen 0 siblings, 0 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-12 13:41 UTC (permalink / raw) To: Ingo Molnar; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel > i think you are right - but if someone goes the trouble of implementing > per-arch support for local increments then i'm not against it. (except > if the generated code is grossly inefficient) There are architectures > where cli/sti hurts alot. I was refering to asm-generic/local.h > > In any case, on x86 we should switch to a cli/sti implementation indeed x86 doesn't need it IMHO - as long as the RMW is atomic as seen by the local CPU it's ok to use a stale per CPU variable here. So using raw_smp_processor_id() for this is ok. > > Although on x86_64 we'd probably be pretty OK if all per-cpu variables > were in the PDA and were thus at a constant %gs-relative offset. But for > now we only have data_offset in the PDA so there's one more unnecessary > indirection. I looked at this some time ago. The problem is that it would require new relocation types implemented in the assembler/linker. So I kept the current implementation. But even the current code is ok because the access is atomic towards the local CPU. If it's out of date by two cycles on preempt it doesn't matter much. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 12:14 ` 2.6.16-rc6-mm2 Andi Kleen 2006-06-12 13:07 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-13 3:28 ` Keith Owens 2006-06-13 4:56 ` 2.6.16-rc6-mm2 Andi Kleen 1 sibling, 1 reply; 76+ messages in thread From: Keith Owens @ 2006-06-13 3:28 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel Andi Kleen (on 12 Jun 2006 14:14:09 +0200) wrote: >Ingo Molnar <mingo@elte.hu> writes: > >> * Ingo Molnar <mingo@elte.hu> wrote: >> >> > >> > * Christoph Lameter <clameter@sgi.com> wrote: >> > >> > > Sorry that patch was still against mm1. Here is a fixed up version >> > > that applies cleanly against mm2: >> > >> > i have applied both patches you sent in this thread but it still >> > triggers tons of messages: >> >> > trying to fix it i realized that i'd have to touch tons of >> > architectures, which all duplicate this piece of code: >> >> below is an updated patch that includes fixups for i386 - but the real >> fix should be to properly reduce the per-arch local.h footprint to the >> bare minimum possible, and to do this fix on the asm-generic headers. > >I think an even better approach would be to use local_save_flags() / >local_restore_flags () and then use a normal increment and get >rid of smp_processor_id completely. > >I've never seen any evidence that the complex and bloated code generated by >this is any better that just enabling/disabling interrupts. > >In the x86 world P4 has costly cli/sti, but I wouldn't expect >that problem to be very widespread. I have previously suggested a lightweight solution that pins a process to a cpu for the short duration that it accesses cpu local variables. http://lkml.org/lkml/2005/12/16/2. Time to revistit that option? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 3:28 ` 2.6.16-rc6-mm2 Keith Owens @ 2006-06-13 4:56 ` Andi Kleen 2006-06-13 5:08 ` 2.6.16-rc6-mm2 Keith Owens 0 siblings, 1 reply; 76+ messages in thread From: Andi Kleen @ 2006-06-13 4:56 UTC (permalink / raw) To: Keith Owens; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel > I have previously suggested a lightweight solution that pins a process > to a cpu That is preempt_disable()/preempt_enable() effectively It's also light weight as much as these things can be. -Andi (who idly wonders if the P4 designers ever realized what software wrenches they caused with their performance choices for some instructions) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 4:56 ` 2.6.16-rc6-mm2 Andi Kleen @ 2006-06-13 5:08 ` Keith Owens 2006-06-13 5:18 ` 2.6.16-rc6-mm2 Andi Kleen 2006-06-13 11:45 ` 2.6.16-rc6-mm2 Andrew Morton 0 siblings, 2 replies; 76+ messages in thread From: Keith Owens @ 2006-06-13 5:08 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote: > >> I have previously suggested a lightweight solution that pins a process >> to a cpu > >That is preempt_disable()/preempt_enable() effectively >It's also light weight as much as these things can be. The difference being that preempt_disable() does not allow the code to sleep. There are some places where we want to use cpu local data and the code can tolerate preemption and even sleeping, as long as the process schedules back on the same cpu. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 5:08 ` 2.6.16-rc6-mm2 Keith Owens @ 2006-06-13 5:18 ` Andi Kleen 2006-06-13 5:43 ` 2.6.16-rc6-mm2 Nick Piggin 2006-06-13 11:45 ` 2.6.16-rc6-mm2 Andrew Morton 1 sibling, 1 reply; 76+ messages in thread From: Andi Kleen @ 2006-06-13 5:18 UTC (permalink / raw) To: Keith Owens; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Tuesday 13 June 2006 07:08, Keith Owens wrote: > Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote: > > > >> I have previously suggested a lightweight solution that pins a process > >> to a cpu > > > >That is preempt_disable()/preempt_enable() effectively > >It's also light weight as much as these things can be. > > The difference being that preempt_disable() does not allow the code to > sleep. There are some places where we want to use cpu local data > and > the code can tolerate preemption and even sleeping, as long as the > process schedules back on the same cpu. Seems like a pretty obscure case to optimize for. Anyways if you want to do that you can always do disable_preempt(); set thread affinity mask to current cpu enable_preempt(); do weird stuff and sleep ... ; restore affinity mask Can any of these people proposing "solutions" in this thread demonstrate this stuff is actually performance critical? -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 5:18 ` 2.6.16-rc6-mm2 Andi Kleen @ 2006-06-13 5:43 ` Nick Piggin 2006-06-13 5:48 ` 2.6.16-rc6-mm2 Andi Kleen 0 siblings, 1 reply; 76+ messages in thread From: Nick Piggin @ 2006-06-13 5:43 UTC (permalink / raw) To: Andi Kleen Cc: Keith Owens, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel Andi Kleen wrote: > On Tuesday 13 June 2006 07:08, Keith Owens wrote: > >>Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote: >> >>>>I have previously suggested a lightweight solution that pins a process >>>>to a cpu >>> >>>That is preempt_disable()/preempt_enable() effectively >>>It's also light weight as much as these things can be. >> >>The difference being that preempt_disable() does not allow the code to >>sleep. There are some places where we want to use cpu local data >>and >>the code can tolerate preemption and even sleeping, as long as the >>process schedules back on the same cpu. > > > Seems like a pretty obscure case to optimize for. > > Anyways if you want to do that you can always do > > disable_preempt(); > set thread affinity mask to current cpu > enable_preempt(); > do weird stuff and sleep ... ; > restore affinity mask > > Can any of these people proposing "solutions" in this thread > demonstrate this stuff is actually performance critical? You can't do this in general, because CPU hotplug will reset the affinity mask if the CPU is unplugged. I'd just say: don't do that. However you can get some similar functionality by putting stuff in task_struct. -- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 5:43 ` 2.6.16-rc6-mm2 Nick Piggin @ 2006-06-13 5:48 ` Andi Kleen 0 siblings, 0 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-13 5:48 UTC (permalink / raw) To: Nick Piggin Cc: Keith Owens, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel > You can't do this in general, because CPU hotplug will reset the > affinity mask if the CPU is unplugged. I'd just say: don't do that. Good point. > > However you can get some similar functionality by putting stuff in > task_struct. Or better don't do it at all. per cpu data and sleeping just doesn't mix. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 5:08 ` 2.6.16-rc6-mm2 Keith Owens 2006-06-13 5:18 ` 2.6.16-rc6-mm2 Andi Kleen @ 2006-06-13 11:45 ` Andrew Morton 2006-06-13 12:41 ` 2.6.16-rc6-mm2 Keith Owens 1 sibling, 1 reply; 76+ messages in thread From: Andrew Morton @ 2006-06-13 11:45 UTC (permalink / raw) To: Keith Owens; +Cc: ak, mingo, michal.k.k.piotrowski, linux-kernel On Tue, 13 Jun 2006 15:08:40 +1000 Keith Owens <kaos@sgi.com> wrote: > Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote: > > > >> I have previously suggested a lightweight solution that pins a process > >> to a cpu > > > >That is preempt_disable()/preempt_enable() effectively > >It's also light weight as much as these things can be. > > The difference being that preempt_disable() does not allow the code to > sleep. There are some places where we want to use cpu local data and > the code can tolerate preemption and even sleeping, as long as the > process schedules back on the same cpu. It would be easy to use this mechanism wrongly: thread 1 on CPU N thread 2 on CPU N foo = per_cpu(...) <preempt> foo = per_cpu(...); foo++; per_cpu(...) = foo; <unpreempt> foo++; per_cpu(...) = foo; // whoops In which scenarios did you envisage it being used? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 11:45 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-13 12:41 ` Keith Owens 0 siblings, 0 replies; 76+ messages in thread From: Keith Owens @ 2006-06-13 12:41 UTC (permalink / raw) To: Andrew Morton; +Cc: ak, mingo, michal.k.k.piotrowski, linux-kernel Andrew Morton (on Tue, 13 Jun 2006 04:45:32 -0700) wrote: >On Tue, 13 Jun 2006 15:08:40 +1000 >Keith Owens <kaos@sgi.com> wrote: > >> Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote: >> > >> >> I have previously suggested a lightweight solution that pins a process >> >> to a cpu >> > >> >That is preempt_disable()/preempt_enable() effectively >> >It's also light weight as much as these things can be. >> >> The difference being that preempt_disable() does not allow the code to >> sleep. There are some places where we want to use cpu local data and >> the code can tolerate preemption and even sleeping, as long as the >> process schedules back on the same cpu. > >It would be easy to use this mechanism wrongly: Agreed. > thread 1 on CPU N thread 2 on CPU N > > foo = per_cpu(...) > <preempt> > foo = per_cpu(...); > foo++; > per_cpu(...) = foo; > <unpreempt> > foo++; > per_cpu(...) = foo; // whoops > > >In which scenarios did you envisage it being used? There are not many scenarios where this makes any sense. One is where the code is working on a collection of related cpu data and the whole collection is protected by a per cpu mutex. Taking the mutex stops your race. I doubt if we have any code like that yet. The other possibility is to allow work to preempt the current process while it spins in udelay(). This is a problem on systems that use the cycle counter (TSC, ITC) and different cpus run at different rates. See http://marc.theaimsgroup.com/?l=linux-ia64&m=113460274218885&w=2 I am not going to be too persistent about this facility. If it seems too risky or of too little use, then forget it. ^ permalink raw reply [flat|nested] 76+ messages in thread
* broken local_t on i386 2006-06-12 11:48 ` 2.6.16-rc6-mm2 Ingo Molnar 2006-06-12 12:14 ` 2.6.16-rc6-mm2 Andi Kleen @ 2006-06-12 16:37 ` Christoph Lameter 2006-06-12 16:48 ` Andi Kleen 1 sibling, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 16:37 UTC (permalink / raw) To: Ingo Molnar; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel, ak On Mon, 12 Jun 2006, Ingo Molnar wrote: > below is an updated patch that includes fixups for i386 - but the real > fix should be to properly reduce the per-arch local.h footprint to the > bare minimum possible, and to do this fix on the asm-generic headers. Nak. This is simply evidence of local.t breakage on i386. One cannot calculate the address of a per cpu area and then increment without disabling preemption. The process may have been moved to another processor between those two operations and will then increment the event counter of the former processor (which in turn may at the same time increment the same counter). The inc is not atomic in the sense that it syncs multiple processors. So we will have the race back. The increment must occur directly through the atomic-vs-interrupt dec/inc on the local per cpu area *without* any use of *_smp_processor_id(). As far as I can see x86_64 does the right thing and it increments on the local per cpu area. The definition of __get_cpu_var is: #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) i386 uses the asm-generic/percpu.h but provides its own implementation of local.t. That simply cannot work. i386 must provide a definition of __get_per_var that increments directly on the variable in the local per cpu area. The definition for __get_cpu_var in asm-generic/percpu.h is: #define __get_cpu_var(var) per_cpu(var, smp_processor_id()) This breaks the cpu_* operations for local.t on i386. Also we have various forms of __raw_get_cpu_var() around. Is there any reason for their existence. The presence of these shows the assumption that one can determine the current processor id and then index into an array of per cpu areas. That is not possible with preemption enabled. In the absence of a race free __get_cpu_var() i386 would need to fall back to atomic ops by using asm-generic/local.t. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 16:37 ` broken local_t on i386 Christoph Lameter @ 2006-06-12 16:48 ` Andi Kleen 2006-06-12 16:54 ` Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Andi Kleen @ 2006-06-12 16:48 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 18:37, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Ingo Molnar wrote: > > > below is an updated patch that includes fixups for i386 - but the real > > fix should be to properly reduce the per-arch local.h footprint to the > > bare minimum possible, and to do this fix on the asm-generic headers. > > Nak. This is simply evidence of local.t breakage on i386. One cannot > calculate the address of a per cpu area and then increment without > disabling preemption. The process may have been moved to another processor > between those two operations and will then increment the event counter of > the former processor (which in turn may at the same time increment the > same counter). The inc is not atomic in the sense that it syncs multiple > processors. So we will have the race back. True - i forgot that race. > The increment must occur directly through the atomic-vs-interrupt dec/inc > on the local per cpu area *without* any use of *_smp_processor_id(). > > As far as I can see x86_64 does the right thing and it increments on the > local per cpu area. The definition of __get_cpu_var is: > > #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) It is also affected by your race. The inc would only be atomic if the counter was in the PDA, but standard per cpu data isn't. So it has to follow a pointer and then it could already have switched. [I think Ingo stated this earlier, but I didn't get -- sorry] Fix would be to disable preemption. I don't think it needs cli/sti on non preemptible kernels. > i386 uses the asm-generic/percpu.h but provides its own > implementation of local.t. That simply cannot work. i386 > must provide a definition of __get_per_var that increments directly > on the variable in the local per cpu area. > > The definition for __get_cpu_var in asm-generic/percpu.h is: > > #define __get_cpu_var(var) per_cpu(var, smp_processor_id()) > > This breaks the cpu_* operations for local.t on i386. > > Also we have various forms of __raw_get_cpu_var() around. Is there any > reason for their existence. The presence of these shows the assumption > that one can determine the current processor id and then index into an > array of per cpu areas. That is not possible with preemption enabled. > > In the absence of a race free __get_cpu_var() i386 would need to fall > back to atomic ops by using asm-generic/local.t. Or just disable preemption? -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 16:48 ` Andi Kleen @ 2006-06-12 16:54 ` Christoph Lameter 2006-06-12 17:06 ` Andi Kleen 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 16:54 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > > #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) > > It is also affected by your race. The inc would only be atomic if the counter > was in the PDA, but standard per cpu data isn't. So it has to follow > a pointer and then it could already have switched. I thought the above would refer to a PDA memory area that is specially mapped by each processor? That is the only thing that would get this working right because we would map to a different PDA if the process would be mapped to a different processor. > Fix would be to disable preemption. I don't think it needs cli/sti > on non preemptible kernels. Yuck. The advantage of local.t was that it does not need any of these tricks. What is the point of local.t if one needs to disable preemption? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 16:54 ` Christoph Lameter @ 2006-06-12 17:06 ` Andi Kleen 2006-06-12 17:11 ` Christoph Lameter ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-12 17:06 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 18:54, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > > > #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) > > > > It is also affected by your race. The inc would only be atomic if the counter > > was in the PDA, but standard per cpu data isn't. So it has to follow > > a pointer and then it could already have switched. > > I thought the above would refer to a PDA memory area that is specially > mapped by each processor? That is the only thing that would get this > working right because we would map to a different PDA if the process > would be mapped to a different processor. It does, but the per cpu data that everybody uses doesn't reside in the PDA because it wasn't possible to make this work with binutils It would require a relocation relative to another symbol which isn't really supported. At some point I considered using runtime patching to work around this limitation, but it would be some work and relatively complex. So the PDA just contains a pointer to the real per CPU area and it's added. Unfortunately it's three instructions or so and not atomic (mov, add, reference) > > > Fix would be to disable preemption. I don't think it needs cli/sti > > on non preemptible kernels. > > Yuck. The advantage of local.t was that it does not need any of these > tricks. What is the point of local.t if one needs to disable preemption? No atomic operations. Preemption just requires to increase a counter in thread info. Also on non preemptive kernels - which are the majority - it's a single instruction on x86. I guess preempt users can live with a bit more overhead ... -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:06 ` Andi Kleen @ 2006-06-12 17:11 ` Christoph Lameter 2006-06-12 17:29 ` Andi Kleen 2006-06-12 18:14 ` Lee Revell 2006-06-12 18:27 ` Christoph Lameter 2 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 17:11 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > Also on non preemptive kernels - which are the majority - it's a single > instruction on x86. I guess preempt users can live with a bit more > overhead ... I hope you will be fixing the cpu_local_* macros for i386 and x86_64 and add some appropriate docs? Are there any existing uses in the kernel? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:11 ` Christoph Lameter @ 2006-06-12 17:29 ` Andi Kleen 0 siblings, 0 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-12 17:29 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 19:11, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > Also on non preemptive kernels - which are the majority - it's a single > > instruction on x86. I guess preempt users can live with a bit more > > overhead ... > > I hope you will be fixing the cpu_local_* macros for i386 and x86_64 Yes I will disable preemption. > and add some appropriate docs? What docs? I don't have plan to write any for this. > Are there any existing uses in the kernel? There aren't. Another way would be to just remove them for now and readd in a fixed version if needed. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:06 ` Andi Kleen 2006-06-12 17:11 ` Christoph Lameter @ 2006-06-12 18:14 ` Lee Revell 2006-06-12 18:46 ` Alan Cox 2006-06-12 18:27 ` Christoph Lameter 2 siblings, 1 reply; 76+ messages in thread From: Lee Revell @ 2006-06-12 18:14 UTC (permalink / raw) To: Andi Kleen Cc: Christoph Lameter, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 2006-06-12 at 19:06 +0200, Andi Kleen wrote: > Also on non preemptive kernels - which are the majority - it's a > single instruction on x86. I guess preempt users can live with a bit > more overhead ... I don't think that's the case anymore. Ubuntu is the #1 distro and the latest release ships with preemption enabled. Lee ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:14 ` Lee Revell @ 2006-06-12 18:46 ` Alan Cox 0 siblings, 0 replies; 76+ messages in thread From: Alan Cox @ 2006-06-12 18:46 UTC (permalink / raw) To: Lee Revell Cc: Andi Kleen, Christoph Lameter, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel Ar Llu, 2006-06-12 am 14:14 -0400, ysgrifennodd Lee Revell: > I don't think that's the case anymore. Ubuntu is the #1 distro and the > latest release ships with preemption enabled. I'd love to know how anyone measured that (or indeed any other similar xyz distro or xyz freely distributable relicable product) Perhaps the new Ubuntu super-army can fix or extend binutils to handle the needed relocations if they want extra performance on pre-emption kernels ? Alan ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:06 ` Andi Kleen 2006-06-12 17:11 ` Christoph Lameter 2006-06-12 18:14 ` Lee Revell @ 2006-06-12 18:27 ` Christoph Lameter 2006-06-12 17:35 ` Andi Kleen 2 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 18:27 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > It does, but the per cpu data that everybody uses doesn't reside in the PDA > because it wasn't possible to make this work with binutils > > It would require a relocation relative to another symbol which isn't > really supported. I dont think you need a relocation relative to another symbol. Map the pda to a virtual adress range. That is then translated with a processor specific page table to various physical addresses. > At some point I considered using runtime patching to work around > this limitation, but it would be some work and relatively complex. Well this would drastically decreased the overhead for PDA access and fix local.t ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:27 ` Christoph Lameter @ 2006-06-12 17:35 ` Andi Kleen 2006-06-12 18:42 ` Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Andi Kleen @ 2006-06-12 17:35 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 20:27, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > It does, but the per cpu data that everybody uses doesn't reside in the > > PDA because it wasn't possible to make this work with binutils > > > > It would require a relocation relative to another symbol which isn't > > really supported. > > I dont think you need a relocation relative to another symbol. Map the > pda to a virtual adress range. That is then translated with a > processor specific page table to various physical addresses. Per processor page tables are not really practical on x86-64. They would get really messy because you would need to duplicate the top level of the page tables per CPU. > > > At some point I considered using runtime patching to work around > > this limitation, but it would be some work and relatively complex. > > Well this would drastically decreased the overhead for PDA access and fix > local.t Saving two instructions? And PDA is usually in L1. I doubt you could benchmark a difference. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:35 ` Andi Kleen @ 2006-06-12 18:42 ` Christoph Lameter 2006-06-12 17:55 ` Andi Kleen 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 18:42 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > Saving two instructions? And PDA is usually in L1. I doubt you could benchmark > a difference. The two instructions occur over and over again for each PDA reference. And then there are now two more instruction for disabling preempt and reenabling preempt. A simple dec/inc <absolute location> would be nicely suitable for inlining per processor counters. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:42 ` Christoph Lameter @ 2006-06-12 17:55 ` Andi Kleen 2006-06-12 18:59 ` Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Andi Kleen @ 2006-06-12 17:55 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 20:42, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > Saving two instructions? And PDA is usually in L1. I doubt you could > > benchmark a difference. > > The two instructions occur over and over again for each PDA reference. And > then there are now two more instruction for disabling preempt and > reenabling preempt. Only for those who set CONFIG_OVERHEAD > A simple dec/inc <absolute location> would be nicely suitable for > inlining per processor counters. Possible, but is it worth reinventing the linker? -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 17:55 ` Andi Kleen @ 2006-06-12 18:59 ` Christoph Lameter 2006-06-12 18:11 ` Andi Kleen 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 18:59 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > Possible, but is it worth reinventing the linker? How would that work? IMHO The linker cannot help with virtual to physical address translations. A linker that will link per processor would be amazing. What happens if the process is rescheduled? We dynamically relink to the new processor? I thought you had some funky segment registers on i386 and x86_64. Cant they be switched on context switch? If an inc/dec could work relative to those then you would not need a virtual mapping. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:59 ` Christoph Lameter @ 2006-06-12 18:11 ` Andi Kleen 2006-06-12 19:15 ` Christoph Lameter 2006-06-12 20:12 ` Alan Cox 0 siblings, 2 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-12 18:11 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 20:59, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > Possible, but is it worth reinventing the linker? > > How would that work? Either changing the linker and telling everybody to upgrade or writing a mini linker that works at kernel boot time. Upgrading binutils is imho not acceptable and doing the runtime relocation would be a lot of code for questionable gain. > IMHO The linker cannot help with virtual to physical address translations. > A linker that will link per processor would be amazing. What happens if > the process is rescheduled? We dynamically relink to the new processor? > > I thought you had some funky segment registers on i386 and x86_64. Cant > they be switched on context switch? If an inc/dec could work relative to > those then you would not need a virtual mapping. The segment register needs an offset. So you need the linker to generate the offset from the base of the per cpu segment somehow. At compile time the address is not known so it cannot be done then. To work around this we do it at runtime. User space TLS has some specialized relocations for this, but they are so hack^wspecialized that they are not usable for the kernel. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:11 ` Andi Kleen @ 2006-06-12 19:15 ` Christoph Lameter 2006-06-13 3:36 ` Andi Kleen 2006-06-12 20:12 ` Alan Cox 1 sibling, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 19:15 UTC (permalink / raw) To: Andi Kleen; +Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Mon, 12 Jun 2006, Andi Kleen wrote: > > I thought you had some funky segment registers on i386 and x86_64. Cant > > they be switched on context switch? If an inc/dec could work relative to > > those then you would not need a virtual mapping. > > The segment register needs an offset. So you need the linker to generate > the offset from the base of the per cpu segment somehow. At compile time the > address is not known so it cannot be done then. Define something like a big struct and use offsetof? So the compiler is not able to generate an offset to the beginning of a data segment? ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 19:15 ` Christoph Lameter @ 2006-06-13 3:36 ` Andi Kleen 0 siblings, 0 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-13 3:36 UTC (permalink / raw) To: Christoph Lameter Cc: Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 21:15, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > > > I thought you had some funky segment registers on i386 and x86_64. Cant > > > they be switched on context switch? If an inc/dec could work relative to > > > those then you would not need a virtual mapping. > > > > The segment register needs an offset. So you need the linker to generate > > the offset from the base of the per cpu segment somehow. At compile time the > > address is not known so it cannot be done then. > > Define something like a big struct and use offsetof? That is how the basic architecture specific PDA works (asm/pda.h) But i don't see a good way to define a big struct for asm/percpu.h Preprocessing would be too slow and getting all people to put their per CPU variables into a single header also doesn't seem like a good idea. > > So the compiler is not able to generate an offset to the beginning of a > data segment? It's an assembler/linker issue. -Andi (who is really surprised people make such a big deal out of two instructions) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 18:11 ` Andi Kleen 2006-06-12 19:15 ` Christoph Lameter @ 2006-06-12 20:12 ` Alan Cox 2006-06-13 4:02 ` Andi Kleen 1 sibling, 1 reply; 76+ messages in thread From: Alan Cox @ 2006-06-12 20:12 UTC (permalink / raw) To: Andi Kleen Cc: Christoph Lameter, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel Ar Llu, 2006-06-12 am 20:11 +0200, ysgrifennodd Andi Kleen: > The segment register needs an offset. So you need the linker to generate > the offset from the base of the per cpu segment somehow. At compile time the > address is not known so it cannot be done then. What happens if you put a section at zero and a section at non-fixed address (aligned). In the asm macros you stick the variable in both, using the zero based one for linker symbols and the non zero based one for data, then discard the zero based one. That used to work for old binutils which didn't care/spot if you were discarding material you actually linked against. Not sure what todays binutils does with it. Alan ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: broken local_t on i386 2006-06-12 20:12 ` Alan Cox @ 2006-06-13 4:02 ` Andi Kleen 0 siblings, 0 replies; 76+ messages in thread From: Andi Kleen @ 2006-06-13 4:02 UTC (permalink / raw) To: Alan Cox Cc: Christoph Lameter, Ingo Molnar, Michal Piotrowski, Andrew Morton, linux-kernel On Monday 12 June 2006 22:12, Alan Cox wrote: > Ar Llu, 2006-06-12 am 20:11 +0200, ysgrifennodd Andi Kleen: > > The segment register needs an offset. So you need the linker to generate > > the offset from the base of the per cpu segment somehow. At compile time the > > address is not known so it cannot be done then. > > What happens if you put a section at zero and a section at non-fixed > address (aligned). In the asm macros you stick the variable in both, > using the zero based one for linker symbols and the non zero based one > for data, then discard the zero based one. Interesting idea. Maybe it'll work. > That used to work for old binutils which didn't care/spot if you were > discarding material you actually linked against. Not sure what todays > binutils does with it. AFAIK it warns at least. Might get noisy. -Andi ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 11:05 ` 2.6.16-rc6-mm2 Ingo Molnar 2006-06-12 11:48 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-12 13:50 ` Michal Piotrowski 2006-06-12 14:20 ` 2.6.16-rc6-mm2 Ingo Molnar 1 sibling, 1 reply; 76+ messages in thread From: Michal Piotrowski @ 2006-06-12 13:50 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel Hi Ingo, On 12/06/06, Ingo Molnar <mingo@elte.hu> wrote: > > * Christoph Lameter <clameter@sgi.com> wrote: > > > Sorry that patch was still against mm1. Here is a fixed up version > > that applies cleanly against mm2: > > i have applied both patches you sent in this thread but it still > triggers tons of messages: > > printk: 104 messages suppressed. > BUG: using smp_processor_id() in preemptible [00000001] code: distccd/9263 > caller is __handle_mm_fault+0x58/0xd70 > [<c0105d6f>] show_trace+0xd/0x10 > [<c0105d89>] dump_stack+0x17/0x1a > [<c0585ab4>] debug_smp_processor_id+0x88/0xa0 > [<c016eb63>] __handle_mm_fault+0x58/0xd70 > [<c110ff1c>] do_page_fault+0x2e5/0x672 > [<c0104a69>] error_code+0x39/0x40 > [<c110eade>] __kprobes_text_start+0x6/0x14 > > trying to fix it i realized that i'd have to touch tons of > architectures, which all duplicate this piece of code: > > /* Use these for per-cpu local_t variables: on some archs they are > * much more efficient than these naive implementations. Note they take > * a variable, not an address. > */ > #define cpu_local_read(v) local_read(&__get_cpu_var(v)) > #define cpu_local_set(v, i) local_set(&__get_cpu_var(v), (i)) > #define cpu_local_inc(v) local_inc(&__get_cpu_var(v)) > #define cpu_local_dec(v) local_dec(&__get_cpu_var(v)) > #define cpu_local_add(i, v) local_add((i), &__get_cpu_var(v)) > #define cpu_local_sub(i, v) local_sub((i), &__get_cpu_var(v)) > > #define __cpu_local_inc(v) cpu_local_inc(v) > #define __cpu_local_dec(v) cpu_local_dec(v) > #define __cpu_local_add(i, v) cpu_local_add((i), (v)) > #define __cpu_local_sub(i, v) cpu_local_sub((i), (v)) > > that code must all be consolidated into a header in asm-generic, so that > the per-arch file only implements _truly_ per-arch logic. I just tried your latest lockdep-combo-2.6.17-rc6-mm2 patch, and I get many warnings WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko needs unknown symbol down_write WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko needs unknown symbol up_write WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko needs unknown symbol down_read WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko needs unknown symbol up_read WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/oss/snd-mixer-oss.ko needs unknown symbol down_read WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/oss/snd-mixer-oss.ko needs unknown symbol up_read WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/seq/snd-seq.ko needs unknown symbol down_write > > Ingo > Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 13:50 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-12 14:20 ` Ingo Molnar 2006-06-12 14:57 ` 2.6.16-rc6-mm2 Michal Piotrowski 0 siblings, 1 reply; 76+ messages in thread From: Ingo Molnar @ 2006-06-12 14:20 UTC (permalink / raw) To: Michal Piotrowski; +Cc: linux-kernel * Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote: > I just tried your latest lockdep-combo-2.6.17-rc6-mm2 patch, and I get > many warnings > > WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko > needs unknown symbol down_write ok, i have uploaded a new version - does that work any better? Ingo ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 14:20 ` 2.6.16-rc6-mm2 Ingo Molnar @ 2006-06-12 14:57 ` Michal Piotrowski 0 siblings, 0 replies; 76+ messages in thread From: Michal Piotrowski @ 2006-06-12 14:57 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel Ingo Molnar napisał(a): > * Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote: > >> I just tried your latest lockdep-combo-2.6.17-rc6-mm2 patch, and I get >> many warnings >> >> WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/sound/core/snd-pcm.ko >> needs unknown symbol down_write > > ok, i have uploaded a new version - does that work any better? > > Ingo > Yes, thanks. I forgot about this WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/fs/ntfs/ntfs.ko needs unknown symbol lockdep_on WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/fs/ntfs/ntfs.ko needs unknown symbol lockdep_off WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/fs/ntfs/ntfs.ko needs unknown symbol lockdep_on WARNING: /lib/modules/2.6.17-rc6-mm2-lockdep/kernel/fs/ntfs/ntfs.ko needs unknown symbol lockdep_off Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> ---- diff -uprN -X linux-mm/Documentation/dontdiff linux-mm-clean/kernel/lockdep.c linux-mm/kernel/lockdep.c --- linux-mm-clean/kernel/lockdep.c 2006-06-12 16:50:02.000000000 +0200 +++ linux-mm/kernel/lockdep.c 2006-06-12 16:46:42.000000000 +0200 @@ -130,11 +130,15 @@ void lockdep_off(void) current->lockdep_recursion++; } +EXPORT_SYMBOL(lockdep_off); + void lockdep_on(void) { current->lockdep_recursion--; } +EXPORT_SYMBOL(lockdep_on); + /* * Debugging switches: */ ^ permalink raw reply [flat|nested] 76+ messages in thread
[parent not found: <6bffcb0e0606101126v55cc20dbk275d8aa7fdcb0f1a@mail.gmail.com>]
* Re: 2.6.16-rc6-mm2 [not found] ` <6bffcb0e0606101126v55cc20dbk275d8aa7fdcb0f1a@mail.gmail.com> @ 2006-06-10 18:36 ` Christoph Lameter 2006-06-10 19:08 ` 2.6.16-rc6-mm2 Michal Piotrowski 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-10 18:36 UTC (permalink / raw) To: Michal Piotrowski; +Cc: Andrew Morton, linux-kernel On Sat, 10 Jun 2006, Michal Piotrowski wrote: > And I get this error > /usr/src/linux-mm/mm/page_alloc.c: In function 'vm_events_fold_cpu': > /usr/src/linux-mm/mm/page_alloc.c:2885: error: incompatible type for > argument 2 of 'count_vm_events' > /usr/src/linux-mm/mm/page_alloc.c:2886: error: invalid type argument of '->' > make[2]: *** [mm/page_alloc.o] B??d 1 > make[1]: *** [mm] B??d 2 > make: *** [_all] B??d 2 > > As I said - pain in the ass for people that aren't kernel hackers. Hmmm. That is hotplug which I cannot enable on ia64. I checked this by moving the #ifdef CONFIG_HOTPLUG Index: linux-2.6.17-rc6-mm2/mm/page_alloc.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/mm/page_alloc.c 2006-06-10 11:30:44.560354535 -0700 +++ linux-2.6.17-rc6-mm2/mm/page_alloc.c 2006-06-10 11:34:22.213840263 -0700 @@ -2881,8 +2881,8 @@ static void vm_events_fold_cpu(int cpu) int i; for (i = 0; i < NR_VM_EVENT_ITEMS; i++) { - count_vm_events(i, fold_state->event[i]); - local_set(fold_state->event[i], 0); + count_vm_events(i, local_read(&fold_state->event[i])); + local_set(&fold_state->event[i], 0); } } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:36 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 19:08 ` Michal Piotrowski 0 siblings, 0 replies; 76+ messages in thread From: Michal Piotrowski @ 2006-06-10 19:08 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel On 10/06/06, Christoph Lameter <clameter@sgi.com> wrote: > On Sat, 10 Jun 2006, Michal Piotrowski wrote: > > > And I get this error > > /usr/src/linux-mm/mm/page_alloc.c: In function 'vm_events_fold_cpu': > > /usr/src/linux-mm/mm/page_alloc.c:2885: error: incompatible type for > > argument 2 of 'count_vm_events' > > /usr/src/linux-mm/mm/page_alloc.c:2886: error: invalid type argument of '->' > > make[2]: *** [mm/page_alloc.o] B??d 1 > > make[1]: *** [mm] B??d 2 > > make: *** [_all] B??d 2 > > > > As I said - pain in the ass for people that aren't kernel hackers. > > Hmmm. That is hotplug which I cannot enable on ia64. I checked this by > moving the #ifdef CONFIG_HOTPLUG > Thanks! Now everything builds, works fine. Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:43 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-10 16:51 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-10 16:58 ` Andrew Morton 1 sibling, 0 replies; 76+ messages in thread From: Andrew Morton @ 2006-06-10 16:58 UTC (permalink / raw) To: Christoph Lameter; +Cc: michal.k.k.piotrowski, linux-kernel On Sat, 10 Jun 2006 09:43:49 -0700 (PDT) Christoph Lameter <clameter@sgi.com> wrote: > On Sat, 10 Jun 2006, Andrew Morton wrote: > > > You'll need to disable CONFIG_DEBUG_PREEMPT, sorry. > > > > Christoph, that is the last straw - I'll drop all these patches. There's a > > file in -mm Documentation/SubmitChecklist - please tape to to yor monitor. > > Would it be possible only the drop the patchset that caused this? We need to move things aroind between files anyway - it's best that I drop everything so it can all be refactored. Please keep the same breakup (patch swap_prefetch.c separately, reiser4 as well). Also, it's really preferable that the kernel compile and work at each step of the series. V1 didn't come close. So the series needs significant restructuring. > This seems to be caused by the event counters and not by the zoned VM > counters. I intentially try to separate these two. There are numerous > issues still to be resolved for the zoned VM counters. I listed some in > the header. > > > page-flags.h was an inappropriate place for that code. > > You mean I should move all the vm counters into separate header and c file > right? That would be nice. I was worried about fixing the per-cpu errors in page-flags.h because that adds lots of include dependencies and we'd probably introduce build breakage. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton 2006-06-10 10:23 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-10 14:56 ` Martin J. Bligh 2006-06-10 16:43 ` 2.6.16-rc6-mm2 Andrew Morton 2006-06-10 16:18 ` 2.6.16-rc6-mm2 Dominik Karall ` (4 subsequent siblings) 6 siblings, 1 reply; 76+ messages in thread From: Martin J. Bligh @ 2006-06-10 14:56 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, linuxppc64-dev Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > > - Added the s390 git tree to the -mm lineup, as git-s390.patch (Martin > Schwidefsky) > > - ppc64 (on mac g5) fails to boot for me, due to changes in the powerpc tree. Doesn't even build here. arch/powerpc/platforms/built-in.o(.text+0x1053c): In function `.scanlog_read': : undefined reference to `.rtas_extended_busy_delay_time' Config: http://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/abat/p570 or http://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/abat/power4 The non-PPC64 machines seem to have done a clean run for the first time in a while ... yay! M. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 14:56 ` 2.6.16-rc6-mm2 Martin J. Bligh @ 2006-06-10 16:43 ` Andrew Morton 0 siblings, 0 replies; 76+ messages in thread From: Andrew Morton @ 2006-06-10 16:43 UTC (permalink / raw) To: Martin J. Bligh Cc: linux-kernel, linuxppc64-dev, Paul Mackerras, Benjamin Herrenschmidt On Sat, 10 Jun 2006 07:56:33 -0700 "Martin J. Bligh" <mbligh@mbligh.org> wrote: > Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > > > > > - Added the s390 git tree to the -mm lineup, as git-s390.patch (Martin > > Schwidefsky) > > > > - ppc64 (on mac g5) fails to boot for me, due to changes in the powerpc tree. > > Doesn't even build here. > > arch/powerpc/platforms/built-in.o(.text+0x1053c): In function > `.scanlog_read': > : undefined reference to `.rtas_extended_busy_delay_time' > > Config: > http://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/abat/p570 > or > http://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/abat/power4 > Yes, the gremlins seems to have got at the powerpc tree. > > The non-PPC64 machines seem to have done a clean run for the first time > in a while ... yay! That is good, thanks. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton 2006-06-10 10:23 ` 2.6.16-rc6-mm2 Michal Piotrowski 2006-06-10 14:56 ` 2.6.16-rc6-mm2 Martin J. Bligh @ 2006-06-10 16:18 ` Dominik Karall 2006-06-10 16:25 ` 2.6.16-rc6-mm2 Michal Piotrowski 2006-06-12 16:56 ` 2.6.16-rc6-mm2 Zan Lynx ` (3 subsequent siblings) 6 siblings, 1 reply; 76+ messages in thread From: Dominik Karall @ 2006-06-10 16:18 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel On Saturday, 10. June 2006 06:40, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.1 >7-rc6/2.6.17-rc6-mm2/ Hi Andrew! 2.6.17-rc6-mm2 and -mm1 don't boot on my amd64 machine. When I select the kernel in grub my computer reboots. config, cpuinfo and lspci can be found at: http://stud4.tuwien.ac.at/~e0227135/kernel/ hth, dominik ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:18 ` 2.6.16-rc6-mm2 Dominik Karall @ 2006-06-10 16:25 ` Michal Piotrowski 2006-06-10 17:42 ` 2.6.16-rc6-mm2 Dominik Karall 0 siblings, 1 reply; 76+ messages in thread From: Michal Piotrowski @ 2006-06-10 16:25 UTC (permalink / raw) To: Dominik Karall; +Cc: Andrew Morton, linux-kernel On 10/06/06, Dominik Karall <dominik.karall@gmx.net> wrote: > On Saturday, 10. June 2006 06:40, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.1 > >7-rc6/2.6.17-rc6-mm2/ > > Hi Andrew! > > 2.6.17-rc6-mm2 and -mm1 don't boot on my amd64 machine. When I select > the kernel in grub my computer reboots. > > config, cpuinfo and lspci can be found at: > http://stud4.tuwien.ac.at/~e0227135/kernel/ Please try to disable SMP and PREEMPT. > > hth, > dominik Regards, Michal -- Michal K. K. Piotrowski LTG - Linux Testers Group (http://www.stardust.webpages.pl/ltg/wiki/) ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 16:25 ` 2.6.16-rc6-mm2 Michal Piotrowski @ 2006-06-10 17:42 ` Dominik Karall 2006-06-10 18:43 ` 2.6.16-rc6-mm2 Rafael J. Wysocki 0 siblings, 1 reply; 76+ messages in thread From: Dominik Karall @ 2006-06-10 17:42 UTC (permalink / raw) To: Michal Piotrowski; +Cc: Andrew Morton, linux-kernel On Saturday, 10. June 2006 18:25, Michal Piotrowski wrote: > On 10/06/06, Dominik Karall <dominik.karall@gmx.net> wrote: > > On Saturday, 10. June 2006 06:40, Andrew Morton wrote: > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2 > > >.6.1 7-rc6/2.6.17-rc6-mm2/ > > > > Hi Andrew! > > > > 2.6.17-rc6-mm2 and -mm1 don't boot on my amd64 machine. When I > > select the kernel in grub my computer reboots. > > > > config, cpuinfo and lspci can be found at: > > http://stud4.tuwien.ac.at/~e0227135/kernel/ > > Please try to disable SMP and PREEMPT. Thanks! 2.6.17-rc6-mm2 boots fine withouth SMP and PREEMPT. thx, dominik ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 17:42 ` 2.6.16-rc6-mm2 Dominik Karall @ 2006-06-10 18:43 ` Rafael J. Wysocki 2006-06-11 10:17 ` 2.6.16-rc6-mm2 Jan Engelhardt 0 siblings, 1 reply; 76+ messages in thread From: Rafael J. Wysocki @ 2006-06-10 18:43 UTC (permalink / raw) To: Dominik Karall; +Cc: Michal Piotrowski, Andrew Morton, linux-kernel On Saturday 10 June 2006 19:42, Dominik Karall wrote: > On Saturday, 10. June 2006 18:25, Michal Piotrowski wrote: > > On 10/06/06, Dominik Karall <dominik.karall@gmx.net> wrote: > > > On Saturday, 10. June 2006 06:40, Andrew Morton wrote: > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2 > > > >.6.1 7-rc6/2.6.17-rc6-mm2/ > > > > > > Hi Andrew! > > > > > > 2.6.17-rc6-mm2 and -mm1 don't boot on my amd64 machine. When I > > > select the kernel in grub my computer reboots. > > > > > > config, cpuinfo and lspci can be found at: > > > http://stud4.tuwien.ac.at/~e0227135/kernel/ > > > > Please try to disable SMP and PREEMPT. > > Thanks! 2.6.17-rc6-mm2 boots fine withouth SMP and PREEMPT. s/rc6/rc7/ FYI, on my AMD64 box it works just fine with PREEMPT (still without SMP). Greetings, Rafael ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 18:43 ` 2.6.16-rc6-mm2 Rafael J. Wysocki @ 2006-06-11 10:17 ` Jan Engelhardt 2006-06-11 10:58 ` 2.6.16-rc6-mm2 Rafael J. Wysocki 0 siblings, 1 reply; 76+ messages in thread From: Jan Engelhardt @ 2006-06-11 10:17 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Dominik Karall, Michal Piotrowski, Andrew Morton, linux-kernel >> >> Thanks! 2.6.17-rc6-mm2 boots fine withouth SMP and PREEMPT. >s/rc6/rc7/ > There's already a 2.6.17-rc7? $ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.17-rc7.tar.bz2 No such file `linux-2.6.17-rc7.tar.bz2'. Jan Engelhardt -- ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-11 10:17 ` 2.6.16-rc6-mm2 Jan Engelhardt @ 2006-06-11 10:58 ` Rafael J. Wysocki 0 siblings, 0 replies; 76+ messages in thread From: Rafael J. Wysocki @ 2006-06-11 10:58 UTC (permalink / raw) To: Jan Engelhardt Cc: Dominik Karall, Michal Piotrowski, Andrew Morton, linux-kernel On Sunday 11 June 2006 12:17, Jan Engelhardt wrote: > >> > >> Thanks! 2.6.17-rc6-mm2 boots fine withouth SMP and PREEMPT. > >s/rc6/rc7/ > > > There's already a 2.6.17-rc7? No, sorry. :-) Greetings, Rafael ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton ` (2 preceding siblings ...) 2006-06-10 16:18 ` 2.6.16-rc6-mm2 Dominik Karall @ 2006-06-12 16:56 ` Zan Lynx 2006-06-12 17:35 ` 2.6.16-rc6-mm2 Cedric Le Goater ` (2 subsequent siblings) 6 siblings, 0 replies; 76+ messages in thread From: Zan Lynx @ 2006-06-12 16:56 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel [-- Attachment #1: Type: text/plain, Size: 1177 bytes --] On Fri, 2006-06-09 at 21:40 -0700, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ I don't think I saw this bug caught by anyone yet. I was getting segmentation faults in modpost while building out of tree modules. I'm pretty sure the code should look like the following patch. Otherwise, it makes modname look like "vmlinux\tEXPORT_SYMBOL" which then fails badly later on. --- linux/scripts/mod/modpost.c.orig 2006-06-12 10:21:10.000000000 -0600 +++ linux/scripts/mod/modpost.c 2006-06-12 10:16:01.000000000 -0600 @@ -1290,8 +1290,10 @@ static void read_dump(const char *fname, goto fail; *modname++ = '\0'; if (!(export = strchr(modname, '\t'))) - *export++ = '\0'; - + goto fail; + *export++ = '\0'; + if (strchr(export, '\t')) + goto fail; crc = strtoul(line, &d, 16); if (*symname == '\0' || *modname == '\0' || *d != '\0') goto fail; -- Zan Lynx <zlynx@acm.org> [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton ` (3 preceding siblings ...) 2006-06-12 16:56 ` 2.6.16-rc6-mm2 Zan Lynx @ 2006-06-12 17:35 ` Cedric Le Goater 2006-06-12 22:16 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-12 18:19 ` 2.6.16-rc6-mm2 Badari Pulavarty 2006-06-12 22:09 ` 2.6.16-rc6-mm2 Steve Fox 6 siblings, 1 reply; 76+ messages in thread From: Cedric Le Goater @ 2006-06-12 17:35 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel [-- Attachment #1: Type: text/plain, Size: 2396 bytes --] Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ I got a oops : Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b PGD 13d6c7067 PUD 13de23067 PMD 0 Oops: 0000 [1] SMP last sysfs file: /class/vc/vcsa4/dev CPU 0 Modules linked in: autofs4 nfs lockd sunrpc joydev sony_acpi button battery ac uhci_hcd ehci_hcd tg3 sg ext3 jbd ata_piix libataPid: 2409, comm: rpciod/0 Not tainted 2.6.17-rc6-mm2 #1 RIP: 0010:[<ffffffff8025b017>] [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP: 0018:ffff81013f2c3da8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff81013d09d570 RCX: 0000000000000206 RDX: ffff810001029260 RSI: 0000000000000007 RDI: 0000000000000000 RBP: ffff81013f2c3dd8 R08: 0000000300000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: ffff81013f57e338 R13: ffff81013f57e340 R14: 0000000000000287 R15: ffff81013f57e340 FS: 0000000000000000(0000) GS:ffffffff807f9000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 0000000000000007 CR3: 000000013d143000 CR4: 00000000000006e0 Process rpciod/0 (pid: 2409, threadinfo ffff81013f2c2000, task ffff8101406e2080) Stack: ffff81013f2c3dd8 ffffffff880eab1b 0000000000000000 ffff81013f57e340 ffff81013f57e410 0000000000000000 ffff81013f2c3df8 ffffffff880a5a51 ffff81013f57e340 ffff81013f57e340 Call Trace: [<ffffffff880eab1b>] :nfs:nfs_commit_done+0x188/0x196 [<ffffffff880a5a51>] :sunrpc:rpc_exit_task+0x2a/0x6c [<ffffffff880a5f98>] :sunrpc:__rpc_execute+0x99/0x1e0 [<ffffffff880a60e8>] :sunrpc:rpc_async_schedule+0x9/0xb [<ffffffff8023c72e>] run_workqueue+0xa8/0xef [<ffffffff880a60df>] :sunrpc:rpc_async_schedule+0x0/0xb [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023c871>] worker_thread+0xfc/0x12f [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023f92c>] kthread+0xd0/0xfc [<ffffffff8020a33a>] child_rip+0x8/0x12 [<ffffffff8023f85c>] kthread+0x0/0xfc [<ffffffff8020a332>] child_rip+0x0/0x12 Code: 48 0f b6 47 07 48 89 e5 4c 8b 0c c5 80 2b 80 80 9c 41 58 fa RIP [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP <ffff81013f2c3da8> CR2: 0000000000000007 dmesg and config follow. thanks, C. [-- Attachment #2: 2.6.17-rc6-mm2.dmesg --] [-- Type: text/plain, Size: 15382 bytes --] ogoMIPS (lpj=11201315) CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 3 CPU: Processor Core ID: 0 CPU1: Thermal monitoring enabled (TM1) Intel(R) Xeon(TM) CPU 2.80GHz stepping 01 APIC error on CPU1: 00(40) lockdep: not fixing up alternatives. Booting processor 2/4 APIC 0x1 Initializing CPU#2 lockdep: disabled NMI watchdog. Calibrating delay using timer specific routine.. 5600.60 BogoMIPS (lpj=11201218) CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU2: Thermal monitoring enabled (TM1) Intel(R) Xeon(TM) CPU 2.80GHz stepping 01 APIC error on CPU2: 00(40) lockdep: not fixing up alternatives. Booting processor 3/4 APIC 0x7 Initializing CPU#3 lockdep: disabled NMI watchdog. Calibrating delay using timer specific routine.. 5600.77 BogoMIPS (lpj=11201543) CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 3 CPU: Processor Core ID: 0 CPU3: Thermal monitoring enabled (TM1) Intel(R) Xeon(TM) CPU 2.80GHz stepping 01 APIC error on CPU3: 00(40) Brought up 4 CPUs time.c: Using 3.579545 MHz WALL PM GTOD PIT/TSC timer. time.c: Detected 2800.169 MHz processor. migration_cost=3,866 checking if image is initramfs... it is Freeing initrd memory: 868k freed NET: Registered protocol family 16 ACPI: bus type pci registered PCI: BIOS Bug: MCFG area is not E820-reserved PCI: Not using MMCONFIG. PCI: Using configuration type 1 ACPI: Subsystem revision 20060310 ACPI: Interpreter enabled ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (0000:00) PCI: Probing PCI hardware (bus 00) PCI quirk: region 0580-05ff claimed by ICH4 ACPI/GPIO/TCO PCI quirk: region 0400-043f claimed by ICH4 GPIO PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.2 PCI: PXH quirk detected, disabling MSI for SHPC device PCI: PXH quirk detected, disabling MSI for SHPC device Boot video device is 0000:01:01.0 PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI4.PCI2._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI4.PCI3._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIS._PRT] ACPI: PCI Interrupt Link [LP00] (IRQs *11) ACPI: PCI Interrupt Link [LP01] (IRQs *3) ACPI Warning (pci_link-0117): Blank IRQ resource [20060310] ACPI Error (pci_link-0162): Resource is not an IRQ entry [20060310] ACPI: PCI Interrupt Link [LP02] (IRQs) *0, disabled. ACPI: PCI Interrupt Link [LP03] (IRQs *3) ACPI Warning (pci_link-0117): Blank IRQ resource [20060310] ACPI Error (pci_link-0162): Resource is not an IRQ entry [20060310] ACPI: PCI Interrupt Link [LP04] (IRQs) *0, disabled. ACPI Warning (pci_link-0117): Blank IRQ resource [20060310] ACPI Error (pci_link-0162): Resource is not an IRQ entry [20060310] ACPI: PCI Interrupt Link [LP05] (IRQs) *0, disabled. ACPI Warning (pci_link-0117): Blank IRQ resource [20060310] ACPI Error (pci_link-0162): Resource is not an IRQ entry [20060310] ACPI: PCI Interrupt Link [LP06] (IRQs) *0, disabled. ACPI: PCI Interrupt Link [LP07] (IRQs *5) SCSI subsystem initialized usbcore: registered new driver usbfs usbcore: registered new driver hub PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report PCI: Cannot allocate resource region 1 of device 0000:00:00.0 PCI-GART: No AMD northbridge found. PCI: Bridge: 0000:00:02.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:03:00.0 IO window: 4000-4fff MEM window: dd000000-deffffff PREFETCH window: df000000-df0fffff PCI: Bridge: 0000:03:00.2 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:04.0 IO window: 4000-4fff MEM window: dd000000-deffffff PREFETCH window: df000000-df0fffff PCI: Bridge: 0000:00:06.0 IO window: disabled. MEM window: db000000-dcffffff PREFETCH window: disabled. PCI: Bridge: 0000:00:07.0 IO window: 5000-ffff MEM window: d9000000-daffffff PREFETCH window: disabled. PCI: Bridge: 0000:00:1e.0 IO window: 3000-3fff MEM window: f8000000-f8ffffff PREFETCH window: f0000000-f7ffffff ACPI (acpi_bus-0192): Device [PCI1] is not power manageable [20060310] GSI 16 sharing vector 0xA9 and IRQ 16 ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:02.0 to 64 ACPI (acpi_bus-0192): Device [PCI4] is not power manageable [20060310] ACPI: PCI Interrupt 0000:00:04.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:04.0 to 64 ACPI (acpi_bus-0192): Device [PCI2] is not power manageable [20060310] PCI: Setting latency timer of device 0000:03:00.0 to 64 ACPI (acpi_bus-0192): Device [PCI3] is not power manageable [20060310] PCI: Setting latency timer of device 0000:03:00.2 to 64 ACPI (acpi_bus-0192): Device [PCI5] is not power manageable [20060310] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:06.0 to 64 ACPI (acpi_bus-0192): Device [PCI6] is not power manageable [20060310] ACPI: PCI Interrupt 0000:00:07.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:07.0 to 64 PCI: Setting latency timer of device 0000:00:1e.0 to 64 NET: Registered protocol family 2 IP route cache hash table entries: 262144 (order: 9, 2097152 bytes) TCP established hash table entries: 131072 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 9, 2097152 bytes) TCP: Hash tables configured (established 131072 bind 65536) TCP reno registered audit: initializing netlink socket (disabled) audit(1150129903.284:1): initialized Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 512 (order 0, 4096 bytes) Initializing Cryptographic API io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Real Time Clock Driver v1.12ac Linux agpgart interface v0.101 (c) Dave Jones ipmi message handler version 39.0 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Probing IDE interface ide0... hda: HL-DT-STDVD-ROM GDR8083N, ATAPI CD/DVD-ROM drive ide1: I/O resource 0x170-0x177 not free. ide1: ports already in use, skipping probe ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: ATAPI 24X DVD-ROM drive, 256kB Cache Uniform CD-ROM driver Revision: 3.20 Fusion MPT base driver 3.03.09 Copyright (c) 1999-2005 LSI Logic Corporation Fusion MPT SPI Host driver 3.03.09 GSI 17 sharing vector 0xB1 and IRQ 17 ACPI: PCI Interrupt 0000:04:01.0[A] -> GSI 28 (level, low) -> IRQ 177 mptbase: Initiating ioc0 bringup ioc0: 53C1030: Capabilities={Initiator} scsi0 : ioc0: LSI53C1030, FwRev=01032821h, Ports=1, MaxQ=222, IRQ=177 Vendor: IBM-ESXS Model: MAT3073NC FN Rev: B414 Type: Direct-Access ANSI SCSI revision: 04 target0:0:0: Beginning Domain Validation target0:0:0: Ending Domain Validation target0:0:0: FAST-160 WIDE SCSI 320.0 MB/s DT IU RTI WRFLOW PCOMP (6.25 ns, offset 127) SCSI device sda: 143374000 512-byte hdwr sectors (73407 MB) sda: Write Protect is off sda: Mode Sense: cf 00 00 08 SCSI device sda: drive cache: write through SCSI device sda: 143374000 512-byte hdwr sectors (73407 MB) sda: Write Protect is off sda: Mode Sense: cf 00 00 08 SCSI device sda: drive cache: write through sda: sda1 sda2 sda3 sd 0:0:0:0: Attached scsi disk sda Vendor: IBM Model: 25P3495a S320 1 Rev: 1 Type: Processor ANSI SCSI revision: 02 target0:0:8: Beginning Domain Validation target0:0:8: Ending Domain Validation target0:0:8: asynchronous usbcore: registered new driver hiddev usbcore: registered new driver usbhid /home/legoater/linux/2.6.17-rc6-mm2/drivers/usb/input/hid-core.c: v2.6:USB HID core driver serio: i8042 AUX port at 0x60,0x64 irq 12 serio: i8042 KBD port at 0x60,0x64 irq 1 mice: PS/2 mouse device common for all mice TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Freeing unused kernel memory: 232k freed libata version 1.30 loaded. ata_piix 0000:00:1f.2: version 1.10 ata_piix 0000:00:1f.2: MAP [ IDE IDE P0 P1 ] ACPI Warning (pci_irq-0370): Unable to derive IRQ for device 0000:00:1f.2 [20060310] ACPI: PCI Interrupt 0000:00:1f.2[A]: no GSI ata: 0x1f0 IDE port busy PCI: Setting latency timer of device 0000:00:1f.2 to 64 ata1: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x488 irq 15 ata1: ENTER, pcs=0x3 base=2 ata1: LEAVE, pcs=0x0 present_mask=0x0 ata1: SATA port has no device. scsi1 : ata_piix kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. sd 0:0:0:0: Attached scsi generic sg0 type 0 0:0:8:0: Attached scsi generic sg1 type 3 tg3.c:v3.59 (May 26, 2006) ACPI: PCI Interrupt 0000:06:00.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:06:00.0 to 64 eth0: Tigon3 [partno(BCM95721) rev 4101 PHY(5750)] (PCI Express) 10/100/1000BaseT Ethernet 00:14:5e:0b:37:68 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[1] eth0: dma_rwctrl[76180000] dma_mask[64-bit] ACPI: PCI Interrupt 0000:07:00.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:07:00.0 to 64 eth1: Tigon3 [partno(BCM95721) rev 4101 PHY(5750)] (PCI Express) 10/100/1000BaseT Ethernet 00:14:5e:0b:37:69 eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[1] eth1: dma_rwctrl[76180000] dma_mask[64-bit] ACPI (acpi_bus-0192): Device [USB4] is not power manageable [20060310] GSI 18 sharing vector 0xB9 and IRQ 18 ACPI: PCI Interrupt 0000:00:1d.7[D] -> GSI 23 (level, low) -> IRQ 185 PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:1d.7: debug port 1 PCI: cache line size of 128 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: irq 185, io mem 0xf9000000 ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb1: new device found, idVendor=0000, idProduct=0000 usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: EHCI Host Controller usb usb1: Manufacturer: Linux 2.6.17-rc6-mm2 ehci_hcd usb usb1: SerialNumber: 0000:00:1d.7 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 4 ports detected USB Universal Host Controller Interface driver v3.0 ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 16 (level, low) -> IRQ 169 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1d.0: irq 169, io base 0x00002200 usb usb2: new device found, idVendor=0000, idProduct=0000 usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: UHCI Host Controller usb usb2: Manufacturer: Linux 2.6.17-rc6-mm2 uhci_hcd usb usb2: SerialNumber: 0000:00:1d.0 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected GSI 19 sharing vector 0xC1 and IRQ 19 ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 193 PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.1: irq 193, io base 0x00002600 usb usb3: new device found, idVendor=0000, idProduct=0000 usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1 usb usb3: Product: UHCI Host Controller usb usb3: Manufacturer: Linux 2.6.17-rc6-mm2 uhci_hcd usb usb3: SerialNumber: 0000:00:1d.1 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected usb 3-1: new full speed USB device using uhci_hcd and address 2 usb 3-1: new device found, idVendor=04b3, idProduct=4001 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-1: Product: PPC I/F usb 3-1: Manufacturer: IBM usb 3-1: SerialNumber: 000d60479cf5 usb 3-1: configuration #1 chosen from 1 choice input: IBM PPC I/F as /class/input/input0 input: USB HID v1.10 Keyboard [IBM PPC I/F] on usb-0000:00:1d.1-1 input: IBM PPC I/F as /class/input/input1 input: USB HID v1.10 Mouse [IBM PPC I/F] on usb-0000:00:1d.1-1 ACPI: Power Button (FF) [PWRF] EXT3 FS on sda2, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. Adding 1052248k swap on /dev/sda3. Priority:-1 extents:1 across:1052248k tg3: eth0: Link is up at 1000 Mbps, full duplex. tg3: eth0: Flow control is on for TX and on for RX. Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b PGD 13d6c7067 PUD 13de23067 PMD 0 Oops: 0000 [1] SMP last sysfs file: /class/vc/vcsa4/dev CPU 0 Modules linked in: autofs4 nfs lockd sunrpc joydev sony_acpi button battery ac uhci_hcd ehci_hcd tg3 sg ext3 jbd ata_piix libata Pid: 2409, comm: rpciod/0 Not tainted 2.6.17-rc6-mm2 #1 RIP: 0010:[<ffffffff8025b017>] [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP: 0018:ffff81013f2c3da8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff81013d09d570 RCX: 0000000000000206 RDX: ffff810001029260 RSI: 0000000000000007 RDI: 0000000000000000 RBP: ffff81013f2c3dd8 R08: 0000000300000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: ffff81013f57e338 R13: ffff81013f57e340 R14: 0000000000000287 R15: ffff81013f57e340 FS: 0000000000000000(0000) GS:ffffffff807f9000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 0000000000000007 CR3: 000000013d143000 CR4: 00000000000006e0 Process rpciod/0 (pid: 2409, threadinfo ffff81013f2c2000, task ffff8101406e2080) Stack: ffff81013f2c3dd8 ffffffff880eab1b 0000000000000000 ffff81013f57e340 ffff81013f57e410 0000000000000000 ffff81013f2c3df8 ffffffff880a5a51 ffff81013f57e340 ffff81013f57e340 Call Trace: [<ffffffff880eab1b>] :nfs:nfs_commit_done+0x188/0x196 [<ffffffff880a5a51>] :sunrpc:rpc_exit_task+0x2a/0x6c [<ffffffff880a5f98>] :sunrpc:__rpc_execute+0x99/0x1e0 [<ffffffff880a60e8>] :sunrpc:rpc_async_schedule+0x9/0xb [<ffffffff8023c72e>] run_workqueue+0xa8/0xef [<ffffffff880a60df>] :sunrpc:rpc_async_schedule+0x0/0xb [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023c871>] worker_thread+0xfc/0x12f [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023f92c>] kthread+0xd0/0xfc [<ffffffff8020a33a>] child_rip+0x8/0x12 [<ffffffff8023f85c>] kthread+0x0/0xfc [<ffffffff8020a332>] child_rip+0x0/0x12 Code: 48 0f b6 47 07 48 89 e5 4c 8b 0c c5 80 2b 80 80 9c 41 58 fa RIP [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP <ffff81013f2c3da8> CR2: 0000000000000007 [-- Attachment #3: 2.6.17-rc6-mm2.config --] [-- Type: text/plain, Size: 28954 bytes --] # # Automatically generated make config: don't edit # Linux kernel version: 2.6.17-rc6-mm2 # Mon Jun 12 17:10:05 2006 # CONFIG_X86_64=y CONFIG_64BIT=y CONFIG_X86=y CONFIG_SEMAPHORE_SLEEPERS=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_CMPXCHG=y CONFIG_EARLY_PRINTK=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_DMI=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SWAP_PREFETCH=y CONFIG_SYSVIPC=y CONFIG_IPC_NS=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set CONFIG_SYSCTL=y CONFIG_UTS_NS=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y # CONFIG_IKCONFIG is not set # CONFIG_CPUSETS is not set # CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_KLIBC_ERRLIST=y CONFIG_KLIBC_ZLIB=y CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_EXTRA_PASS=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_RT_MUTEXES=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y CONFIG_SLAB=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set CONFIG_VM_EVENT_COUNTERS=y # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y CONFIG_STOP_MACHINE=y # # Block layer # CONFIG_LBD=y # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_AS=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_X86_PC=y # CONFIG_X86_VSMP is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set CONFIG_GENERIC_CPU=y CONFIG_X86_L1_CACHE_BYTES=128 CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_X86_INTERNODE_CACHE_BYTES=128 CONFIG_X86_TSC=y CONFIG_X86_GOOD_APIC=y CONFIG_MICROCODE=m CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_X86_HT=y CONFIG_X86_IO_APIC=y CONFIG_X86_LOCAL_APIC=y CONFIG_MTRR=y CONFIG_SMP=y CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_PREEMPT_BKL=y CONFIG_NUMA=y CONFIG_K8_NUMA=y CONFIG_NODES_SHIFT=6 CONFIG_X86_64_ACPI_NUMA=y # CONFIG_NUMA_EMU is not set CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_FLATMEM_MANUAL is not set CONFIG_DISCONTIGMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_DISCONTIGMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_NEED_MULTIPLE_NODES=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_MIGRATION=y CONFIG_UNALIGNED_ZONE_BOUNDARIES=y CONFIG_ADAPTIVE_READAHEAD=y CONFIG_DEBUG_READAHEAD=y # CONFIG_READAHEAD_SMOOTH_AGING is not set CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y CONFIG_NR_CPUS=8 # CONFIG_HOTPLUG_CPU is not set CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_IOMMU=y CONFIG_CALGARY_IOMMU=y CONFIG_SWIOTLB=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x200000 CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_1000 is not set CONFIG_HZ=250 # CONFIG_REORDER is not set CONFIG_K8_NB=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_ISA_DMA_API=y CONFIG_GENERIC_PENDING_IRQ=y # # Power management options # CONFIG_PM=y CONFIG_PM_LEGACY=y # CONFIG_PM_DEBUG is not set # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=y # CONFIG_ACPI_HOTKEY is not set CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_ATLAS is not set # CONFIG_ACPI_IBM is not set # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_SONY=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 is not set # # CPU Frequency scaling # # CONFIG_CPU_FREQ is not set # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y # CONFIG_PCIEPORTBUS is not set CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set # # PCI Hotplug Support # # CONFIG_HOTPLUG_PCI is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y CONFIG_IA32_EMULATION=y # CONFIG_IA32_AOUT is not set CONFIG_COMPAT=y CONFIG_SYSVIPC_COMPAT=y # # Networking # CONFIG_NET=y # # Networking options # # CONFIG_NETDEBUG is not set CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set CONFIG_NET_KEY=m 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_FWMARK is not set 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 is not set # CONFIG_NET_IPGRE is not set 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 is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # # IP: Virtual Server Configuration # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # # Core Netfilter Configuration # # CONFIG_NETFILTER_NETLINK is not set # CONFIG_NF_CONNTRACK is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # # CONFIG_IP_NF_CONNTRACK is not set # CONFIG_IP_NF_QUEUE is not set # # DCCP Configuration (EXPERIMENTAL) # # CONFIG_IP_DCCP is not set # # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set # # TIPC Configuration (EXPERIMENTAL) # # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_IEEE80211 is not set # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # # CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) # # CONFIG_MTD is not set # # Parallel port support # # CONFIG_PARPORT is not set # # Plug and Play support # # CONFIG_PNP is not set # # Block devices # # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_HD_IDE is not set CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set CONFIG_BLK_DEV_IDESCSI=m # CONFIG_IDE_TASK_IOCTL is not set # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_CMD640 is not set CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_RZ1000 is not set CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_PCI_AUTO=y # CONFIG_IDEDMA_ONLYDISK is not set # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set # CONFIG_BLK_DEV_ATIIXP is not set # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_CY82C693 is not set # CONFIG_BLK_DEV_CS5520 is not set # CONFIG_BLK_DEV_CS5530 is not set # CONFIG_BLK_DEV_HPT34X is not set # CONFIG_BLK_DEV_HPT366 is not set # CONFIG_BLK_DEV_SC1200 is not set # CONFIG_BLK_DEV_PIIX is not set # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIIMAGE is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y # CONFIG_SCSI_TGT is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_DOMAIN_ATTRS is not set # # SCSI low-level drivers # # CONFIG_ISCSI_TCP is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set # CONFIG_SCSI_ARCMSR is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set CONFIG_SCSI_SATA=m # CONFIG_SCSI_SATA_AHCI is not set # CONFIG_SCSI_PATA_ALI is not set # CONFIG_SCSI_PATA_AMD is not set # CONFIG_SCSI_SATA_SVW is not set # CONFIG_SCSI_PATA_TRIFLEX is not set # CONFIG_SCSI_PATA_MPIIX is not set # CONFIG_SCSI_PATA_OLDPIIX is not set CONFIG_SCSI_ATA_PIIX=m # CONFIG_SCSI_SATA_MV is not set # CONFIG_SCSI_PATA_NETCELL is not set # CONFIG_SCSI_SATA_NV is not set # CONFIG_SCSI_PATA_OPTI is not set # CONFIG_SCSI_PDC_ADMA is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_SATA_QSTOR is not set # CONFIG_SCSI_PATA_PDC2027X is not set # CONFIG_SCSI_SATA_PROMISE is not set # CONFIG_SCSI_SATA_SX4 is not set # CONFIG_SCSI_SATA_SIL is not set # CONFIG_SCSI_SATA_SIL24 is not set # CONFIG_SCSI_PATA_SIL680 is not set # CONFIG_SCSI_PATA_SIS is not set # CONFIG_SCSI_SATA_SIS is not set # CONFIG_SCSI_SATA_ULI is not set # CONFIG_SCSI_PATA_VIA is not set # CONFIG_SCSI_SATA_VIA is not set # CONFIG_SCSI_SATA_VITESSE is not set CONFIG_SCSI_SATA_INTEL_COMBINED=y # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_STEX is not set # CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_SRP is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # # Fusion MPT device support # CONFIG_FUSION=y CONFIG_FUSION_SPI=y # CONFIG_FUSION_FC is not set # CONFIG_FUSION_SAS is not set CONFIG_FUSION_MAX_SGE=128 # CONFIG_FUSION_CTL is not set # # IEEE 1394 (FireWire) support # # CONFIG_IEEE1394 is not set # # I2O device support # # CONFIG_I2O is not set # # Network device support # CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # # ARCnet devices # # CONFIG_ARCNET is not set # # PHY device support # # # Ethernet (10 or 100Mbit) # # CONFIG_NET_ETHERNET is not set # # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_SK98LIN is not set CONFIG_TIGON3=m # CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # CONFIG_MYRI10GE is not set # # Token Ring devices # # CONFIG_TR is not set # # Wireless LAN (non-hamradio) # # CONFIG_NET_RADIO is not set # # Wan interfaces # # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=m CONFIG_NETPOLL=y # CONFIG_NETPOLL_RX is not set CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y # # ISDN subsystem # # CONFIG_ISDN is not set # # Telephony Support # # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_FF_EFFECTS is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set 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=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_VSXXXAA is not set CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ANALOG is not set # CONFIG_JOYSTICK_A3D is not set # CONFIG_JOYSTICK_ADI is not set # CONFIG_JOYSTICK_COBRA is not set # CONFIG_JOYSTICK_GF2K is not set # CONFIG_JOYSTICK_GRIP is not set # CONFIG_JOYSTICK_GRIP_MP is not set # CONFIG_JOYSTICK_GUILLEMOT is not set # CONFIG_JOYSTICK_INTERACT is not set # CONFIG_JOYSTICK_SIDEWINDER is not set # CONFIG_JOYSTICK_TMDC is not set # CONFIG_JOYSTICK_IFORCE is not set # CONFIG_JOYSTICK_WARRIOR is not set # CONFIG_JOYSTICK_MAGELLAN is not set # CONFIG_JOYSTICK_SPACEORB is not set # CONFIG_JOYSTICK_SPACEBALL is not set # CONFIG_JOYSTICK_STINGER is not set # CONFIG_JOYSTICK_TWIDJOY is not set # CONFIG_JOYSTICK_JOYDUMP is not set CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_PCSPKR is not set # CONFIG_INPUT_UINPUT is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set # # IPMI # CONFIG_IPMI_HANDLER=y # CONFIG_IPMI_PANIC_EVENT is not set # CONFIG_IPMI_DEVICE_INTERFACE is not set # CONFIG_IPMI_SI is not set # CONFIG_IPMI_WATCHDOG is not set # CONFIG_IPMI_POWEROFF is not set # # Watchdog Cards # # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set CONFIG_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # # Ftape, the floppy tape device driver # CONFIG_AGP=y CONFIG_AGP_AMD64=y # CONFIG_AGP_INTEL is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_VIA is not set # CONFIG_DRM is not set # CONFIG_MWAVE is not set CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 # CONFIG_HPET is not set CONFIG_HANGCHECK_TIMER=m # # TPM devices # # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set # # I2C support # # CONFIG_I2C is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set # # Dallas's 1-wire bus # # # Hardware Monitoring support # # CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set # # Misc devices # CONFIG_IBM_ASM=m # # Multimedia devices # # CONFIG_VIDEO_DEV is not set CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set # CONFIG_USB_DABUSB is not set # # Graphics support # CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set CONFIG_FB_VESA=y # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set # CONFIG_VIDEO_SELECT is not set CONFIG_DUMMY_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE is not set # # Logo configuration # # CONFIG_LOGO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound # # CONFIG_SOUND is not set # # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_SPLIT_ISO=y CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=m # CONFIG_USB_OHCI_BIG_ENDIAN is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m # CONFIG_USB_SL811_HCD is not set # # 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 is not set # CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # CONFIG_USB_HID=y CONFIG_USB_HIDINPUT=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set CONFIG_USB_HIDDEV=y # CONFIG_USB_AIPTEK is not set # CONFIG_USB_WACOM is not set # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set # CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set # CONFIG_USB_ATI_REMOTE2 is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET is not set CONFIG_USB_MON=y # # USB port drivers # # # USB Serial Converter support # # CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_AUERSWALD is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_GOTEMP is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set # # USB DSL modem support # # # USB Gadget Support # # CONFIG_USB_GADGET is not set # # MMC/SD Card support # # CONFIG_MMC is not set # # LED devices # # CONFIG_NEW_LEDS is not set # # LED drivers # # # LED Triggers # # # InfiniBand support # # CONFIG_INFINIBAND is not set # CONFIG_IPATH_CORE is not set # # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) # # CONFIG_EDAC is not set # # Real Time Clock # # CONFIG_RTC_CLASS is not set # # DMA Engine support # # CONFIG_DMA_ENGINE is not set # # DMA Clients # # # DMA Devices # # # Firmware Drivers # # CONFIG_EDD is not set # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set # # File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISER4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_QUOTA=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set CONFIG_AUTOFS4_FS=m # CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # # CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # # CONFIG_MSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # # Network File Systems # CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y CONFIG_NFS_DIRECTIO=y CONFIG_NFSD=m CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # CONFIG_9P_FS is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y # # Native Language Support # CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set CONFIG_NLS_ASCII=y # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_UTF8 is not set # # Distributed Lock Manager # # # Instrumentation Support # CONFIG_PROFILING=y # CONFIG_KPROBES is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set CONFIG_MAGIC_SYSRQ=y CONFIG_UNUSED_SYMBOLS=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set CONFIG_DEBUG_SLAB=y CONFIG_DEBUG_SLAB_LEAK=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_PI_LIST=y # CONFIG_RT_MUTEX_TESTER is not set CONFIG_DEBUG_SPINLOCK=y # CONFIG_DEBUG_SPINLOCK_ALLOC is not set # CONFIG_DEBUG_RWLOCK_ALLOC is not set CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_MUTEX_ALLOC=y # CONFIG_PROVE_MUTEX_LOCKING is not set # CONFIG_DEBUG_RWSEMS is not set CONFIG_LOCKDEP=y # CONFIG_DEBUG_NON_NESTED_UNLOCKS is not set CONFIG_DEBUG_LOCKDEP=y CONFIG_DEBUG_SPINLOCK_SLEEP=y CONFIG_DEBUG_LOCKING_API_SELFTESTS=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_INFO=y # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y CONFIG_DEBUG_VM=y CONFIG_FRAME_POINTER=y # CONFIG_UNWIND_INFO is not set CONFIG_FORCED_INLINING=y # CONFIG_DEBUG_SYNCHRO_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_PROFILE_LIKELY is not set # CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set # CONFIG_DEBUG_RODATA is not set # CONFIG_IOMMU_DEBUG is not set # # Security options # # CONFIG_KEYS is not set CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_NETWORK_XFRM is not set CONFIG_SECURITY_CAPABILITIES=y # CONFIG_SECURITY_ROOTPLUG is not set # CONFIG_SECURITY_SECLVL is not set # CONFIG_SECURITY_SELINUX is not set # # Cryptographic options # CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_AES is not set # CONFIG_CRYPTO_AES_X86_64 is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_ARC4 is not set # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Hardware crypto devices # # # Library routines # # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 17:35 ` 2.6.16-rc6-mm2 Cedric Le Goater @ 2006-06-12 22:16 ` Christoph Lameter 2006-06-13 0:24 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-13 7:22 ` 2.6.16-rc6-mm2 Cedric Le Goater 0 siblings, 2 replies; 76+ messages in thread From: Christoph Lameter @ 2006-06-12 22:16 UTC (permalink / raw) To: Cedric Le Goater; +Cc: Andrew Morton, linux-kernel, Christoph Lameter On Mon, 12 Jun 2006, Cedric Le Goater wrote: > Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: > [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b Seems that req->wb_page may be NULL. This patch may fix it but we may miss an unstable page then. We may have to move the decrement of NR_UNSTABLE to a different location when wb_page is still valid. Index: linux-2.6.17-rc6-cl/fs/nfs/write.c =================================================================== --- linux-2.6.17-rc6-cl.orig/fs/nfs/write.c 2006-06-12 13:37:47.321243148 -0700 +++ linux-2.6.17-rc6-cl/fs/nfs/write.c 2006-06-12 15:13:48.020908204 -0700 @@ -1419,7 +1419,8 @@ static void nfs_commit_done(struct rpc_t nfs_mark_request_dirty(req); next: nfs_clear_page_writeback(req); - dec_zone_page_state(req->wb_page, NR_UNSTABLE); + if (req->wb_page) + dec_zone_page_state(req->wb_page, NR_UNSTABLE); } } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 22:16 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-13 0:24 ` Christoph Lameter 2006-06-14 21:56 ` 2.6.16-rc6-mm2 Trond Myklebust 2006-06-13 7:22 ` 2.6.16-rc6-mm2 Cedric Le Goater 1 sibling, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-13 0:24 UTC (permalink / raw) To: Trond Myklebust, Cedric Le Goater; +Cc: Andrew Morton, linux-kernel I guess this is correct. nfs_clear_page_writeback also ignores the page if req->wb_page == NULL. Trond? On Mon, 12 Jun 2006, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Cedric Le Goater wrote: > > > Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: > > [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b > > Seems that req->wb_page may be NULL. > > This patch may fix it but we may miss an unstable page then. We may > have to move the decrement of NR_UNSTABLE to a different location when > wb_page is still valid. > > Index: linux-2.6.17-rc6-cl/fs/nfs/write.c > =================================================================== > --- linux-2.6.17-rc6-cl.orig/fs/nfs/write.c 2006-06-12 13:37:47.321243148 -0700 > +++ linux-2.6.17-rc6-cl/fs/nfs/write.c 2006-06-12 15:13:48.020908204 -0700 > @@ -1419,7 +1419,8 @@ static void nfs_commit_done(struct rpc_t > nfs_mark_request_dirty(req); > next: > nfs_clear_page_writeback(req); > - dec_zone_page_state(req->wb_page, NR_UNSTABLE); > + if (req->wb_page) > + dec_zone_page_state(req->wb_page, NR_UNSTABLE); > } > } > > > ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 0:24 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-14 21:56 ` Trond Myklebust 0 siblings, 0 replies; 76+ messages in thread From: Trond Myklebust @ 2006-06-14 21:56 UTC (permalink / raw) To: Christoph Lameter; +Cc: Cedric Le Goater, Andrew Morton, linux-kernel On Mon, 2006-06-12 at 17:24 -0700, Christoph Lameter wrote: > I guess this is correct. nfs_clear_page_writeback also ignores the page > if req->wb_page == NULL. Trond? Sorry I'm late in responding. I'm currently on vacation in Iceland. This is most probably an issue with nfs_cancel_requests(). We shouldn't be calling nfs_clear_page_writeback() without _first_ decrementing NR_UNSTABLE. I'll have a look, but I may be a bit unresponsive until I get to a new place with an internet connection. Cheers, Trond > On Mon, 12 Jun 2006, Christoph Lameter wrote: > > > On Mon, 12 Jun 2006, Cedric Le Goater wrote: > > > > > Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: > > > [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b > > > > Seems that req->wb_page may be NULL. > > > > This patch may fix it but we may miss an unstable page then. We may > > have to move the decrement of NR_UNSTABLE to a different location when > > wb_page is still valid. > > > > Index: linux-2.6.17-rc6-cl/fs/nfs/write.c > > =================================================================== > > --- linux-2.6.17-rc6-cl.orig/fs/nfs/write.c 2006-06-12 13:37:47.321243148 -0700 > > +++ linux-2.6.17-rc6-cl/fs/nfs/write.c 2006-06-12 15:13:48.020908204 -0700 > > @@ -1419,7 +1419,8 @@ static void nfs_commit_done(struct rpc_t > > nfs_mark_request_dirty(req); > > next: > > nfs_clear_page_writeback(req); > > - dec_zone_page_state(req->wb_page, NR_UNSTABLE); > > + if (req->wb_page) > > + dec_zone_page_state(req->wb_page, NR_UNSTABLE); > > } > > } > > > > > > ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 22:16 ` 2.6.16-rc6-mm2 Christoph Lameter 2006-06-13 0:24 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-13 7:22 ` Cedric Le Goater 2006-06-13 17:54 ` 2.6.16-rc6-mm2 Christoph Lameter 1 sibling, 1 reply; 76+ messages in thread From: Cedric Le Goater @ 2006-06-13 7:22 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel Christoph Lameter wrote: > On Mon, 12 Jun 2006, Cedric Le Goater wrote: > >> Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP: >> [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b > > Seems that req->wb_page may be NULL. > > This patch may fix it but we may miss an unstable page then. We may > have to move the decrement of NR_UNSTABLE to a different location when > wb_page is still valid. > > Index: linux-2.6.17-rc6-cl/fs/nfs/write.c > =================================================================== > --- linux-2.6.17-rc6-cl.orig/fs/nfs/write.c 2006-06-12 13:37:47.321243148 -0700 > +++ linux-2.6.17-rc6-cl/fs/nfs/write.c 2006-06-12 15:13:48.020908204 -0700 > @@ -1419,7 +1419,8 @@ static void nfs_commit_done(struct rpc_t > nfs_mark_request_dirty(req); > next: > nfs_clear_page_writeback(req); > - dec_zone_page_state(req->wb_page, NR_UNSTABLE); > + if (req->wb_page) > + dec_zone_page_state(req->wb_page, NR_UNSTABLE); > } > } thanks for the patch ! I gave it a try but req->wb_page seems bogus ? general protection fault: 0000 [1] SMP last sysfs file: /class/vc/vcsa3/dev CPU 1 Modules linked in: autofs4 nfs lockd sunrpc joydev sony_acpi button battery ac uhci_hcd ehci_hcd tg3 sg ext3 jbd ata_piix libata Pid: 2456, comm: rpciod/1 Not tainted 2.6.17-rc6-mm2 #2 RIP: 0010:[<ffffffff8025b017>] [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP: 0018:ffff81014022dda8 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff810140419408 RCX: ffff810140419450 RDX: 0000000000000006 RSI: 0000000000000007 RDI: 6b6b6b6b6b6b6b6b RBP: ffff81014022ddd8 R08: ffff81013ef08b70 R09: 0000000000000000 R10: ffff810140419408 R11: 0000000000000060 R12: ffff81013d7c2668 R13: ffff81013d7c2670 R14: 0000000000000283 R15: ffff81013d7c2670 FS: 0000000000000000(0000) GS:ffff810142c82238(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 0000000000703ba8 CR3: 000000013dd32000 CR4: 00000000000006e0 Process rpciod/1 (pid: 2456, threadinfo ffff81014022c000, task ffff810140c8e0c0) Stack: ffff81014022ddd8 ffffffff880eab24 0000000000000000 ffff81013d7c2670 ffff81013d7c2740 0000000000000000 ffff81014022ddf8 ffffffff880a5a51 ffff81013d7c2670 ffff81013d7c2670 Call Trace: [<ffffffff880eab24>] :nfs:nfs_commit_done+0x191/0x19f [<ffffffff880a5a51>] :sunrpc:rpc_exit_task+0x2a/0x6c [<ffffffff880a5f98>] :sunrpc:__rpc_execute+0x99/0x1e0 [<ffffffff880a60e8>] :sunrpc:rpc_async_schedule+0x9/0xb [<ffffffff8023c72e>] run_workqueue+0xa8/0xef [<ffffffff880a60df>] :sunrpc:rpc_async_schedule+0x0/0xb [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023c871>] worker_thread+0xfc/0x12f [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff80225eca>] default_wake_function+0x0/0xf [<ffffffff8023c775>] worker_thread+0x0/0x12f [<ffffffff8023f92c>] kthread+0xd0/0xfc [<ffffffff8020a33a>] child_rip+0x8/0x12 [<ffffffff8023f85c>] kthread+0x0/0xfc [<ffffffff8020a332>] child_rip+0x0/0x12 Code: 48 0f b6 47 07 48 89 e5 4c 8b 0c c5 80 2b 80 80 9c 41 58 fa RIP [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b RSP <ffff81014022dda8> ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 7:22 ` 2.6.16-rc6-mm2 Cedric Le Goater @ 2006-06-13 17:54 ` Christoph Lameter 2006-06-13 19:35 ` 2.6.16-rc6-mm2 Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-13 17:54 UTC (permalink / raw) To: Cedric Le Goater; +Cc: Andrew Morton, linux-kernel, Trond Myklebust On Tue, 13 Jun 2006, Cedric Le Goater wrote: > thanks for the patch ! I gave it a try but req->wb_page seems bogus ? It seems that req->wb_page is bogus after nfs_clear_page_writeback() has run. So we need to do the statistics before. Index: linux-2.6.17-rc6-mm2/fs/nfs/write.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/fs/nfs/write.c 2006-06-10 11:11:53.051397816 -0700 +++ linux-2.6.17-rc6-mm2/fs/nfs/write.c 2006-06-13 10:52:04.428456013 -0700 @@ -1418,8 +1418,9 @@ static void nfs_commit_done(struct rpc_t dprintk(" mismatch\n"); nfs_mark_request_dirty(req); next: + if (req->wb_page) + dec_zone_page_state(req->wb_page, NR_UNSTABLE); nfs_clear_page_writeback(req); - dec_zone_page_state(req->wb_page, NR_UNSTABLE); } } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 17:54 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-13 19:35 ` Christoph Lameter 2006-06-13 20:22 ` 2.6.16-rc6-mm2 Cedric Le Goater 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-13 19:35 UTC (permalink / raw) To: Cedric Le Goater; +Cc: Andrew Morton, linux-kernel, Trond Myklebust On Tue, 13 Jun 2006, Christoph Lameter wrote: > On Tue, 13 Jun 2006, Cedric Le Goater wrote: > > > thanks for the patch ! I gave it a try but req->wb_page seems bogus ? > > It seems that req->wb_page is bogus after nfs_clear_page_writeback() > has run. So we need to do the statistics before. But then we miss the decrement of NR_UNSTABLE when a page is freed before we get to that function. NR_UNSTABLE grows beyond bounds and the write throttling stalls processes. So we need an additional dec_zone_state.. Index: linux-2.6.17-rc6-mm2/fs/nfs/write.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/fs/nfs/write.c 2006-06-10 11:11:53.051397816 -0700 +++ linux-2.6.17-rc6-mm2/fs/nfs/write.c 2006-06-13 10:52:04.428456013 -0700 @@ -1418,8 +1418,9 @@ static void nfs_commit_done(struct rpc_t dprintk(" mismatch\n"); nfs_mark_request_dirty(req); next: + if (req->wb_page) + dec_zone_page_state(req->wb_page, NR_UNSTABLE); nfs_clear_page_writeback(req); - dec_zone_page_state(req->wb_page, NR_UNSTABLE); } } Index: linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/fs/nfs/pagelist.c 2006-06-10 11:11:53.049444812 -0700 +++ linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c 2006-06-13 12:33:39.545259204 -0700 @@ -154,6 +154,7 @@ void nfs_clear_request(struct nfs_page * { struct page *page = req->wb_page; if (page != NULL) { + dec_zone_page_state(page, NR_UNSTABLE); page_cache_release(page); req->wb_page = NULL; } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 19:35 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-13 20:22 ` Cedric Le Goater 2006-06-13 21:13 ` 2.6.16-rc6-mm2 Christoph Lameter 0 siblings, 1 reply; 76+ messages in thread From: Cedric Le Goater @ 2006-06-13 20:22 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel, Trond Myklebust Christoph Lameter wrote: > On Tue, 13 Jun 2006, Christoph Lameter wrote: > >> On Tue, 13 Jun 2006, Cedric Le Goater wrote: >> >>> thanks for the patch ! I gave it a try but req->wb_page seems bogus ? >> It seems that req->wb_page is bogus after nfs_clear_page_writeback() >> has run. So we need to do the statistics before. > > But then we miss the decrement of NR_UNSTABLE when a page is freed before > we get to that function. NR_UNSTABLE grows beyond bounds and the write > throttling stalls processes. > > So we need an additional dec_zone_state.. > > Index: linux-2.6.17-rc6-mm2/fs/nfs/write.c > =================================================================== > --- linux-2.6.17-rc6-mm2.orig/fs/nfs/write.c 2006-06-10 11:11:53.051397816 -0700 > +++ linux-2.6.17-rc6-mm2/fs/nfs/write.c 2006-06-13 10:52:04.428456013 -0700 > @@ -1418,8 +1418,9 @@ static void nfs_commit_done(struct rpc_t > dprintk(" mismatch\n"); > nfs_mark_request_dirty(req); > next: > + if (req->wb_page) > + dec_zone_page_state(req->wb_page, NR_UNSTABLE); > nfs_clear_page_writeback(req); > - dec_zone_page_state(req->wb_page, NR_UNSTABLE); > } > } > > Index: linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c > =================================================================== > --- linux-2.6.17-rc6-mm2.orig/fs/nfs/pagelist.c 2006-06-10 11:11:53.049444812 -0700 > +++ linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c 2006-06-13 12:33:39.545259204 -0700 > @@ -154,6 +154,7 @@ void nfs_clear_request(struct nfs_page * > { > struct page *page = req->wb_page; > if (page != NULL) { > + dec_zone_page_state(page, NR_UNSTABLE); > page_cache_release(page); > req->wb_page = NULL; > } NFS write seems to work fine with that patch. No more oops. thanks ! C. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 20:22 ` 2.6.16-rc6-mm2 Cedric Le Goater @ 2006-06-13 21:13 ` Christoph Lameter 2006-06-13 21:50 ` 2.6.16-rc6-mm2 Cedric Le Goater 0 siblings, 1 reply; 76+ messages in thread From: Christoph Lameter @ 2006-06-13 21:13 UTC (permalink / raw) To: Cedric Le Goater; +Cc: Andrew Morton, linux-kernel, Trond Myklebust On Tue, 13 Jun 2006, Cedric Le Goater wrote: > NFS write seems to work fine with that patch. No more oops. Sigh. There is another issue that the NR_DIRTY count is not decremented. Which brings us to this fix: Index: linux-2.6.17-rc6-mm2/fs/nfs/write.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/fs/nfs/write.c 2006-06-10 11:11:53.051397816 -0700 +++ linux-2.6.17-rc6-mm2/fs/nfs/write.c 2006-06-13 10:52:04.428456013 -0700 @@ -1418,8 +1418,9 @@ static void nfs_commit_done(struct rpc_t dprintk(" mismatch\n"); nfs_mark_request_dirty(req); next: + if (req->wb_page) + dec_zone_page_state(req->wb_page, NR_UNSTABLE); nfs_clear_page_writeback(req); - dec_zone_page_state(req->wb_page, NR_UNSTABLE); } } Index: linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/fs/nfs/pagelist.c 2006-06-10 11:11:53.049444812 -0700 +++ linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c 2006-06-13 14:12:17.963198388 -0700 @@ -154,6 +154,7 @@ void nfs_clear_request(struct nfs_page * { struct page *page = req->wb_page; if (page != NULL) { + dec_zone_page_state(page, NR_UNSTABLE); page_cache_release(page); req->wb_page = NULL; } @@ -315,7 +316,7 @@ nfs_scan_lock_dirty(struct nfs_inode *nf req->wb_index, NFS_PAGE_TAG_DIRTY); nfs_list_remove_request(req); nfs_list_add_request(req, dst); - inc_zone_page_state(req->wb_page, NR_DIRTY); + dec_zone_page_state(req->wb_page, NR_DIRTY); res++; } } ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 21:13 ` 2.6.16-rc6-mm2 Christoph Lameter @ 2006-06-13 21:50 ` Cedric Le Goater 0 siblings, 0 replies; 76+ messages in thread From: Cedric Le Goater @ 2006-06-13 21:50 UTC (permalink / raw) To: Christoph Lameter; +Cc: Andrew Morton, linux-kernel, Trond Myklebust Christoph Lameter wrote: > On Tue, 13 Jun 2006, Cedric Le Goater wrote: > >> NFS write seems to work fine with that patch. No more oops. > > Sigh. There is another issue that the NR_DIRTY count is not decremented. > > Which brings us to this fix: > > Index: linux-2.6.17-rc6-mm2/fs/nfs/write.c > =================================================================== > --- linux-2.6.17-rc6-mm2.orig/fs/nfs/write.c 2006-06-10 11:11:53.051397816 -0700 > +++ linux-2.6.17-rc6-mm2/fs/nfs/write.c 2006-06-13 10:52:04.428456013 -0700 > @@ -1418,8 +1418,9 @@ static void nfs_commit_done(struct rpc_t > dprintk(" mismatch\n"); > nfs_mark_request_dirty(req); > next: > + if (req->wb_page) > + dec_zone_page_state(req->wb_page, NR_UNSTABLE); > nfs_clear_page_writeback(req); > - dec_zone_page_state(req->wb_page, NR_UNSTABLE); > } > } > > Index: linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c > =================================================================== > --- linux-2.6.17-rc6-mm2.orig/fs/nfs/pagelist.c 2006-06-10 11:11:53.049444812 -0700 > +++ linux-2.6.17-rc6-mm2/fs/nfs/pagelist.c 2006-06-13 14:12:17.963198388 -0700 > @@ -154,6 +154,7 @@ void nfs_clear_request(struct nfs_page * > { > struct page *page = req->wb_page; > if (page != NULL) { > + dec_zone_page_state(page, NR_UNSTABLE); > page_cache_release(page); > req->wb_page = NULL; > } > @@ -315,7 +316,7 @@ nfs_scan_lock_dirty(struct nfs_inode *nf > req->wb_index, NFS_PAGE_TAG_DIRTY); > nfs_list_remove_request(req); > nfs_list_add_request(req, dst); > - inc_zone_page_state(req->wb_page, NR_DIRTY); > + dec_zone_page_state(req->wb_page, NR_DIRTY); > res++; > } > } still doing fine. C. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton ` (4 preceding siblings ...) 2006-06-12 17:35 ` 2.6.16-rc6-mm2 Cedric Le Goater @ 2006-06-12 18:19 ` Badari Pulavarty 2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton 2006-06-12 22:09 ` 2.6.16-rc6-mm2 Steve Fox 6 siblings, 1 reply; 76+ messages in thread From: Badari Pulavarty @ 2006-06-12 18:19 UTC (permalink / raw) To: Andrew Morton; +Cc: lkml On Fri, 2006-06-09 at 21:40 -0700, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > Not sure, if its reported earlier .. paniced on my ppc64 machine. Thanks, Badari Memory: 1852532k/1900544k available (5428k kernel code, 47336k reserved, 1508k data, 859k bss, 240k init) Security Framework v1.0.0 initialized SELinux: Disabled at boot. Mount-cache hash table entries: 256 Processor 1 found. Processor 2 found. Processor 3 found. Brought up 4 CPUs migration_cost=3,0 checking if image is initramfs... it is Freeing initrd memory: 1320k freed NET: Registered protocol family 16 IOMMU table initialized, virtual merging disabled SCSI subsystem initialized NET: Registered protocol family 2 IP route cache hash table entries: 65536 (order: 7, 524288 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered audit: initializing netlink socket (disabled) audit(1150133249.344:1): initialized Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 512 (order 0, 4096 bytes) JFS: nTxBlock = 8192, nTxLock = 65536 SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled Initializing Cryptographic API io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) pci_hotplug: PCI Hot Plug PCI Core version: 0.5 rpaphp: RPA HOT Plug PCI Controller Driver version: 0.1 rpaphp: Slot [0001:00:02.4](PCI location=U787E.001.AAA3015-P2-C1) registered rpaphp: Slot [0001:00:02.2](PCI location=U787E.001.AAA3015-P2-C2) registered rpaphp: Slot [0001:00:02.6](PCI location=U787E.001.AAA3015-P2-C3) registered Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled isa bounce pool size: 16 pages Floppy drive(s): fd0 is 2.88M RAMDISK driver initialized: 16 RAM disks of 123456K size 1024 blocksize loop: loaded (max 8 devices) Intel(R) PRO/1000 Network Driver - version 7.0.38-k4-NAPI Copyright (c) 1999-2006 Intel Corporation. e1000: 0000:c0:01.0: e1000_probe: (PCI-X:133MHz:64-bit) 00:0d:60:de:a9:d6 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection e1000: 0000:c0:01.1: e1000_probe: (PCI-X:133MHz:64-bit) 00:0d:60:de:a9:d7 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx PDC20275: IDE controller at PCI slot 0000:cc:01.0 PDC20275: chipset revision 1 PDC20275: 100% native mode on irq 134 ide2: BM-DMA at 0xdec00-0xdec07<3>PDC20275: -- Error, unable to allocate DMA table. Unable to handle kernel paging request for data at address 0xd000080000000000 Faulting instruction address: 0xc000000000347b70 Oops: Kernel access of bad area, sig: 7 [#1] SMP NR_CPUS=128 Modules linked in: NIP: C000000000347B70 LR: C00000000033E0B8 CTR: C000000000347B5C REGS: c000000002667610 TRAP: 0300 Not tainted (2.6.17-rc6-mm2-autokern1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 24004028 XER: 00000006 DAR: D000080000000000, DSISR: 0000000042000000 TASK = c00000000265a800[1] 'idle' THREAD: c000000002664000 CPU: 1 GPR00: C000000000347B5C C000000002667890 C0000000006C8938 000000000000000B GPR04: 0000000000000000 C0000000006ABBD8 C0000000006ABAE8 C0000000006ABBA8 GPR08: C0000000006ABBC0 D000080000000000 0000000000000000 0000000000000000 GPR12: 0000000000004000 C000000000570080 0000000000000000 0000000000000000 GPR16: 0000000000000000 0000000000000086 0000000000000000 C000000002667BE0 GPR20: C000000002514800 0000000000000000 C0000000005E97B8 0000000000000000 GPR24: C000000002514800 C0000000005E97B8 C0000000007AD480 C000000002667A22 GPR28: C0000000006ABB90 C0000000007AD480 C000000000604768 C0000000007AD480 NIP [C000000000347B70] .ide_outb+0x14/0x2c LR [C00000000033E0B8] .pdcnew_new_cable_detect+0x3c/0x78 Call Trace: [C000000002667890] [C000000002667930] 0xc000000002667930 (unreliable) [C000000002667920] [C00000000033E19C] .init_hwif_pdc202new+0xa8/0x118 [C0000000026679B0] [C000000000350984] .ide_pci_setup_ports+0x7e8/0x870 [C000000002667AB0] [C000000000350E94] .do_ide_setup_pci_device+0x488/0x4b8 [C000000002667B70] [C00000000035100C] .ide_setup_pci_device+0x2c/0xc4 [C000000002667C10] [C00000000033E39C] .init_setup_pdcnew+0x10/0x24 [C000000002667C90] [C00000000033E258] .pdc202new_init_one+0x4c/0x64 [C000000002667D10] [C000000000532198] .ide_scan_pcidev+0x7c/0xd8 [C000000002667DA0] [C000000000532228] .ide_scan_pcibus+0x34/0x130 [C000000002667E20] [C0000000005320EC] .ide_init+0x78/0xa8 [C000000002667EB0] [C000000000009480] .init+0x1fc/0x3b0 [C000000002667F90] [C0000000000239C4] .kernel_thread+0x4c/0x68 Instruction dump: eb61ffd8 eb81ffe0 eba1ffe8 ebc1fff0 ebe1fff8 7c0803a6 4e800020 fbc1fff0 ebc2cc00 e93e8000 60000000 e9290000 <7c6449ae> 7c0004ac 60000000 60000000 -- 0:conmux-control -- time-stamp -- Jun/12/06 10:30:58 -- -- 0:conmux-control -- time-stamp -- Jun/12/06 10:46:41 -- (bot:conmon-payload) disconnected ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 18:19 ` 2.6.16-rc6-mm2 Badari Pulavarty @ 2006-06-13 13:54 ` Andrew Morton 2006-06-13 17:04 ` 2.6.16-rc6-mm2 Badari Pulavarty 0 siblings, 1 reply; 76+ messages in thread From: Andrew Morton @ 2006-06-13 13:54 UTC (permalink / raw) To: Badari Pulavarty; +Cc: linux-kernel, Sergei Shtylyov On Mon, 12 Jun 2006 11:19:54 -0700 Badari Pulavarty <pbadari@gmail.com> wrote: > On Fri, 2006-06-09 at 21:40 -0700, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > > > > > Not sure, if its reported earlier .. paniced on my ppc64 machine. OK. The powerpc tree in rc6-mm2 was fairly sick, but it looks like you avoided the thus-far-known problems. > e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection > e1000: 0000:c0:01.1: e1000_probe: (PCI-X:133MHz:64-bit) 00:0d:60:de:a9:d7 > e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx > PDC20275: IDE controller at PCI slot 0000:cc:01.0 > PDC20275: chipset revision 1 > PDC20275: 100% native mode on irq 134 > ide2: BM-DMA at 0xdec00-0xdec07<3>PDC20275: -- Error, unable to allocate DMA table. "unable to allocate DMA table". Sergei, ide-always-release-dma-engine.patch plays with that code. Badari, it would be super-useful if you could retest with that reverted. > Unable to handle kernel paging request for data at address 0xd000080000000000 > Faulting instruction address: 0xc000000000347b70 > Oops: Kernel access of bad area, sig: 7 [#1] > SMP NR_CPUS=128 > Modules linked in: > NIP: C000000000347B70 LR: C00000000033E0B8 CTR: C000000000347B5C > REGS: c000000002667610 TRAP: 0300 Not tainted (2.6.17-rc6-mm2-autokern1) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 24004028 XER: 00000006 > DAR: D000080000000000, DSISR: 0000000042000000 > TASK = c00000000265a800[1] 'idle' THREAD: c000000002664000 CPU: 1 > GPR00: C000000000347B5C C000000002667890 C0000000006C8938 000000000000000B > GPR04: 0000000000000000 C0000000006ABBD8 C0000000006ABAE8 C0000000006ABBA8 > GPR08: C0000000006ABBC0 D000080000000000 0000000000000000 0000000000000000 > GPR12: 0000000000004000 C000000000570080 0000000000000000 0000000000000000 > GPR16: 0000000000000000 0000000000000086 0000000000000000 C000000002667BE0 > GPR20: C000000002514800 0000000000000000 C0000000005E97B8 0000000000000000 > GPR24: C000000002514800 C0000000005E97B8 C0000000007AD480 C000000002667A22 > GPR28: C0000000006ABB90 C0000000007AD480 C000000000604768 C0000000007AD480 > NIP [C000000000347B70] .ide_outb+0x14/0x2c > LR [C00000000033E0B8] .pdcnew_new_cable_detect+0x3c/0x78 > Call Trace: > [C000000002667890] [C000000002667930] 0xc000000002667930 (unreliable) > [C000000002667920] [C00000000033E19C] .init_hwif_pdc202new+0xa8/0x118 > [C0000000026679B0] [C000000000350984] .ide_pci_setup_ports+0x7e8/0x870 > [C000000002667AB0] [C000000000350E94] .do_ide_setup_pci_device+0x488/0x4b8 > [C000000002667B70] [C00000000035100C] .ide_setup_pci_device+0x2c/0xc4 > [C000000002667C10] [C00000000033E39C] .init_setup_pdcnew+0x10/0x24 > [C000000002667C90] [C00000000033E258] .pdc202new_init_one+0x4c/0x64 > [C000000002667D10] [C000000000532198] .ide_scan_pcidev+0x7c/0xd8 > [C000000002667DA0] [C000000000532228] .ide_scan_pcibus+0x34/0x130 > [C000000002667E20] [C0000000005320EC] .ide_init+0x78/0xa8 > [C000000002667EB0] [C000000000009480] .init+0x1fc/0x3b0 > [C000000002667F90] [C0000000000239C4] .kernel_thread+0x4c/0x68 I don't know what happened there - it might well be a preexisting bug which is triggered by the ide_allocate_dma_engine() failure. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-13 17:04 ` Badari Pulavarty 0 siblings, 0 replies; 76+ messages in thread From: Badari Pulavarty @ 2006-06-13 17:04 UTC (permalink / raw) To: Andrew Morton; +Cc: lkml, Sergei Shtylyov On Tue, 2006-06-13 at 06:54 -0700, Andrew Morton wrote: > On Mon, 12 Jun 2006 11:19:54 -0700 > Badari Pulavarty <pbadari@gmail.com> wrote: > > > On Fri, 2006-06-09 at 21:40 -0700, Andrew Morton wrote: > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > > > > > > > > > Not sure, if its reported earlier .. paniced on my ppc64 machine. > > OK. The powerpc tree in rc6-mm2 was fairly sick, but it looks like you > avoided the thus-far-known problems. > > > e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection > > e1000: 0000:c0:01.1: e1000_probe: (PCI-X:133MHz:64-bit) 00:0d:60:de:a9:d7 > > e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection > > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > > ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx > > PDC20275: IDE controller at PCI slot 0000:cc:01.0 > > PDC20275: chipset revision 1 > > PDC20275: 100% native mode on irq 134 > > ide2: BM-DMA at 0xdec00-0xdec07<3>PDC20275: -- Error, unable to allocate DMA table. > > "unable to allocate DMA table". Sergei, > ide-always-release-dma-engine.patch plays with that code. > > Badari, it would be super-useful if you could retest with that reverted. Nope. Reverting the patch did not help. I ran into same panic on boot. ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx PDC20275: IDE controller at PCI slot 0000:cc:01.0 PDC20275: chipset revision 1 PDC20275: 100% native mode on irq 134 ide2: BM-DMA at 0xdec00-0xdec07<3>PDC20275: -- Error, unable to allocate CPU DMA table(s). Unable to handle kernel paging request for data at address 0xd000080000000000 Faulting instruction address: 0xc0000000003480ac Oops: Kernel access of bad area, sig: 7 [#1] SMP NR_CPUS=128 Modules linked in: NIP: C0000000003480AC LR: C00000000033E5F4 CTR: C000000000348098 REGS: c000000002667610 TRAP: 0300 Not tainted (2.6.17-rc6-mm2- autokern1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 24004028 XER: 0000000D DAR: D000080000000000, DSISR: 0000000042000000 TASK = c00000000265a800[1] 'idle' THREAD: c000000002664000 CPU: 1 GPR00: C000000000348098 C000000002667890 C0000000006C97D0 000000000000000B GPR04: 0000000000000000 C0000000006AC9F8 C0000000006AC908 C0000000006AC9C8 GPR08: C0000000006AC9E0 D000080000000000 0000000000000000 0000000000000000 GPR12: 0000000000004000 C000000000570080 0000000000000000 0000000000000000 GPR16: 0000000000000000 0000000000000086 0000000000000000 C000000002667BE0 GPR20: C000000002514800 0000000000000000 C0000000005E9FE8 0000000000000000 GPR24: C000000002514800 C0000000005E9FE8 C0000000007AD500 C000000002667A22 GPR28: C0000000006AC9B0 C0000000007AD500 C000000000605128 C0000000007AD500 NIP [C0000000003480AC] .ide_outb+0x14/0x2c LR [C00000000033E5F4] .pdcnew_new_cable_detect+0x3c/0x78 Call Trace: [C000000002667890] [C000000002667930] 0xc000000002667930 (unreliable) [C000000002667920] [C00000000033E6D8] .init_hwif_pdc202new+0xa8/0x118 [C0000000026679B0] [C000000000350EC0] .ide_pci_setup_ports+0x7e8/0x870 [C000000002667AB0] [C0000000003513D0] .do_ide_setup_pci_device +0x488/0x4b8 [C000000002667B70] [C000000000351548] .ide_setup_pci_device+0x2c/0xc4 [C000000002667C10] [C00000000033E8D8] .init_setup_pdcnew+0x10/0x24 [C000000002667C90] [C00000000033E794] .pdc202new_init_one+0x4c/0x64 [C000000002667D10] [C000000000532198] .ide_scan_pcidev+0x7c/0xd8 [C000000002667DA0] [C000000000532228] .ide_scan_pcibus+0x34/0x130 [C000000002667E20] [C0000000005320EC] .ide_init+0x78/0xa8 [C000000002667EB0] [C000000000009480] .init+0x1fc/0x3b0 [C000000002667F90] [C0000000000239C4] .kernel_thread+0x4c/0x68 Instruction dump: eb61ffd8 eb81ffe0 eba1ffe8 ebc1fff0 ebe1fff8 7c0803a6 4e800020 fbc1fff0 ebc2cc00 e93e8000 60000000 e9290000 <7c6449ae> 7c0004ac 60000000 60000000 Thanks, Badari ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton ` (5 preceding siblings ...) 2006-06-12 18:19 ` 2.6.16-rc6-mm2 Badari Pulavarty @ 2006-06-12 22:09 ` Steve Fox 2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton 6 siblings, 1 reply; 76+ messages in thread From: Steve Fox @ 2006-06-12 22:09 UTC (permalink / raw) To: linux-kernel On Fri, 09 Jun 2006 21:40:24 -0700, Andrew Morton wrote: > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ Boot fails on a ppc64 machine. [snip] Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx AMD8111: IDE controller at PCI slot 0000:00:04.1 AMD8111: chipset revision 3 AMD8111: 0000:00:04.1 (rev 03) UDMA133 controller AMD8111: 100% native mode on irq 32 ide0: BM-DMA at 0x7c00-0x7c07<3>AMD8111: -- Error, unable to allocate DMA table. ide1: BM-DMA at 0x7c08-0x7c0f<3>AMD8111: -- Error, unable to allocate DMA table. hda: TOSHIBA MK4019GAXB, ATA DISK drive Unable to handle kernel paging request for data at address 0x00000000 Faulting instruction address: 0xc000000000301240 cpu 0x1: Vector: 300 (Data Access) at [c000000002a13600] pc: c000000000301240: .ide_config_drive_speed+0x228/0x624 lr: c0000000002f6c34: .amd_set_drive+0x7c/0x538 sp: c000000002a13880 msr: 8000000000009032 dar: 0 dsisr: 40000000 current = 0xc00000000ffd6820 paca = 0xc000000000590080 pid = 1, comm = idle -- Steve Fox IBM Linux Technology Center ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-12 22:09 ` 2.6.16-rc6-mm2 Steve Fox @ 2006-06-13 13:54 ` Andrew Morton 2006-06-13 14:10 ` 2.6.16-rc6-mm2 Sergei Shtylyov 0 siblings, 1 reply; 76+ messages in thread From: Andrew Morton @ 2006-06-13 13:54 UTC (permalink / raw) To: Steve Fox; +Cc: linux-kernel, Sergei Shtylylov On Mon, 12 Jun 2006 17:09:52 -0500 Steve Fox <drfickle@us.ibm.com> wrote: > On Fri, 09 Jun 2006 21:40:24 -0700, Andrew Morton wrote: > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > Boot fails on a ppc64 machine. > > [snip] > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx > AMD8111: IDE controller at PCI slot 0000:00:04.1 > AMD8111: chipset revision 3 > AMD8111: 0000:00:04.1 (rev 03) UDMA133 controller > AMD8111: 100% native mode on irq 32 > ide0: BM-DMA at 0x7c00-0x7c07<3>AMD8111: -- Error, unable to allocate DMA table. > ide1: BM-DMA at 0x7c08-0x7c0f<3>AMD8111: -- Error, unable to allocate DMA table. > hda: TOSHIBA MK4019GAXB, ATA DISK drive > Unable to handle kernel paging request for data at address 0x00000000 > Faulting instruction address: 0xc000000000301240 > cpu 0x1: Vector: 300 (Data Access) at [c000000002a13600] > pc: c000000000301240: .ide_config_drive_speed+0x228/0x624 > lr: c0000000002f6c34: .amd_set_drive+0x7c/0x538 > sp: c000000002a13880 > msr: 8000000000009032 > dar: 0 > dsisr: 40000000 > current = 0xc00000000ffd6820 > paca = 0xc000000000590080 > pid = 1, comm = idle Thanks. Reverting the below might fix it. From: Sergei Shtylylov <sshtylyov@ru.mvista.com> Release the DMA engine for the custom mapping IDE drivers also (for example, siimage.c does allocate it in both I/O-mapped and custom-mapped modes). Remove useless code from the error path of ide_allocate_dma_engine(). Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> --- drivers/ide/ide-dma.c | 16 +++++++--------- 1 files changed, 7 insertions(+), 9 deletions(-) diff -puN drivers/ide/ide-dma.c~ide-always-release-dma-engine drivers/ide/ide-dma.c --- devel/drivers/ide/ide-dma.c~ide-always-release-dma-engine 2006-05-11 15:19:36.000000000 -0700 +++ devel-akpm/drivers/ide/ide-dma.c 2006-05-11 15:19:36.000000000 -0700 @@ -808,15 +808,14 @@ static int ide_release_iomio_dma(ide_hwi /* * Needed for allowing full modular support of ide-driver */ -int ide_release_dma (ide_hwif_t *hwif) +int ide_release_dma(ide_hwif_t *hwif) { + ide_release_dma_engine(hwif); + if (hwif->mmio == 2) return 1; - if (hwif->chipset == ide_etrax100) - return 1; - - ide_release_dma_engine(hwif); - return ide_release_iomio_dma(hwif); + else + return ide_release_iomio_dma(hwif); } static int ide_allocate_dma_engine(ide_hwif_t *hwif) @@ -828,10 +827,9 @@ static int ide_allocate_dma_engine(ide_h if (hwif->dmatable_cpu) return 0; - printk(KERN_ERR "%s: -- Error, unable to allocate%s DMA table(s).\n", - hwif->cds->name, !hwif->dmatable_cpu ? " CPU" : ""); + printk(KERN_ERR "%s: -- Error, unable to allocate DMA table.\n", + hwif->cds->name); - ide_release_dma_engine(hwif); return 1; } _ ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-13 14:10 ` Sergei Shtylyov 2006-06-13 19:01 ` 2.6.16-rc6-mm2 Steve Fox ` (2 more replies) 0 siblings, 3 replies; 76+ messages in thread From: Sergei Shtylyov @ 2006-06-13 14:10 UTC (permalink / raw) To: Andrew Morton, Steve Fox, pbadari; +Cc: linux-kernel Hello. Andrew Morton wrote: > On Mon, 12 Jun 2006 17:09:52 -0500 > Steve Fox <drfickle@us.ibm.com> wrote: >>On Fri, 09 Jun 2006 21:40:24 -0700, Andrew Morton wrote: >>>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ >>Boot fails on a ppc64 machine. >> >>[snip] >>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 >>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx >>AMD8111: IDE controller at PCI slot 0000:00:04.1 >>AMD8111: chipset revision 3 >>AMD8111: 0000:00:04.1 (rev 03) UDMA133 controller >>AMD8111: 100% native mode on irq 32 >> ide0: BM-DMA at 0x7c00-0x7c07<3>AMD8111: -- Error, unable to allocate DMA table. >> ide1: BM-DMA at 0x7c08-0x7c0f<3>AMD8111: -- Error, unable to allocate DMA table. >>hda: TOSHIBA MK4019GAXB, ATA DISK drive >>Unable to handle kernel paging request for data at address 0x00000000 >>Faulting instruction address: 0xc000000000301240 >>cpu 0x1: Vector: 300 (Data Access) at [c000000002a13600] >> pc: c000000000301240: .ide_config_drive_speed+0x228/0x624 >> lr: c0000000002f6c34: .amd_set_drive+0x7c/0x538 >> sp: c000000002a13880 >> msr: 8000000000009032 >> dar: 0 >> dsisr: 40000000 >> current = 0xc00000000ffd6820 >> paca = 0xc000000000590080 >> pid = 1, comm = idle > Thanks. Reverting the below might fix it. Frankly speaking, I don't see how that can be possible. I haven't touched any *real* checks in ide_allocate_dma_engine(), so it should fail regardless of my patch. I'd rather supposed that pci_alloc_consistent() had failed... > From: Sergei Shtylylov <sshtylyov@ru.mvista.com> > Release the DMA engine for the custom mapping IDE drivers also (for > example, siimage.c does allocate it in both I/O-mapped and custom-mapped > modes). Remove useless code from the error path of > ide_allocate_dma_engine(). > Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> > Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> > Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> > Signed-off-by: Andrew Morton <akpm@osdl.org> > --- > drivers/ide/ide-dma.c | 16 +++++++--------- > 1 files changed, 7 insertions(+), 9 deletions(-) > diff -puN drivers/ide/ide-dma.c~ide-always-release-dma-engine drivers/ide/ide-dma.c > --- devel/drivers/ide/ide-dma.c~ide-always-release-dma-engine 2006-05-11 15:19:36.000000000 -0700 > +++ devel-akpm/drivers/ide/ide-dma.c 2006-05-11 15:19:36.000000000 -0700 > @@ -808,15 +808,14 @@ static int ide_release_iomio_dma(ide_hwi > /* > * Needed for allowing full modular support of ide-driver > */ > -int ide_release_dma (ide_hwif_t *hwif) > +int ide_release_dma(ide_hwif_t *hwif) > { > + ide_release_dma_engine(hwif); > + > if (hwif->mmio == 2) > return 1; > - if (hwif->chipset == ide_etrax100) > - return 1; > - > - ide_release_dma_engine(hwif); > - return ide_release_iomio_dma(hwif); > + else > + return ide_release_iomio_dma(hwif); > } > > static int ide_allocate_dma_engine(ide_hwif_t *hwif) > @@ -828,10 +827,9 @@ static int ide_allocate_dma_engine(ide_h > if (hwif->dmatable_cpu) > return 0; > > - printk(KERN_ERR "%s: -- Error, unable to allocate%s DMA table(s).\n", > - hwif->cds->name, !hwif->dmatable_cpu ? " CPU" : ""); > + printk(KERN_ERR "%s: -- Error, unable to allocate DMA table.\n", > + hwif->cds->name); > > - ide_release_dma_engine(hwif); > return 1; > } MBR, Sergei ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 14:10 ` 2.6.16-rc6-mm2 Sergei Shtylyov @ 2006-06-13 19:01 ` Steve Fox 2006-06-13 21:43 ` 2.6.16-rc6-mm2 Andrew Morton 2006-06-13 21:51 ` 2.6.16-rc6-mm2 Badari Pulavarty 2 siblings, 0 replies; 76+ messages in thread From: Steve Fox @ 2006-06-13 19:01 UTC (permalink / raw) To: linux-kernel On Tue, 13 Jun 2006 18:10:23 +0400, Sergei Shtylyov wrote: > Frankly speaking, I don't see how that can be possible. I haven't touched > any *real* checks in ide_allocate_dma_engine(), so it should fail regardless > of my patch. I'd rather supposed that pci_alloc_consistent() had failed... It appears that Sergei may be correct. I get the same failure with that one patch reverted. -- Steve Fox IBM Linux Technology Center ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 14:10 ` 2.6.16-rc6-mm2 Sergei Shtylyov 2006-06-13 19:01 ` 2.6.16-rc6-mm2 Steve Fox @ 2006-06-13 21:43 ` Andrew Morton 2006-06-13 21:51 ` 2.6.16-rc6-mm2 Badari Pulavarty 2 siblings, 0 replies; 76+ messages in thread From: Andrew Morton @ 2006-06-13 21:43 UTC (permalink / raw) To: Sergei Shtylyov; +Cc: drfickle, pbadari, linux-kernel On Tue, 13 Jun 2006 18:10:23 +0400 Sergei Shtylyov <sshtylyov@ru.mvista.com> wrote: > > > Thanks. Reverting the below might fix it. > > Frankly speaking, I don't see how that can be possible. I haven't touched > any *real* checks in ide_allocate_dma_engine(), so it should fail regardless > of my patch. I'd rather supposed that pci_alloc_consistent() had failed... > Oh, OK, yes, sorry, you're right, I forgot. pci_alloc_consistent() is broken on powerpc in that kernel. ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 14:10 ` 2.6.16-rc6-mm2 Sergei Shtylyov 2006-06-13 19:01 ` 2.6.16-rc6-mm2 Steve Fox 2006-06-13 21:43 ` 2.6.16-rc6-mm2 Andrew Morton @ 2006-06-13 21:51 ` Badari Pulavarty 2006-06-13 22:36 ` 2.6.16-rc6-mm2 Steve Fox 2 siblings, 1 reply; 76+ messages in thread From: Badari Pulavarty @ 2006-06-13 21:51 UTC (permalink / raw) To: Sergei Shtylyov; +Cc: Andrew Morton, Steve Fox, lkml On Tue, 2006-06-13 at 18:10 +0400, Sergei Shtylyov wrote: > Hello. > > Andrew Morton wrote: > > On Mon, 12 Jun 2006 17:09:52 -0500 > > Steve Fox <drfickle@us.ibm.com> wrote: > > >>On Fri, 09 Jun 2006 21:40:24 -0700, Andrew Morton wrote: > > >>>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc6/2.6.17-rc6-mm2/ > > >>Boot fails on a ppc64 machine. > >> > >>[snip] > >>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 > >>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx > >>AMD8111: IDE controller at PCI slot 0000:00:04.1 > >>AMD8111: chipset revision 3 > >>AMD8111: 0000:00:04.1 (rev 03) UDMA133 controller > >>AMD8111: 100% native mode on irq 32 > >> ide0: BM-DMA at 0x7c00-0x7c07<3>AMD8111: -- Error, unable to allocate DMA table. > >> ide1: BM-DMA at 0x7c08-0x7c0f<3>AMD8111: -- Error, unable to allocate DMA table. > >>hda: TOSHIBA MK4019GAXB, ATA DISK drive Okay. Here is the fix Anton did - which helped my machine. http://patchwork.ozlabs.org/linuxppc/patch?id=5713 Thanks, Badari Index: build/arch/powerpc/kernel/iommu.c =================================================================== --- build.orig/arch/powerpc/kernel/iommu.c 2006-06-10 19:49:51.000000000 +1000 +++ build/arch/powerpc/kernel/iommu.c 2006-06-10 19:52:12.000000000 +1000 @@ -561,7 +561,7 @@ void *iommu_alloc_coherent(struct iommu_ return NULL; /* Alloc enough pages (and possibly more) */ - page = alloc_pages_node(flag, order, node); + page = alloc_pages_node(node, flag, order); if (!page) return NULL; ret = page_address(page); ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: 2.6.16-rc6-mm2 2006-06-13 21:51 ` 2.6.16-rc6-mm2 Badari Pulavarty @ 2006-06-13 22:36 ` Steve Fox 0 siblings, 0 replies; 76+ messages in thread From: Steve Fox @ 2006-06-13 22:36 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Sergei Shtylyov, Andrew Morton, lkml On Tue, 2006-06-13 at 14:51 -0700, Badari Pulavarty wrote: > Okay. Here is the fix Anton did - which helped my machine. > > http://patchwork.ozlabs.org/linuxppc/patch?id=5713 That fixed the IDE adapter error on this machine too. Thanks! -- Steve Fox IBM Linux Technology Center ^ permalink raw reply [flat|nested] 76+ messages in thread
end of thread, other threads:[~2006-06-14 21:56 UTC | newest]
Thread overview: 76+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-10 4:40 2.6.16-rc6-mm2 Andrew Morton
2006-06-10 10:23 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-10 16:24 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-10 16:43 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-10 16:51 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-10 17:03 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-10 18:04 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-10 18:14 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-10 18:31 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-10 18:35 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-12 11:05 ` 2.6.16-rc6-mm2 Ingo Molnar
2006-06-12 11:48 ` 2.6.16-rc6-mm2 Ingo Molnar
2006-06-12 12:14 ` 2.6.16-rc6-mm2 Andi Kleen
2006-06-12 13:07 ` 2.6.16-rc6-mm2 Ingo Molnar
2006-06-12 13:41 ` 2.6.16-rc6-mm2 Andi Kleen
2006-06-13 3:28 ` 2.6.16-rc6-mm2 Keith Owens
2006-06-13 4:56 ` 2.6.16-rc6-mm2 Andi Kleen
2006-06-13 5:08 ` 2.6.16-rc6-mm2 Keith Owens
2006-06-13 5:18 ` 2.6.16-rc6-mm2 Andi Kleen
2006-06-13 5:43 ` 2.6.16-rc6-mm2 Nick Piggin
2006-06-13 5:48 ` 2.6.16-rc6-mm2 Andi Kleen
2006-06-13 11:45 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-13 12:41 ` 2.6.16-rc6-mm2 Keith Owens
2006-06-12 16:37 ` broken local_t on i386 Christoph Lameter
2006-06-12 16:48 ` Andi Kleen
2006-06-12 16:54 ` Christoph Lameter
2006-06-12 17:06 ` Andi Kleen
2006-06-12 17:11 ` Christoph Lameter
2006-06-12 17:29 ` Andi Kleen
2006-06-12 18:14 ` Lee Revell
2006-06-12 18:46 ` Alan Cox
2006-06-12 18:27 ` Christoph Lameter
2006-06-12 17:35 ` Andi Kleen
2006-06-12 18:42 ` Christoph Lameter
2006-06-12 17:55 ` Andi Kleen
2006-06-12 18:59 ` Christoph Lameter
2006-06-12 18:11 ` Andi Kleen
2006-06-12 19:15 ` Christoph Lameter
2006-06-13 3:36 ` Andi Kleen
2006-06-12 20:12 ` Alan Cox
2006-06-13 4:02 ` Andi Kleen
2006-06-12 13:50 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-12 14:20 ` 2.6.16-rc6-mm2 Ingo Molnar
2006-06-12 14:57 ` 2.6.16-rc6-mm2 Michal Piotrowski
[not found] ` <6bffcb0e0606101126v55cc20dbk275d8aa7fdcb0f1a@mail.gmail.com>
2006-06-10 18:36 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-10 19:08 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-10 16:58 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-10 14:56 ` 2.6.16-rc6-mm2 Martin J. Bligh
2006-06-10 16:43 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-10 16:18 ` 2.6.16-rc6-mm2 Dominik Karall
2006-06-10 16:25 ` 2.6.16-rc6-mm2 Michal Piotrowski
2006-06-10 17:42 ` 2.6.16-rc6-mm2 Dominik Karall
2006-06-10 18:43 ` 2.6.16-rc6-mm2 Rafael J. Wysocki
2006-06-11 10:17 ` 2.6.16-rc6-mm2 Jan Engelhardt
2006-06-11 10:58 ` 2.6.16-rc6-mm2 Rafael J. Wysocki
2006-06-12 16:56 ` 2.6.16-rc6-mm2 Zan Lynx
2006-06-12 17:35 ` 2.6.16-rc6-mm2 Cedric Le Goater
2006-06-12 22:16 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-13 0:24 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-14 21:56 ` 2.6.16-rc6-mm2 Trond Myklebust
2006-06-13 7:22 ` 2.6.16-rc6-mm2 Cedric Le Goater
2006-06-13 17:54 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-13 19:35 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-13 20:22 ` 2.6.16-rc6-mm2 Cedric Le Goater
2006-06-13 21:13 ` 2.6.16-rc6-mm2 Christoph Lameter
2006-06-13 21:50 ` 2.6.16-rc6-mm2 Cedric Le Goater
2006-06-12 18:19 ` 2.6.16-rc6-mm2 Badari Pulavarty
2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-13 17:04 ` 2.6.16-rc6-mm2 Badari Pulavarty
2006-06-12 22:09 ` 2.6.16-rc6-mm2 Steve Fox
2006-06-13 13:54 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-13 14:10 ` 2.6.16-rc6-mm2 Sergei Shtylyov
2006-06-13 19:01 ` 2.6.16-rc6-mm2 Steve Fox
2006-06-13 21:43 ` 2.6.16-rc6-mm2 Andrew Morton
2006-06-13 21:51 ` 2.6.16-rc6-mm2 Badari Pulavarty
2006-06-13 22:36 ` 2.6.16-rc6-mm2 Steve Fox
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox