Temporarily at
http://userweb.kernel.org/~akpm/2.6.19-rc6-mm1/
and will appear later at
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc6/2.6.19-rc6-mm1/
- Added per-task I/O accounting via netlink, or via /proc/pid/io. It
attempts to show how much physical I/O a task has caused, or shall cause.
Boilerplate:
- See the `hot-fixes' directory for any important updates to this patchset.
- To fetch an -mm tree using git, use (for example)
git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1
- -mm kernel commit activity can be reviewed by subscribing to the
mm-commits mailing list.
echo "subscribe mm-commits" | mail [email protected]
- If you hit a bug in -mm and it is not obvious which patch caused it, it is
most valuable if you can perform a bisection search to identify which patch
introduced the bug. Instructions for this process are at
http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt
But beware that this process takes some time (around ten rebuilds and
reboots), so consider reporting the bug first and if we cannot immediately
identify the faulty patch, then perform the bisection search.
- When reporting bugs, please try to Cc: the relevant maintainer and mailing
list on any email.
- When reporting bugs in this kernel via email, please also rewrite the
email Subject: in some manner to reflect the nature of the bug. Some
developers filter by Subject: when looking for messages to read.
- Semi-daily snapshots of the -mm lineup are uploaded to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
the mm-commits list.
Changes since 2.6.19-rc5-mm2:
origin.patch
git-acpi.patch
git-alsa.patch
git-agpgart.patch
git-arm.patch
git-cifs.patch
git-cpufreq.patch
git-powerpc.patch
git-drm.patch
git-dvb.patch
git-gfs2-nmw.patch
git-ia64.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-libata-all.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-netdev-all.patch
git-net.patch
git-ioat.patch
git-ocfs2.patch
git-pcmcia.patch
git-r8169.patch
git-selinux.patch
git-pciseg.patch
git-s390.patch
git-sh.patch
git-scsi-misc.patch
git-scsi-target.patch
git-sas.patch
git-qla3xxx.patch
git-watchdog.patch
git-wireless.patch
git-cryptodev.patch
git-gccbug.patch
git trees
-setup_irq-better-mismatch-debugging.patch
-fix-via586-irq-routing-for-pirq-5.patch
-revert-pci-quirk-for-ibm-dock-ii-cardbus-controllers.patch
-drivers-ide-stray-bracket.patch
-autofs4-panic-after-mount-fail.patch
-nvidiafb-fix-unreachable-code-in-nv10getconfig.patch
-usb-maintainers-updates.patch
-hugetlb-prepare_hugepage_range-check-offset-too.patch
-hugetlb-check-for-brk-entering-a-hugepage-region.patch
-ipmi-use-platform_device_add-instead-of-platform_device_register-to-register-device-allocated-dynamically.patch
-ia64-irqs-use-name-not-typename.patch
-gregkh-driver-w1-ioremap-balanced-with-iounmap.patch
-gregkh-driver-debugfs-check-return-value-correctly.patch
-drivers-media-handle-errors-from-input_register_device.patch
-jdelvare-i2c-i2c-scx200_acb-handle-pci-errors.patch
-input-map-btn_forward-to-button-2-in-mousedev.patch
-mac_emumousebtn-shouldnt-depend-on-input_adbhid.patch
-appletouch-improvements-for-macbook.patch
-libata-convert-from-module_init-to-subsys_initcall-resend.patch
-sata_vsc-build-fix.patch
-hpt37x-check-the-enablebits.patch
-pata_artop-fix-1-typo.patch
-libata-change-order-of-_sdd-_gtf-execution-resend-3.patch
-sundance-solve-host-error-problem-in-low-performance-embedded.patch
-add-tsi108-9-on-chip-ethernet-device-driver-support.patch
-e1000-linkage-fix.patch
-wan-dscc4-driver-requires-generic-hdlc.patch
-fix-compat-space-msg-size-limit-for-msgsnd-msgrcv.patch
-ppc-booke-reg-mcsr-msg-misquoted.patch
-ppc4xx-compilation-fixes-for-pci-less-configs.patch
-drivers-scsi-qla2xxx-make-some-functions-static.patch
-scsi-aha1740-handle-scsi-api-errors.patch
-scsi-minor-bug-fixes-and-cleanups.patch
-revert-scsi-ips-soft-lockup-during-reset-initialization.patch
-scsi-ips-soft-lockup-during-reset-initialization-2.patch
-scsi-t128-scsi_cmnd-convertion.patch
-gregkh-usb-usb-ftdi_sio-adds-vendor-product-id-for-a-rfid-construction-kit.patch
-gregkh-usb-usb-ftdi-driver-pid-for-dmx-interfaces.patch
-gregkh-usb-usb-fix-ucr-61s2b-unusual_dev-entry.patch
-gregkh-usb-usb-ohci-fix-root-hub-resume-bug.patch
-gregkh-usb-usb-correct-keymapping-on-powerbook-built-in-usb-iso-keyboards.patch
-gregkh-usb-usb-storage-unusual_devs.h-entry-for-sony-ericsson-p990i.patch
-gregkh-usb-usb-hid-core-add-quirk-for-new-apple-keyboard-trackpad.patch
-gregkh-usb-usb-storage-remove-duplicated-unusual_devs.h-entries-for-sony-ericsson-p990i.patch
-gregkh-usb-usb-fixed-outdated-usb_get_device_descriptor-documentation.patch
-gregkh-usb-usb-ipaq-add-htc-modem-support.patch
-gregkh-usb-usb-auerswald-possible-memleak-fix.patch
-usb-sn9c102_core-free-urb-cleanup.patch
-usb-zc0301_core-free-urb-cleanup.patch
-x86_64-mm-io-apic-reuse.patch
-x86_64-mm-fix-exit-idle-race.patch
-x86_64-mm-reserve-bootmem-beyond-end-pfn.patch
-x86_64-mm-setup-saved_max_pfn-correctly-kdump.patch
-x86_64-mm-ptrace-compat-threadarea.patch
-x86_64-mm-pci-mcfg-reserve-e820.patch
-x86_64-mm-fix-boot-gdt-limit.patch
-x86_64-mm-e820-small-entries.patch
-x86_64-mm-header-and-stubs-for-paravirtualisation.patch
-x86_64-mm-patch-inline-replacements-for.patch
-x86_64-mm-more-generic-paravirtualization.patch
-x86_64-mm-allow-selected-bug-checks-to-be.patch
-x86_64-mm-allow-disabling-legacy-power.patch
-x86_64-mm-add-apic-accessors-to-paravirt-ops..patch
-x86_64-mm-add-mmu-virtualization-to.patch
-x86_64-mm-be-careful-about-touching-bios-address-space.patch
-x86_64-mm-genapic-offbyone.patch
-pda-percpu-init-make-arch-i386-kernel-cpu-commoncalloc_gdt-static.patch
-paravirt-mmu-header-movement.patch
-paravirt-cpu-detect.patch
-paravirt-pte-update-prep.patch
-paravirt-pte-update-common.patch
-revert-x86_64-mm-try-multiple-timer-pins.patch
-revert-x86_64-mm-try-multiple-timer-pins-wanring-fix.patch
-fix-x86_64-mm-i386-reloc-cleanup-align.patch
-fix-x86_64-mm-i386-reloc-kallsyms.patch
-i386-convert-more-absolute-symbols-to-section-relative.patch
-i386-add-write_pci_config_byte-to-direct-pci-access-routines.patch
-i386-introduce-the-mechanism-of-disabling-cpu-hotplug-control.patch
-i386-introduce-the-mechanism-of-disabling-cpu-hotplug-control-cleanup.patch
-x86_64-add-genapic_force.patch
-fix-the-irqbalance-quirk-for-e7320-e7520-e7525.patch
-i386-fix-machine_check-entry-point-in-entrys-to-not-dereference-kernel-memory-from-user-space-context.patch
-efi-calling-efi_get_time-during-suspend.patch
-arch-i386-kernel-io_apicc-handle-a-negative-return-value.patch
-make-arch-i386-kernel-io_apiccirq_vector-static.patch
-crypto-remove-one-too-many-semicolon-in-cryptoh.patch
-ia64-fix-allmodconfig-build.patch
-afs-amend-the-afs-configuration-options.patch
Merged into mainline or a subsystem tree
+pcmcia-fix-rmmod-pcmcia-with-unbound-devices.patch
+initramfs-handle-more-than-one-source-dir-or-file-list.patch
+fuse-fix-oops-in-lookup.patch
+mounstats-null-pointer-dereference.patch
+debugfs-add-header-file.patch
+documentation-rtctxt-updates-for-rtc-class.patch
+rtc-framework-handles-periodic-irqs.patch
+rtc-framework-handles-periodic-irqs-fix.patch
+rtc-class-locking-bugfixes.patch
+drivers-rtc-rtc-rs5c372c-fix-a-null-dereference.patch
+reiserfs-fmt-bugfix.patch
+fix-device_attribute-memory-leak-in-device_del.patch
+qconf-fix-uninitialised-member.patch
+fix-menuconfig-colours.patch
+sgiioc4-disable-module-unload.patch
+fix-copy_process-error-check.patch
+tlclk-fix-platform_device_register_simple-error-check.patch
+enforce-unsigned-long-flags-when-spinlocking.patch
+lockdep-spin_lock_irqsave_nested.patch
+lockdep-spin_lock_irqsave_nested-fix.patch
+lockdep-spin_lock_irqsave_nested-fix-2.patch
+correct-bound-checking-from-the-value-returned-from-_ppc-method.patch
+usb-ati-remote-memleak-fix.patch
2.6.19 queue
+acpi-processor-prevent-loading-module-on-failures.patch
+make-drivers-acpi-baycdrive_bays-static.patch
+acpi-replace-kmallocmemset-with-kzalloc.patch
+make-drivers-acpi-eccec_ecdt-static.patch
+drivers-acpi-oslc-fix-a-null-check.patch
+acpi-dont-select-pm.patch
ACPI things
+git-alsa-fixup.patch
Fix rejects in git-alsa.patch
+sound-initialize-rawmidi-substream-list.patch
+sound-fix-pcm-substream-list.patch
ALSA things
+cpufreq-set-policy-curfreq-on-initialization.patch
+bug-fix-for-acpi-cpufreq-and-cpufreq_stats-oops-on-frequency-change-notification.patch
cpufreq fixes
+gregkh-driver-driver-core-introduce-device_find_child.patch
Driver tree update
+fix-gregkh-driver-sound-device-2.patch
+tidy-gregkh-driver-udev-compatible-hack.patch
+driver-core-introduce-device_move-move-a-device.patch
+platform_driver_probe-can-save-codespace.patch
+platform_driver_probe-can-save-codespace-save-codespace.patch
+documentation-driver-model-platformtxt-update-rewrite.patch
+driver-core-use-klist_remove-in-device_move.patch
driver-tree fixes
-git-dvb-fixup.patch
Unneeded
+jdelvare-hwmon-hwmon-f71805f-fix-address-decoding.patch
hwmon tree update
+fs-dlm-lowcomms-tcpc-remove-2-functions.patch
GFS2 fixlet
+pata_hpt366-more-enable-bits.patch
+pci-move-pci_vdevice-from-libata-to-core.patch
+pata-libata-suspend-resume-simple-cases.patch
+pata-libata-suspend-resume-simple-cases-fix.patch
+pata_cmd64x-suspend-resume.patch
+pata_cs5520-resume-support.patch
+pata_jmicron-fix-jmb368-support-add-suspend-resume.patch
+pata_cs5530-suspend-resume-support.patch
+pata_cs5530-suspend-resume-support-tweak.patch
+pata_rz1000-force-readahead-off-on-resume.patch
+pata_ali-suspend-resume-support.patch
+pata_sil680-suspend-resume.patch
+pata_sil680-suspend-resume-tidy.patch
+ata-fix-platform_device_register_simple-error-check.patch
+sata_promise-updates.patch
+initializer-entry-defined-twice-in-pata_rz1000.patch
+ata_piix-ide-mode-sata-patch-for-intel-ich9.patch
SATA and PATA updates
+mtd-replace-kmallocmemset-with-kzalloc.patch
MTD cleanup
+git-netdev-all-fixup.patch
Fix rejects in git-netdev-all.patch
+spidernet-poor-network-performance.patch
+chelsio-22-driver.patch
+bonding-incorrect-bonding-state-reported-via-ioctl.patch
netdev updates
+git-net-fixup.patch
Fix rejects in git-net.patch
+networking-re-fix-of-doc-comment-in-sockh.patch
+make-udp_encap_rcv-use-pskb_may_pull.patch
Net fixes
+net-uninline-skb_put-fix.patch
Fix net-uninline-skb_put.patch
+serial-replace-kmallocmemset-with-kzalloc.patch
Serial cleanups
+pci-introduce-pci_find_present.patch
+pci-fix-multiple-problems-with-via-hardware.patch
+pci-fix-multiple-problems-with-via-hardware-warning-fix.patch
+drivers-pci-hotplug-ibmphp_pcic-fix-null-dereference.patch
+update-documentation-pcitxt.patch
+pci-move-pci_fixup_device-and-is_enabled.patch
+pci-add-selected_regions-funcs.patch
+e1000-make-intel-e1000-driver-legacy-i-o-port-free.patch
+lpfc-make-emulex-lpfc-driver-legacy-i-o-port-free.patch
PCI updates
+s390-preparatory-cleanup-in-common-i-o-layer.patch
+s390-make-the-per-subchannel-lock-dynamic.patch
+s390-dynamic-subchannel-mapping-of-ccw-devices.patch
s390 updates
+drivers-scsi-aic7xxx-make-functions-static.patch
+scsi-advansys-wrap-pci-table-inside-ifdef-config_pci.patch
SCSI updates
+git-sas-fixup.patch
Fix rejects in git-sas.patch
+usb-pwc-if-loop-fix.patch
+usb-microtek-possible-memleak-fix.patch
+usb-cypress_m8-init-error-path-fix.patch
+usbtouchscreen-add-support-for-dmc-tsc-10-25-devices.patch
+make-drivers-usb-host-u132-hcdcu132_hcd_wait-static.patch
+make-drivers-usb-input-wacom_syscwacom_sys_irq-static.patch
+drivers-usb-misc-ftdi-elanc-fixes-and-cleanups.patch
+make-drivers-usb-core-drivercusb_device_match-static.patch
+usb-serial-replace-kmallocmemset-with-kzalloc.patch
+usb-auerswald-replace-kmallocmemset-with-kzalloc.patch
USB updates
+pre-x86_64-mm-i386-reloc-abssym.patch
Needed so that an x86-tree patch applies
+x86_64-mm-i386-pci-dma-iounmap.patch
+x86_64-mm-paravirt-core.patch
+x86_64-mm-paravirt-inline.patch
+x86_64-mm-cpu_detect-extraction.patch
+x86_64-mm-paravirt-startup.patch
+x86_64-mm-paravirt-no-bugs.patch
+x86_64-mm-paravirt-no-vdso.patch
+x86_64-mm-paravirt-no-powermgmt.patch
+x86_64-mm-paravirt-apic.patch
+x86_64-mm-paravirt-mmu.patch
+x86_64-mm-paravirt-bios.patch
+x86_64-mm-mmu-header-movement.patch
+x86_64-mm-fix-bad-mmu-names.patch
+x86_64-mm-fix-missing-pte-update.patch
+x86_64-mm-skip-timer-works.patch
+x86_64-mm-i386-config-core2.patch
+x86_64-mm-vsyscall-perms.patch
+x86_64-mm-irq-rate-limit.patch
+x86_64-mm-clear_fixmap-should-not-use-set_pte.patch
+x86_64-mm-i386-nmi-watchdog-cpu-limit.patch
+x86_64-mm-earlyprintk-con-boot.patch
+x86_64-mm-remove-prototype-of-free_bootmem_generic.patch
+x86_64-mm-conditionalize-inclusion-of-some-mtrr-flavors.patch
+x86_64-mm-adjust-pmd_bad.patch
+x86_64-mm-fix-mtrr-code.patch
+x86_64-mm-alloc_gdt-static.patch
+x86_64-mm-fix-x86_64-mm-i386-reloc-kallsyms.patch
+x86_64-mm-convert-more-absolute-symbols-to-section-relative.patch
+x86_64-mm-add-write_pci_config_byte-to-direct-pci-access-routines.patch
+x86_64-mm-introduce-the-mechanism-of-disabling-cpu-hotplug-control.patch
+x86_64-mm-change-the-no_control-field-to-hotpluggable-in-the-struct-cpu.patch
+x86_64-mm-add-genapic_force.patch
+x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525.patch
+x86_64-mm-calling-efi_get_time-during-suspend.patch
+x86_64-mm-handle-a-negative-return-value.patch
+x86_64-mm-i386-irq-vector-static.patch
+x86_64-mm-x86-64-add-intel-bts-cpufeature-bit-and-detection-take-2.patch
+x86_64-mm-i386-add-intel-bts-cpufeature-bit-and-detection-take-2.patch
+x86_64-mm-i386-apic-early-param.patch
+x86_64-mm-apic-suspend-msrs.patch
+x86_64-mm-genericarch-up-compilation.patch
+x86_64-mm-backtrace-strict-check.patch
+x86_64-mm-vdso.patch
+x86_64-mm-i386-efi-memmap.patch
+x86_64-mm-i386-remove-duplicate-printk.patch
x86 tree updates
+revert-x86_64-mm-vdso.patch
+revert-x86_64-mm-earlyprintk-con-boot.patch
+fix-x86_64-mm-patch-inline-replacements-for-section-warnings.patch
Fix it
+post-x86_64-mm-i386-reloc-abssym.patch
Reapply this
+mtrr-replace-kmallocmemset-with-kzalloc.patch
+i386-correct-documentation-for-bzimage-protocol-v205.patch
+fix-asm-constraints-in-i386-atomic_add_return.patch
+i386-msr-remove-unused-variable.patch
+x86_64-smpboot-remove-unused-variable.patch
+arch-i386-kernel-remove-remaining-pc98-code.patch
+i386-replace-kmallocmemset-with-kzalloc.patch
+x86_64-fake-numa-provides-a-io-hole-size-in-a-given-address-range.patch
+x86_64-fake-numa-increase-the-node_shift.patch
+x86_64-fake-numa-fix-numa=fake.patch
+x86_64-fake-numa-extends-the-kernel-command-line-option-for-numa=fake.patch
x86/x86_64 things
+altix-acpi-ssdt-pci-device-support.patch
+altix-add-acpi-ssdt-pci-device-support-hotplug.patch
+add-support-for-acpi_load_table-acpi_unload_table_id.patch
Altix work
+always-print-out-the-header-line-in-proc-swaps.patch
+leak-tracking-for-kmalloc_node.patch
+leak-tracking-for-kmalloc_node-fix.patch
+add-numa-node-information-to-struct-device.patch
+add-numa-node-information-to-struct-device-tidy.patch
+node-aware-skb-allocation.patch
+node-aware-skb-allocation-fix-for-device-tree-changes.patch
+allow-null-pointers-in-percpu_free.patch
+enables-booting-a-numa-system-where-some-nodes-have-no.patch
+make-mm-thrashcglobal_faults-static.patch
+remove-bio_cachep-from-slabh.patch
+move-sighand_cachep-to-include-signalh.patch
+move-vm_area_cachep-to-include-mmh.patch
+move-files_cachep-to-include-fileh.patch
+move-filep_cachep-to-include-fileh.patch
+move-fs_cachep-to-linux-fs_structh.patch
+move-names_cachep-to-linux-fsh.patch
+remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh.patch
+drain_node_page-drain-pages-in-batch-units.patch
+numa-node-ids-are-int-page_to_nid-and-zone_to_nid-should-return-int.patch
+silence-unused-pgdat-warning-from-alloc_bootmem_node-and-friends.patch
+reject-corrupt-swapfiles-earlier.patch
+mm-call-into-direct-reclaim-without-pf_memalloc-set.patch
+mm-cleanup-and-document-reclaim-recursion.patch
Memory management updates
-security-introduce-file-caps.patch
-security-introduce-file-caps-tweaks.patch
-security-introduce-file-caps-warning-fix.patch
Dropped - this has problems.
+add-include-linux-freezerh-and-move-definitions-from-ucb1400_ts-fix.patch
Fix add-include-linux-freezerh-and-move-definitions-from.patch some more.
-swsusp-freeze-filesystems-during-suspend-rev-2.patch
-swsusp-freeze-filesystems-during-suspend-rev-2-comments.patch
Dropped
+suspend-to-disk-fails-if-gdb-is-suspended-with-a-traced-child.patch
+convert-pm_sem-to-a-mutex.patch
+convert-pm_sem-to-a-mutex-fix.patch
+swsusp-untangle-thaw_processes.patch
+swsusp-untangle-freeze_processes.patch
+swsusp-fix-coding-style-in-suspendc.patch
+swsusp-fix-labels.patch
+support-for-freezeable-workqueues.patch
+use-freezeable-workqueues-in-xfs.patch
swsusp updates
+deprecate-smbfs-in-favour-of-cifs-docs.patch
Update deprecate-smbfs-in-favour-of-cifs.patch
+fix-serial-uartlite-after-global-pt_regs.patch
+serial-uartlite-support-multiple-devices.patch
+serial-uartlite-initialize-port-parameters-in-console_setup.patch
Serial updates
+remove-drivers-pci-searchcpci_find_device_reverse.patch
PCI cleanup
+fuse-fix-compile-without-config_block.patch
FUSE fix
+hpfs-fix-printk-format-warnings.patch
hpfs warning fixes
+initrd-remove-unused-false-condition-for.patch
+fix-the-size-limit-of-compat-space-msgsize.patch
+elf-always-define-elf_addr_t-in-linux-elfh.patch
+elf-include-terminating-zero-in-n_namesz.patch
+elf-fix-kcore-note-size-calculation.patch
+elf-fix-kcore-note-size-calculation-fix.patch
+reiserfs-add-missing-d-cache-flushing.patch
+reiserfs-add-missing-d-cache-flushing-tweak.patch
+the-scheduled-removal-of-some-oss-options.patch
+make-1-bit-bitfields-unsigned.patch
+hvcs-char-driver-janitoring-move-block-of-code.patch
+hvcs-char-driver-janitoring-rm-compiler-warnings.patch
+kprobes-enable-booster-on-the-preemptible-kernel.patch
+hotplug-cpu-clean-up-hotcpu_notifier-use.patch
+hotplug-cpu-clean-up-hotcpu_notifier-use-vs-gregkh-driver-cpu-topology-consider-sysfs_create_group-return-value.patch
+ext3-fix-reservation-extension.patch
+ext4-fix-reservation-extension.patch
+make-arch-i386-pci-commoncpci_bf_sort-static.patch
+allow-hwrandom-core-to-be-a-module.patch
+make-mm-shmemcshmem_xattr_security_handler-static.patch
+remove-kernel-lockdepclockdep_internal.patch
+make-kernel-signalckill_proc_info-static.patch
+i2o-handle-__copy_from_user.patch
+i2o-fix-i2o_config-without-adaptec-extension.patch
+make-ecryptfs_version_str_map-static.patch
+make-fs-jbd-transactionc__journal_temp_unlink_buffer-static.patch
+make-fs-jbd2-transactionc__jbd2_journal_temp_unlink_buffer-static.patch
+fs-lockd-hostc-make-2-functions-static.patch
+make-fs-proc-basecproc_pid_instantiate-static.patch
+parport-section-mismatches-with-hotplug=n.patch
+agp-amd64-section-mismatches-with-hotplug=n.patch
+scsi-initio-section-mismatches-with-hotplug=n.patch
+add-rtc-omap-driver.patch
+add-return-value-checking-of-get_user-in.patch
+add-return-value-checking-of-get_user-in-fix.patch
+ciss-require-same-scsi-module-support.patch
+export-toshiba-smm-support-for-neofb-module.patch
+kernel-doc-add-fusion-and-i2o-to-kernel-api-book.patch
+kernel-doc-fix-fusion-and-i2o-docs.patch
+kernel-api-book-remove-videodev-chapter.patch
+rcu-add-a-prefetch-in-rcu_do_batch.patch
+dont-insert-pipe-dentries-into-dentry_hashtable.patch
+dcache-avoid-rcu-for-never-hashed-dentries.patch
+net-dont-insert-socket-dentries-into-dentry_hashtable.patch
+kernel-core-replace-kmallocmemset-with-kzalloc.patch
+kernel-doc-stricter-function-pointer-recognition.patch
+input-add-to-kernel-api-docbook.patch
Misc updates
+io-accounting-core-statistics.patch
+io-accounting-core-statistics-fix.patch
+clean-up-__set_page_dirty_nobuffers.patch
+io-accounting-write-accounting.patch
+io-accounting-write-cancel-accounting.patch
+io-accounting-read-accounting-2.patch
+io-accounting-read-accounting-nfs-fix.patch
+io-accounting-read-accounting-cifs-fix.patch
+io-accounting-metadata-read-accounting.patch
+io-accounting-direct-io.patch
+io-accounting-report-in-procfs.patch
+cleanup-taskstatsh.patch
+io-accounting-via-taskstats.patch
+getdelays-various-fixes.patch
+io-accounting-add-to-getdelays.patch
per-task IO accounting
-ext2-reservations-fix.patch
-ext2-reservations-sequential-read-regression-fix.patch
-ext2-reservations-filesystem-bogus-ENOSPC-with-reservation-fix.patch
-ext2-reservations-ext3_clear_inode-avoid-kfree-null.patch
-ext2-reservations-multile-block-allocate-little-endian-fixes.patch
-ext2-reservations-mark-group-descriptors-dirty-during-allocation.patch
-ext2-reservations-nuke-noisy-printk.patch
-ext2-reservations-bring-ext2-reservations-code-in-line-with-latest-ext3.patch
Folded into ext2-reservations.patch
+ext2-fix-reservation-extension.patch
+make-ext2_get_blocks-static.patch
ext2-reservations updates
+generic-bug-implementation-handle-bug=n.patch
Fix generic-bug-implementation.patch
+net-use-bitrev8-tidy.patch
Clean up the bitrev cleanups
+drivers-mtd-nand-rtc_from4c-use-lib-bitrevc.patch
+drivers-mtd-nand-rtc_from4c-use-lib-bitrevc-tidy.patch
Use the bitrev library
+ecryptfs-use-fsstacks-generic-copy-inode-attr-tidy-fix-fix.patch
fix ecryptfs some more
-fs-cache-provide-a-filesystem-specific-syncable-page-bit.patch
-fs-cache-provide-a-filesystem-specific-syncable-page-bit-ext4.patch
-fs-cache-generic-filesystem-caching-facility.patch
-fs-cache-release-page-private-in-failed-readahead.patch
-fs-cache-release-page-private-after-failed-readahead-12.patch
-fs-cache-make-kafs-use-fs-cache.patch
-fs-cache-make-kafs-use-fs-cache-fix.patch
-fs-cache-make-kafs-use-fs-cache-12.patch
-fs-cache-make-kafs-use-fs-cache-12-fix.patch
-fs-cache-make-kafs-use-fs-cache-kconfig-fix.patch
-fs-cache-make-kafs-use-fs-cache-vs-streamline-generic_file_-interfaces-and-filemap.patch
-nfs-use-local-caching.patch
-nfs-use-local-caching-12.patch
-nfs-use-local-caching-12-fix.patch
-nfs-use-local-caching-kconfig-fix.patch
-nfs-use-local-caching-configh.patch
-add-missing-page_copy-export-for-ppc-and-powerpc.patch
-fs-cache-cachefiles-ia64-missing-copy_page-export.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-fscache-fix-gfp_t-sparse-annotations.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-printk-format-warning.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-warning-fixes.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-cachefiles_write_page-shouldnt-indicate-error-twice.patch
-fscache-kconfig-tidying.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-log2-fix.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-handle-enospc-on-create-mkdir-better.patch
-fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-inode-count-maintenance.patch
-rename-struct-namespace-to-struct-mnt_namespace-cachefiles.patch
Dropped - these were out of date
+tty-switch-to-ktermios-and-new-framework-irda-fix.patch
Fix tty-switch-to-ktermios-and-new-framework.patch
+tty-switch-to-ktermios-uml-fix-2.patch
Fix tty-switch-to-ktermios.patch some more
+isdn-replace-kmallocmemset-with-kzalloc.patch
ISDN cleanup
+nfs2-calculate-w-a-bit-later-in-nfsaclsvc_encode_getaclres.patch
+nfs3-calculate-w-a-bit-later-in-nfs3svc_encode_getaclres.patch
NFS microoptimisations
+fault-injection-capability-for-kmalloc-failslab-remove-__gfp_highmem-filtering.patch
+fault-injection-stacktrace-filtering-reject-failure-if-any-caller-lies-within-specified-range.patch
+fault-injection-Kconfig-cleanup-config_fault_injection-help-text.patch
Fix the fault-injection patches
+sched-domain-move-sched-group-allocations-to-percpu-area.patch
+move_task_off_dead_cpu-should-be-called-with-disabled-ints.patch
+sched-domain-increase-the-smt-busy-rebalance-interval.patch
+sched-avoid-taking-rq-lock-in-wake_priority_sleeper.patch
+sched-remove-staggering-of-load-balancing.patch
+sched-disable-interrupts-for-locking-in-load_balance.patch
+sched-extract-load-calculation-from-rebalance_tick.patch
+sched-move-idle-status-calculation-into-rebalance_tick.patch
+sched-use-softirq-for-load-balancing.patch
+sched-call-tasklet-less-frequently.patch
+sched-add-option-to-serialize-load-balancing.patch
+sched-add-option-to-serialize-load-balancing-fix.patch
+sched-improve-migration-accuracy.patch
+sched-improve-migration-accuracy-tidy.patch
+sched-decrease-number-of-load-balances.patch
+mm-only-sched-add-a-few-scheduler-event-counters.patch
+sched-optimize-activate_task-for-rt-task.patch
CPU scheduler updates
+remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch
MM cleanup
+readahead-kconfig-options-fix.patch
+radixtree-introduce-scan-hole-data-functions.patch
-readahead-delay-page-release-in-do_generic_mapping_read.patch
-readahead-initial-method-expected-read-size.patch
-readahead-seeking-reads-method.patch
+readahead-call-scheme-ifdef-fix.patch
+readahead-call-scheme-build-fix.patch
+readahead-nfsd-case-fix.patch
-readahead-debug-radix-tree-new-functions.patch
-readahead-debug-traces-showing-accessed-file-names.patch
-readahead-debug-traces-showing-read-patterns.patch
-readahead-backward-prefetching-method-fix.patch
-readahead-remove-the-size-limit-of-max_sectors_kb-on-read_ahead_kb.patch
+readahead-remove-size-limit-of-max_sectors_kb-on-read_ahead_kb.patch
Updated readahead patch series
-reiser4-export-handle_ra_miss.patch
Unneeded
+reiser4-export-remove_from_page_cache-fix.patch
Fix reiser4-export-remove_from_page_cache.patch
+fs-reiser4-possible-cleanups-2.patch
reiser4 cleanups
-fbmem-is-bootup-logo-broken-for-monochrome-lcd.patch
Dropped, buggy.
+visws-sgivwfb-is-module-needs-exports.patch
+backlight-lcd-remove-dependenct-from-the-framebuffer-layer.patch
+backlight-lcd-remove-dependenct-from-the-framebuffer-layer-tidy.patch
+softcursorc-avoid-unaligned-accesses.patch
fbdev updates
+dm-io-fix-bi_max_vecs.patch
+dm-tidy-core-formatting.patch
+dm-suspend-parameter-change.patch
+dm-map-and-endio-return-code-clarification.patch
+dm-map-and-endio-symbolic-return-codes.patch
+dm-ioctl-add-noflush-suspend.patch
+dm-suspend-add-noflush-pushback.patch
+dm-mpath-use-noflush-suspending.patch
+dm-snapshot-abstract-memory-release.patch
+dm-log-rename-complete_resync_work.patch
+dm-raid1-reset-sync_search-on-resume.patch
+make-drivers-md-dm-snapcksnapd-static.patch
device-mapper updates
+extend-notifier_call_chain-to-count-nr_calls-made.patch
+extend-notifier_call_chain-to-count-nr_calls-made-fixes.patch
+extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch
+define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release.patch
+define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch
+eliminate-lock_cpu_hotplug-in-kernel-schedc.patch
+eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch
+handle-cpu_lock_acquire-and-cpu_lock_release-in-workqueue_cpu_callback.patch
cpu-hotplug locking rework.
+gtod-persistent-clock-support-core-remove-kernel-timercwall_jiffies.patch
+dynticks-extend-next_timer_interrupt-to-use-a-reference-jiffie-make-kernel-timerc__next_timer_interrupt-static.patch
+updated-i386-convert-to-clock-event-devices-remove-arch-i386-kernel-time_hpetchpet_reenable.patch
Fiddle with the dynticks and hrtimers patches. These still have plenty of
problems.
+kvm-virtualization-infrastructure-fix-mmu-reset-locking-when-setting-cr0.patch
+kvm-define-exit-handlers-pass-fs-gs-segment-bases-to-x86-emulator.patch
+kvm-less-common-exit-handlers-handle-rdmsrmsr_efer.patch
+kvm-x86-emulator-fix-emulator-mov-cr-decoding.patch
+kvm-expose-interrupt-bitmap.patch
+kvm-add-time-stamp-counter-msr-and-accessors.patch
+kvm-expose-msrs-to-userspace.patch
+kvm-expose-msrs-to-userspace-v2.patch
KVM updates
+slim-main-patch-security-slim-slm_mainc-make-2-functions-static.patch
SLIM cleanup
+profile_likely-export-do_check_likely.patch
Fix profile-likely-unlikely-macros.patch
+lockdep-show-held-locks-when-showing-a-stackdump.patch
+lockdep-show-held-locks-when-showing-a-stackdump-fix.patch
lockdep feature.
All 1524 patches:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc6/2.6.19-rc6-mm1/patch-list
On 23/11/2006 9:17 PM, Andrew Morton wrote:
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.19-rc6-mm1/
>
> and will appear later at
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc6/2.6.19-rc6-mm1/
>
>
>
> - Added per-task I/O accounting via netlink, or via /proc/pid/io. It
> attempts to show how much physical I/O a task has caused, or shall cause.
Minor glitch:
CC arch/x86_64/kernel/ioport.o
CC arch/x86_64/kernel/ldt.o
CC arch/x86_64/kernel/setup.o
CC arch/x86_64/kernel/i8259.o
CC arch/x86_64/kernel/sys_x86_64.o
CC arch/x86_64/kernel/x8664_ksyms.o
CC arch/x86_64/kernel/i387.o
CC arch/x86_64/kernel/syscall.o
CC arch/x86_64/kernel/vsyscall.o
arch/x86_64/kernel/vsyscall.c: In function 'vsyscall_init':
arch/x86_64/kernel/vsyscall.c:310: error: 'cpu_vsyscall_notifier' undeclared
(first use in this function)
arch/x86_64/kernel/vsyscall.c:310: error: (Each undeclared identifier is
reported only once
arch/x86_64/kernel/vsyscall.c:310: error: for each function it appears in.)
make[1]: *** [arch/x86_64/kernel/vsyscall.o] Error 1
make: *** [arch/x86_64/kernel] Error 2
[root@tornado linux-mm]#
gcc version 4.1.1 20061120 (Red Hat 4.1.1-39)
.config is up at http://www.reub.net/files/kernel/configs/2.6.19-rc6-mm1
Reuben
Hello,
Hmmm ... didn't apply cleanly.
patching file kernel/tsacct.c
Hunk #1 FAILED at 97.
1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
Anyway this is what I get on my laptop:
=================================
[ INFO: inconsistent lock state ]
2.6.19-rc6-mm1 #1
---------------------------------
inconsistent {hardirq-on-R} -> {in-hardirq-W} usage.
swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
(&inode->i_data.tree_lock){+.--}, at: [<c014bef1>] test_clear_page_writeback+0x30/0xd6
{hardirq-on-R} state was registered at:
[<c012e648>] mark_lock+0x5b/0x5b6
[<c012ebe3>] mark_held_locks+0x40/0x74
[<c012ec8e>] trace_hardirqs_on+0x77/0x164
[<c03f1169>] _read_unlock_irq+0x22/0x4b
[<c014ce0c>] try_context_based_readahead+0x24a/0x36f
[<c014d06c>] page_cache_readahead_adaptive+0x13b/0x5cc
[<c01466fd>] do_generic_mapping_read+0x483/0x550
[<c0148790>] generic_file_aio_read+0xfb/0x21b
[<c016488e>] do_sync_read+0xcd/0x103
[<c01650b9>] vfs_read+0x89/0x147
[<c01654ce>] sys_read+0x3d/0x64
[<c0102f96>] sysenter_past_esp+0x5f/0x99
[<b7ef8410>] 0xb7ef8410
[<ffffffff>] 0xffffffff
irq event stamp: 172758
hardirqs last enabled at (172757): [<c028d8ed>] acpi_safe_halt+0x1a/0x29
hardirqs last disabled at (172758): [<c0103200>] common_interrupt+0x24/0x34
softirqs last enabled at (172714): [<c011a8a0>] __do_softirq+0xa6/0xb4
softirqs last disabled at (172709): [<c011a8f9>] do_softirq+0x4b/0x4d
other info that might help us debug this:
1 lock held by swapper/0:
#0: (ide_lock){++..}, at: [<c02db777>] ide_end_request+0x1a/0xec
stack backtrace:
[<c010383c>] dump_trace+0x1ba/0x1e9
[<c0103885>] show_trace_log_lvl+0x1a/0x30
[<c0103fc6>] show_trace+0x12/0x14
[<c010407d>] dump_stack+0x16/0x18
[<c012e2de>] print_usage_bug+0x241/0x24b
[<c012eade>] mark_lock+0x4f1/0x5b6
[<c012fade>] __lock_acquire+0x7a9/0xbfe
[<c0130254>] lock_acquire+0x57/0x70
[<c03f0e1d>] _write_lock_irqsave+0x3e/0x4e
[<c014bef1>] test_clear_page_writeback+0x30/0xd6
[<c0145d61>] end_page_writeback+0x22/0x40
[<c0184a53>] end_buffer_async_write+0x138/0x1df
[<c01840e1>] end_bio_bh_io_sync+0x26/0x3d
[<c0185dc3>] bio_endio+0x36/0x61
[<c023ad79>] __end_that_request_first+0x135/0x405
[<c023b05e>] end_that_request_first+0xb/0xd
[<c02db7b3>] ide_end_request+0x56/0xec
[<c02e35c8>] ide_dma_intr+0x6f/0xa5
[<c02dc3bf>] ide_intr+0x74/0x1c7
[<c0143a69>] handle_IRQ_event+0x28/0x59
[<c0144ed5>] handle_level_irq+0x78/0xfb
[<c010500a>] do_IRQ+0x45/0x9b
[<c010320a>] common_interrupt+0x2e/0x34
[<c028d8ef>] acpi_safe_halt+0x1c/0x29
[<c028dac1>] acpi_processor_idle+0x14e/0x391
[<c0101353>] cpu_idle+0x41/0x6a
[<c01005ed>] rest_init+0x37/0x3a
[<c0590710>] start_kernel+0x2a5/0x325
=======================
Linux orion 2.6.19-rc6-mm1 #1 PREEMPT Thu Nov 23 11:47:29 CET 2006 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz GenuineIntel GNU/Linux
Gnu C 4.1.1
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.2.2
e2fsprogs 1.39
pcmciautils 014
pcmcia-cs 3.2.9
nfs-utils 1.0.6
Linux C Library > libc.2.4
Dynamic linker (ldd) 2.4
Procps 3.2.6
Net-tools 1.60
Kbd 1.12
Sh-utils 6.4
udev 087
wireless-tools 29
Modules Loaded orinoco_cs orinoco hermes pcmcia firmware_class 8139too yenta_socket rsrc_nonstatic pcmcia_core
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2392.503
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips : 4787.45
clflush size : 64
Please find .config attached.
--
Regards,
Mariusz Kozlowski
Hello,
Athlon i386 box. Doesn't build.
LD .tmp_vmlinux1
arch/i386/kernel/built-in.o: In function `efi_limit_regions':
e820.c:(.init.text+0x1b88): undefined reference to `memmap'
e820.c:(.init.text+0x1b8e): undefined reference to `memmap'
e820.c:(.init.text+0x1bc2): undefined reference to `memmap'
e820.c:(.init.text+0x1bca): undefined reference to `memmap'
e820.c:(.init.text+0x1bf7): undefined reference to `is_available_memory'
e820.c:(.init.text+0x1c07): undefined reference to `memmap'
e820.c:(.init.text+0x1c32): undefined reference to `memmap'
e820.c:(.init.text+0x1c40): undefined reference to `memmap'
e820.c:(.init.text+0x1c47): undefined reference to `memmap'
e820.c:(.init.text+0x1c54): undefined reference to `memmap'
arch/i386/kernel/built-in.o:e820.c:(.init.text+0x1c5b): more undefined references to `memmap' follow
make: *** [.tmp_vmlinux1] Error 1
Linux localhost 2.6.18-rc3-mm2 #2 PREEMPT Mon Aug 7 16:15:36 CEST 2006 i686 AMD Athlon(tm) XP 1700+ AuthenticAMD GNU/Linux
Gnu C 3.4.6
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.2.2
e2fsprogs 1.39
nfs-utils 1.0.6
Linux C Library > libc.2.4
Dynamic linker (ldd) 2.4
Procps 3.2.6
Net-tools 1.60
Kbd 1.12
Sh-utils 6.4
udev 087
Modules Loaded
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 6
model name : AMD Athlon(tm) XP 1700+
stepping : 2
cpu MHz : 1466.768
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
bogomips : 2936.26
Please find .config attached.
--
Regards,
Mariusz Kozlowski
Failing to apply here across the board.
-apw
patching file kernel/tsacct.c
Hunk #1 FAILED at 97.
1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
patching file kernel/workqueue.c
On Thu, 23 Nov 2006, Reuben Farrelly wrote:
> > http://userweb.kernel.org/~akpm/2.6.19-rc6-mm1/
> arch/x86_64/kernel/vsyscall.c: In function 'vsyscall_init':
> arch/x86_64/kernel/vsyscall.c:310: error: 'cpu_vsyscall_notifier' undeclared
> (first use in this function)
> arch/x86_64/kernel/vsyscall.c:310: error: (Each undeclared identifier is
> reported only once
> arch/x86_64/kernel/vsyscall.c:310: error: for each function it appears in.)
> make[1]: *** [arch/x86_64/kernel/vsyscall.o] Error 1
> make: *** [arch/x86_64/kernel] Error 2
[PATCH] x86_64: fix build without HOTPLUG_CPU
cpu_vsyscall_notifier() is defined only when CONFIG_HOTPLUG_CPU is
defined.
Signed-off-by: Jiri Kosina <[email protected]>
---
arch/x86_64/kernel/vsyscall.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/x86_64/kernel/vsyscall.c b/arch/x86_64/kernel/vsyscall.c
index 3416462..e93ffcf 100644
--- a/arch/x86_64/kernel/vsyscall.c
+++ b/arch/x86_64/kernel/vsyscall.c
@@ -307,7 +307,9 @@ #ifdef CONFIG_SYSCTL
register_sysctl_table(kernel_root_table2, 0);
#endif
on_each_cpu(cpu_vsyscall_init, NULL, 0, 1);
+#ifdef CONFIG_HOTPLUG_CPU
hotcpu_notifier(cpu_vsyscall_notifier, 0);
+#endif
return 0;
}
--
Jiri Kosina
SUSE Labs
Jiri Kosina <[email protected]> writes:
>
> cpu_vsyscall_notifier() is defined only when CONFIG_HOTPLUG_CPU is
> defined.
It's already long fixed in Linus' tree (in
6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3) I wonder why that didn't
makeit into Andrew's.
Andrew, time to update your linus-patch?
-Andi
On Thu, 23 Nov 2006, Andi Kleen wrote:
> > cpu_vsyscall_notifier() is defined only when CONFIG_HOTPLUG_CPU is
> > defined.
> It's already long fixed in Linus' tree (in
> 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3) I wonder why that didn't
> makeit into Andrew's. Andrew, time to update your linus-patch?
Well, is it really? 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3 adds the
ifdef around the cpu_vsyscall_notifier() declaration, but later it's
passed as parameter to hotcpu_notifier() unconditionally. This is fixed by
the patch I sent.
--
Jiri Kosina
SUSE Labs
On Thu, Nov 23, 2006 at 04:17:00PM +0100, Jiri Kosina wrote:
> On Thu, 23 Nov 2006, Andi Kleen wrote:
>
> > > cpu_vsyscall_notifier() is defined only when CONFIG_HOTPLUG_CPU is
> > > defined.
> > It's already long fixed in Linus' tree (in
> > 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3) I wonder why that didn't
> > makeit into Andrew's. Andrew, time to update your linus-patch?
>
> Well, is it really? 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3 adds the
> ifdef around the cpu_vsyscall_notifier() declaration, but later it's
> passed as parameter to hotcpu_notifier() unconditionally. This is fixed by
> the patch I sent.
hotcpu_notifier is a macro that expands to nothing for !CONFIG_HOTPLUG_CPU
-Andi
On Thu, 23 Nov 2006, Andi Kleen wrote:
> > Well, is it really? 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3 adds the
> > ifdef around the cpu_vsyscall_notifier() declaration, but later it's
> > passed as parameter to hotcpu_notifier() unconditionally. This is fixed by
> > the patch I sent.
> hotcpu_notifier is a macro that expands to nothing for !CONFIG_HOTPLUG_CPU
Now I see where does the confusion come from. 2.6.19-rc6-mm1 has
hotplug-cpu-clean-up-hotcpu_notifier-use.patch from Ingo (CC added), which
does this, among other things:
-#define hotcpu_notifier(fn, pri) do { } while (0)
-#define register_hotcpu_notifier(nb) do { } while (0)
-#define unregister_hotcpu_notifier(nb) do { } while (0)
+#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
+#define register_hotcpu_notifier(nb) do { (void)(nb); } while (0)
+#define unregister_hotcpu_notifier(nb) do { (void)(nb); } while (0)
--
Jiri Kosina
SUSE Labs
* Jiri Kosina <[email protected]> wrote:
> On Thu, 23 Nov 2006, Andi Kleen wrote:
>
> > > Well, is it really? 6b3d1a95ba714bfb1cc81362f7f3e01b7654b4f3 adds the
> > > ifdef around the cpu_vsyscall_notifier() declaration, but later it's
> > > passed as parameter to hotcpu_notifier() unconditionally. This is fixed by
> > > the patch I sent.
> > hotcpu_notifier is a macro that expands to nothing for !CONFIG_HOTPLUG_CPU
>
> Now I see where does the confusion come from. 2.6.19-rc6-mm1 has
> hotplug-cpu-clean-up-hotcpu_notifier-use.patch from Ingo (CC added), which
> does this, among other things:
>
> -#define hotcpu_notifier(fn, pri) do { } while (0)
> -#define register_hotcpu_notifier(nb) do { } while (0)
> -#define unregister_hotcpu_notifier(nb) do { } while (0)
> +#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
> +#define register_hotcpu_notifier(nb) do { (void)(nb); } while (0)
> +#define unregister_hotcpu_notifier(nb) do { (void)(nb); } while (0)
here's the one i have in my tree, it's:
26 files changed, 8 insertions(+), 58 deletions(-)
while in Andrew's tree it's:
23 files changed, 8 insertions(+), 52 deletions(-)
so i guess Andrew should update to the one below?
Ingo
---------------->
Subject: [patch] hotplug CPU: clean up hotcpu_notifier() use
From: Ingo Molnar <[email protected]>
There was lots of #ifdef noise in the kernel due to
hotcpu_notifier(fn, prio) not correctly marking 'fn'
as used in the !HOTPLUG_CPU case, and thus generating
compiler warnings of unused symbols, hence forcing
people to add #ifdefs.
the compiler can skip truly unused functions just fine:
text data bss dec hex filename
1624412 728710 3674856 6027978 5bfaca vmlinux.before
1624412 728710 3674856 6027978 5bfaca vmlinux.after
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/i386/kernel/cpu/mcheck/therm_throt.c | 2 --
arch/i386/kernel/cpuid.c | 2 --
arch/i386/kernel/microcode.c | 2 --
arch/i386/kernel/msr.c | 2 --
arch/ia64/kernel/palinfo.c | 2 --
arch/ia64/kernel/salinfo.c | 2 --
arch/s390/appldata/appldata_base.c | 2 --
arch/x86_64/kernel/mce.c | 2 --
arch/x86_64/kernel/mce_amd.c | 2 --
arch/x86_64/kernel/vsyscall.c | 2 --
block/ll_rw_blk.c | 4 ----
drivers/cpufreq/cpufreq.c | 2 --
fs/buffer.c | 2 --
fs/xfs/xfs_mount.c | 4 +---
include/linux/cpu.h | 6 +++---
kernel/cpuset.c | 4 ----
kernel/fork.c | 2 +-
kernel/profile.c | 3 +--
kernel/sched.c | 3 ---
kernel/workqueue.c | 2 --
lib/radix-tree.c | 2 --
mm/page_alloc.c | 4 ----
mm/swap.c | 2 ++
mm/vmscan.c | 2 --
net/core/dev.c | 2 --
net/core/flow.c | 2 --
26 files changed, 8 insertions(+), 58 deletions(-)
Index: linux/arch/i386/kernel/cpu/mcheck/therm_throt.c
===================================================================
--- linux.orig/arch/i386/kernel/cpu/mcheck/therm_throt.c
+++ linux/arch/i386/kernel/cpu/mcheck/therm_throt.c
@@ -115,7 +115,6 @@ static __cpuinit int thermal_throttle_ad
return sysfs_create_group(&sys_dev->kobj, &thermal_throttle_attr_group);
}
-#ifdef CONFIG_HOTPLUG_CPU
static __cpuinit void thermal_throttle_remove_dev(struct sys_device *sys_dev)
{
return sysfs_remove_group(&sys_dev->kobj, &thermal_throttle_attr_group);
@@ -152,7 +151,6 @@ static struct notifier_block thermal_thr
{
.notifier_call = thermal_throttle_cpu_callback,
};
-#endif /* CONFIG_HOTPLUG_CPU */
static __init int thermal_throttle_init_device(void)
{
Index: linux/arch/i386/kernel/cpuid.c
===================================================================
--- linux.orig/arch/i386/kernel/cpuid.c
+++ linux/arch/i386/kernel/cpuid.c
@@ -167,7 +167,6 @@ static int cpuid_class_device_create(int
return err;
}
-#ifdef CONFIG_HOTPLUG_CPU
static int cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
{
unsigned int cpu = (unsigned long)hcpu;
@@ -187,7 +186,6 @@ static struct notifier_block __cpuinitda
{
.notifier_call = cpuid_class_cpu_callback,
};
-#endif /* !CONFIG_HOTPLUG_CPU */
static int __init cpuid_init(void)
{
Index: linux/arch/i386/kernel/microcode.c
===================================================================
--- linux.orig/arch/i386/kernel/microcode.c
+++ linux/arch/i386/kernel/microcode.c
@@ -703,7 +703,6 @@ static struct sysdev_driver mc_sysdev_dr
.resume = mc_sysdev_resume,
};
-#ifdef CONFIG_HOTPLUG_CPU
static __cpuinit int
mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
{
@@ -726,7 +725,6 @@ mc_cpu_callback(struct notifier_block *n
static struct notifier_block mc_cpu_notifier = {
.notifier_call = mc_cpu_callback,
};
-#endif
static int __init microcode_init (void)
{
Index: linux/arch/i386/kernel/msr.c
===================================================================
--- linux.orig/arch/i386/kernel/msr.c
+++ linux/arch/i386/kernel/msr.c
@@ -250,7 +250,6 @@ static int msr_class_device_create(int i
return err;
}
-#ifdef CONFIG_HOTPLUG_CPU
static int msr_class_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu)
{
@@ -271,7 +270,6 @@ static struct notifier_block __cpuinitda
{
.notifier_call = msr_class_cpu_callback,
};
-#endif
static int __init msr_init(void)
{
Index: linux/arch/ia64/kernel/palinfo.c
===================================================================
--- linux.orig/arch/ia64/kernel/palinfo.c
+++ linux/arch/ia64/kernel/palinfo.c
@@ -952,7 +952,6 @@ remove_palinfo_proc_entries(unsigned int
}
}
-#ifdef CONFIG_HOTPLUG_CPU
static int palinfo_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu)
{
@@ -974,7 +973,6 @@ static struct notifier_block palinfo_cpu
.notifier_call = palinfo_cpu_callback,
.priority = 0,
};
-#endif
static int __init
palinfo_init(void)
Index: linux/arch/ia64/kernel/salinfo.c
===================================================================
--- linux.orig/arch/ia64/kernel/salinfo.c
+++ linux/arch/ia64/kernel/salinfo.c
@@ -575,7 +575,6 @@ static struct file_operations salinfo_da
.write = salinfo_log_write,
};
-#ifdef CONFIG_HOTPLUG_CPU
static int __devinit
salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
{
@@ -620,7 +619,6 @@ static struct notifier_block salinfo_cpu
.notifier_call = salinfo_cpu_callback,
.priority = 0,
};
-#endif /* CONFIG_HOTPLUG_CPU */
static int __init
salinfo_init(void)
Index: linux/arch/s390/appldata/appldata_base.c
===================================================================
--- linux.orig/arch/s390/appldata/appldata_base.c
+++ linux/arch/s390/appldata/appldata_base.c
@@ -561,7 +561,6 @@ appldata_offline_cpu(int cpu)
spin_unlock(&appldata_timer_lock);
}
-#ifdef CONFIG_HOTPLUG_CPU
static int __cpuinit
appldata_cpu_notify(struct notifier_block *self,
unsigned long action, void *hcpu)
@@ -582,7 +581,6 @@ appldata_cpu_notify(struct notifier_bloc
static struct notifier_block appldata_nb = {
.notifier_call = appldata_cpu_notify,
};
-#endif
/*
* appldata_init()
Index: linux/arch/x86_64/kernel/mce.c
===================================================================
--- linux.orig/arch/x86_64/kernel/mce.c
+++ linux/arch/x86_64/kernel/mce.c
@@ -641,7 +641,6 @@ static __cpuinit int mce_create_device(u
return err;
}
-#ifdef CONFIG_HOTPLUG_CPU
static void mce_remove_device(unsigned int cpu)
{
int i;
@@ -674,7 +673,6 @@ mce_cpu_callback(struct notifier_block *
static struct notifier_block mce_cpu_notifier = {
.notifier_call = mce_cpu_callback,
};
-#endif
static __init int mce_init_device(void)
{
Index: linux/arch/x86_64/kernel/mce_amd.c
===================================================================
--- linux.orig/arch/x86_64/kernel/mce_amd.c
+++ linux/arch/x86_64/kernel/mce_amd.c
@@ -551,7 +551,6 @@ out:
return err;
}
-#ifdef CONFIG_HOTPLUG_CPU
/*
* let's be hotplug friendly.
* in case of multiple core processors, the first core always takes ownership
@@ -658,7 +657,6 @@ static int threshold_cpu_callback(struct
static struct notifier_block threshold_cpu_notifier = {
.notifier_call = threshold_cpu_callback,
};
-#endif /* CONFIG_HOTPLUG_CPU */
static __init int threshold_init_device(void)
{
Index: linux/arch/x86_64/kernel/vsyscall.c
===================================================================
--- linux.orig/arch/x86_64/kernel/vsyscall.c
+++ linux/arch/x86_64/kernel/vsyscall.c
@@ -274,7 +274,6 @@ static void __cpuinit cpu_vsyscall_init(
vsyscall_set_cpu(raw_smp_processor_id());
}
-#ifdef CONFIG_HOTPLUG_CPU
static int __cpuinit
cpu_vsyscall_notifier(struct notifier_block *n, unsigned long action, void *arg)
{
@@ -283,7 +282,6 @@ cpu_vsyscall_notifier(struct notifier_bl
smp_call_function_single(cpu, cpu_vsyscall_init, NULL, 0, 1);
return NOTIFY_DONE;
}
-#endif
static void __init map_vsyscall(void)
{
Index: linux/block/ll_rw_blk.c
===================================================================
--- linux.orig/block/ll_rw_blk.c
+++ linux/block/ll_rw_blk.c
@@ -3374,8 +3374,6 @@ static void blk_done_softirq(struct soft
}
}
-#ifdef CONFIG_HOTPLUG_CPU
-
static int blk_cpu_notify(struct notifier_block *self, unsigned long action,
void *hcpu)
{
@@ -3401,8 +3399,6 @@ static struct notifier_block __devinitda
.notifier_call = blk_cpu_notify,
};
-#endif /* CONFIG_HOTPLUG_CPU */
-
/**
* blk_complete_request - end I/O on a request
* @req: the request being processed
Index: linux/drivers/cpufreq/cpufreq.c
===================================================================
--- linux.orig/drivers/cpufreq/cpufreq.c
+++ linux/drivers/cpufreq/cpufreq.c
@@ -1535,7 +1535,6 @@ int cpufreq_update_policy(unsigned int c
}
EXPORT_SYMBOL(cpufreq_update_policy);
-#ifdef CONFIG_HOTPLUG_CPU
static int cpufreq_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu)
{
@@ -1575,7 +1574,6 @@ static struct notifier_block __cpuinitda
{
.notifier_call = cpufreq_cpu_callback,
};
-#endif /* CONFIG_HOTPLUG_CPU */
/*********************************************************************
* REGISTER / UNREGISTER CPUFREQ DRIVER *
Index: linux/fs/buffer.c
===================================================================
--- linux.orig/fs/buffer.c
+++ linux/fs/buffer.c
@@ -2972,7 +2972,6 @@ init_buffer_head(void *data, kmem_cache_
}
}
-#ifdef CONFIG_HOTPLUG_CPU
static void buffer_exit_cpu(int cpu)
{
int i;
@@ -2994,7 +2993,6 @@ static int buffer_cpu_notify(struct noti
buffer_exit_cpu((unsigned long)hcpu);
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
void __init buffer_init(void)
{
Index: linux/fs/xfs/xfs_mount.c
===================================================================
--- linux.orig/fs/xfs/xfs_mount.c
+++ linux/fs/xfs/xfs_mount.c
@@ -1704,7 +1704,6 @@ xfs_mount_log_sbunit(
* is present to prevent thrashing).
*/
-#ifdef CONFIG_HOTPLUG_CPU
/*
* hot-plug CPU notifier support.
*
@@ -1761,7 +1760,6 @@ xfs_icsb_cpu_notify(
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
int
xfs_icsb_init_counters(
@@ -1777,8 +1775,8 @@ xfs_icsb_init_counters(
#ifdef CONFIG_HOTPLUG_CPU
mp->m_icsb_notifier.notifier_call = xfs_icsb_cpu_notify;
mp->m_icsb_notifier.priority = 0;
- register_hotcpu_notifier(&mp->m_icsb_notifier);
#endif /* CONFIG_HOTPLUG_CPU */
+ register_hotcpu_notifier(&mp->m_icsb_notifier);
for_each_online_cpu(i) {
cntp = (xfs_icsb_cnts_t *)per_cpu_ptr(mp->m_sb_cnts, i);
Index: linux/include/linux/cpu.h
===================================================================
--- linux.orig/include/linux/cpu.h
+++ linux/include/linux/cpu.h
@@ -81,9 +81,9 @@ int cpu_down(unsigned int cpu);
#define lock_cpu_hotplug() do { } while (0)
#define unlock_cpu_hotplug() do { } while (0)
#define lock_cpu_hotplug_interruptible() 0
-#define hotcpu_notifier(fn, pri) do { } while (0)
-#define register_hotcpu_notifier(nb) do { } while (0)
-#define unregister_hotcpu_notifier(nb) do { } while (0)
+#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
+#define register_hotcpu_notifier(nb) do { (void)(nb); } while (0)
+#define unregister_hotcpu_notifier(nb) do { (void)(nb); } while (0)
/* CPUs don't go offline once they're online w/o CONFIG_HOTPLUG_CPU */
static inline int cpu_is_offline(int cpu) { return 0; }
Index: linux/kernel/cpuset.c
===================================================================
--- linux.orig/kernel/cpuset.c
+++ linux/kernel/cpuset.c
@@ -2045,7 +2045,6 @@ out:
return err;
}
-#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_MEMORY_HOTPLUG)
/*
* If common_cpu_mem_hotplug_unplug(), below, unplugs any CPUs
* or memory nodes, we need to walk over the cpuset hierarchy,
@@ -2109,9 +2108,7 @@ static void common_cpu_mem_hotplug_unplu
mutex_unlock(&callback_mutex);
mutex_unlock(&manage_mutex);
}
-#endif
-#ifdef CONFIG_HOTPLUG_CPU
/*
* The top_cpuset tracks what CPUs and Memory Nodes are online,
* period. This is necessary in order to make cpusets transparent
@@ -2128,7 +2125,6 @@ static int cpuset_handle_cpuhp(struct no
common_cpu_mem_hotplug_unplug();
return 0;
}
-#endif
#ifdef CONFIG_MEMORY_HOTPLUG
/*
Index: linux/kernel/fork.c
===================================================================
--- linux.orig/kernel/fork.c
+++ linux/kernel/fork.c
@@ -66,7 +66,7 @@ int max_threads; /* tunable limit on nr
DEFINE_PER_CPU(unsigned long, process_counts) = 0;
-__cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */
+DEFINE_RWLOCK(tasklist_lock); /* outer */
int nr_processes(void)
{
Index: linux/kernel/profile.c
===================================================================
--- linux.orig/kernel/profile.c
+++ linux/kernel/profile.c
@@ -298,7 +298,6 @@ out:
put_cpu();
}
-#ifdef CONFIG_HOTPLUG_CPU
static int __devinit profile_cpu_callback(struct notifier_block *info,
unsigned long action, void *__cpu)
{
@@ -351,10 +350,10 @@ static int __devinit profile_cpu_callbac
}
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
#else /* !CONFIG_SMP */
#define profile_flip_buffers() do { } while (0)
#define profile_discard_flip_buffers() do { } while (0)
+#define profile_cpu_callback NULL
void profile_hit(int type, void *__pc)
{
Index: linux/kernel/sched.c
===================================================================
--- linux.orig/kernel/sched.c
+++ linux/kernel/sched.c
@@ -6742,8 +6742,6 @@ SYSDEV_ATTR(sched_smt_power_savings, 064
sched_smt_power_savings_store);
#endif
-
-#ifdef CONFIG_HOTPLUG_CPU
/*
* Force a reinitialization of the sched domains hierarchy. The domains
* and groups cannot be updated in place without racing with the balancing
@@ -6776,7 +6774,6 @@ static int update_sched_domains(struct n
return NOTIFY_OK;
}
-#endif
void __init sched_init_smp(void)
{
Index: linux/kernel/workqueue.c
===================================================================
--- linux.orig/kernel/workqueue.c
+++ linux/kernel/workqueue.c
@@ -609,7 +609,6 @@ int current_is_keventd(void)
}
-#ifdef CONFIG_HOTPLUG_CPU
/* Take the work from this (downed) CPU. */
static void take_over_work(struct workqueue_struct *wq, unsigned int cpu)
{
@@ -692,7 +691,6 @@ static int __devinit workqueue_cpu_callb
return NOTIFY_OK;
}
-#endif
void init_workqueues(void)
{
Index: linux/lib/radix-tree.c
===================================================================
--- linux.orig/lib/radix-tree.c
+++ linux/lib/radix-tree.c
@@ -869,7 +869,6 @@ static __init void radix_tree_init_maxin
height_to_maxindex[i] = __maxindex(i);
}
-#ifdef CONFIG_HOTPLUG_CPU
static int radix_tree_callback(struct notifier_block *nfb,
unsigned long action,
void *hcpu)
@@ -889,7 +888,6 @@ static int radix_tree_callback(struct no
}
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
void __init radix_tree_init(void)
{
Index: linux/mm/page_alloc.c
===================================================================
--- linux.orig/mm/page_alloc.c
+++ linux/mm/page_alloc.c
@@ -700,7 +700,6 @@ void drain_node_pages(int nodeid)
}
#endif
-#if defined(CONFIG_PM) || defined(CONFIG_HOTPLUG_CPU)
static void __drain_pages(unsigned int cpu)
{
unsigned long flags;
@@ -722,7 +721,6 @@ static void __drain_pages(unsigned int c
}
}
}
-#endif /* CONFIG_PM || CONFIG_HOTPLUG_CPU */
#ifdef CONFIG_PM
@@ -2736,7 +2734,6 @@ void __init free_area_init(unsigned long
__pa(PAGE_OFFSET) >> PAGE_SHIFT, NULL);
}
-#ifdef CONFIG_HOTPLUG_CPU
static int page_alloc_cpu_notify(struct notifier_block *self,
unsigned long action, void *hcpu)
{
@@ -2751,7 +2748,6 @@ static int page_alloc_cpu_notify(struct
}
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
void __init page_alloc_init(void)
{
Index: linux/mm/swap.c
===================================================================
--- linux.orig/mm/swap.c
+++ linux/mm/swap.c
@@ -514,5 +514,7 @@ void __init swap_setup(void)
* Right now other parts of the system means that we
* _really_ don't want to cluster much more
*/
+#ifdef CONFIG_HOTPLUG_CPU
hotcpu_notifier(cpu_swap_callback, 0);
+#endif
}
Index: linux/mm/vmscan.c
===================================================================
--- linux.orig/mm/vmscan.c
+++ linux/mm/vmscan.c
@@ -1508,7 +1508,6 @@ out:
}
#endif
-#ifdef CONFIG_HOTPLUG_CPU
/* It's optimal to keep kswapds on the same CPUs as their memory, but
not required for correctness. So if the last cpu in a node goes
away, we get changed to run anywhere: as the first one comes back,
@@ -1529,7 +1528,6 @@ static int __devinit cpu_callback(struct
}
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
/*
* This kswapd start function will be called by init and node-hot-add.
Index: linux/net/core/dev.c
===================================================================
--- linux.orig/net/core/dev.c
+++ linux/net/core/dev.c
@@ -3361,7 +3361,6 @@ void unregister_netdev(struct net_device
EXPORT_SYMBOL(unregister_netdev);
-#ifdef CONFIG_HOTPLUG_CPU
static int dev_cpu_callback(struct notifier_block *nfb,
unsigned long action,
void *ocpu)
@@ -3405,7 +3404,6 @@ static int dev_cpu_callback(struct notif
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
#ifdef CONFIG_NET_DMA
/**
Index: linux/net/core/flow.c
===================================================================
--- linux.orig/net/core/flow.c
+++ linux/net/core/flow.c
@@ -340,7 +340,6 @@ static void __devinit flow_cache_cpu_pre
tasklet_init(tasklet, flow_cache_flush_tasklet, 0);
}
-#ifdef CONFIG_HOTPLUG_CPU
static int flow_cache_cpu(struct notifier_block *nfb,
unsigned long action,
void *hcpu)
@@ -349,7 +348,6 @@ static int flow_cache_cpu(struct notifie
__flow_cache_shrink((unsigned long)hcpu, 0);
return NOTIFY_OK;
}
-#endif /* CONFIG_HOTPLUG_CPU */
static int __init flow_cache_init(void)
{
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
...
> +x86_64-mm-i386-config-core2.patch
hmmm... this one missed to update also include/asm/module.h:
HOSTCC scripts/genksyms/parse.o
HOSTCC scripts/mod/sumversion.o
In file included from include/linux/module.h:22,
from include/linux/crypto.h:21,
from arch/i386/kernel/asm-offsets.c:7:
include/asm/module.h:60:2: error: #error unknown processor family
HOSTLD scripts/genksyms/genksyms
make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
make: *** Waiting for unfinished jobs....
If the family name is correct the patch is quite trivial :)
Signed-out-by: Mattia Dongili <[email protected]>
---
diff --git a/include/asm-i386/module.h b/include/asm-i386/module.h
index 424661d..e453565 100644
--- a/include/asm-i386/module.h
+++ b/include/asm-i386/module.h
@@ -26,6 +26,8 @@ struct mod_arch_specific
#define MODULE_PROC_FAMILY "PENTIUMII "
#elif defined CONFIG_MPENTIUMIII
#define MODULE_PROC_FAMILY "PENTIUMIII "
+#elif defined CONFIG_MCORE2
+#define MODULE_PROC_FAMILY "CORE2 "
#elif defined CONFIG_MPENTIUMM
#define MODULE_PROC_FAMILY "PENTIUMM "
#elif defined CONFIG_MPENTIUM4
On Thu, 23 Nov 2006 12:23:48 +0100
Mariusz Kozlowski <[email protected]> wrote:
>
> Hello,
>
> Hmmm ... didn't apply cleanly.
>
> patching file kernel/tsacct.c
> Hunk #1 FAILED at 97.
> 1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
I think your local tree is not clean.
> Anyway this is what I get on my laptop:
>
> =================================
> [ INFO: inconsistent lock state ]
> 2.6.19-rc6-mm1 #1
> ---------------------------------
> inconsistent {hardirq-on-R} -> {in-hardirq-W} usage.
hm, nested read_lock_irq()+read_unlock_irq() in the readahead code..
--- a/mm/readahead.c~readahead-context-based-method-locking-fix
+++ a/mm/readahead.c
@@ -1171,10 +1171,10 @@ static inline unsigned long inactive_pag
/*
* Count/estimate cache hits in range [begin, end).
- * The estimation is simple and optimistic.
+ * The estimation is simple and optimistic. The caller must hold tree_lock.
*/
#define CACHE_HIT_HASH_KEY 29 /* some prime number */
-static int count_cache_hit(struct address_space *mapping,
+static int __count_cache_hit(struct address_space *mapping,
pgoff_t begin, pgoff_t end)
{
int size = end - begin;
@@ -1187,14 +1187,12 @@ static int count_cache_hit(struct addres
* behavior guarantees a readahead when (size < ra_max) and
* (readahead_hit_rate >= 8).
*/
- read_lock_irq(&mapping->tree_lock);
for (i = 0; i < 8;) {
struct page *page = radix_tree_lookup(&mapping->page_tree,
begin + size * ((i++ * CACHE_HIT_HASH_KEY) & 7) / 8);
if (inactive_page_refcnt(page) >= PAGE_REFCNT_1 && ++count >= 2)
break;
}
- read_unlock_irq(&mapping->tree_lock);
return size * count / i;
}
_
Hello,
> > Hmmm ... didn't apply cleanly.
> >
> > patching file kernel/tsacct.c
> > Hunk #1 FAILED at 97.
> > 1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
>
> I think your local tree is not clean.
Nope. I've seen it on three boxes.
> > Anyway this is what I get on my laptop:
> >
> > =================================
> > [ INFO: inconsistent lock state ]
> > 2.6.19-rc6-mm1 #1
> > ---------------------------------
> > inconsistent {hardirq-on-R} -> {in-hardirq-W} usage.
>
> hm, nested read_lock_irq()+read_unlock_irq() in the readahead code..
I guess what you meant was sth like the patch below. That helped. Thanks.
--- linux-2.6.19-rc6-mm1-a/mm/readahead.c 2006-11-23 20:03:53.000000000 +0100
+++ linux-2.6.19-rc6-mm1-b/mm/readahead.c 2006-11-23 19:57:26.000000000 +0100
@@ -1227,10 +1227,10 @@ static inline unsigned long inactive_pag
/*
* Count/estimate cache hits in range [begin, end).
- * The estimation is simple and optimistic.
+ * The estimation is simple and optimistic. The caller must hold tree_lock.
*/
#define CACHE_HIT_HASH_KEY 29 /* some prime number */
-static int count_cache_hit(struct address_space *mapping,
+static int __count_cache_hit(struct address_space *mapping,
pgoff_t begin, pgoff_t end)
{
int size = end - begin;
@@ -1243,14 +1243,12 @@ static int count_cache_hit(struct addres
* behavior guarantees a readahead when (size < ra_max) and
* (readahead_hit_rate >= 8).
*/
- read_lock_irq(&mapping->tree_lock);
for (i = 0; i < 8;) {
struct page *page = radix_tree_lookup(&mapping->page_tree,
begin + size * ((i++ * CACHE_HIT_HASH_KEY) & 7) / 8);
if (inactive_page_refcnt(page) >= PAGE_REFCNT_1 && ++count >= 2)
break;
}
- read_unlock_irq(&mapping->tree_lock);
return size * count / i;
}
@@ -1282,7 +1280,7 @@ static unsigned long count_history_pages
*/
if (!(ra->flags & RA_FLAG_NFSD)) {
unsigned long hit_rate = max(readahead_hit_rate, 1);
- if (count_cache_hit(mapping, head, offset) * hit_rate < count)
+ if (__count_cache_hit(mapping, head, offset) * hit_rate < count)
count = 0;
}
--
Regards,
Mariusz Kozlowski
Andrew Morton wrote:
> On Thu, 23 Nov 2006 12:23:48 +0100
> Mariusz Kozlowski <[email protected]> wrote:
>
>> Hello,
>>
>> Hmmm ... didn't apply cleanly.
>>
>> patching file kernel/tsacct.c
>> Hunk #1 FAILED at 97.
>> 1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
>
> I think your local tree is not clean.
I get this accross the board on my test system too. All clean downloads.
A quick look at the combo-patch and the broken-out patch seems to
indicate they are not in sync with each other. In the combo-patch we
have this hunk (which is the one which fails):
--- linux-2.6.19-rc6/kernel/tsacct.c 2006-11-16 23:19:32.000000000 -0800
+++ devel/kernel/tsacct.c 2006-11-23 01:12:17.000000000 -0800
@@ -97,7 +97,14 @@ void xacct_add_tsk(struct taskstats *sta
stats->read_syscalls = p->syscr;
stats->write_syscalls = p->syscw;
#ifdef CONFIG_TASK_IO_ACCOUNTING
- stats->read_bytes = p->ioac->read_bytes
+ stats->read_bytes = p->ioac.read_bytes;
+ stats->write_bytes = p->ioac.write_bytes;
+ stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
+#else
+ stats->read_bytes = 0;
+ stats->write_bytes = 0;
+ stats->cancelled_write_bytes = 0;
+#endif
In the broken-out directory the only patch which references this file
has the following different hunk:
--- a/kernel/tsacct.c~io-accounting-via-taskstats
+++ a/kernel/tsacct.c
@@ -96,6 +96,15 @@ void xacct_add_tsk(struct taskstats *sta
stats->write_char = 0;
stats->read_syscalls = p->syscr;
stats->write_syscalls = p->syscw;
+#ifdef CONFIG_TASK_IO_ACCOUNTING
+ stats->read_bytes = p->ioac.read_bytes;
+ stats->write_bytes = p->ioac.write_bytes;
+ stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
+#else
+ stats->read_bytes = 0;
+ stats->write_bytes = 0;
+ stats->cancelled_write_bytes = 0;
+#endif
}
#undef KB
#undef MB
Looking at 2.6.19-rc6 this second version seems completely reasonable.
The former does not.
-apw
On 11/23/06, Andrew Morton <[email protected]> wrote:
> On Thu, 23 Nov 2006 12:23:48 +0100
> Mariusz Kozlowski <[email protected]> wrote:
> >
> > Hello,
> >
> > Hmmm ... didn't apply cleanly.
> >
> > patching file kernel/tsacct.c
> > Hunk #1 FAILED at 97.
> > 1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
>
> I think your local tree is not clean.
>
I get it with a clean tree with:
patch 2.5.9
Copyright (C) 1988 Larry Wall
Copyright (C) 2003 Free Software Foundation, Inc.
regards,
Benoit
On Thu, 23 Nov 2006 20:20:40 +0000
Andy Whitcroft <[email protected]> wrote:
> Andrew Morton wrote:
> > On Thu, 23 Nov 2006 12:23:48 +0100
> > Mariusz Kozlowski <[email protected]> wrote:
> >
> >> Hello,
> >>
> >> Hmmm ... didn't apply cleanly.
> >>
> >> patching file kernel/tsacct.c
> >> Hunk #1 FAILED at 97.
> >> 1 out of 1 hunk FAILED -- saving rejects to file kernel/tsacct.c.rej
> >
> > I think your local tree is not clean.
>
> I get this accross the board on my test system too. All clean downloads.
>
> A quick look at the combo-patch and the broken-out patch seems to
> indicate they are not in sync with each other. In the combo-patch we
> have this hunk (which is the one which fails):
>
> --- linux-2.6.19-rc6/kernel/tsacct.c 2006-11-16 23:19:32.000000000 -0800
> +++ devel/kernel/tsacct.c 2006-11-23 01:12:17.000000000 -0800
> @@ -97,7 +97,14 @@ void xacct_add_tsk(struct taskstats *sta
> stats->read_syscalls = p->syscr;
> stats->write_syscalls = p->syscw;
> #ifdef CONFIG_TASK_IO_ACCOUNTING
> - stats->read_bytes = p->ioac->read_bytes
> + stats->read_bytes = p->ioac.read_bytes;
> + stats->write_bytes = p->ioac.write_bytes;
> + stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
> +#else
> + stats->read_bytes = 0;
> + stats->write_bytes = 0;
> + stats->cancelled_write_bytes = 0;
> +#endif
>
> In the broken-out directory the only patch which references this file
> has the following different hunk:
>
> --- a/kernel/tsacct.c~io-accounting-via-taskstats
> +++ a/kernel/tsacct.c
> @@ -96,6 +96,15 @@ void xacct_add_tsk(struct taskstats *sta
> stats->write_char = 0;
> stats->read_syscalls = p->syscr;
> stats->write_syscalls = p->syscw;
> +#ifdef CONFIG_TASK_IO_ACCOUNTING
> + stats->read_bytes = p->ioac.read_bytes;
> + stats->write_bytes = p->ioac.write_bytes;
> + stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
> +#else
> + stats->read_bytes = 0;
> + stats->write_bytes = 0;
> + stats->cancelled_write_bytes = 0;
> +#endif
> }
> #undef KB
> #undef MB
>
> Looking at 2.6.19-rc6 this second version seems completely reasonable.
> The former does not.
Yes, it seems it was me who had the scrogged tree.
Oh well, use /proc/pid/io ;)
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> git-net.patch
>...
> git trees
>...
TCP_MD5SIG_DEBUG lacks a help text.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> +chelsio-22-driver.patch
>...
> netdev updates
It is suspicious that the following newly added code is completely unused:
drivers/net/chelsio/ixf1010.o
t1_ixf1010_ops
drivers/net/chelsio/mac.o
t1_chelsio_mac_ops
drivers/net/chelsio/vsc8244.o
t1_vsc8244_ops
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
From: Adrian Bunk <[email protected]>
Date: Fri, 24 Nov 2006 00:30:30 +0100
> On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.19-rc5-mm2:
> >...
> > git-net.patch
> >...
> > git trees
> >...
>
> TCP_MD5SIG_DEBUG lacks a help text.
Thanks for the report Adrian, I'll take care of this.
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> +io-accounting-report-in-procfs.patch
>...
> per-task IO accounting
>...
proc_pid_io_accounting() can become static.
Signed-off-by: Adrian Bunk <[email protected]>
--- linux-2.6.19-rc6-mm1/fs/proc/base.c.old 2006-11-24 01:23:55.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/proc/base.c 2006-11-24 01:24:06.000000000 +0100
@@ -1805,7 +1805,7 @@
}
#ifdef CONFIG_TASK_IO_ACCOUNTING
-int proc_pid_io_accounting(struct task_struct *task, char *buffer)
+static int proc_pid_io_accounting(struct task_struct *task, char *buffer)
{
return sprintf(buffer,
"read_bytes: %llu\n"
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> +readahead-kconfig-options-fix.patch
> +radixtree-introduce-scan-hole-data-functions.patch
> -readahead-delay-page-release-in-do_generic_mapping_read.patch
> -readahead-initial-method-expected-read-size.patch
> -readahead-seeking-reads-method.patch
> +readahead-call-scheme-ifdef-fix.patch
> +readahead-call-scheme-build-fix.patch
> +readahead-nfsd-case-fix.patch
> -readahead-debug-radix-tree-new-functions.patch
> -readahead-debug-traces-showing-accessed-file-names.patch
> -readahead-debug-traces-showing-read-patterns.patch
> -readahead-backward-prefetching-method-fix.patch
> -readahead-remove-the-size-limit-of-max_sectors_kb-on-read_ahead_kb.patch
> +readahead-remove-size-limit-of-max_sectors_kb-on-read_ahead_kb.patch
>
> Updated readahead patch series
>...
readahead_debug_level can now become static.
Signed-off-by: Adrian Bunk <[email protected]>
--- linux-2.6.19-rc6-mm1/mm/readahead.c.old 2006-11-24 01:26:26.000000000 +0100
+++ linux-2.6.19-rc6-mm1/mm/readahead.c 2006-11-24 01:26:41.000000000 +0100
@@ -93,7 +93,7 @@
};
#ifdef CONFIG_DEBUG_READAHEAD
-u32 readahead_debug_level = 1;
+static u32 readahead_debug_level = 1;
static u32 disable_stateful_method;
static const char * const ra_class_name[];
static void ra_account(struct file_ra_state *ra, enum ra_event e, int pages);
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> git-scsi-misc.patch
>...
> git trees
>...
qla2x00_reg_remote_port() can now become static.
Signed-off-by: Adrian Bunk <[email protected]>
---
drivers/scsi/qla2xxx/qla_gbl.h | 1
drivers/scsi/qla2xxx/qla_init.c | 68 ++++++++++++++++----------------
2 files changed, 34 insertions(+), 35 deletions(-)
--- linux-2.6.19-rc6-mm1/drivers/scsi/qla2xxx/qla_gbl.h.old 2006-11-24 01:18:47.000000000 +0100
+++ linux-2.6.19-rc6-mm1/drivers/scsi/qla2xxx/qla_gbl.h 2006-11-24 01:18:53.000000000 +0100
@@ -45,7 +45,6 @@
extern int qla2x00_abort_isp(scsi_qla_host_t *);
extern void qla2x00_update_fcport(scsi_qla_host_t *, fc_port_t *);
-extern void qla2x00_reg_remote_port(scsi_qla_host_t *, fc_port_t *);
extern void qla2x00_alloc_fw_dump(scsi_qla_host_t *);
extern void qla2x00_try_to_stop_firmware(scsi_qla_host_t *);
--- linux-2.6.19-rc6-mm1/drivers/scsi/qla2xxx/qla_init.c.old 2006-11-24 01:19:00.000000000 +0100
+++ linux-2.6.19-rc6-mm1/drivers/scsi/qla2xxx/qla_init.c 2006-11-24 01:20:25.000000000 +0100
@@ -2103,40 +2103,7 @@
}
}
-/*
- * qla2x00_update_fcport
- * Updates device on list.
- *
- * Input:
- * ha = adapter block pointer.
- * fcport = port structure pointer.
- *
- * Return:
- * 0 - Success
- * BIT_0 - error
- *
- * Context:
- * Kernel context.
- */
-void
-qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport)
-{
- fcport->ha = ha;
- fcport->login_retry = 0;
- fcport->port_login_retry_count = ha->port_down_retry_count *
- PORT_RETRY_TIME;
- atomic_set(&fcport->port_down_timer, ha->port_down_retry_count *
- PORT_RETRY_TIME);
- fcport->flags &= ~FCF_LOGIN_NEEDED;
-
- qla2x00_iidma_fcport(ha, fcport);
-
- atomic_set(&fcport->state, FCS_ONLINE);
-
- qla2x00_reg_remote_port(ha, fcport);
-}
-
-void
+static void
qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport)
{
struct fc_rport_identifiers rport_ids;
@@ -2179,6 +2146,39 @@
}
/*
+ * qla2x00_update_fcport
+ * Updates device on list.
+ *
+ * Input:
+ * ha = adapter block pointer.
+ * fcport = port structure pointer.
+ *
+ * Return:
+ * 0 - Success
+ * BIT_0 - error
+ *
+ * Context:
+ * Kernel context.
+ */
+void
+qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport)
+{
+ fcport->ha = ha;
+ fcport->login_retry = 0;
+ fcport->port_login_retry_count = ha->port_down_retry_count *
+ PORT_RETRY_TIME;
+ atomic_set(&fcport->port_down_timer, ha->port_down_retry_count *
+ PORT_RETRY_TIME);
+ fcport->flags &= ~FCF_LOGIN_NEEDED;
+
+ qla2x00_iidma_fcport(ha, fcport);
+
+ atomic_set(&fcport->state, FCS_ONLINE);
+
+ qla2x00_reg_remote_port(ha, fcport);
+}
+
+/*
* qla2x00_configure_fabric
* Setup SNS devices with loop ID's.
*
Andy Whitcroft wrote:
> I get this accross the board on my test system too. All clean downloads.
>
> A quick look at the combo-patch and the broken-out patch seems to
> indicate they are not in sync with each other. In the combo-patch we
> have this hunk (which is the one which fails):
>
> --- linux-2.6.19-rc6/kernel/tsacct.c 2006-11-16 23:19:32.000000000 -0800
> +++ devel/kernel/tsacct.c 2006-11-23 01:12:17.000000000 -0800
> @@ -97,7 +97,14 @@ void xacct_add_tsk(struct taskstats *sta
> stats->read_syscalls = p->syscr;
> stats->write_syscalls = p->syscw;
> #ifdef CONFIG_TASK_IO_ACCOUNTING
> - stats->read_bytes = p->ioac->read_bytes
> + stats->read_bytes = p->ioac.read_bytes;
> + stats->write_bytes = p->ioac.write_bytes;
> + stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
> +#else
> + stats->read_bytes = 0;
> + stats->write_bytes = 0;
> + stats->cancelled_write_bytes = 0;
> +#endif
>
> In the broken-out directory the only patch which references this file
> has the following different hunk:
>
> --- a/kernel/tsacct.c~io-accounting-via-taskstats
> +++ a/kernel/tsacct.c
> @@ -96,6 +96,15 @@ void xacct_add_tsk(struct taskstats *sta
> stats->write_char = 0;
> stats->read_syscalls = p->syscr;
> stats->write_syscalls = p->syscw;
> +#ifdef CONFIG_TASK_IO_ACCOUNTING
> + stats->read_bytes = p->ioac.read_bytes;
> + stats->write_bytes = p->ioac.write_bytes;
> + stats->cancelled_write_bytes = p->ioac.cancelled_write_bytes;
> +#else
> + stats->read_bytes = 0;
> + stats->write_bytes = 0;
> + stats->cancelled_write_bytes = 0;
> +#endif
> }
> #undef KB
> #undef MB
>
> Looking at 2.6.19-rc6 this second version seems completely reasonable.
> The former does not.
>
Swapping out those two hunks makes the patch apply cleanly here, too. Thanks!
> -apw
>
Matt
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> git-net.patch
>...
> git trees
>...
This patch contains the following possible cleanups:
- make the following needlessly global functions statis:
- ipv4/tcp.c: __tcp_alloc_md5sig_pool()
- ipv4/tcp_ipv4.c: tcp_v4_reqsk_md5_lookup()
- ipv4/udplite.c: udplite_rcv()
- ipv4/udplite.c: udplite_err()
- make the following needlessly global structs static:
- ipv4/tcp_ipv4.c: tcp_request_sock_ipv4_ops
- ipv4/tcp_ipv4.c: tcp_sock_ipv4_specific
- ipv6/tcp_ipv6.c: tcp_request_sock_ipv6_ops
- net/ipv{4,6}/udplite.c: remove inline's from static functions
(gcc should know best when to inline them)
Signed-off-by: Adrian Bunk <[email protected]>
---
net/ipv4/tcp.c | 2 +-
net/ipv4/tcp_ipv4.c | 8 ++++----
net/ipv4/udplite.c | 10 +++++-----
net/ipv6/tcp_ipv6.c | 2 +-
net/ipv6/udplite.c | 10 +++++-----
5 files changed, 16 insertions(+), 16 deletions(-)
--- linux-2.6.19-rc6-mm1/net/ipv4/tcp.c.old 2006-11-24 01:30:11.000000000 +0100
+++ linux-2.6.19-rc6-mm1/net/ipv4/tcp.c 2006-11-24 01:31:21.000000000 +0100
@@ -2288,7 +2288,7 @@
EXPORT_SYMBOL(tcp_free_md5sig_pool);
-struct tcp_md5sig_pool **__tcp_alloc_md5sig_pool(void)
+static struct tcp_md5sig_pool **__tcp_alloc_md5sig_pool(void)
{
int cpu;
struct tcp_md5sig_pool **pool;
--- linux-2.6.19-rc6-mm1/net/ipv4/tcp_ipv4.c.old 2006-11-24 01:31:31.000000000 +0100
+++ linux-2.6.19-rc6-mm1/net/ipv4/tcp_ipv4.c 2006-11-24 01:33:00.000000000 +0100
@@ -841,8 +841,8 @@
EXPORT_SYMBOL(tcp_v4_md5_lookup);
-struct tcp_md5sig_key *tcp_v4_reqsk_md5_lookup(struct sock *sk,
- struct request_sock *req)
+static struct tcp_md5sig_key *tcp_v4_reqsk_md5_lookup(struct sock *sk,
+ struct request_sock *req)
{
return tcp_v4_md5_do_lookup(sk, inet_rsk(req)->rmt_addr);
}
@@ -1273,7 +1273,7 @@
.send_reset = tcp_v4_send_reset,
};
-struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = {
+static struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = {
#ifdef CONFIG_TCP_MD5SIG
.md5_lookup = tcp_v4_reqsk_md5_lookup,
#endif
@@ -1861,7 +1861,7 @@
#endif
};
-struct tcp_sock_af_ops tcp_sock_ipv4_specific = {
+static struct tcp_sock_af_ops tcp_sock_ipv4_specific = {
#ifdef CONFIG_TCP_MD5SIG
.md5_lookup = tcp_v4_md5_lookup,
.calc_md5_hash = tcp_v4_calc_md5_hash,
--- linux-2.6.19-rc6-mm1/net/ipv4/udplite.c.old 2006-11-24 01:33:19.000000000 +0100
+++ linux-2.6.19-rc6-mm1/net/ipv4/udplite.c 2006-11-24 01:34:07.000000000 +0100
@@ -18,23 +18,23 @@
struct hlist_head udplite_hash[UDP_HTABLE_SIZE];
static int udplite_port_rover;
-__inline__ int udplite_get_port(struct sock *sk, unsigned short p,
- int (*c)(const struct sock *, const struct sock *))
+int udplite_get_port(struct sock *sk, unsigned short p,
+ int (*c)(const struct sock *, const struct sock *))
{
return __udp_lib_get_port(sk, p, udplite_hash, &udplite_port_rover, c);
}
-static __inline__ int udplite_v4_get_port(struct sock *sk, unsigned short snum)
+static int udplite_v4_get_port(struct sock *sk, unsigned short snum)
{
return udplite_get_port(sk, snum, ipv4_rcv_saddr_equal);
}
-__inline__ int udplite_rcv(struct sk_buff *skb)
+static int udplite_rcv(struct sk_buff *skb)
{
return __udp4_lib_rcv(skb, udplite_hash, 1);
}
-__inline__ void udplite_err(struct sk_buff *skb, u32 info)
+static void udplite_err(struct sk_buff *skb, u32 info)
{
return __udp4_lib_err(skb, info, udplite_hash);
}
--- linux-2.6.19-rc6-mm1/net/ipv6/udplite.c.old 2006-11-24 01:34:21.000000000 +0100
+++ linux-2.6.19-rc6-mm1/net/ipv6/udplite.c 2006-11-24 01:51:24.000000000 +0100
@@ -17,14 +17,14 @@
DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6) __read_mostly;
-static __inline__ int udplitev6_rcv(struct sk_buff **pskb)
+static int udplitev6_rcv(struct sk_buff **pskb)
{
return __udp6_lib_rcv(pskb, udplite_hash, 1);
}
-static __inline__ void udplitev6_err(struct sk_buff *skb,
- struct inet6_skb_parm *opt,
- int type, int code, int offset, __be32 info)
+static void udplitev6_err(struct sk_buff *skb,
+ struct inet6_skb_parm *opt,
+ int type, int code, int offset, __be32 info)
{
return __udp6_lib_err(skb, opt, type, code, offset, info, udplite_hash);
}
@@ -35,7 +35,7 @@
.flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
};
-static __inline__ int udplite_v6_get_port(struct sock *sk, unsigned short snum)
+static int udplite_v6_get_port(struct sock *sk, unsigned short snum)
{
return udplite_get_port(sk, snum, ipv6_rcv_saddr_equal);
}
--- linux-2.6.19-rc6-mm1/net/ipv6/tcp_ipv6.c.old 2006-11-24 01:35:02.000000000 +0100
+++ linux-2.6.19-rc6-mm1/net/ipv6/tcp_ipv6.c 2006-11-24 01:35:14.000000000 +0100
@@ -929,7 +929,7 @@
.send_reset = tcp_v6_send_reset
};
-struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = {
+static struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = {
#ifdef CONFIG_TCP_MD5SIG
.md5_lookup = tcp_v6_reqsk_md5_lookup,
#endif
This patch fixes the folliwing compile error with CONFIG_BUG=n:
<-- snip -->
...
CC arch/i386/kernel/traps.o
In file included from
/home/bunk/linux/kernel-2.6/linux-2.6.19-rc6-mm1/arch/i386/kernel/traps.c:32:
/home/bunk/linux/kernel-2.6/linux-2.6.19-rc6-mm1/include/linux/bug.h:38: warning: type defaults to 'int' in declaration of 'Elf_Ehdr'
/home/bunk/linux/kernel-2.6/linux-2.6.19-rc6-mm1/include/linux/bug.h:38: error: expected ';', ',' or ')' before '*' token
...
make[2]: *** [arch/i386/kernel/traps.o] Error 1
<-- snip -->
Signed-off-by: Adrian Bunk <[email protected]>
--- linux-2.6.19-rc6-mm1/include/linux/bug.h.old 2006-11-24 23:25:50.000000000 +0100
+++ linux-2.6.19-rc6-mm1/include/linux/bug.h 2006-11-24 23:26:04.000000000 +0100
@@ -1,6 +1,7 @@
#ifndef _LINUX_BUG_H
#define _LINUX_BUG_H
+#include <linux/module.h>
#include <asm/bug.h>
enum bug_trap_type {
@@ -10,7 +11,6 @@
};
#ifdef CONFIG_GENERIC_BUG
-#include <linux/module.h>
#include <asm-generic/bug.h>
static inline int is_warning_bug(const struct bug_entry *bug)
Every file should #include the headers containing the prototypes for
its global functions.
Signed-off-by: Adrian Bunk <[email protected]>
--- linux-2.6.19-rc6-mm1/fs/stack.c.old 2006-11-25 00:34:03.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/stack.c 2006-11-25 00:34:34.000000000 +0100
@@ -1,5 +1,6 @@
#include <linux/module.h>
#include <linux/fs.h>
+#include <linux/fs_stack.h>
/* does _NOT_ require i_mutex to be held.
*
This patch contains the following possible cleanups:
- make needlessly global functions static
- #if 0 unused functions
- #if REISER4_DEBUG functions that are only used with debugging enabled
Signed-off-by: Adrian Bunk <[email protected]>
---
fs/reiser4/coord.c | 8 ++----
fs/reiser4/debug.c | 6 ++++
fs/reiser4/debug.h | 4 ---
fs/reiser4/plugin/cluster.h | 8 ------
fs/reiser4/plugin/item/ctail.c | 10 ++++++-
fs/reiser4/plugin/item/ctail.h | 1
fs/reiser4/plugin/item/internal.c | 4 +++
fs/reiser4/plugin/item/item.c | 4 +++
fs/reiser4/super.c | 4 +++
fs/reiser4/txnmgr.c | 40 ++++++++++++++++--------------
fs/reiser4/txnmgr.h | 6 ----
11 files changed, 52 insertions(+), 43 deletions(-)
--- linux-2.6.19-rc6-mm1/fs/reiser4/debug.h.old 2006-11-25 02:02:17.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/debug.h 2006-11-25 02:02:25.000000000 +0100
@@ -223,10 +223,6 @@
extern void reiser4_do_panic(const char *format, ...)
__attribute__ ((noreturn, format(printf, 1, 2)));
-extern void reiser4_print_prefix(const char *level, int reperr, const char *mid,
- const char *function,
- const char *file, int lineno);
-
extern int reiser4_preempt_point(void);
extern void reiser4_print_stats(void);
--- linux-2.6.19-rc6-mm1/fs/reiser4/debug.c.old 2006-11-25 02:02:33.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/debug.c 2006-11-25 02:45:37.000000000 +0100
@@ -40,11 +40,13 @@
#include <linux/sysctl.h>
#include <linux/hardirq.h>
+#if 0
#if REISER4_DEBUG
static void reiser4_report_err(void);
#else
#define reiser4_report_err() noop
#endif
+#endif /* 0 */
/*
* global buffer where message given to reiser4_panic is formatted.
@@ -95,6 +97,7 @@
panic("%s", panic_buf);
}
+#if 0
void
reiser4_print_prefix(const char *level, int reperr, const char *mid,
const char *function, const char *file, int lineno)
@@ -114,6 +117,7 @@
if (reperr)
reiser4_report_err();
}
+#endif /* 0 */
/* Preemption point: this should be called periodically during long running
operations (carry, allocate, and squeeze are best examples) */
@@ -258,6 +262,7 @@
}
}
+#if 0
/*
* report error information recorder by reiser4_return_err().
*/
@@ -272,6 +277,7 @@
}
}
}
+#endif /* 0 */
#endif /* REISER4_DEBUG */
--- linux-2.6.19-rc6-mm1/fs/reiser4/plugin/cluster.h.old 2006-11-25 02:06:24.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/plugin/cluster.h 2006-11-25 02:49:53.000000000 +0100
@@ -226,14 +226,6 @@
return hint->ext_coord.extension.ctail.shift;
}
-static inline void dclust_set_extension_shift(hint_t * hint)
-{
- assert("edward-1270",
- item_id_by_coord(&hint->ext_coord.coord) == CTAIL_ID);
- hint->ext_coord.extension.ctail.shift =
- cluster_shift_by_coord(&hint->ext_coord.coord);
-}
-
static inline int hint_is_unprepped_dclust(hint_t * hint)
{
assert("edward-1451", hint_is_valid(hint));
--- linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/ctail.h.old 2006-11-25 02:10:13.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/ctail.h 2006-11-25 02:10:21.000000000 +0100
@@ -78,7 +78,6 @@
int scan_ctail(flush_scan *);
int convert_ctail(flush_pos_t *);
size_t inode_scaled_cluster_size(struct inode *);
-int cluster_shift_by_coord(const coord_t * coord);
#endif /* __FS_REISER4_CTAIL_H__ */
--- linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/ctail.c.old 2006-11-25 02:06:45.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/ctail.c 2006-11-25 02:50:04.000000000 +0100
@@ -45,11 +45,19 @@
return item_body_by_coord(coord);
}
-int cluster_shift_by_coord(const coord_t * coord)
+static int cluster_shift_by_coord(const coord_t * coord)
{
return get_unaligned(&ctail_formatted_at(coord)->cluster_shift);
}
+static inline void dclust_set_extension_shift(hint_t * hint)
+{
+ assert("edward-1270",
+ item_id_by_coord(&hint->ext_coord.coord) == CTAIL_ID);
+ hint->ext_coord.extension.ctail.shift =
+ cluster_shift_by_coord(&hint->ext_coord.coord);
+}
+
static loff_t off_by_coord(const coord_t * coord)
{
reiser4_key key;
--- linux-2.6.19-rc6-mm1/fs/reiser4/txnmgr.h.old 2006-11-25 02:12:19.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/txnmgr.h 2006-11-25 02:17:18.000000000 +0100
@@ -695,12 +695,6 @@
void protected_jnodes_done(protected_jnodes * list);
void reiser4_invalidate_list(struct list_head * head);
-#if REISER4_DEBUG
-void reiser4_info_atom(const char *prefix, const txn_atom * atom);
-#else
-#define reiser4_info_atom(p,a) noop
-#endif
-
# endif /* __REISER4_TXNMGR_H__ */
/* Make Linus happy.
--- linux-2.6.19-rc6-mm1/fs/reiser4/txnmgr.c.old 2006-11-25 02:12:32.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/txnmgr.c 2006-11-25 02:17:20.000000000 +0100
@@ -977,6 +977,28 @@
return current_atom_finish_all_fq();
}
+#if REISER4_DEBUG
+
+static void reiser4_info_atom(const char *prefix, const txn_atom * atom)
+{
+ if (atom == NULL) {
+ printk("%s: no atom\n", prefix);
+ return;
+ }
+
+ printk("%s: refcount: %i id: %i flags: %x txnh_count: %i"
+ " capture_count: %i stage: %x start: %lu, flushed: %i\n", prefix,
+ atomic_read(&atom->refcount), atom->atom_id, atom->flags,
+ atom->txnh_count, atom->capture_count, atom->stage,
+ atom->start_time, atom->flushed);
+}
+
+#else /* REISER4_DEBUG */
+
+static inline void reiser4_info_atom(const char *prefix, const txn_atom * atom) {}
+
+#endif /* REISER4_DEBUG */
+
#define TOOMANYFLUSHES (1 << 13)
/* Called with the atom locked and no open "active" transaction handlers except
@@ -3094,24 +3116,6 @@
ON_DEBUG(count_jnode(atom, node, NODE_LIST(node), OVRWR_LIST, 1));
}
-#if REISER4_DEBUG
-
-void reiser4_info_atom(const char *prefix, const txn_atom * atom)
-{
- if (atom == NULL) {
- printk("%s: no atom\n", prefix);
- return;
- }
-
- printk("%s: refcount: %i id: %i flags: %x txnh_count: %i"
- " capture_count: %i stage: %x start: %lu, flushed: %i\n", prefix,
- atomic_read(&atom->refcount), atom->atom_id, atom->flags,
- atom->txnh_count, atom->capture_count, atom->stage,
- atom->start_time, atom->flushed);
-}
-
-#endif
-
static int count_deleted_blocks_actor(txn_atom * atom,
const reiser4_block_nr * a,
const reiser4_block_nr * b, void *data)
--- linux-2.6.19-rc6-mm1/fs/reiser4/coord.c.old 2006-11-25 17:06:59.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/coord.c 2006-11-25 17:09:03.000000000 +0100
@@ -568,11 +568,6 @@
}
#if REISER4_DEBUG
-#define DEBUG_COORD_FIELDS (sizeof(c1->plug_v) + sizeof(c1->body_v))
-#else
-#define DEBUG_COORD_FIELDS (0)
-#endif
-
int coords_equal(const coord_t * c1, const coord_t * c2)
{
assert("nikita-2840", c1 != NULL);
@@ -583,6 +578,7 @@
c1->item_pos == c2->item_pos &&
c1->unit_pos == c2->unit_pos && c1->between == c2->between;
}
+#endif /* REISER4_DEBUG */
/* If coord_is_after_rightmost return NCOORD_ON_THE_RIGHT, if coord_is_after_leftmost
return NCOORD_ON_THE_LEFT, otherwise return NCOORD_INSIDE. */
@@ -683,6 +679,7 @@
return 0;
}
+#if REISER4_DEBUG
/* Returns true if the coordinates are positioned at adjacent units, regardless of
before-after or item boundaries. */
int coord_are_neighbors(coord_t * c1, coord_t * c2)
@@ -721,6 +718,7 @@
return 0;
}
}
+#endif /* REISER4_DEBUG */
/* Assuming two coordinates are positioned in the same node, return COORD_CMP_ON_RIGHT,
COORD_CMP_ON_LEFT, or COORD_CMP_SAME depending on c1's position relative to c2. */
--- linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/internal.c.old 2006-11-25 17:11:50.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/internal.c 2006-11-25 17:30:51.000000000 +0100
@@ -144,6 +144,8 @@
return 0;
}
+#if REISER4_DEBUG
+
static void check_link(znode * left, znode * right)
{
znode *scan;
@@ -209,6 +211,8 @@
return 0;
}
+#endif /* REISER4_DEBUG */
+
/* return true only if this item really points to "block" */
/* Audited by: green(2002.06.14) */
int has_pointer_to_internal(const coord_t * coord /* coord of item */ ,
--- linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/item.c.old 2006-11-25 17:12:59.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/plugin/item/item.c 2006-11-25 17:15:11.000000000 +0100
@@ -271,6 +271,8 @@
return item_id_by_coord(item) == FORMATTING_ID;
}
+#if REISER4_DEBUG
+
int item_is_statdata(const coord_t * item)
{
assert("vs-516", coord_is_existing_item(item));
@@ -283,6 +285,8 @@
return item_id_by_coord(item) == CTAIL_ID;
}
+#endif /* REISER4_DEBUG */
+
static int change_item(struct inode *inode,
reiser4_plugin * plugin,
pset_member memb)
--- linux-2.6.19-rc6-mm1/fs/reiser4/super.c.old 2006-11-25 17:19:27.000000000 +0100
+++ linux-2.6.19-rc6-mm1/fs/reiser4/super.c 2006-11-25 17:36:54.000000000 +0100
@@ -47,6 +47,7 @@
return get_super_private(super)->block_count;
}
+#if REISER4_DEBUG
/*
* number of blocks in the current file system
*/
@@ -54,6 +55,7 @@
{
return get_current_super_private()->block_count;
}
+#endif /* REISER4_DEBUG */
/* set number of block in filesystem */
void reiser4_set_block_count(const struct super_block *super, __u64 nr)
@@ -293,6 +295,7 @@
return *blk < sbinfo->block_count;
}
+#if REISER4_DEBUG
/*
* true, if block number @blk makes sense for the current file system
*/
@@ -300,6 +303,7 @@
{
return reiser4_blocknr_is_sane_for(reiser4_get_current_sb(), blk);
}
+#endif /* REISER4_DEBUG */
/* Make Linus happy.
Local variables:
> +sched-improve-migration-accuracy.patch
> +sched-improve-migration-accuracy-tidy.patch
Bisection shows that this pair of patches raises the boot time;
specifically, the delay from logging of
"INIT: version 2.86 booting"
to
" Welcome to Fedora Core"
goes from 4s to 4m40s. From there to
"Setting clock (utc): Sat Nov 25 10:18:11 PST 2006 [ OK ]"
takes an additional 30s.
A possibly relevant observation: On this particular box, `date` is
always a few seconds behind `hwclock`. The time difference varies
from boot to boot, but does not appear to grow over time.
On Sat, Nov 25, 2006 at 08:17:07PM +0100, Adrian Bunk wrote:
> Every file should #include the headers containing the prototypes for
> its global functions.
>
> Signed-off-by: Adrian Bunk <[email protected]>
Ack.
Josef "Jeff" Sipek.
--
We have joy, we have fun, we have Linux on a Sun...
On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.19-rc5-mm2:
>...
> git-alsa.patch
>...
> git trees
>...
This patch makes the following needlessly global functions static:
- dapm_power_widgets()
- dapm_mux_update_power()
- dapm_mixer_update_power()
- dapm_free_widgets()
Signed-off-by: Adrian Bunk <[email protected]>
---
sound/soc/soc-dapm.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- linux-2.6.19-rc6-mm1/sound/soc/soc-dapm.c.old 2006-11-26 05:40:58.000000000 +0100
+++ linux-2.6.19-rc6-mm1/sound/soc/soc-dapm.c 2006-11-26 05:42:25.000000000 +0100
@@ -463,7 +463,7 @@
* o Input pin to Output pin (bypass, sidetone)
* o DAC to ADC (loopback).
*/
-int dapm_power_widgets(struct snd_soc_codec *codec, int event)
+static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
{
struct snd_soc_dapm_widget *w;
int in, out, i, c = 1, *seq = NULL, ret = 0, power_change, power;
@@ -664,8 +664,9 @@
#endif
/* test and update the power status of a mux widget */
-int dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
- struct snd_kcontrol *kcontrol, int mask, int val, struct soc_enum* e)
+static int dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
+ struct snd_kcontrol *kcontrol, int mask,
+ int val, struct soc_enum* e)
{
struct snd_soc_dapm_path *path;
int found = 0;
@@ -697,11 +698,11 @@
return 0;
}
-EXPORT_SYMBOL_GPL(dapm_mux_update_power);
/* test and update the power status of a mixer widget */
-int dapm_mixer_update_power(struct snd_soc_dapm_widget *widget,
- struct snd_kcontrol *kcontrol, int reg, int val_mask, int val, int invert)
+static int dapm_mixer_update_power(struct snd_soc_dapm_widget *widget,
+ struct snd_kcontrol *kcontrol, int reg,
+ int val_mask, int val, int invert)
{
struct snd_soc_dapm_path *path;
int found = 0;
@@ -733,7 +734,6 @@
return 0;
}
-EXPORT_SYMBOL_GPL(dapm_mixer_update_power);
/* show dapm widget status in sys fs */
static ssize_t dapm_widget_show(struct device *dev,
@@ -808,7 +808,7 @@
}
/* free all dapm widgets and resources */
-void dapm_free_widgets(struct snd_soc_codec *codec)
+static void dapm_free_widgets(struct snd_soc_codec *codec)
{
struct snd_soc_dapm_widget *w, *next_w;
struct snd_soc_dapm_path *p, *next_p;
On Sat, 2006-11-25 at 11:48 -0800, Don Mullis wrote:
> > +sched-improve-migration-accuracy.patch
> > +sched-improve-migration-accuracy-tidy.patch
>
> Bisection shows that this pair of patches raises the boot time;
> specifically, the delay from logging of
>
> "INIT: version 2.86 booting"
>
> to
> " Welcome to Fedora Core"
>
> goes from 4s to 4m40s. From there to
Wow.
>
>
> "Setting clock (utc): Sat Nov 25 10:18:11 PST 2006 [ OK ]"
>
> takes an additional 30s.
This must be a bisection false positive. The patch in question is
essentially a no-op for a UP kernel.
-Mike
> This must be a bisection false positive. The patch in question is
> essentially a no-op for a UP kernel.
Testing alternately with
1) all -mm1 patches applied, and
2) all except sched-improve-migration-accuracy*.path applied,
confirms the misbehavior.
On Sun, 2006-11-26 at 17:38 -0800, Don Mullis wrote:
> > This must be a bisection false positive. The patch in question is
> > essentially a no-op for a UP kernel.
Duh! Except for the bug, which doesn't care either way.
> Testing alternately with
> 1) all -mm1 patches applied, and
> 2) all except sched-improve-migration-accuracy*.path applied,
> confirms the misbehavior.
While fixing a sched_time accounting buglet, I stupidly broke sleep_avg
accounting, and quite thoroughly for cpu hogs. Since I updated a task's
timestamp at tick time, but sleep_avg adjustment only takes place at
schedule time, every tick a task took without scheduling resulted in a
tick of run time lost for sleep_avg accounting. The below should fix
it, can you confirm?
Fix sleep_avg breakage induced by sched-improve-migration-accuracy.path
Use p->last_ran to fix sched_time buglet instead of p->timestamp.
Signed-off-by: Mike Galbraith <[email protected]>
--- linux-2.6.19-rc6-mm1/kernel/sched.c.org 2006-11-27 10:24:07.000000000 +0100
+++ linux-2.6.19-rc6-mm1/kernel/sched.c 2006-11-27 10:28:59.000000000 +0100
@@ -3024,8 +3024,8 @@ EXPORT_PER_CPU_SYMBOL(kstat);
static inline void
update_cpu_clock(struct task_struct *p, struct rq *rq, unsigned long long now)
{
- p->sched_time += now - p->timestamp;
- p->timestamp = rq->most_recent_timestamp = now;
+ p->sched_time += now - p->last_ran;
+ p->last_ran = rq->most_recent_timestamp = now;
}
/*
@@ -3038,7 +3038,7 @@ unsigned long long current_sched_time(co
unsigned long flags;
local_irq_save(flags);
- ns = p->sched_time + sched_clock() - p->timestamp;
+ ns = p->sched_time + sched_clock() - p->last_ran;
local_irq_restore(flags);
return ns;
@@ -3553,10 +3553,11 @@ switch_tasks:
prev->sleep_avg -= run_time;
if ((long)prev->sleep_avg <= 0)
prev->sleep_avg = 0;
+ prev->timestamp = prev->last_ran = now;
sched_info_switch(prev, next);
if (likely(prev != next)) {
- next->timestamp = prev->last_ran = now;
+ next->timestamp = now;
rq->nr_switches++;
rq->curr = next;
++*switch_count;
> The below should fix it, can you confirm?
Brings boot speed back to normal.
Acked-by: Don Mullis <[email protected]>
On Fri, 24 Nov 2006, Adrian Bunk wrote:
> On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.19-rc5-mm2:
> >...
> > git-scsi-misc.patch
> >...
> > git trees
> >...
>
> qla2x00_reg_remote_port() can now become static.
>
> Signed-off-by: Adrian Bunk <[email protected]>
Acked-by: Andrew Vasquez <[email protected]>
On Mon, 2006-11-27 at 09:17 -0800, Don Mullis wrote:
> > The below should fix it, can you confirm?
>
> Brings boot speed back to normal.
>
> Acked-by: Don Mullis <[email protected]>
Great. Off to the brown paper bag store.
-Mike
On Fri, 24 Nov 2006 01:17:31 +0100
Adrian Bunk <[email protected]> wrote:
> On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.19-rc5-mm2:
> >...
> > +chelsio-22-driver.patch
> >...
> > netdev updates
>
> It is suspicious that the following newly added code is completely unused:
> drivers/net/chelsio/ixf1010.o
> t1_ixf1010_ops
> drivers/net/chelsio/mac.o
> t1_chelsio_mac_ops
> drivers/net/chelsio/vsc8244.o
> t1_vsc8244_ops
>
> cu
> Adrian
>
All that is gone in later version. I reposted new patches
after -mm2 was done.
* Don Mullis <[email protected]> wrote:
> > This must be a bisection false positive. The patch in question is
> > essentially a no-op for a UP kernel.
>
> Testing alternately with
> 1) all -mm1 patches applied, and
> 2) all except sched-improve-migration-accuracy*.path applied,
> confirms the misbehavior.
could you run this utility:
http://people.redhat.com/mingo/time-warp-test/time-warp-test.c
on your box for a while (10 minutes or so) - what does it print?
Ingo
On Mon, 2006-11-27 at 11:16 +0100, Ingo Molnar wrote:
> could you run this utility:
>
> http://people.redhat.com/mingo/time-warp-test/time-warp-test.c
>
> on your box for a while (10 minutes or so) - what does it print?
>
> Ingo
1 CPUs, running 1 parallel test-tasks.
checking for time-warps via:
- read time stamp counter (RDTSC) instruction (cycle resolution)
- gettimeofday (TOD) syscall (usec resolution)
- clock_gettime(CLOCK_MONOTONIC) syscall (nsec resolution)
new TOD-warp maximum: -442709 usecs, 00042352e214e2f8 ->
00042352e20e21a3
| 0.69 us, TSC-warps:0 | 6.89 us, TOD-warps:1 | 6.89 us, CLOCK-warps:0
|
On Mon, Nov 27, 2006 at 10:24:55AM -0800, Stephen Hemminger wrote:
> On Fri, 24 Nov 2006 01:17:31 +0100
> Adrian Bunk <[email protected]> wrote:
>
> > On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> > >...
> > > Changes since 2.6.19-rc5-mm2:
> > >...
> > > +chelsio-22-driver.patch
> > >...
> > > netdev updates
> >
> > It is suspicious that the following newly added code is completely unused:
> > drivers/net/chelsio/ixf1010.o
> > t1_ixf1010_ops
> > drivers/net/chelsio/mac.o
> > t1_chelsio_mac_ops
> > drivers/net/chelsio/vsc8244.o
> > t1_vsc8244_ops
> >
> > cu
> > Adrian
> >
>
> All that is gone in later version. I reposted new patches
> after -mm2 was done.
It seems these patches didn't make it into 2.6.19-rc6-mm2 ?
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
On Wed, 29 Nov 2006 08:36:09 +0100
Adrian Bunk <[email protected]> wrote:
> On Mon, Nov 27, 2006 at 10:24:55AM -0800, Stephen Hemminger wrote:
> > On Fri, 24 Nov 2006 01:17:31 +0100
> > Adrian Bunk <[email protected]> wrote:
> >
> > > On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> > > >...
> > > > Changes since 2.6.19-rc5-mm2:
> > > >...
> > > > +chelsio-22-driver.patch
> > > >...
> > > > netdev updates
> > >
> > > It is suspicious that the following newly added code is completely unused:
> > > drivers/net/chelsio/ixf1010.o
> > > t1_ixf1010_ops
> > > drivers/net/chelsio/mac.o
> > > t1_chelsio_mac_ops
> > > drivers/net/chelsio/vsc8244.o
> > > t1_vsc8244_ops
> > >
> > > cu
> > > Adrian
> > >
> >
> > All that is gone in later version. I reposted new patches
> > after -mm2 was done.
>
> It seems these patches didn't make it into 2.6.19-rc6-mm2 ?
>
I dropped that patch and picked up Francois's tree instead.
From: Adrian Bunk <[email protected]>
Date: Fri, 24 Nov 2006 22:58:20 +0100
> This patch contains the following possible cleanups:
> - make the following needlessly global functions statis:
> - ipv4/tcp.c: __tcp_alloc_md5sig_pool()
> - ipv4/tcp_ipv4.c: tcp_v4_reqsk_md5_lookup()
> - ipv4/udplite.c: udplite_rcv()
> - ipv4/udplite.c: udplite_err()
> - make the following needlessly global structs static:
> - ipv4/tcp_ipv4.c: tcp_request_sock_ipv4_ops
> - ipv4/tcp_ipv4.c: tcp_sock_ipv4_specific
> - ipv6/tcp_ipv6.c: tcp_request_sock_ipv6_ops
> - net/ipv{4,6}/udplite.c: remove inline's from static functions
> (gcc should know best when to inline them)
>
> Signed-off-by: Adrian Bunk <[email protected]>
Applied, thanks Adrian.
On Tue, Nov 28, 2006 at 11:47:19PM -0800, Andrew Morton wrote:
> On Wed, 29 Nov 2006 08:36:09 +0100
> Adrian Bunk <[email protected]> wrote:
>
> > On Mon, Nov 27, 2006 at 10:24:55AM -0800, Stephen Hemminger wrote:
> > > On Fri, 24 Nov 2006 01:17:31 +0100
> > > Adrian Bunk <[email protected]> wrote:
> > >
> > > > On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> > > > >...
> > > > > Changes since 2.6.19-rc5-mm2:
> > > > >...
> > > > > +chelsio-22-driver.patch
> > > > >...
> > > > > netdev updates
> > > >
> > > > It is suspicious that the following newly added code is completely unused:
> > > > drivers/net/chelsio/ixf1010.o
> > > > t1_ixf1010_ops
> > > > drivers/net/chelsio/mac.o
> > > > t1_chelsio_mac_ops
> > > > drivers/net/chelsio/vsc8244.o
> > > > t1_vsc8244_ops
> > > >
> > > > cu
> > > > Adrian
> > > >
> > >
> > > All that is gone in later version. I reposted new patches
> > > after -mm2 was done.
> >
> > It seems these patches didn't make it into 2.6.19-rc6-mm2 ?
>
> I dropped that patch and picked up Francois's tree instead.
These structs are still both present and unused as of 2.6.20-mm1.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
On Tue, 20 Feb 2007 01:02:14 +0100
Adrian Bunk <[email protected]> wrote:
> On Tue, Nov 28, 2006 at 11:47:19PM -0800, Andrew Morton wrote:
> > On Wed, 29 Nov 2006 08:36:09 +0100
> > Adrian Bunk <[email protected]> wrote:
> >
> > > On Mon, Nov 27, 2006 at 10:24:55AM -0800, Stephen Hemminger wrote:
> > > > On Fri, 24 Nov 2006 01:17:31 +0100
> > > > Adrian Bunk <[email protected]> wrote:
> > > >
> > > > > On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> > > > > >...
> > > > > > Changes since 2.6.19-rc5-mm2:
> > > > > >...
> > > > > > +chelsio-22-driver.patch
> > > > > >...
> > > > > > netdev updates
> > > > >
> > > > > It is suspicious that the following newly added code is completely unused:
> > > > > drivers/net/chelsio/ixf1010.o
> > > > > t1_ixf1010_ops
> > > > > drivers/net/chelsio/mac.o
> > > > > t1_chelsio_mac_ops
> > > > > drivers/net/chelsio/vsc8244.o
> > > > > t1_vsc8244_ops
> > > > >
> > > > > cu
> > > > > Adrian
> > > > >
> > > >
> > > > All that is gone in later version. I reposted new patches
> > > > after -mm2 was done.
> > >
> > > It seems these patches didn't make it into 2.6.19-rc6-mm2 ?
> >
> > I dropped that patch and picked up Francois's tree instead.
>
> These structs are still both present and unused as of 2.6.20-mm1.
Please use your eyes, not your tool. Those functions are called in 2.6.20
static struct cmac *ixf1010_mac_create(adapter_t *adapter, int index)
{
...
mac->ops = &ixf1010_ops;
static struct cmac *mac_create(adapter_t *adapter, int index)
{
...
mac->ops = &chelsio_mac_ops;
mac_create gets called by
int __devinit t1_init_sw_modules(adapter_t *adapter,
const struct board_info *bi)
{
for_each_port(adapter, i) {
u8 hw_addr[6];
struct cmac *mac;
int phy_addr = bi->mdio_phybaseaddr + i;
adapter->port[i].phy = bi->gphy->create(adapter, phy_addr,
bi->mdio_ops);
On Tue, Feb 20, 2007 at 01:31:32PM -0800, Stephen Hemminger wrote:
> On Tue, 20 Feb 2007 01:02:14 +0100
> Adrian Bunk <[email protected]> wrote:
>
> > On Tue, Nov 28, 2006 at 11:47:19PM -0800, Andrew Morton wrote:
> > > On Wed, 29 Nov 2006 08:36:09 +0100
> > > Adrian Bunk <[email protected]> wrote:
> > >
> > > > On Mon, Nov 27, 2006 at 10:24:55AM -0800, Stephen Hemminger wrote:
> > > > > On Fri, 24 Nov 2006 01:17:31 +0100
> > > > > Adrian Bunk <[email protected]> wrote:
> > > > >
> > > > > > On Thu, Nov 23, 2006 at 02:17:03AM -0800, Andrew Morton wrote:
> > > > > > >...
> > > > > > > Changes since 2.6.19-rc5-mm2:
> > > > > > >...
> > > > > > > +chelsio-22-driver.patch
> > > > > > >...
> > > > > > > netdev updates
> > > > > >
> > > > > > It is suspicious that the following newly added code is completely unused:
> > > > > > drivers/net/chelsio/ixf1010.o
> > > > > > t1_ixf1010_ops
> > > > > > drivers/net/chelsio/mac.o
> > > > > > t1_chelsio_mac_ops
> > > > > > drivers/net/chelsio/vsc8244.o
> > > > > > t1_vsc8244_ops
> > > > > >
> > > > > > cu
> > > > > > Adrian
> > > > > >
> > > > >
> > > > > All that is gone in later version. I reposted new patches
> > > > > after -mm2 was done.
> > > >
> > > > It seems these patches didn't make it into 2.6.19-rc6-mm2 ?
> > >
> > > I dropped that patch and picked up Francois's tree instead.
> >
> > These structs are still both present and unused as of 2.6.20-mm1.
>
> Please use your eyes, not your tool. Those functions are called in 2.6.20
My eyes tell me:
> static struct cmac *ixf1010_mac_create(adapter_t *adapter, int index)
> {
> ...
> mac->ops = &ixf1010_ops;
ixf1010_ops != t1_ixf1010_ops
> static struct cmac *mac_create(adapter_t *adapter, int index)
> {
> ...
>
> mac->ops = &chelsio_mac_ops;
chelsio_mac_ops != t1_chelsio_mac_ops
> mac_create gets called by
>
> int __devinit t1_init_sw_modules(adapter_t *adapter,
> const struct board_info *bi)
> {
>
> for_each_port(adapter, i) {
> u8 hw_addr[6];
> struct cmac *mac;
> int phy_addr = bi->mdio_phybaseaddr + i;
>
> adapter->port[i].phy = bi->gphy->create(adapter, phy_addr,
> bi->mdio_ops);
No, since t1_chelsio_mac_ops isn't used anywhere and mac_create() isn't
referenced except from t1_chelsio_mac_ops.
cu
Adrian
BTW: It's not my tool, the script behind "make namespacecheck" was
written by Keith Owens.
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed