2006-11-23 10:17:33

by Andrew Morton

[permalink] [raw]
Subject: 2.6.19-rc6-mm1


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


2006-11-23 10:38:56

by Reuben Farrelly

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1



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


2006-11-23 11:23:05

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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


Attachments:
(No filename) (4.05 kB)
.config (38.22 kB)
Download all attachments

2006-11-23 12:21:22

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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


Attachments:
(No filename) (2.00 kB)
.config (37.58 kB)
Download all attachments

2006-11-23 13:03:59

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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

2006-11-23 14:07:03

by Jiri Kosina

[permalink] [raw]
Subject: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)

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

2006-11-23 15:08:27

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)

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

2006-11-23 15:17:31

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)

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

2006-11-23 15:27:39

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)

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

2006-11-23 15:38:23

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)

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

2006-11-23 16:34:41

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86_64: fix build without HOTPLUG_CPU (was Re: 2.6.19-rc6-mm1)


* 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)
{

2006-11-23 17:26:43

by Mattia Dongili

[permalink] [raw]
Subject: MCORE2 include/asm/module.h:60:2: error: #error unknown processor family [was Re: 2.6.19-rc6-mm1]

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

2006-11-23 18:36:19

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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;
}
_

2006-11-23 19:23:25

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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

2006-11-23 20:20:45

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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

2006-11-23 20:23:54

by Benoit Boissinot

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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

2006-11-23 20:57:54

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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 ;)

2006-11-23 23:30:29

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.19-rc6-mm1: no help text for TCP_MD5SIG_DEBUG

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

2006-11-24 00:17:30

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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

2006-11-24 01:37:10

by David Miller

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: no help text for TCP_MD5SIG_DEBUG

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.

2006-11-24 01:46:42

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make proc_pid_io_accounting() static

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"

2006-11-24 01:46:18

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make readahead_debug_level static

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);

2006-11-24 01:46:00

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make qla2x00_reg_remote_port() static

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.
*

2006-11-24 19:36:22

by Matthew Frost

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1

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

2006-11-24 21:58:20

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] net/: possible cleanups

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

2006-11-25 19:16:29

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] include/linux/bug.h must always #include <linux/module.h>

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)

2006-11-25 19:17:35

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fs/stack.c should #include <linux/fs_stack.h>

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.
*

2006-11-25 19:21:05

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fs/reiser4/: more possible cleanups

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:

2006-11-25 19:49:12

by Don Mullis

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

> +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.


Attachments:
2.6.19-rc6-mm1.log (9.22 kB)
config (30.23 kB)
Download all attachments

2006-11-25 19:59:49

by Josef Sipek

[permalink] [raw]
Subject: Re: [-mm patch] fs/stack.c should #include <linux/fs_stack.h>

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...

2006-11-26 05:40:53

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] sound/soc/soc-dapm.c: make 4 functions static

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;

2006-11-26 06:25:08

by Mike Galbraith

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

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

2006-11-27 01:39:09

by Don Mullis

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

> 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.


2006-11-27 10:50:43

by Mike Galbraith

[permalink] [raw]
Subject: [patch] Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

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;


2006-11-27 17:17:55

by Don Mullis

[permalink] [raw]
Subject: Re: [patch] Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

> The below should fix it, can you confirm?

Brings boot speed back to normal.

Acked-by: Don Mullis <[email protected]>


2006-11-27 17:22:40

by Andrew Vasquez

[permalink] [raw]
Subject: Re: [-mm patch] make qla2x00_reg_remote_port() static

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]>

2006-11-27 18:27:41

by Mike Galbraith

[permalink] [raw]
Subject: Re: [patch] Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

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

2006-11-27 18:28:26

by Stephen Hemminger

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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.

2006-11-28 08:43:20

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot


* 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

2006-11-28 18:47:23

by Don Mullis

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1 -- sched-improve-migration-accuracy.patch slows boot

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
|


2006-11-29 07:36:08

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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

2006-11-29 07:50:40

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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.

2006-12-01 01:28:07

by David Miller

[permalink] [raw]
Subject: Re: [-mm patch] net/: possible cleanups

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.

2007-02-20 00:03:19

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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

2007-02-20 21:35:00

by Stephen Hemminger

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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);


2007-02-20 22:06:50

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.19-rc6-mm1: drivers/net/chelsio/: unused code

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