linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.19-rc1-mm1
@ 2006-10-10  7:09 Andrew Morton
  2006-10-10  7:20 ` 2.6.19-rc1-mm1 Arjan van de Ven
                   ` (14 more replies)
  0 siblings, 15 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-10  7:09 UTC (permalink / raw)
  To: linux-kernel


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


- Added the ext4 filesystem.  Quick usage instructions:

  - Grab updated e2fsprogs from
    ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/

  - It's still mke2fs -j /dev/hda1

  - mount /dev/hda1 /wherever -t ext4dev

  - To enable extents,

	mount /dev/hda1 /wherever -t ext4dev -o extents

  - The filesystem is compatible with the ext3 driver until you add a file
    which has extents (ie: `mount -o extents', then create a file).

  - When comparing performance with other filesystems, remember that
    ext3/4 by default offers higher data integrity guarantees than most.  So
    when comparing with a metadata-only journalling filesystem, use `mount -o
    data=writeback'.  (Although this doesn't seem to make much difference with
    ext3).

    And you might as well use `mount -o nobh' too.

    Making the journal larger than the mke2fs default often helps
    performance with metadata-intensive workloads.

- Added the high-resolution timers and dynamic-ticks code.  Please be sure
  to cc tglx@linutronix.de>, mingo@elte.hu and johnstul@us.ibm.com if it blows
  up.



Boilerplate:

- See the `hot-fixes' directory for any important updates to this patchset.

- To fetch an -mm tree using git, use (for example)

  git fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git v2.6.16-rc2-mm1

- -mm kernel commit activity can be reviewed by subscribing to the
  mm-commits mailing list.

        echo "subscribe mm-commits" | mail majordomo@vger.kernel.org

- If you hit a bug in -mm and it is not obvious which patch caused it, it is
  most valuable if you can perform a bisection search to identify which patch
  introduced the bug.  Instructions for this process are at

        http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt

  But beware that this process takes some time (around ten rebuilds and
  reboots), so consider reporting the bug first and if we cannot immediately
  identify the faulty patch, then perform the bisection search.

- When reporting bugs, please try to Cc: the relevant maintainer and mailing
  list on any email.

- 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.18-mm3:


 origin.patch
 git-acpi.patch
 git-cifs.patch
 git-dvb.patch
 git-geode.patch
 git-ia64.patch
 git-ieee1394.patch
 git-infiniband.patch
 git-libata-all.patch
 git-mtd.patch
 git-netdev-all.patch
 git-ocfs2.patch
 git-pcmcia.patch
 git-selinux.patch
 git-pciseg.patch
 git-s390.patch
 git-sh.patch
 git-scsi-target.patch
 git-qla3xxx.patch
 git-watchdog.patch
 git-gccbug.patch

 git trees.

-pidh-cleanup.patch
-vfs-make-filldir_t-and-struct-kstat-deal-in-64-bit-inode-numbers.patch
-revert-insert-ioapics-and-local-apic-into-resource-map.patch
-acpi-cast-removal.patch
-dereference-after-free-in-snd_hwdep_release.patch
-kauditd_thread-warning-fix.patch
-hdrcheck-permission-fix.patch
-docs-small-kbuild-cleanup.patch
-kthread-update-arch-mips-kernel-apmc.patch
-mmc-driver-for-ti-flashmedia-card-reader-source.patch
-mmc-driver-for-ti-flashmedia-card-reader-kconfig-makefile.patch
-forcedeth-hardirq-lockdep-warning.patch
-hp100-fix-conditional-compilation-mess.patch
-zatm-always-clear-pcr-in-alloc_shaper.patch
-atm-ambassador-fix-return-code-bug.patch
-tipc-fix-printk-warning.patch
-git-powerpc-wrapper-dont-require-execute-permissions.patch
-powerpc-xmon-fix.patch
-pcie_portdrv_restore_config-undefined-without-config_pm.patch
-pci-optionally-sort-device-lists-breadth-first.patch
-scsi-convertion-to-struct-scsi_cmnd-in-ips-driver.patch
-scsi-scsi_cmnd-convertion-in-arm-subtree.patch
-gregkh-usb-usb-storage-unusual_devs.h-entry-for-sony-ericsson-p990i.patch
-usb-serial-mos7840-fix-cast.patch
-x86_64-mm-defconfig-update.patch
-x86_64-mm-i386-defconfig-update.patch
-x86_64-mm-calgary-init.patch
-x86_64-mm-calgary-off-by-one.patch
-x86_64-mm-calgary-jon-contact.patch
-x86_64-mm-calgary-hex-bus.patch
-x86_64-mm-pci-bios-fix.patch
-x86_64-mm-kernel-stack-termination.patch
-fix-x86_64-mm-kernel-stack-termination.patch
-mm-micro-optimise-zone_watermark_ok.patch
-slab-clean-up-leak-tracking-ifdefs-a-little-bit.patch
-kmemdup-introduce-vs-slab-clean-up-leak-tracking-ifdefs-a-little-bit.patch
-slab-reduce-numa-text-size.patch
-slab-reduce-numa-text-size-tidy.patch
-create-kallsyms_lookup_size_offset.patch
-low-performance-of-lib-sortc.patch
-char-kill-unneeded-memsets.patch
-char-serial167-remove-useless-tty-check.patch
-kernel-doc-for-kernel-dmac.patch
-kernel-doc-for-kernel-resourcec.patch
-fs-eventpoll-error-handling-micro-cleanup.patch
-ipmi-fix-uninitd-data-bug.patch
-drivers-char-ip2-kill-unused-code-label.patch
-schedule-ftape-removal.patch
-isdn-warning-fixes.patch
-restore-parport_pc-probing-on-powermac.patch
-add-pekka-to-credits.patch
-ipmi-allow-user-to-override-the-kernel-ipmi-daemon-enable.patch
-ipmi-allow-user-to-override-the-kernel-ipmi-daemon-enable-tidy.patch
-ia64-note-requirement-for-8250_pnp-now-that-8250_acpi-is-gone.patch
-maintainers-removes-duplicated-entry.patch
-pktcdvd-replace-pktcdvd-strings-with-macro-driver_name.patch
-pktcdvd-rename-a-variable-for-better-readability.patch
-remove-unnecessary-check-in-fs-reiserfs-inodec.patch
-add-unifdef-to-gitignore.patch
-fix-spurious-error-on-tags-target-when-missing-defconfig.patch
-pata_hpt366-fix-typo.patch
-hisax-niccy-cleanup.patch
-knfsd-nfsd-lockdep-annotation-fix.patch
-knfsd-call-lockd_down-when-closing-a-socket-via-a-write-to-nfsd-portlist.patch
-knfsd-protect-update-to-sn_nrthreads-with-lock_kernel.patch
-knfsd-fixed-handling-of-lockd-fail-when-adding-nfsd-socket.patch
-knfsd-replace-two-page-lists-in-struct-svc_rqst-with-one.patch
-knfsd-replace-two-page-lists-in-struct-svc_rqst-with-one-fix.patch
-knfsd-avoid-excess-stack-usage-in-svc_tcp_recvfrom.patch
-knfsd-prepare-knfsd-for-support-of-rsize-wsize-of-up-to-1mb-over-tcp.patch
-knfsd-allow-max-size-of-nfsd-payload-to-be-configured.patch
-knfsd-make-nfsd-readahead-params-cache-smp-friendly.patch
-knfsd-knfsd-cache-ipmap-per-tcp-socket.patch
-knfsd-hide-use-of-lockds-h_monitored-flag.patch
-knfsd-consolidate-common-code-for-statd-lockd-notification.patch
-knfsd-when-looking-up-a-lockd-host-pass-hostname-length.patch
-knfsd-lockd-introduce-nsm_handle.patch
-knfsd-lockd-introduce-nsm_handle-fix.patch
-knfsd-misc-minor-fixes-indentation-changes.patch
-knfsd-lockd-make-nlm_host_rebooted-use-the-nsm_handle.patch
-knfsd-lockd-make-the-nsm-upcalls-use-the-nsm_handle.patch
-knfsd-lockd-make-the-hash-chains-use-a-hlist_node.patch
-knfsd-lockd-change-list-of-blocked-list-to-list_node.patch
-knfsd-change-nlm_file-to-use-a-hlist.patch
-knfsd-lockd-make-nlm_traverse_-more-flexible.patch
-knfsd-lockd-add-nlm_destroy_host.patch
-knfsd-simplify-nlmsvc_invalidate_all.patch
-knfsd-lockd-optionally-use-hostnames-for-identifying-peers.patch
-knfsd-make-nlmclnt_next_cookie-smp-safe.patch
-knfsd-match-granted_res-replies-using-cookies.patch
-knfsd-export-nsm_local_state-to-user-space-via-sysctl.patch
-knfsd-lockd-fix-use-of-h_nextrebind.patch
-knfsd-register-all-rpc-programs-with-portmapper-by-default.patch
-knfsd-lockd-introduce-nsm_handle-sem2mutex.patch
-knfsd-svcrpc-gss-factor-out-some-common-wrapping-code.patch
-knfsd-svcrpc-gss-fix-failure-on-svc_denied-in-integrity-case.patch
-knfsd-svcrpc-use-consistent-variable-name-for-the-reply-state.patch
-knfsd-nfsd4-refactor-exp_pseudoroot.patch
-knfsd-nfsd4-clean-up-exp_pseudoroot.patch
-knfsd-nfsd4-acls-relax-the-nfsv4-posix-mapping.patch
-knfsd-nfsd4-acls-fix-inheritance.patch
-knfsd-nfsd4-acls-simplify-nfs4_acl_nfsv4_to_posix-interface.patch
-knfsd-nfsd4-acls-fix-handling-of-zero-length-acls.patch
-knfsd-lockd-fix-refount-on-nsm.patch
-knfsd-fix-auto-sizing-of-nfsd-request-reply-buffers.patch
-knfsd-close-a-race-opportunity-in-d_splice_alias.patch
-knfsd-nfsd-store-export-path-in-export.patch
-knfsd-nfsd4-fslocations-data-structures.patch
-knfsd-nfsd4-fslocations-data-structures-nfsd4-fix-fs-locations-bounds-checking.patch
-knfsd-nfsd4-fslocations-data-structures-nfsd4-fslocs-fix-compile-in-non-config_nfsd_v4-case.patch
-knfsd-nfsd4-xdr-encoding-for-fs_locations.patch
-knfsd-nfsd4-actually-use-all-the-pieces-to-implement-referrals.patch
-sched-force-sbin-init-off-isolated-cpus.patch
-sched-remove-unnecessary-sched-group-allocations.patch
-sched-dont-print-migration-cost-when-only-1-cpu.patch
-sched-introduce-child-field-in-sched_domain.patch
-sched-cleanup-sched_group-cpu_power-setup.patch
-sched-fixing-wrong-comment-for-find_idlest_cpu.patch
-scheduler-numa-aware-placement-of-sched_group_allnodes.patch
-ecryptfs-fs-makefile-and-fs-kconfig.patch
-ecryptfs-fs-makefile-and-fs-kconfig-kconfig-help-update.patch
-ecryptfs-documentation.patch
-ecryptfs-makefile.patch
-ecryptfs-main-module-functions.patch
-ecryptfs-header-declarations.patch
-ecryptfs-superblock-operations.patch
-ecryptfs-dentry-operations.patch
-ecryptfs-file-operations.patch
-ecryptfs-file-operations-readdir-fix-for-seeking-in-directory-streams.patch
-ecryptfs-inode-operations.patch
-ecryptfs-mmap-operations.patch
-ecryptfs-mmap-operations-fix.patch
-ecryptfs-keystore.patch
-ecryptfs-crypto-functions.patch
-ecryptfs-crypto-functions-mutex-fixes.patch
-fs-ecryptfs-possible-cleanups.patch
-ecryptfs-debug-functions.patch
-ecryptfs-alpha-build-fix.patch
-ecryptfs-convert-assert-to-bug_on.patch
-ecryptfs-remove-pointless-bug_ons.patch
-ecryptfs-remove-unnecessary-null-checks.patch
-ecryptfs-rewrite-ecryptfs_fsync.patch
-ecryptfs-overhaul-file-locking.patch
-ecryptfs-remove-lock-propagation.patch
-ecryptfs-dont-muck-with-the-existing-nameidata-structures.patch
-ecryptfs-asm-scatterlisth-linux-scatterlisth.patch
-ecryptfs-support-for-larger-maximum-key-size.patch
-ecryptfs-add-codes-for-additional-ciphers.patch
-ecryptfs-unencrypted-key-size-based-on-encrypted-key-size.patch
-ecryptfs-packet-and-key-management-update-for-variable-key-size.patch
-ecryptfs-add-ecryptfs_-prefix-to-mount-options-key-size-parameter.patch
-ecryptfs-set-the-key-size-from-the-default-for-the-mount.patch
-ecryptfs-check-for-weak-keys.patch
-ecryptfs-add-define-values-for-cipher-codes-from-rfc2440-openpgp.patch
-ecryptfs-convert-bits-to-bytes.patch
-ecryptfs-more-elegant-aes-key-size-manipulation.patch
-ecryptfs-more-intelligent-use-of-tfm-objects.patch
-ecryptfs-remove-debugging-cruft.patch
-ecryptfs-get_sb_dev-fix.patch
-ecryptfs-validate-minimum-header-extent-size.patch
-ecryptfs-validate-body-size.patch
-ecryptfs-validate-packet-length-prior-to-parsing-add-comments.patch
-ecryptfs-use-the-passed-in-max-value-as-the-upper-bound.patch
-ecryptfs-change-the-maximum-size-check-when-writing-header.patch
-ecryptfs-print-the-actual-option-that-is-problematic.patch
-ecryptfs-add-a-maintainers-entry.patch
-ecryptfs-partial-signed-integer-to-size_t-conversion-updated-ii.patch
-ecryptfs-graceful-handling-of-mount-error.patch
-inode-diet-move-i_pipe-into-a-union-ecryptfs.patch
-inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-ecryptfs.patch
-streamline-generic_file_-interfaces-and-filemap-ecryptfs.patch
-ecryptfs-fix-printk-format-warnings.patch
-ecryptfs-associate-vfsmount-with-dentry-rather-than-superblock.patch
-ecryptfs-mntput-lower-mount-on-umount_begin.patch
-vfs-make-filldir_t-and-struct-kstat-deal-in-64-bit-inode-numbers-ecryptfs.patch
-make-kmem_cache_destroy-return-void-ecryptfs.patch
-ecryptfs-inode-numbering-fixes.patch
-ecryptfs-versioning-fixes.patch
-ecryptfs-versioning-fixes-tidy.patch
-ecryptfs-grab-lock-on-lower_page-in-ecryptfs_sync_page.patch
-ecryptfs-enable-plaintext-passthrough.patch
-non-libata-driver-for-jmicron-devices.patch
-ide-claim-extra-dma-ports-regardless-of-channel.patch
-ide-always-release-dma-engine.patch
-ide-error-handling-fixes.patch
-make-number-of-ide-interfaces-configurable.patch
-ide_dma_speed-fixes.patch
-enable-cdrom-dma-access-with-pdc20265_old.patch
-ide-fix-revision-comparison-in-ide_in_drive_list.patch
-ide-backport-piix-fixes-from-libata-into-the-legacy-driver.patch
-move-ide-to-unmaintained-drop-reference-to-old-git-tree.patch
-ide-core-must_check-fixes.patch
-drivers-ide-cleanups.patch
-ide-remove-dma_base2-field-from-ide_hwif_t.patch
-ide-reprogram-disk-pio-timings-on-resume.patch
-pcmcia-add-few-ids-into-ide-cs.patch
-config_pm=n-slim-drivers-ide-pci-sc1200c.patch
-ide-fix-crash-on-repeated-reset.patch
-ide-fix-crash-on-repeated-reset-tidy.patch
-allow-ide_generic_all-to-be-used-modular-and-built-in.patch
-ide-more-pci_find-cleanup.patch
-ide-cs-compactflash-driver-rm-irq-warning.patch
-au1100fb-add-option-to-enable-disable-the-cursor.patch
-intelfb-documentation-update.patch
-rivafb-use-constants-instead-of-magic-values.patch
-vfb-document-option-to-enable-the-driver.patch
-fbdev-add-generic-ddc-read-functionality.patch
-nvidiafb-use-generic-ddc-reading.patch
-rivafb-use-generic-ddc-reading.patch
-i810fb-use-generic-ddc-reading.patch
-savagefb-use-generic-ddc-reading.patch
-savagefb-use-generic-ddc-reading-fix.patch
-radeonfb-use-generic-ddc-reading.patch
-fbcon-use-persistent-allocation-for-cursor-blinking.patch
-fbcon-remove-cursor-timer-if-unused.patch
-vt-honor-the-return-value-of-device_create_file.patch
-fbdev-honor-the-return-value-of-device_create_file.patch
-fbcon-honor-the-return-value-of-device_create_file.patch
-atyfb-honor-the-return-value-of-pci_register_driver.patch
-matroxfb-honor-the-return-value-of-pci_register_driver.patch
-nvidiafb-honor-the-return-value-of-pci_enable_device.patch
-i810fb-honor-the-return-value-of-pci_enable_device.patch
-drivers-video-sis-init301h-removal-of-old.patch
-drivers-video-sis-initextlfbc-removal-of.patch
-drivers-video-sis-inith-removal-of-old-code.patch
-drivers-video-sis-osdefh-removal-of-old-code.patch
-drivers-video-sis-sis_accelc-removal-of-old.patch
-drivers-video-sis-sis_accelh-removal-of-old.patch
-drivers-video-sis-sis_mainc-removal-of-old.patch
-drivers-video-sis-sis_mainc-removal-of-old-2.patch
-drivers-video-sis-vgatypesh-removal-of-old.patch
-drivers-video-sis-sis_mainh-removal-of-old.patch
-atyfb-possible-cleanups.patch
-mbxfb-fix-a-chip-bug-resulting-in-wrong-pixclock.patch
-mbxfb-fix-framebuffer-size-smaller-than-requested.patch
-fbcon-make-3-functions-static.patch
-vt-proper-prototypes-for-some-console-functions.patch
-sstfb-clean-ups.patch
-documentation-fixes-in-intel810txt.patch
-radeonfb-supend-resume-support-for-acer-aspire-2010.patch
-fbdev-correct-buffer-size-limit-in-fbmem_read_proc.patch
-dm-support-ioctls-on-mapped-devices.patch
-dm-linear-support-ioctls.patch
-dm-mpath-support-ioctls.patch
-dm-export-blkdev_driver_ioctl.patch
-dm-support-ioctls-on-mapped-devices-fix-with-fake-file.patch
-dm-fix-alloc_dev-error-path.patch
-dm-snapshot-fix-invalidation-enomem.patch
-dm-snapshot-allow-zero-chunk_size.patch
-dm-snapshot-fix-metadata-error-handling.patch
-dm-snapshot-make-read-and-write-exception-functions-void.patch
-dm-snapshot-fix-metadata-writing-when-suspending.patch
-dm-snapshot-tidy-snapshot_map.patch
-dm-snapshot-tidy-pending_complete.patch
-dm-snapshot-add-workqueue.patch
-dm-snapshot-tidy-pe-ref-counting.patch
-dm-snapshot-fix-freeing-pending-exception.patch
-dm-mirror-remove-trailing-space-from-table.patch
-dm-mpath-tidy-ctr.patch
-dm-mpath-use-kzalloc.patch
-dm-add-uevent-change-event-on-resume.patch
-dm-add-debug-macro.patch
-dm-table-add-target-preresume.patch
-dm-crypt-add-key-msg.patch
-dm-crypt-restructure-for-workqueue-change.patch
-dm-crypt-restructure-write-processing.patch
-dm-crypt-move-io-to-workqueue.patch
-dm-crypt-use-private-biosets.patch
-dm-use-private-biosets.patch
-dm-extract-device-limit-setting.patch
-dm-table-add-target-flush.patch
-md-the-scheduled-removal-of-the-start_array-ioctl-for-md.patch
-md-fix-a-comment-that-is-wrong-in-raid5h.patch
-md-factor-out-part-of-raid10d-into-a-separate-function.patch
-md-replace-magic-numbers-in-sb_dirty-with-well-defined-bit-flags.patch
-md-remove-the-working_disks-and-failed_disks-from-raid5-state-data.patch
-md-remove-working_disks-from-raid10-state.patch
-md-new-sysfs-interface-for-setting-bits-in-the-write-intent-bitmap.patch
-md-remove-unnecessary-variable-x-in-stripe_to_pdidx.patch
-md-factor-out-part-of-raid1d-into-a-separate-function.patch
-md-remove-working_disks-from-raid1-state-data.patch
-md-improve-locking-around-error-handling.patch
-md-define-backing_dev_infocongested_fn-for-raid0-and-linear.patch
-md-define-congested_fn-for-raid1-raid10-and-multipath.patch
-md-add-a-congested_fn-function-for-raid5-6.patch
-md-make-messages-about-resync-recovery-etc-more-specific.patch
-md-fix-duplicity-of-levels-in-mdtxt.patch
-md-remove-max_md_devs-which-is-an-arbitrary-limit.patch
-md-remove-experimental-classification-from-raid5-reshape.patch
-md-use-ffz-instead-of-find_first_set-to-convert-multiplier-to-shift.patch
-md-allow-set_bitmap_file-to-work-on-64bit-kernel-with-32bit-userspace.patch
-md-add-error-reporting-to-superblock-write-failure.patch
-genirq-convert-the-x86_64-architecture-to-irq-chips.patch
-genirq-convert-the-i386-architecture-to-irq-chips.patch
-genirq-irq-convert-the-move_irq-flag-from-a-32bit-word-to-a-single-bit.patch
-genirq-irq-add-moved_masked_irq.patch
-genirq-x86_64-irq-reenable-migrating-irqs-to-other-cpus.patch
-genirq-msi-simplify-msi-enable-and-disable.patch
-genirq-msi-make-the-msi-boolean-tests-return-either-0-or-1.patch
-genirq-msi-implement-helper-functions-read_msi_msg-and-write_msi_msg.patch
-genirq-msi-refactor-the-msi_ops.patch
-genirq-msi-simplify-the-msi-irq-limit-policy.patch
-genirq-irq-add-a-dynamic-irq-creation-api.patch
-genirq-ia64-irq-dynamic-irq-support.patch
-genirq-i386-irq-dynamic-irq-support.patch
-genirq-x86_64-irq-dynamic-irq-support.patch
-genirq-msi-make-the-msi-code-irq-based-and-not-vector-based.patch
-genirq-x86_64-irq-move-msi-message-composition-into-io_apicc.patch
-genirq-i386-irq-move-msi-message-composition-into-io_apicc.patch
-genirq-msi-only-build-msi-apicc-on-ia64.patch
-genirq-msi-only-build-msi-apicc-on-ia64-fix.patch
-genirq-x86_64-irq-remove-the-msi-assumption-that-irq-==-vector.patch
-genirq-i386-irq-remove-the-msi-assumption-that-irq-==-vector.patch
-genirq-irq-remove-msi-hacks.patch
-genirq-irq-generalize-the-check-for-hardirq_bits.patch
-genirq-x86_64-irq-make-the-external-irq-handlers-report-their-vector-not-the-irq-number.patch
-genirq-x86_64-irq-make-vector_irq-per-cpu.patch
-genirq-x86_64-irq-make-vector_irq-per-cpu-fix.patch
-genirq-x86_64-irq-make-vector_irq-per-cpu-warning-fix.patch
-genirq-x86_64-irq-kill-gsi_irq_sharing.patch
-genirq-x86_64-irq-kill-irq-compression.patch
-add-hypertransport-capability-defines.patch
-add-hypertransport-capability-defines-fix.patch
-initial-generic-hypertransport-interrupt-support.patch
-initial-generic-hypertransport-interrupt-support-Kconfig-fix.patch
-msi-simplify-msi-sanity-checks-by-adding-with-generic-irq-code.patch
-msi-only-use-a-single-irq_chip-for-msi-interrupts.patch
-msi-refactor-and-move-the-msi-irq_chip-into-the-arch-code.patch
-msi-move-the-ia64-code-into-arch-ia64.patch
-htirq-tidy-up-the-htirq-code.patch
-genirq-clean-up-irq-flow-type-naming.patch
-srcu-3-rcu-variant-permitting-read-side-blocking.patch
-srcu-3-rcu-variant-permitting-read-side-blocking-fix.patch
-srcu-3-rcu-variant-permitting-read-side-blocking-srcu-add-lock-annotations.patch
-srcu-3-rcu-variant-permitting-read-side-blocking-comments.patch
-srcu-3-add-srcu-operations-to-rcutorture.patch
-srcu-3-add-srcu-operations-to-rcutorture-fix.patch
-add-srcu-based-notifier-chains.patch
-add-srcu-based-notifier-chains-cleanup.patch
-srcu-report-out-of-memory-errors.patch
-srcu-report-out-of-memory-errors-fixlet.patch
-cpufreq-make-the-transition_notifier-chain-use-srcu.patch
-rcu-add-module_author-to-rcutorture-module.patch
-rcu-fix-incorrect-description-of-default-for-rcutorture.patch
-rcu-mention-rcu_bh-in-description-of-rcutortures.patch
-rcu-avoid-kthread_stop-on-invalid-pointer-if-rcutorture.patch
-rcu-fix-sign-bug-making-rcu_random-always-return-the-same.patch
-rcu-add-fake-writers-to-rcutorture.patch
-rcu-add-fake-writers-to-rcutorture-tidy.patch
-rcu-refactor-srcu_torture_deferred_free-to-work-for.patch
-rcu-add-rcu_sync-torture-type-to-rcutorture.patch
-rcu-add-rcu_bh_sync-torture-type-to-rcutorture.patch
-rcu-add-sched-torture-type-to-rcutorture.patch
-rcu-simplify-improve-batch-tuning.patch
-rcu-credits-and-maintainers.patch
-the-scheduled-removal-of-some-oss-drivers.patch
-the-scheduled-removal-of-some-oss-drivers-fix.patch
-the-scheduled-removal-of-some-oss-drivers-fix-fix.patch
-kill-sound-oss-_symsc.patch
-kill-include-linux-configh.patch
-pci_module_init-convertion-in-ata_genericc.patch
-pci_module_init-convertion-in-ata_genericc-fix.patch
-pci_module_init-convertion-in-amso1100-driver.patch
-pci_module_init-convertion-for-k8_edacc.patch
-pci_module_init-convertion-in-the-legacy-megaraid-driver.patch
-pci_module_init-convertion-in-olympicc.patch
-pci_module_init-conversion-for-pata_pdc2027x.patch
-pci_module_init-convertion-in-tmscsimc.patch
-pr_debug-aio-use-size_t-length-modifier-in-pr_debug-format-arguments.patch
-pr_debug-configfs-use-size_t-length-modifier-in-pr_debug-format-argument.patch
-pr_debug-sysfs-use-size_t-length-modifier-in-pr_debug-format-arguments.patch
-pr_debug-umem-repair-nonexistant-bh-pr_debug-reference.patch
-pr_debug-tipar-repair-nonexistant-pr_debug-argument-use.patch
-pr_debug-dell_rbu-fix-pr_debug-argument-warnings.patch
-pr_debug-ifb-replace-missing-comma-to-separate-pr_debug-arguments.patch
-pr_debug-trident-use-size_t-length-modifier-in-pr_debug-format-arguments.patch
-pr_debug-check-pr_debug-arguments-arm-fix.patch
-isdn-debug-build-fix.patch
-isdn-more-pr_debug-fixes.patch
-pr_debug-check-pr_debug-arguments.patch
-squash-tcp-warnings.patch

 Merged into mainline or a subsystem tree.

+null-dereference-in-fs-jbd-journalc.patch
+irq-fix-avr32-breakage.patch
+mm-use-symbolic-names-instead-of-indices-for-zone-initialisation.patch
+mm-remove-memmap_zone_idx.patch
+fix-menuconfig-build-failure-due-to-missing-stdboolh.patch
+user-struct-irq_chip-instead-of-struct-hw_interrupt_type.patch
+disable-detect_softlockup-for-s390.patch

 2.6.19 queue.

+revert-pci-quirk-for-ibm-dock-ii-cardbus-controllers.patch
+revert-nvidiafb-use-generic-ddc-reading.patch

 Will be 2.6.19 queue soon if we don't look like fixing a few things.

+ext4-copy.patch
+ext4-rename.patch
+ext4-enable.patch
+jbd2-copy.patch
+jbd2-rename.patch
+jbd2-rename-slab.patch
+jbd2-enable.patch
+jbd2-cleanup.patch
+ext4-extents.patch
+ext4_fsblk_sector_t.patch
+ext4-extents-48bit.patch
+ext4-unitialized-extent-handling.patch
+extents_comment_fix.patch
+64bit_jbd2_core.patch
+sector_t-jbd2.patch
+ext4_48bit_i_file_acl.patch
+64bit-metadata.patch
+ext4_blk_type_from_sector_t_to_ulonglong.patch
+ext4_blk_type_from_sector_t_to_ulonglong-fix.patch
+ext4_remove_sector_t_bits_check.patch
+jbd2_blks_type_from_sector_t_to_ull.patch
+ext4_allow_larger_descriptor_size.patch
+ext4_move_block_number_hi_bits.patch
+ext4-uninline-ext4_get_group_no_and_offset.patch
+ext4-64-bit-divide-fix.patch
+ext4-64-bit-divide-fix-fix.patch
+ext4-rename-logic_sb_block.patch
+ext4-errors-behaviour-fix.patch
+ext4-whitespace-cleanups.patch

 ext4

+i386-acpi-build-fix.patch

 ACPI fix

+cifs-kconfig-dont-select-connector.patch

 CIFS Kconfig sanity

+gregkh-driver-documentation-feature-removal-schedule-typo.patch
+gregkh-driver-driver-core-don-t-ignore-error-returns-from-probing.patch
+gregkh-driver-driver-core-bus-remove-indentation-level.patch
+gregkh-driver-aoe-eliminate-isbusy-message.patch
+gregkh-driver-aoe-update-copyright-date.patch
+gregkh-driver-aoe-remove-unused-nargs-enum.patch
+gregkh-driver-aoe-zero-copy-write-1-of-2.patch
+gregkh-driver-aoe-jumbo-frame-support-1-of-2.patch
+gregkh-driver-aoe-clean-up-printks-via-macros.patch
+gregkh-driver-aoe-jumbo-frame-support-2-of-2.patch
+gregkh-driver-aoe-improve-retransmission-heuristics.patch
+gregkh-driver-aoe-zero-copy-write-2-of-2.patch
+gregkh-driver-aoe-module-parameter-for-device-timeout.patch
+gregkh-driver-aoe-use-bio-bi_idx.patch
+gregkh-driver-aoe-remove-sysfs-comment.patch
+gregkh-driver-aoe-update-driver-version.patch
+gregkh-driver-aoe-revert-printk-macros.patch
+gregkh-driver-aoe-fix-sysfs-warnings.patch
+gregkh-driver-driver-link-sysfs-timing.patch

 Driver tree updates.

+w1-kconfig-fix.patch
+fs-partitions-check-add-sysfs-error-handling.patch
+char-nozomi-use-tty_wakeup.patch

 Misc fixes agaisnt driver tree.

+drm-fix-error-returns-sysfs-error-handling.patch

 DRM sysfs fix.

+git-dvb-build-fix.patch

 Fix rejects in git-dvb.patch

+gregkh-i2c-w1-ioremap-balanced-with-iounmap.patch

 I2C tree update.

+kill-include-linux-configh-ia64.patch

 ia64 cleanup.

-revert-input-make-input_openclose_device-more-robust.patch

 Dropped.

+pci_module_init-convertion-in-amso1100-driver.patch
+drivers-infiniband-hw-amso1100-c2_rnicc-fix-a-null-dereference.patch

 infiniband things.

+git-input-fixup.patch

 Fix rejects in git-input.patch (which isn't here.  But it compiles.  hrm)

+ata-must-depend-on-block.patch
+pci_module_init-convertion-in-ata_genericc.patch
+pci_module_init-convertion-in-ata_genericc-fix.patch
+pci_module_init-conversion-for-pata_pdc2027x.patch

 sata/pata things.

+mtd-maps-add-parameter-to-amd76xrom-to-override-rom-window-size-if-set-incorrectly-by-bios.patch
+mtd-maps-add-parameter-to-amd76xrom-to-override-rom-window-size-if-set-incorrectly-by-bios-tweak.patch
+mtd-chips-support-for-sst-49lf040b-flash-chip.patch
+mtd-maps-support-for-bios-flash-chips-on-intel-esb2-southbridge.patch
+mtd-maps-support-for-bios-flash-chips-on-intel-esb2-southbridge-tidy.patch
+mtd-maps-support-for-bios-flash-chips-on-intel-esb2-southbridge-fix.patch

 MTD updates.

+libphy-dont-do-that.patch

 netdev build fix (allegedly deadlocks).

-powerpc-cell-spidernet-burst-alignment-patch.patch
-powerpc-cell-spidernet-low-watermark-patch.patch
-powerpc-cell-spidernet-stop-error-printing-patch.patch
-powerpc-cell-spidernet-ethtool-i-version-number-info.patch
-powerpc-cell-spidernet-ethtool-i-version-number.patch
-powerpc-cell-spidernet-refine-locking.patch

 Dropped.

+pci_module_init-convertion-in-olympicc.patch
+ibmveth-irq-fix.patch

 netdev fixes.

+drivers-atm-no-need-to-return-void.patch

 Driver cleanup.

-git-parisc-powerpc-fix.patch

 Dropped.

+git-serial-fixup.patch

 Actually a pcmcia fix.

+ioremap-balanced-with-iounmap-for-drivers-pcmcia.patch
+export-soc_common_drv_pcmcia_remove-to-allow-modular-pcmcia.patch

 pcmcia fixes.

-git-serial-fixup.patch

 Dropped.

-serial-fix-uart_bug_txen-test.patch

 Unneeded, dropped.

+gregkh-pci-acpipnp-dma-resource-setup-fix.patch
+gregkh-pci-pci-fix-pcie_portdrv_restore_config-undefined-without-config_pm-error.patch
+gregkh-pci-pci-stamp-out-pci_find_-usage-in-fakephp.patch
+gregkh-pci-shpchp-fix-command-completion-check.patch
+gregkh-pci-shpchp-remove-unnecessary-cmd_busy-member-from-struct.patch
+gregkh-pci-pci-hotplug-ioremap-balanced-with-iounmap.patch
+gregkh-pci-pci-improve-pci_msi_supported-comments.patch
+gregkh-pci-pci-update-msi-howto.txt-according-to-pci_msi_supported.patch
+gregkh-pci-change-pci-hotplug-subsystem-maintainer-to-kristen.patch
+gregkh-pci-pci-optionally-sort-device-lists-breadth-first.patch
+gregkh-pci-pci-quirks-fix-the-festering-mess-that-claims-to-handle-ide-quirks.patch
-gregkh-pci-altix-rom-shadowing.patch
+gregkh-pci-altix-initial-acpi-support-rom-shadowing.patch

 PCI tree updates.

-revert-gregkh-pci-altix-rom-shadowing.patch
-revert-gregkh-pci-altix-sn-acpi-hotplug-support.patch
-revert-gregkh-pci-altix-add-initial-acpi-io-support.patch

 Dropped.

-revert-pci-assign-ioapic-resource-at-hotplug.patch

 Dropped.

+quirks-switch-quirks-code-offender-to-use-pci_get-api.patch

 PCI fix.

+scsi-scsi_cmnd-convertion-in-sun3-driver.patch
+scsi-scsi_cmnd-conversion-in-qlogicfas408-driver.patch
+scsi-scsi_cmnd-convertion-in-psi240i-driver.patch
+pci_module_init-convertion-in-the-legacy-megaraid-driver.patch
+pci_module_init-convertion-in-tmscsimc.patch
+aic94xx-sata-tag-mask-not-set-correctly.patch
+maintain-module-parameter-name-consistency-with-qla2xxx-qla4xxx.patch
+scsi_libc-use-build_bug_on.patch
+drivers-scsi-dpt_i2oc-remove-dead-code.patch

 SCSI fixes.

+gregkh-usb-usb-fix-use-after-free-in-wacom_sys.c.patch
+gregkh-usb-airprime-new-device-id.patch
+gregkh-usb-usb-support-for-bt-on-air-usb-modem-in-cdc-acm.c.patch
+gregkh-usb-usb-suspend-resume-support-for-kaweth.patch
+gregkh-usb-usb-ohci-pnx4008-build-fixes.patch
+gregkh-usb-ueagle-be-suspend-friendly.patch
+gregkh-usb-ueagle-use-interruptible-sleep.patch
+gregkh-usb-ueagle-comestic-changes.patch
+gregkh-usb-usb-fix-cdc-acm-problems-with-hard-irq.patch
+gregkh-usb-usb-unusual_devs-entry-for-nokia-6131.patch
+gregkh-usb-usbatm-fix-tiny-race.patch
+gregkh-usb-speedtch-extended-reach.patch
+gregkh-usb-cxacru-add-the-zte-zxdsl-852.patch
+gregkh-usb-usb-fix-suspend-support-for-usblp.patch
+gregkh-usb-usb-ftdi-elan-fix-sparse-warnings.patch
+gregkh-usb-usb-ehci-hcd-make-ehci_iso_stream-instances-more-persistent.patch
+gregkh-usb-usb-ehci-hcd-periodic-startup-shutdown-centralization-and-hysteresis.patch
+gregkh-usb-usb-ehci-hcd-group-interrupt-endpoint-code-into-one-place.patch
+gregkh-usb-usb-ehci-hcd-group-ehci_iso_sched-functions-into-one-place.patch
+gregkh-usb-usb-ehci-hcd-group-ehci_iso_sched-and-ehci_itd-code.patch
+gregkh-usb-usb-ehci-hcd-group-ehci_sitd-code-in-one-place.patch
+gregkh-usb-usb-ehci-hcd-refactor-sitd-link-patch-code-for-easier-frame-spanning.patch
+gregkh-usb-usb-ehci-hcd-split-scan_periodic-to-reuse-code-for-spanned-completions.patch
+gregkh-usb-usb-ehci-hcd-unify-interval-granularity-and-limit-depth-of-interrupt-tree.patch
+gregkh-usb-usb-ehci-hcd-add-shadow-budget-code.patch
+gregkh-usb-usb-ehci-hcd-activate-shadow-budget-tracking.patch
+gregkh-usb-usb-ehci-hcd-activate-use-of-shadow-budget-for-scheduling-decisions.patch
+gregkh-usb-usb-ehci-hcd-add-fstn-support.patch
+gregkh-usb-usb-ehci-hcd-add-sitd-frame-spanning-support.patch
+gregkh-usb-ehci-hcd-fix-budget_pool-allocation-for-machines-with-multiple-ehci-controllers.patch
+gregkh-usb-usb-usbaudio-correct-bug-caused-by-harmless-underrun-during-playback-setup.patch

 USB tree updates.

+fix-gregkh-usb-usbatm-fix-tiny-race.patch
+memory-leak-in-drivers-usb-serial-airprimec.patch
+extract-and-implement-are-bit-field-manipulation-routines.patch
+drivers-usb-net-use-build_bug_on.patch
+drivers-usb-misc-ftdi-elanc-remove-dead-code.patch
+drivers-usb-serial-mos7840c-fix-a-check-after-dereference.patch

 USB updates.

-git-watchdog-fixup.patch

 Dropped.

+airo-suspend-fix.patch
+prism54-use-build_bug_on.patch

 Wireless driver fixes.

+x86_64-overlapping-program-headers-in-physical-addr-space-fix.patch
+sleazy-fpu-feature-i386-support.patch
+add-seccomp_disable_tsc-config-option.patch
+i386-fix-recursive-faults-during-oops-when-current.patch
+x86-remove-default_ldt-and-simplify-ldt-setting.patch
+fix-buggy-mtrr-address-checks.patch
+i386-espfix-cleanup.patch
+x86_64-hot-add-memroy-sratc-fix.patch
+x86_64-add-missing-enter_idle-calls.patch
+x86_64-rename-x86_feature_dtes-to-x86_feature_ds.patch
+add-x86_feature_pebs-and-detection.patch
+i386-rename-x86_feature_dtes-to-x86_feature_ds.patch
+i386-add-x86_feature_pebs-and-detection.patch
+remove-pointless-printk-from-i386-oops-output.patch
+compress-stack-unwinder-output.patch
+x86_64-use-build_bug_on-in-fpu-code.patch
+fix-for-arch-x86_64-pci-makefile-cflags.patch
+i386-math-emu-fix-must_checks.patch

 x86 and x86_64 updates.

+touchkit-ps-2-touchscreen-driver-configh.patch
+touchkit-ps-2-touchscreen-driver-regs-fix.patch

 Fix touchkit-ps-2-touchscreen-driver.patch

+direct-io-sync-and-invalidate-file-region-when-falling-back-to-buffered-write.patch
+direct-io-sync-and-invalidate-file-region-when-falling-back-to-buffered-write-fixes.patch

 Make direct-io fallback-to-buffered work more like direct-io normally does.

+mm-kevent-threads-use-mpol_default.patch
+move-rmap-bug_on-outside-debug_vm.patch
+fix-do_mbind-warning-with-config_migration=n.patch
+memory-page-alloc-minor-cleanups.patch

 MM updates

-get-rid-of-zone_table-fix.patch
-get-rid-of-zone_table-fix-2.patch
-get-rid-of-zone_table-fix-4.patch

 Folded into get-rid-of-zone_table.patch

-deal-with-cases-of-zone_dma-meaning-the-first-zone-fix.patch

 Folded into deal-with-cases-of-zone_dma-meaning-the-first-zone.patch

-optional-zone_dma-in-the-vm-tidy.patch

 Folded into optional-zone_dma-in-the-vm.patch

+zoneid-fix-up-calculations-for-zoneid_pgshift.patch

 Fix zone rework patches in -mm.

-swap-token-try-to-grab-swap-token-before-the-vm-selects-pages-for-eviction.patch
-swap-token-new-scheme-to-preempt-token.patch
-swap-token-new-scheme-to-preempt-token-tidy.patch
+grab-swap-token-reordered.patch
+new-scheme-to-preempt-swap-token.patch
+new-scheme-to-preempt-swap-token-tidy.patch
+shared-page-table-for-hugetlb-page-v4.patch
+htlb-forget-rss-with-pt-sharing.patch
+mm-arch_free_page-fix.patch
+mm-locks_freed-fix.patch
+mm-add-arch_alloc_page.patch

 More MM updates.

-fix-tiacx-on-alpha.patch
-tiacx-fix-attribute-packed-warnings.patch
-tiacx-fix-attribute-packed-warnings-fix.patch
-tiacx-pci-build-fix.patch
-tiacx-ia64-fix.patch
-tiacx-build-fix.patch
-tiacx-sparse-cleanups.patch

 Folded into acx1xx-wireless-driver.patch

-swsusp-add-resume_offset-command-line-parameter-rev-2-fix.patch

 Folded into swsusp-add-resume_offset-command-line-parameter-rev-2.patch

-swsusp-add-ioctl-for-swap-files-support-fix.patch

 Folded into swsusp-add-ioctl-for-swap-files-support.patch

+uml-revert-wrong-patch.patch
+uml-correct-removal-of-pte_mkexec.patch
+uml-readd-forgot-prototype.patch
+uml-make-tt-mode-compile-after-setjmp-related-changes.patch
+uml-make-uml_setjmp-always-safe.patch
+uml-fix-processor-selection-to-exclude-unsupported-processors-and-features.patch
+uml-fix-uname-under-setarch-i386.patch
+uml-declare-in-kconfig-our-partial-lockdep-support.patch
+uml-allow-using-again-x86-x86_64-crypto-code.patch
+uml-asm-offsets-duplication-removal.patch
+uml-remove-duplicate-export.patch
+uml-deprecate-config_mode_tt.patch
+uml-allow-finer-tuning-for-host-vmsplit-setting.patch

 UML updates

-edac-new-opteron-athlon64-memory-controller-driver-tidy.patch

 Folded into edac-new-opteron-athlon64-memory-controller-driver.patch

-add-address_space_operationsbatch_write-fix.patch

 Folded into add-address_space_operationsbatch_write.patch

+pci_module_init-convertion-for-k8_edacc.patch
+kbuild-dont-put-temp-files-in-the-source-tree.patch
+grow_buffers-infinite-loop-fix.patch
+ide-generic-jmicron-fix.patch
+fix-rescan_partitions-to-return-errors-properly.patch
+fix-check_partition-routines.patch
+fix-module-taint-flags-listing-in-oops-panic.patch
+ext3-errors-behaviour-fix.patch
+ext2-errors-behaviour-fix.patch
+tpm-fix-error-handling.patch
+sched-likely-profiling.patch
+serial-uartlite-driver.patch
+serial-uartlite-driver-fix.patch
+invalidate_inode_pages2_range-debug.patch
+x86-microcode-handle-sysfs-error.patch
+apm-share-apm-emulator-between-architectures.patch
+32-bit-compatibility-hdio-ioctls.patch
+pktcdvd-reusability-of-procfs-functions.patch
+pktcdvd-make-procfs-interface-optional.patch
+bitmap-parse-input-from-kernel-and-user-buffers-2.patch
+# drivers-add-lcd-support.patch: Pavel says use fbcon
+drivers-add-lcd-support.patch
+drivers-add-lcd-support-update.patch
+ioremap-balanced-with-iounmap-for-drivers-char-rio-rio_linuxc.patch
+ioremap-balanced-with-iounmap-for-drivers-char-moxac.patch
+ioremap-balanced-with-iounmap-for-drivers-char-istallionc.patch
+sound-oss-btaudioc-ioremap-balanced-with-iounmap.patch
+document-the-core-dump-to-a-pipe-patch.patch
+lockdep-annotate-nfs-nfsd-in-kernel-sockets.patch
+lockdep-annotate-nfs-nfsd-in-kernel-sockets-tidy.patch
+honour-mnt_noexec-for-access.patch
+vm-fix-the-gfp_mask-in-invalidate_complete_page2.patch
+posix-cpu-timers-prevent-signal-delivery-starvation.patch
+remove-unnecessary-check-in-fs-fat-inodec.patch
+d-cache-aliasing-issue-in-__block_prepare_write.patch
+use-linux-ioh-instead-of-asm-ioh.patch
+consolidate-check_signature.patch
+fix-typos-in-mm-shmem_aclc.patch
+ht_irq-must-depend-on-pci.patch
+fs-use-build_bug_on.patch
+dac960-use-memmove-for-overlapping-areas.patch
+lockdep-use-build_bug_on.patch
+fix-lockdep-designtxt.patch
+lockdep-fix-printk-recursion-logic.patch
+kernel-doc-fix-function-name-in-usercopyc.patch
+uaccessh-match-kernel-doc-and-function-names.patch
+kernel-doc-drop-various-inline-qualifiers.patch
+include-linux-typesh-in-linux-nbdh.patch
+kernel-doc-make-parameter-description-indentation-uniform.patch
+dell_rbu-printk-warning-fix.patch

 misc.

-generic-bug-handling.patch
-use-generic-bug-for-i386.patch
-use-generic-bug-for-x86-64.patch
-use-generic-bug-for-powerpc.patch
-use-generic-bug-for-powerpc-fix-2.patch
-bug-test-1.patch
+generic-implementatation-of-bug.patch
+generic-implementatation-of-bug-fix.patch
+generic-bug-for-i386.patch
+generic-bug-for-x86-64.patch
+uml-add-generic-bug-support.patch
+use-generic-bug-for-ppc.patch
+bug-test-1.patch

 Updated generic-bug implementation.

+log2-implement-a-general-integer-log2-facility-in-the-kernel.patch
+log2-implement-a-general-integer-log2-facility-in-the-kernel-fix.patch
+log2-alter-roundup_pow_of_two-so-that-it-can-use-a-ilog2-on-a-constant.patch
+log2-alter-get_order-so-that-it-can-make-use-of-ilog2-on-a-constant.patch
+log2-provide-ilog2-fallbacks-for-powerpc.patch

 generic log2() implementation.

+fs-cache-provide-a-filesystem-specific-syncable-page-bit-ext4.patch

 Fix ext4 for fs-cache-provide-a-filesystem-specific-syncable-page-bit.patch

+nfs-use-local-caching-configh.patch

 Clean up nfs-use-local-caching.patch

+fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-log2-fix.patch

 log2() fix.

+char-mxser_new-revert-spin_lock-changes.patch
+char-mxser_new-remove-request-for-testers-line.patch
+char-mxser_new-debug-printk-dependent-on-debug.patch
+char-mxser_new-alter-license-terms.patch
+char-mxser_new-code-upside-down.patch
+char-mxser_new-cmspar-is-defined.patch
+char-remove-unneded-termbits-redefinitions-mxser_new.patch
+char-mxser_new-eliminate-tty-ldisc-deref.patch
+char-mxser_new-testbit-for-bit-testing.patch
+char-mxser_new-correct-fail-paths.patch
+char-mxser_new-dont-check-tty_unregister-retval.patch
+char-mxser_new-compress-isa-finding.patch
+char-mxser_new-register-tty-devices-on-the-fly.patch
+char-mxser_new-compact-structures-round2.patch
+char-mxser_new-reverse-if-else-paths-patch.patch
+char-mxser_new-comments-cleanup.patch

 More updates to the updated mxser driver.

-readahead-sysctl-parameters-fix.patch

 Folded into readahead-sysctl-parameters.patch

-readahead-state-based-method-aging-accounting-apply-type-enum-zone_type-readahead.patch

 Folded into readahead-state-based-method-aging-accounting.patch

-readahead-call-scheme-fix.patch

 Folded into readahead-call-scheme.patch

+reiser4-configh.patch

 reiser4 cleanup

+reiser4-format-subversion-numbers-heir-set-and-file-conversion.patch
+reiser4-cleanups-in-lzo-compression-library.patch

 reiser4 updates.

+ioremap-balanced-with-iounmap-for-drivers-video-virgefb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-vesafb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-tridentfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-tgafb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-stifb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-retz3fb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-pvr2fb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-platinumfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-offb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-macfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-hpfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-fm2fb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-ffb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-cyberfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-cirrusfb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-atyfb_base.patch
+ioremap-balanced-with-iounmap-for-drivers-video-atafb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-amifb.patch
+ioremap-balanced-with-iounmap-for-drivers-video-S3triofb.patch

 ioremap() fixes in fbdev drivers.

-statistics-infrastructure-prerequisite-timestamp-fix.patch

 Folded into statistics-infrastructure-prerequisite-timestamp.patch

-statistics-infrastructure-update-9.patch

 Folded into statistics-infrastructure.patch

-statistics-infrastructure-exploitation-zfcp-sched_clock-fix.patch

 Folded into statistics-infrastructure-exploitation-zfcp.patch

+dio-centralize-completion-in-dio_complete.patch
+dio-call-blk_run_address_space-once-per-op.patch
+dio-formalize-bio-counters-as-a-dio-reference-count.patch
+dio-remove-duplicate-bio-wait-code.patch
+dio-only-call-aio_complete-after-returning-eiocbqueued.patch

 drirect-io cleanups and fixes

+fdtable-delete-pointless-code-in-dup_fd.patch
+fdtable-make-fdarray-and-fdsets-equal-in-size.patch
+fdtable-remove-the-free_files-field.patch
+fdtable-implement-new-pagesize-based-fdtable-allocator.patch

 Redo the fdtable code.

+gtod-exponential-update_wall_time.patch
+gtod-persistent-clock-support-core.patch
+gtod-persistent-clock-support-i386.patch
+time-uninline-jiffiesh.patch
+time-fix-msecs_to_jiffies-bug.patch
+time-fix-timeout-overflow.patch
+cleanup-uninline-irq_enter-and-move-it-into-a-function.patch
+dynticks-extend-next_timer_interrupt-to-use-a-reference-jiffie.patch
+hrtimers-namespace-and-enum-cleanup.patch
+hrtimers-clean-up-locking.patch
+hrtimers-state-tracking.patch
+hrtimers-clean-up-callback-tracking.patch
+hrtimers-move-and-add-documentation.patch
+clockevents-core.patch
+clockevents-drivers-for-i386.patch
+high-res-timers-core.patch
+gtod-mark-tsc-unusable-for-highres-timers.patch
+dynticks-core.patch
+dynticks-add-nohz-stats-to-proc-stat.patch
+dynticks-i386-arch-code.patch
+high-res-timers-dynticks-enable-i386-support.patch
+debugging-feature-timer-stats.patch

 hrtimers and dynamic ticks.

+kevent-timer-notifications-fix.patch
+kevent-fix-socket-notifications.patch
+kevent-remove-mmap-interface.patch

 kevent updates




All 766 patches:

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



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-10  7:20 ` Arjan van de Ven
  2006-10-10  7:45   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10  7:31 ` 2.6.19-rc1-mm1 Miguel Ojeda
                   ` (13 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-10  7:20 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote:
> +htlb-forget-rss-with-pt-sharing.patch

if it's ok to ignore RSS, can we consider the shared pagetables for
normal pages patch? It saves quite a bit of memory on even desktop
workloads as well as avoiding several (soft) pagefaults.

So.. what does RSS actually mean? Can we ignore it somewhat for
shared-readonly mappings ? 


-- 
if you want to mail me at work (you don't), use arjan (at) linux.intel.com


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10  7:20 ` 2.6.19-rc1-mm1 Arjan van de Ven
@ 2006-10-10  7:31 ` Miguel Ojeda
  2006-10-10  8:10   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10 12:19 ` 2.6.19-rc1-mm1 Theodore Tso
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Miguel Ojeda @ 2006-10-10  7:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
>
> +# drivers-add-lcd-support.patch: Pavel says use fbcon
> +drivers-add-lcd-support.patch
> +drivers-add-lcd-support-update.patch
>

Has the # a special meaning?

I'm going to work on offering the fbcon feature as Pavel requested. We
suggested 2 ways.

Pavel's idea: Change the driver so the cfag12864b module will be just
a framebuffer device, removing access through /dev/cfag12864b.

My idea: Code a new module called "fbcfag12864b", which will depend on
cfag12864b and will be the framebuffer device. This way we have both
devices, and they doesn't affect each other as they are different
things. So the ks0108 and cfag12864b can stay without any changes.
Also, if we finally decide we don't want the raw cfag12864b module, it
is easy to remove it from the cfag12864b and the fbcafg12864b will
continue working.

Is there anyone who can decide which idea is better? If not, I will
code it my way. Also, if the Pavel's idea will be the chosen one, it
will be easier to put the fbcfag12864b code into the cfag12864b rather
than the opposite.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:20 ` 2.6.19-rc1-mm1 Arjan van de Ven
@ 2006-10-10  7:45   ` Andrew Morton
  2006-10-10  8:03     ` 2.6.19-rc1-mm1 Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-10  7:45 UTC (permalink / raw)
  To: Arjan van de Ven; +Cc: linux-kernel, Chen, Kenneth W, linux-mm

On Tue, 10 Oct 2006 09:20:00 +0200
Arjan van de Ven <arjan@infradead.org> wrote:

> On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote:
> > +htlb-forget-rss-with-pt-sharing.patch

Which I didn't write.  cc's added.

> if it's ok to ignore RSS,

We'd prefer not to.  But what's the alternative?

> can we consider the shared pagetables for
> normal pages patch?

Has been repeatedly considered, but Hugh keeps finding bugs in it.

> It saves quite a bit of memory on even desktop
> workloads as well as avoiding several (soft) pagefaults.
> 
> So.. what does RSS actually mean? Can we ignore it somewhat for
> shared-readonly mappings ? 

We'd prefer to go the other way, and implement RLIMIT_RSS wouldn't we?

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:45   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-10  8:03     ` Arjan van de Ven
  2006-10-10 13:14       ` RSS accounting (was: Re: 2.6.19-rc1-mm1) Peter Zijlstra
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-10  8:03 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Chen, Kenneth W, linux-mm

On Tue, 2006-10-10 at 00:45 -0700, Andrew Morton wrote:

> > if it's ok to ignore RSS,
> 
> We'd prefer not to.  But what's the alternative?

it's a good question; today (2.6.18) we have some defacto behavior of
RSS; 2.6.19-rc1-mm1 has a somewhat different one. Either can be entirely
valid; and we can obviously implement either. We can go even further and
remove more from RSS to help save memory and pagefaults (both help
desktop performance) by going the shared pagetable road
> 
> > can we consider the shared pagetables for
> > normal pages patch?
> 
> Has been repeatedly considered, but Hugh keeps finding bugs in it.

the latest one I tried looked relatively simple (earlier ones were very
complex) so maybe Hugh can find time to give it another lookover?

> 
> > It saves quite a bit of memory on even desktop
> > workloads as well as avoiding several (soft) pagefaults.
> > 
> > So.. what does RSS actually mean? Can we ignore it somewhat for
> > shared-readonly mappings ? 
> 
> We'd prefer to go the other way, and implement RLIMIT_RSS wouldn't we?

Well... that again depends on how we define RSS. implementing the rlimit
doesn't mean we can't NOT count certain things (like the hugetlb pages
in the patch above, or shared read only pagecache pages) to be part of
it. It's a fundamental "what does it mean" thing.
You can argue that RSS means "all memory that the application has in
it's address space", you can argue "all such memory except a few cases",
you can argue "all memory that is private/exclusive to the
application"... 
This is not a pointless piss-in-the-wind discussion; unless we define
rather specific what it really means, the RLIMIT doesn't mean anything
either.

We need to consider at least if any of the following are part of rss:
* VM_IO io mmaped device stuff 
* Non-linear mappings
* Shared hugetlb memory that shares pagetables
* Shared hugetlb memory
* Hugetlb memory in general
* Shared normal memory that shares pagetables
* Shared normal memory (file backed; eg pagecache)
* Shared normal memory (anonymous/non-file-backed)
* Sysv/ipc shared memory
* Not shared normal memory

I don't think posix or anything else helps us here so we can vote or
otherwise reason which make sense and which don't. I hope the outcome is
reasonably consistent ;)

I know the desktop guys at least consider RSS useless as measure of "how
much memory does my desktop app take"; especially since they have many
shared libraries and they consider it unfair that each app pays the full
price in terms of RSS for those. So personally I'm not unhappy with a
definition that comes down to "all memory that's private to the app";
although it is a change from what 2.6.18 does.



-- 
if you want to mail me at work (you don't), use arjan (at) linux.intel.com


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:31 ` 2.6.19-rc1-mm1 Miguel Ojeda
@ 2006-10-10  8:10   ` Andrew Morton
  2006-10-10  9:57     ` 2.6.19-rc1-mm1 Miguel Ojeda
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-10  8:10 UTC (permalink / raw)
  To: Miguel Ojeda; +Cc: linux-kernel

On Tue, 10 Oct 2006 07:31:23 +0000
"Miguel Ojeda" <maxextreme@gmail.com> wrote:

> On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> >
> > +# drivers-add-lcd-support.patch: Pavel says use fbcon
> > +drivers-add-lcd-support.patch
> > +drivers-add-lcd-support-update.patch
> >
> 
> Has the # a special meaning?

It's a comment separator ;)

> I'm going to work on offering the fbcon feature as Pavel requested.

Thanks.  It does sound like making the thing an fbdev is the right way to go.

> suggested 2 ways.
> 
> Pavel's idea: Change the driver so the cfag12864b module will be just
> a framebuffer device, removing access through /dev/cfag12864b.
> 
> My idea: Code a new module called "fbcfag12864b", which will depend on
> cfag12864b and will be the framebuffer device. This way we have both
> devices, and they doesn't affect each other as they are different
> things. So the ks0108 and cfag12864b can stay without any changes.
> Also, if we finally decide we don't want the raw cfag12864b module, it
> is easy to remove it from the cfag12864b and the fbcafg12864b will
> continue working.
> 
> Is there anyone who can decide which idea is better? If not, I will
> code it my way. Also, if the Pavel's idea will be the chosen one, it
> will be easier to put the fbcfag12864b code into the cfag12864b rather
> than the opposite.

I'd have thought that once the device is accessible as an fbdev, there's so
much other software and kernel infrastructure to support that, there's
little point in offering an alternative way of presenting the device to
userspace.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  8:10   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-10  9:57     ` Miguel Ojeda
  2006-10-10 18:25       ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
  0 siblings, 1 reply; 88+ messages in thread
From: Miguel Ojeda @ 2006-10-10  9:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> On Tue, 10 Oct 2006 07:31:23 +0000
> "Miguel Ojeda" <maxextreme@gmail.com> wrote:
>
> > On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> > >
> > > +# drivers-add-lcd-support.patch: Pavel says use fbcon
> > > +drivers-add-lcd-support.patch
> > > +drivers-add-lcd-support-update.patch
> > >
> >
> > Has the # a special meaning?
>
> It's a comment separator ;)
>

Ouch. Right.

>
> > I'm going to work on offering the fbcon feature as Pavel requested.
>
> Thanks.  It does sound like making the thing an fbdev is the right way to go.
>

Yep, such way will let us to run a xgl server through some ascii video
lib and display it on the 128x64 LCD fb device ;)

> > suggested 2 ways.
> >
> > Pavel's idea: Change the driver so the cfag12864b module will be just
> > a framebuffer device, removing access through /dev/cfag12864b.
> >
> > My idea: Code a new module called "fbcfag12864b", which will depend on
> > cfag12864b and will be the framebuffer device. This way we have both
> > devices, and they doesn't affect each other as they are different
> > things. So the ks0108 and cfag12864b can stay without any changes.
> > Also, if we finally decide we don't want the raw cfag12864b module, it
> > is easy to remove it from the cfag12864b and the fbcafg12864b will
> > continue working.
> >
> > Is there anyone who can decide which idea is better? If not, I will
> > code it my way. Also, if the Pavel's idea will be the chosen one, it
> > will be easier to put the fbcfag12864b code into the cfag12864b rather
> > than the opposite.
>
> I'd have thought that once the device is accessible as an fbdev, there's so
> much other software and kernel infrastructure to support that, there's
> little point in offering an alternative way of presenting the device to
> userspace.
>

Allright, I will code it as the fbcfag12864b module, and when it will
be working fine, I will remove the raw device of the cfag12864b and if
the code of fbcfag12864b results really small/trivial, I will put it
in the cfag12864b module. Then I will send you the "update patch 2".

Give me a couple of days or so :)

Thanks you,
     Miguel Ojeda

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10  7:20 ` 2.6.19-rc1-mm1 Arjan van de Ven
  2006-10-10  7:31 ` 2.6.19-rc1-mm1 Miguel Ojeda
@ 2006-10-10 12:19 ` Theodore Tso
  2006-10-10 12:26   ` 2.6.19-rc1-mm1 Arjan van de Ven
  2006-10-10 16:21   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10 13:10 ` 2.6.19-rc1-mm1 Michal Piotrowski
                   ` (11 subsequent siblings)
  14 siblings, 2 replies; 88+ messages in thread
From: Theodore Tso @ 2006-10-10 12:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Tue, Oct 10, 2006 at 12:09:28AM -0700, Andrew Morton wrote:
> 
> - Added the ext4 filesystem.  Quick usage instructions:
> 
>   - Grab updated e2fsprogs from
>     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
> 
>   - It's still mke2fs -j /dev/hda1
> 
>   - mount /dev/hda1 /wherever -t ext4dev
> 
>   - To enable extents,
> 
> 	mount /dev/hda1 /wherever -t ext4dev -o extents

Looks like you didn't take the updated patch from Shaggy which
requires that you use tune2fs -O extents first?  (This requires the
e2fsprogs-interim patches.)

The plan is that mount -o extents is not going to be the long-term way
that extents will be enabled.  I can imagine a -o noextents option,
which might be used with remount to do an on-line rollback from
extents to non-extents, but normally you shouldn't need to use a mount
option to enable a feature that are filesystem format-related.  Those
should be implied by the appropriate flags in the superblock.

Mount -o nobh is a different story, since that's just a implementation
detail --- although for ext4, maybe we should just make nobh a
default, since that way more people will test it and hopefully,
eventually nobh will be the only way of doing things, right?

>     Making the journal larger than the mke2fs default often helps
>     performance with metadata-intensive workloads.

The default was increased significantly in e2fsprogs 1.40; if someone
who has their favorite metadata-intesive benchmark could test and see
if we should be using even larger defaults for certain "mke2fs -T 
<workload-type>" configurations, I'd really appreciate it.

					- Ted

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 12:19 ` 2.6.19-rc1-mm1 Theodore Tso
@ 2006-10-10 12:26   ` Arjan van de Ven
  2006-10-10 16:21   ` 2.6.19-rc1-mm1 Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-10 12:26 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Andrew Morton, linux-kernel


> Mount -o nobh is a different story, since that's just a implementation
> detail --- although for ext4, maybe we should just make nobh a
> default, since that way more people will test it and hopefully,
> eventually nobh will be the only way of doing things, right?

imo it should be that even for ext3!



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (2 preceding siblings ...)
  2006-10-10 12:19 ` 2.6.19-rc1-mm1 Theodore Tso
@ 2006-10-10 13:10 ` Michal Piotrowski
  2006-10-10 14:04   ` 2.6.19-rc1-mm1 Michal Piotrowski
  2006-10-10 15:47 ` BUG in filp_close() (was: Re: 2.6.19-rc1-mm1) Dave Kleikamp
                   ` (10 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-10 13:10 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Pavel Machek, Rafael J. Wysocki, linux-kernel, Neil Brown

Hi,

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>

Kernel 2.6.19-rc1-mm1 + Neil's avoid_lockdep_warning_in_md.patch
(http://www.ussg.iu.edu/hypermail/linux/kernel/0610.1/0642.html)

(I'll try to reproduce this without Neil's patch).

echo shutdown > /sys/power/disk; echo disk > /sys/power/state

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.19-rc1-mm1 #4
-------------------------------------------------------
bash/2404 is trying to acquire lock:
 ((cpu_chain).rwsem){..--}, at: [<c012e6a0>]
blocking_notifier_call_chain+0x11/0x2d

but task is already holding lock:
 (workqueue_mutex){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (workqueue_mutex){--..}:
       [<c013a4d0>] add_lock_to_list+0x5c/0x7a
       [<c013c5f5>] __lock_acquire+0x9f3/0xaef
       [<c013ca5b>] lock_acquire+0x71/0x91
       [<c0313baf>] __mutex_lock_slowpath+0xd2/0x2f1
       [<c0313dea>] mutex_lock+0x1c/0x1f
       [<c0131767>] workqueue_cpu_callback+0x109/0x1ff
       [<c012e30f>] notifier_call_chain+0x20/0x31
       [<c012e6ac>] blocking_notifier_call_chain+0x1d/0x2d
       [<c014126b>] _cpu_down+0x48/0x1ff
       [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
       [<c0146bd3>] prepare_processes+0xf/0x73
       [<c0146e78>] pm_suspend_disk+0xa/0x11c
       [<c01460d4>] enter_state+0x5a/0x185
       [<c0146285>] state_store+0x86/0x9c
       [<c01ad6dc>] subsys_attr_store+0x20/0x25
       [<c01ad7df>] sysfs_write_file+0xaa/0xd3
       [<c0177189>] vfs_write+0xcd/0x179
       [<c0177834>] sys_write+0x3b/0x71
       [<c0103241>] sysenter_past_esp+0x56/0x8d
       [<ffffffff>] 0xffffffff

-> #0 ((cpu_chain).rwsem){..--}:
       [<c013bbce>] print_circular_bug_tail+0x30/0x64
       [<c013c52c>] __lock_acquire+0x92a/0xaef
       [<c013ca5b>] lock_acquire+0x71/0x91
       [<c0138202>] down_read+0x28/0x3c
       [<c012e6a0>] blocking_notifier_call_chain+0x11/0x2d
       [<c014138b>] _cpu_down+0x168/0x1ff
       [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
       [<c0146bd3>] prepare_processes+0xf/0x73
       [<c0146e78>] pm_suspend_disk+0xa/0x11c
       [<c01460d4>] enter_state+0x5a/0x185
       [<c0146285>] state_store+0x86/0x9c
       [<c01ad6dc>] subsys_attr_store+0x20/0x25
       [<c01ad7df>] sysfs_write_file+0xaa/0xd3
       [<c0177189>] vfs_write+0xcd/0x179
       [<c0177834>] sys_write+0x3b/0x71
       [<c0103241>] sysenter_past_esp+0x56/0x8d
       [<ffffffff>] 0xffffffff

other info that might help us debug this:

2 locks held by bash/2404:
 #0:  (cpu_add_remove_lock){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f
 #1:  (workqueue_mutex){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f

stack backtrace:
 [<c01042e6>] dump_trace+0x64/0x1cd
 [<c0104461>] show_trace_log_lvl+0x12/0x25
 [<c0104a08>] show_trace+0xd/0x10
 [<c0104a4f>] dump_stack+0x19/0x1b
 [<c013bbf7>] print_circular_bug_tail+0x59/0x64
 [<c013c52c>] __lock_acquire+0x92a/0xaef
 [<c013ca5b>] lock_acquire+0x71/0x91
 [<c0138202>] down_read+0x28/0x3c
 [<c012e6a0>] blocking_notifier_call_chain+0x11/0x2d
 [<c014138b>] _cpu_down+0x168/0x1ff
 [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
 [<c0146bd3>] prepare_processes+0xf/0x73
 [<c0146e78>] pm_suspend_disk+0xa/0x11c
 [<c01460d4>] enter_state+0x5a/0x185
 [<c0146285>] state_store+0x86/0x9c
 [<c01ad6dc>] subsys_attr_store+0x20/0x25
 [<c01ad7df>] sysfs_write_file+0xaa/0xd3
 [<c0177189>] vfs_write+0xcd/0x179
 [<c0177834>] sys_write+0x3b/0x71
 [<c0103241>] sysenter_past_esp+0x56/0x8d
DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x8d
Leftover inexact backtrace:
 =======================

config & dmesg http://www.stardust.webpages.pl/files/tbf/euridica/2.6.19-rc1-mm1/

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-10  8:03     ` 2.6.19-rc1-mm1 Arjan van de Ven
@ 2006-10-10 13:14       ` Peter Zijlstra
  2006-10-10 16:13         ` Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Peter Zijlstra @ 2006-10-10 13:14 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Andrew Morton, linux-kernel, Chen, Kenneth W, linux-mm, Nick Piggin

On Tue, 2006-10-10 at 10:03 +0200, Arjan van de Ven wrote:
> On Tue, 2006-10-10 at 00:45 -0700, Andrew Morton wrote:
> 
> > > if it's ok to ignore RSS,
> > 
> > We'd prefer not to.  But what's the alternative?
> 
> it's a good question; today (2.6.18) we have some defacto behavior of
> RSS; 2.6.19-rc1-mm1 has a somewhat different one. Either can be entirely
> valid; and we can obviously implement either. We can go even further and
> remove more from RSS to help save memory and pagefaults (both help
> desktop performance) by going the shared pagetable road

> > > So.. what does RSS actually mean? Can we ignore it somewhat for
> > > shared-readonly mappings ? 
> > 
> > We'd prefer to go the other way, and implement RLIMIT_RSS wouldn't we?
> 
> Well... that again depends on how we define RSS. implementing the rlimit
> doesn't mean we can't NOT count certain things (like the hugetlb pages
> in the patch above, or shared read only pagecache pages) to be part of
> it. It's a fundamental "what does it mean" thing.
> You can argue that RSS means "all memory that the application has in
> it's address space", you can argue "all such memory except a few cases",
> you can argue "all memory that is private/exclusive to the
> application"... 
> This is not a pointless piss-in-the-wind discussion; unless we define
> rather specific what it really means, the RLIMIT doesn't mean anything
> either.
> 
> We need to consider at least if any of the following are part of rss:
> * VM_IO io mmaped device stuff 
> * Non-linear mappings
> * Shared hugetlb memory that shares pagetables
> * Shared hugetlb memory
> * Hugetlb memory in general
> * Shared normal memory that shares pagetables
> * Shared normal memory (file backed; eg pagecache)
> * Shared normal memory (anonymous/non-file-backed)
> * Sysv/ipc shared memory
> * Not shared normal memory
> 
> I don't think posix or anything else helps us here so we can vote or
> otherwise reason which make sense and which don't. I hope the outcome is
> reasonably consistent ;)
> 
> I know the desktop guys at least consider RSS useless as measure of "how
> much memory does my desktop app take"; especially since they have many
> shared libraries and they consider it unfair that each app pays the full
> price in terms of RSS for those. So personally I'm not unhappy with a
> definition that comes down to "all memory that's private to the app";
> although it is a change from what 2.6.18 does.

So we have three cases where RSS matters besides presenting a number to
user-space;
 - shared page tables
 - containers
 - rlimit

Preferably they will all share a common definition of what RSS is; since
containers must account shared pages somehow (not doing so would open up
a large hole to DoS the other containers) and the container case can be
argued to be an extension of the rlimit case we cannot just ignore them.

As then what to do with them, I've yet to figure out. Some random bit
floating in my brain;
 - VM_IO can be discarted, its not actual memory

 - hugetlb is memory too, so I'd not special case this (other than the
different unit of accounting)

 - shared mapped pages could be accounted on vma level, since both
containers have access to the same file, there is already an imbalance,
so I'd not worry about the 1%-99% usage scenario here.

 - regular, non mapped, pagecache pages however have no owner - what to
do. (fake vma - which would result in each container paying equally for
all these pages?)

Anyway, I'd rather not break RSS twice, once now because we don't quite
know what to do, and later when we do get an acceptable mm container and
have to include shared memory in one way or the other.




^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 13:10 ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-10 14:04   ` Michal Piotrowski
  2006-10-11  5:35     ` 2.6.19-rc1-mm1 Neil Brown
  0 siblings, 1 reply; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-10 14:04 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Pavel Machek, Rafael J. Wysocki, linux-kernel, Neil Brown, Ingo Molnar

On 10/10/06, Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> Hi,
>
> On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> >
>
> Kernel 2.6.19-rc1-mm1 + Neil's avoid_lockdep_warning_in_md.patch
> (http://www.ussg.iu.edu/hypermail/linux/kernel/0610.1/0642.html)
>
> (I'll try to reproduce this without Neil's patch).

I can't reproduce this without Neil's patch.

>
> echo shutdown > /sys/power/disk; echo disk > /sys/power/state
>
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.19-rc1-mm1 #4
> -------------------------------------------------------
> bash/2404 is trying to acquire lock:
>  ((cpu_chain).rwsem){..--}, at: [<c012e6a0>]
> blocking_notifier_call_chain+0x11/0x2d
>
> but task is already holding lock:
>  (workqueue_mutex){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f
>
> which lock already depends on the new lock.
>
> the existing dependency chain (in reverse order) is:
>
> -> #1 (workqueue_mutex){--..}:
>        [<c013a4d0>] add_lock_to_list+0x5c/0x7a
>        [<c013c5f5>] __lock_acquire+0x9f3/0xaef
>        [<c013ca5b>] lock_acquire+0x71/0x91
>        [<c0313baf>] __mutex_lock_slowpath+0xd2/0x2f1
>        [<c0313dea>] mutex_lock+0x1c/0x1f
>        [<c0131767>] workqueue_cpu_callback+0x109/0x1ff
>        [<c012e30f>] notifier_call_chain+0x20/0x31
>        [<c012e6ac>] blocking_notifier_call_chain+0x1d/0x2d
>        [<c014126b>] _cpu_down+0x48/0x1ff
>        [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
>        [<c0146bd3>] prepare_processes+0xf/0x73
>        [<c0146e78>] pm_suspend_disk+0xa/0x11c
>        [<c01460d4>] enter_state+0x5a/0x185
>        [<c0146285>] state_store+0x86/0x9c
>        [<c01ad6dc>] subsys_attr_store+0x20/0x25
>        [<c01ad7df>] sysfs_write_file+0xaa/0xd3
>        [<c0177189>] vfs_write+0xcd/0x179
>        [<c0177834>] sys_write+0x3b/0x71
>        [<c0103241>] sysenter_past_esp+0x56/0x8d
>        [<ffffffff>] 0xffffffff
>
> -> #0 ((cpu_chain).rwsem){..--}:
>        [<c013bbce>] print_circular_bug_tail+0x30/0x64
>        [<c013c52c>] __lock_acquire+0x92a/0xaef
>        [<c013ca5b>] lock_acquire+0x71/0x91
>        [<c0138202>] down_read+0x28/0x3c
>        [<c012e6a0>] blocking_notifier_call_chain+0x11/0x2d
>        [<c014138b>] _cpu_down+0x168/0x1ff
>        [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
>        [<c0146bd3>] prepare_processes+0xf/0x73
>        [<c0146e78>] pm_suspend_disk+0xa/0x11c
>        [<c01460d4>] enter_state+0x5a/0x185
>        [<c0146285>] state_store+0x86/0x9c
>        [<c01ad6dc>] subsys_attr_store+0x20/0x25
>        [<c01ad7df>] sysfs_write_file+0xaa/0xd3
>        [<c0177189>] vfs_write+0xcd/0x179
>        [<c0177834>] sys_write+0x3b/0x71
>        [<c0103241>] sysenter_past_esp+0x56/0x8d
>        [<ffffffff>] 0xffffffff
>
> other info that might help us debug this:
>
> 2 locks held by bash/2404:
>  #0:  (cpu_add_remove_lock){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f
>  #1:  (workqueue_mutex){--..}, at: [<c0313dea>] mutex_lock+0x1c/0x1f
>
> stack backtrace:
>  [<c01042e6>] dump_trace+0x64/0x1cd
>  [<c0104461>] show_trace_log_lvl+0x12/0x25
>  [<c0104a08>] show_trace+0xd/0x10
>  [<c0104a4f>] dump_stack+0x19/0x1b
>  [<c013bbf7>] print_circular_bug_tail+0x59/0x64
>  [<c013c52c>] __lock_acquire+0x92a/0xaef
>  [<c013ca5b>] lock_acquire+0x71/0x91
>  [<c0138202>] down_read+0x28/0x3c
>  [<c012e6a0>] blocking_notifier_call_chain+0x11/0x2d
>  [<c014138b>] _cpu_down+0x168/0x1ff
>  [<c01415fc>] disable_nonboot_cpus+0x9b/0x12f
>  [<c0146bd3>] prepare_processes+0xf/0x73
>  [<c0146e78>] pm_suspend_disk+0xa/0x11c
>  [<c01460d4>] enter_state+0x5a/0x185
>  [<c0146285>] state_store+0x86/0x9c
>  [<c01ad6dc>] subsys_attr_store+0x20/0x25
>  [<c01ad7df>] sysfs_write_file+0xaa/0xd3
>  [<c0177189>] vfs_write+0xcd/0x179
>  [<c0177834>] sys_write+0x3b/0x71
>  [<c0103241>] sysenter_past_esp+0x56/0x8d
> DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x8d
> Leftover inexact backtrace:
>  =======================
>
> config & dmesg http://www.stardust.webpages.pl/files/tbf/euridica/2.6.19-rc1-mm1/

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* BUG in filp_close() (was: Re: 2.6.19-rc1-mm1)
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (3 preceding siblings ...)
  2006-10-10 13:10 ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-10 15:47 ` Dave Kleikamp
  2006-10-10 22:07   ` Dave Kleikamp
  2006-10-10 16:09 ` 2.6.19-rc1-mm1 Michal Piotrowski
                   ` (9 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Dave Kleikamp @ 2006-10-10 15:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Vadim Lobanov

On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/

I'm seeing an exception in filp_close(), called from sys_dup2().  I have
only seen it when I try to start up a java application (Lotus
Workplace).

I suspect that it may be related to the fdtable work, but I haven't
investigated it too closely.

> +fdtable-delete-pointless-code-in-dup_fd.patch
> +fdtable-make-fdarray-and-fdsets-equal-in-size.patch
> +fdtable-remove-the-free_files-field.patch
> +fdtable-implement-new-pagesize-based-fdtable-allocator.patch
> 
>  Redo the fdtable code.

BUG: unable to handle kernel paging request at virtual address 3237304a
 printing eip:
c015636f
*pde = 00000000
Oops: 0000 [#1]
PREEMPT 
last sysfs file: /block/hda/hda5/stat
Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
CPU:    0
EIP:    0060:[<c015636f>]    Not tainted VLI
EFLAGS: 00010206   (2.6.19-rc1-mm1 #1)
EIP is at filp_close+0xc/0x5e
eax: 00000000   ebx: 32373036   ecx: cbc66000   edx: 00000000
esi: 00000001   edi: dff0cc80   ebp: cbc67f8c   esp: cbc67f80
ds: 007b   es: 007b   ss: 0068
Process java (pid: 12945, ti=cbc66000 task=ce9d6b00 task.ti=cbc66000)
Stack: 0000020c 00000001 cef765c0 cbc67fb4 c01623ed 32373036 dff0cc80 dff0cca4 
       32373036 dff0cc80 00000007 00000000 fffffff4 cbc66000 c0102e05 00000007 
       0000020c 00000000 00000000 fffffff4 bf966c14 0000003f 0000007b c03b007b 
Call Trace:
 [<c01623ed>] sys_dup2+0xdb/0x10f
 [<c0102e05>] sysenter_past_esp+0x56/0x79
DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
Leftover inexact backtrace:
 =======================
Code: 26 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 4c 73 03 89 73 4c 89 f8 e8 c0 51 26 00 5b 5e 5f 5d c3 55 89 e5 57 8b 7d 0c 56 53 8b 5d 08 <8b> 43 14 85 c0 75 0f 68 a1 e8 3f c0 31 f6 e8 54 35 fc ff 59 eb 
EIP: [<c015636f>] filp_close+0xc/0x5e SS:ESP 0068:cbc67f80
 <1>BUG: unable to handle kernel paging request at virtual address 02404e7c
 printing eip:
c015636f
*pde = 00000000
Oops: 0000 [#2]
PREEMPT 
last sysfs file: /block/hda/hda5/stat
Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
CPU:    0
EIP:    0060:[<c015636f>]    Not tainted VLI
EFLAGS: 00010202   (2.6.19-rc1-mm1 #1)
EIP is at filp_close+0xc/0x5e
eax: 00000000   ebx: 02404e68   ecx: cc636000   edx: 00000000
esi: 00000001   edi: dfcfecc0   ebp: cc637f8c   esp: cc637f80
ds: 007b   es: 007b   ss: 0068
Process java (pid: 13593, ti=cc636000 task=ce97f550 task.ti=cc636000)
Stack: 0000020c 00000001 cbc56b80 cc637fb4 c01623ed 02404e68 dfcfecc0 dfcfece4 
       02404e68 dfcfecc0 00000007 00000000 fffffff4 cc636000 c0102e05 00000007 
       0000020c 00000000 00000000 fffffff4 bfc5f704 0000003f 0000007b c03b007b 
Call Trace:
 [<c01623ed>] sys_dup2+0xdb/0x10f
 [<c0102e05>] sysenter_past_esp+0x56/0x79
DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
Leftover inexact backtrace:
 =======================
Code: 26 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 4c 73 03 89 73 4c 89 f8 e8 c0 51 26 00 5b 5e 5f 5d c3 55 89 e5 57 8b 7d 0c 56 53 8b 5d 08 <8b> 43 14 85 c0 75 0f 68 a1 e8 3f c0 31 f6 e8 54 35 fc ff 59 eb 
EIP: [<c015636f>] filp_close+0xc/0x5e SS:ESP 0068:cc637f80
 <1>BUG: unable to handle kernel NULL pointer dereference at virtual address 00000127
 printing eip:
c01874ca
*pde = 00000000
Oops: 0000 [#3]
PREEMPT 
last sysfs file: /block/hda/hda5/stat
Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
CPU:    0
EIP:    0060:[<c01874ca>]    Not tainted VLI
EFLAGS: 00210246   (2.6.19-rc1-mm1 #1)
EIP is at dnotify_flush+0xf/0x73
eax: c8892c4b   ebx: b7f96e4a   ecx: cab2c000   edx: b7f96e4a
esi: 000000ff   edi: c148a280   ebp: cab2df70   esp: cab2df64
ds: 007b   es: 007b   ss: 0068
Process java (pid: 13942, ti=cab2c000 task=d572d4d0 task.ti=cab2c000)
Stack: b7f96e4a 00000000 c148a280 cab2df8c c01563a6 b7f96e4a c148a280 0000020c 
       00000001 cef5dec0 cab2dfb4 c01623ed b7f96e4a c148a280 c148a2a4 b7f96e4a 
       c148a280 00000007 00000000 fffffff4 cab2c000 c0102e05 00000007 0000020c 
Call Trace:
 [<c01563a6>] filp_close+0x43/0x5e
 [<c01623ed>] sys_dup2+0xdb/0x10f
 [<c0102e05>] sysenter_past_esp+0x56/0x79
DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
Leftover inexact backtrace:
 =======================
Code: ff ff 53 e8 d3 00 fe ff 83 c4 0c eb 07 89 f0 e8 6b 40 23 00 8d 65 f4 5b 5e 5f 5d c3 55 89 e5 8b 55 08 57 56 53 8b 42 08 8b 70 30 <0f> b7 46 28 25 00 f0 00 00 3d 00 40 00 00 75 4c 8d 7e 70 89 f8 
EIP: [<c01874ca>] dnotify_flush+0xf/0x73 SS:ESP 0068:cab2df64
 

-- 
David Kleikamp
IBM Linux Technology Center


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (4 preceding siblings ...)
  2006-10-10 15:47 ` BUG in filp_close() (was: Re: 2.6.19-rc1-mm1) Dave Kleikamp
@ 2006-10-10 16:09 ` Michal Piotrowski
  2006-10-10 19:04   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10 17:15 ` BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1) Olof Johansson
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-10 16:09 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>

This looks strange
ps aux | grep t3
root      4305 81.6  0.1   5952  2596 pts/7    R+   17:54   2:44
python ./rt-tester.py t3-l1-pi-steal.tst
michal    4351  0.0  0.0   3908   760 pts/5    R+   17:58   0:00 grep t3
[michal@euridica ~]$ ps aux | grep creat
root      3934 87.3  0.0   1652   496 pts/4    R    17:25  28:37 creat05
michal    4353  0.0  0.0   3912   772 pts/5    S+   17:58   0:00 grep creat

python ./rt-tester.py t3-l1-pi-steal.tst and creat05 (from LTP) are
always in running state (creat05 since 28 minutes). I don't have any
idea why this happens.

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 13:14       ` RSS accounting (was: Re: 2.6.19-rc1-mm1) Peter Zijlstra
@ 2006-10-10 16:13         ` Arjan van de Ven
  2006-10-10 23:54           ` Eric W. Biederman
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-10 16:13 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Andrew Morton, linux-kernel, Chen, Kenneth W, linux-mm, Nick Piggin

On Tue, 2006-10-10 at 15:14 +0200, Peter Zijlstra wrote:
> > 
> > We need to consider at least if any of the following are part of rss:
> > * VM_IO io mmaped device stuff 
> > * Non-linear mappings
> > * Shared hugetlb memory that shares pagetables
> > * Shared hugetlb memory
> > * Hugetlb memory in general
> > * Shared normal memory that shares pagetables
> > * Shared normal memory (file backed; eg pagecache)
> > * Shared normal memory (anonymous/non-file-backed)
> > * Sysv/ipc shared memory
> > * Not shared normal memory


> So we have three cases where RSS matters besides presenting a number to
> user-space;
>  - shared page tables
>  - containers
>  - rlimit
> 
> Preferably they will all share a common definition of what RSS is; since
> containers must account shared pages somehow (not doing so would open up
> a large hole to DoS the other containers) and the container case can be
> argued to be an extension of the rlimit case we cannot just ignore them.
> 
> As then what to do with them, I've yet to figure out. Some random bit
> floating in my brain;
>  - VM_IO can be discarted, its not actual memory

agreed (although I think we do count it today; this is half of what
makes X look so bloated, next to firefox ;)

> 
>  - hugetlb is memory too, so I'd not special case this (other than the
> different unit of accounting)

agreed again; personally I don't think hugetlb memory should be special;
especially with all the libhugetlbfs work on making it real easy for
apps to use; the more it's used the more people would notice something
funky with it.


>  - shared mapped pages could be accounted on vma level, since both
> containers have access to the same file, there is already an imbalance,
> so I'd not worry about the 1%-99% usage scenario here.

or one level below; if you count it in the actual PTE page then the
sharing case will "just work". It's a trick question; do you count it as
100% or do you count it as 100% / number of sharers.


>  - regular, non mapped, pagecache pages however have no owner - what to
> do. (fake vma - which would result in each container paying equally for
> all these pages?)

if they're clean I wouldn't count them to anything actually


> Anyway, I'd rather not break RSS twice, once now because we don't quite
> know what to do, and later when we do get an acceptable mm container and
> have to include shared memory in one way or the other.


RSS of a container versus RSS of a process is an interesting question
for sure ;)



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 12:19 ` 2.6.19-rc1-mm1 Theodore Tso
  2006-10-10 12:26   ` 2.6.19-rc1-mm1 Arjan van de Ven
@ 2006-10-10 16:21   ` Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 16:21 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-kernel

On Tue, 10 Oct 2006 08:19:50 -0400
Theodore Tso <tytso@mit.edu> wrote:

> On Tue, Oct 10, 2006 at 12:09:28AM -0700, Andrew Morton wrote:
> > 
> > - Added the ext4 filesystem.  Quick usage instructions:
> > 
> >   - Grab updated e2fsprogs from
> >     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
> > 
> >   - It's still mke2fs -j /dev/hda1
> > 
> >   - mount /dev/hda1 /wherever -t ext4dev
> > 
> >   - To enable extents,
> > 
> > 	mount /dev/hda1 /wherever -t ext4dev -o extents
> 
> Looks like you didn't take the updated patch from Shaggy which
> requires that you use tune2fs -O extents first?

Nope.  That would have made extents inaccessible with the e2fsprogs I was
using and I didn't have time to test e2fsprogs-interim.

>  (This requires the
> e2fsprogs-interim patches.)

OK.

> The plan is that mount -o extents is not going to be the long-term way
> that extents will be enabled.  I can imagine a -o noextents option,
> which might be used with remount to do an on-line rollback from
> extents to non-extents, but normally you shouldn't need to use a mount
> option to enable a feature that are filesystem format-related.  Those
> should be implied by the appropriate flags in the superblock.
> 
> Mount -o nobh is a different story, since that's just a implementation
> detail --- although for ext4, maybe we should just make nobh a
> default, since that way more people will test it and hopefully,
> eventually nobh will be the only way of doing things, right?

nobh might be inefficient with large PAGE_SIZE and small files (or just
small writes).

> >     Making the journal larger than the mke2fs default often helps
> >     performance with metadata-intensive workloads.
> 
> The default was increased significantly in e2fsprogs 1.40; if someone
> who has their favorite metadata-intesive benchmark could test and see
> if we should be using even larger defaults for certain "mke2fs -T 
> <workload-type>" configurations, I'd really appreciate it.
> 
> 					- Ted

^ permalink raw reply	[flat|nested] 88+ messages in thread

* BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1)
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (5 preceding siblings ...)
  2006-10-10 16:09 ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-10 17:15 ` Olof Johansson
  2006-10-10 19:34   ` Andrew Morton
  2006-10-10 20:20   ` Linas Vepstas
  2006-10-10 18:09 ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
                   ` (7 subsequent siblings)
  14 siblings, 2 replies; 88+ messages in thread
From: Olof Johansson @ 2006-10-10 17:15 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Vadim Lobanov, linuxppc-dev

I keep hitting this on -rc1-mm1. The system comes up but I can't login
since login hits it.

Bisect says that fdtable-implement-new-pagesize-based-fdtable-allocator.patch is at fault.

CONFIG_PPC_64K_PAGES=y is required for it to fail, with 4K pages it's fine.

(Hardware is a Quad G5, 1GB RAM, g5_defconfig + CONFIG_PPC_64K_PAGES, defaults 
on all new options)



kernel BUG in copy_fdtable at fs/file.c:138!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=4 
Modules linked in: snd_pcm_oss snd_mixer_oss joydev snd_pcm snd_page_alloc snd_timer snd soundcore
NIP: C0000000000B926C LR: C0000000000B9210 CTR: C0000000000ADA34
REGS: c00000000f80ba60 TRAP: 0700   Not tainted  (2.6.19-rc1-mm1)
MSR: 9000000000029032 <EE,ME,IR,DR>  CR: 22002428  XER: 200FFFFF
TASK = c00000000fe38ba0[2022] 'dhclient-script' THREAD: c00000000f808000 CPU: 2
GPR00: 0000000000000001 C00000000F80BCE0 C0000000006CDCC8 C00000003F8CF880 
GPR04: 00000000000000D0 0000000042002428 0000000000004000 000000000FEC1950 
GPR08: C000000000585480 0000000000000000 C00000003FFD0480 C000000001E04200 
GPR12: 100000000000F032 C000000000585480 0000000010000000 0000000010010000 
GPR16: 0000000010002790 000000001001819D 00000000FCCDF818 0000000000000000 
GPR20: 0000000000000000 00000000FCCDF828 0000000010018790 0000000010018760 
GPR24: 00000000F7FDE6F0 C00000003F8CF800 0000000000000000 C00000003F8CF810 
GPR28: 0000000000000040 0000000000000000 C0000000005B4B00 C00000000FB511C0 
NIP [C0000000000B926C] .expand_files+0x1d4/0x34c
LR [C0000000000B9210] .expand_files+0x178/0x34c
Call Trace:
[C00000000F80BCE0] [C0000000000B91D0] .expand_files+0x138/0x34c (unreliable)
[C00000000F80BD90] [C0000000000ADAD8] .sys_dup2+0xa4/0x1ec
[C00000000F80BE30] [C00000000000871C] syscall_exit+0x0/0x40
Instruction dump:
60000000 4800000c 4bfd3609 60000000 7fe3fb78 4bfdf125 60000000 48000150 
835f0000 7f9ae040 7c101026 5400effe <0b000000> 2fbc0000 419e00a4 7b9d1828 



-Olof

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (6 preceding siblings ...)
  2006-10-10 17:15 ` BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1) Olof Johansson
@ 2006-10-10 18:09 ` Jeremy Fitzhardinge
  2006-10-10 19:25   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10 22:17 ` 2.6.19-rc1-mm1 Badari Pulavarty
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Jeremy Fitzhardinge @ 2006-10-10 18:09 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:
> +generic-implementatation-of-bug.patch
> +generic-implementatation-of-bug-fix.patch
> +generic-bug-for-i386.patch
> +generic-bug-for-x86-64.patch
> +uml-add-generic-bug-support.patch
> +use-generic-bug-for-ppc.patch
> +bug-test-1.patch
>   

No generic-bug for powerpc?  Still broken?

    J

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  9:57     ` 2.6.19-rc1-mm1 Miguel Ojeda
@ 2006-10-10 18:25       ` Jeremy Fitzhardinge
  0 siblings, 0 replies; 88+ messages in thread
From: Jeremy Fitzhardinge @ 2006-10-10 18:25 UTC (permalink / raw)
  To: Miguel Ojeda; +Cc: Andrew Morton, linux-kernel

Miguel Ojeda wrote:
> Allright, I will code it as the fbcfag12864b module, and when it will
> be working fine, I will remove the raw device of the cfag12864b and if
> the code of fbcfag12864b results really small/trivial, I will put it
> in the cfag12864b module. Then I will send you the "update patch 2".
>
> Give me a couple of days or so :)

Just as an aside, would it be possible to give this module a name which 
doesn't look like a changeset ID?  It's only the 'g' which gives it away...

    J

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 16:09 ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-10 19:04   ` Andrew Morton
  2006-10-10 21:44     ` 2.6.19-rc1-mm1 Michal Piotrowski
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 19:04 UTC (permalink / raw)
  To: Michal Piotrowski; +Cc: linux-kernel

On Tue, 10 Oct 2006 18:09:31 +0200
"Michal Piotrowski" <michal.k.k.piotrowski@gmail.com> wrote:

> On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> >
> 
> This looks strange
> ps aux | grep t3
> root      4305 81.6  0.1   5952  2596 pts/7    R+   17:54   2:44
> python ./rt-tester.py t3-l1-pi-steal.tst
> michal    4351  0.0  0.0   3908   760 pts/5    R+   17:58   0:00 grep t3
> [michal@euridica ~]$ ps aux | grep creat
> root      3934 87.3  0.0   1652   496 pts/4    R    17:25  28:37 creat05
> michal    4353  0.0  0.0   3912   772 pts/5    S+   17:58   0:00 grep creat
> 
> python ./rt-tester.py t3-l1-pi-steal.tst and creat05 (from LTP) are
> always in running state (creat05 since 28 minutes). I don't have any
> idea why this happens.
> 

The fdtable patches might have some problems.

http://userweb.kernel.org/~akpm/mp.bz2 is 2.6.19-rc1-mm1 without those
patches.  Does it work better?  

Thanks.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 18:09 ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
@ 2006-10-10 19:25   ` Andrew Morton
  2006-10-10 19:41     ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
  2006-10-10 23:10     ` 2.6.19-rc1-mm1 Paul Mackerras
  0 siblings, 2 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 19:25 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: linux-kernel

On Tue, 10 Oct 2006 11:09:32 -0700
Jeremy Fitzhardinge <jeremy@goop.org> wrote:

> Andrew Morton wrote:
> > +generic-implementatation-of-bug.patch
> > +generic-implementatation-of-bug-fix.patch
> > +generic-bug-for-i386.patch
> > +generic-bug-for-x86-64.patch
> > +uml-add-generic-bug-support.patch
> > +use-generic-bug-for-ppc.patch
> > +bug-test-1.patch
> >   
> 
> No generic-bug for powerpc?  Still broken?
> 

I didn't do anything to fix it.  But I haven't tested it recently - it
might have repaired itself ;)

My plan was to pathetically spam the powerpc guys with it once all the
above is merged up.  I took a close look and couldn't see why it was
failing.


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1)
  2006-10-10 17:15 ` BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1) Olof Johansson
@ 2006-10-10 19:34   ` Andrew Morton
  2006-10-10 20:20   ` Linas Vepstas
  1 sibling, 0 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 19:34 UTC (permalink / raw)
  To: Olof Johansson; +Cc: linux-kernel, Vadim Lobanov, linuxppc-dev

On Tue, 10 Oct 2006 12:15:19 -0500
Olof Johansson <olof@lixom.net> wrote:

> I keep hitting this on -rc1-mm1. The system comes up but I can't login
> since login hits it.
> 
> Bisect says that fdtable-implement-new-pagesize-based-fdtable-allocator.patch is at fault.
> 
> CONFIG_PPC_64K_PAGES=y is required for it to fail, with 4K pages it's fine.
> 
> (Hardware is a Quad G5, 1GB RAM, g5_defconfig + CONFIG_PPC_64K_PAGES, defaults 
> on all new options)
> 
> 
> 
> kernel BUG in copy_fdtable at fs/file.c:138!

OK, thanks.  I put the revert patch into
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/hot-fixes/

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 19:25   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-10 19:41     ` Jeremy Fitzhardinge
  2006-10-10 23:10     ` 2.6.19-rc1-mm1 Paul Mackerras
  1 sibling, 0 replies; 88+ messages in thread
From: Jeremy Fitzhardinge @ 2006-10-10 19:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:
> I didn't do anything to fix it.  But I haven't tested it recently - it
> might have repaired itself ;)
>   

Surely the way to check it just throw it in and see who screams...

> My plan was to pathetically spam the powerpc guys with it once all the
> above is merged up.  I took a close look and couldn't see why it was
> failing.
>   

Oh, I thought it turned out to be some other problem.  Er, something 
about numa memory stuff?

    J

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1)
  2006-10-10 17:15 ` BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1) Olof Johansson
  2006-10-10 19:34   ` Andrew Morton
@ 2006-10-10 20:20   ` Linas Vepstas
  2006-10-10 20:31     ` Vadim Lobanov
  1 sibling, 1 reply; 88+ messages in thread
From: Linas Vepstas @ 2006-10-10 20:20 UTC (permalink / raw)
  To: Olof Johansson; +Cc: Andrew Morton, linuxppc-dev, linux-kernel, Vadim Lobanov

On Tue, Oct 10, 2006 at 12:15:19PM -0500, Olof Johansson wrote:
> I keep hitting this on -rc1-mm1. The system comes up but I can't login
> since login hits it.
> 
> Bisect says that fdtable-implement-new-pagesize-based-fdtable-allocator.patch is at fault.
> 
> CONFIG_PPC_64K_PAGES=y is required for it to fail, with 4K pages it's fine.
> 
> (Hardware is a Quad G5, 1GB RAM, g5_defconfig + CONFIG_PPC_64K_PAGES, defaults 
> on all new options)
> 
> 
> 
> kernel BUG in copy_fdtable at fs/file.c:138!

FWIW, I too was hitting this bug, during init:

[   41.659823] Freeing unused kernel memory: 320k freed
INIT: version 2.86 bootin[   42.509322] kernel BUG in copy_fdtable at fs/file.c:138!

and of course systm does not come up.

--linas



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1)
  2006-10-10 20:20   ` Linas Vepstas
@ 2006-10-10 20:31     ` Vadim Lobanov
  2006-10-10 23:05       ` Linas Vepstas
  0 siblings, 1 reply; 88+ messages in thread
From: Vadim Lobanov @ 2006-10-10 20:31 UTC (permalink / raw)
  To: Linas Vepstas; +Cc: Olof Johansson, Andrew Morton, linuxppc-dev, linux-kernel

On Tuesday 10 October 2006 13:20, Linas Vepstas wrote:
> On Tue, Oct 10, 2006 at 12:15:19PM -0500, Olof Johansson wrote:
> > I keep hitting this on -rc1-mm1. The system comes up but I can't login
> > since login hits it.
> >
> > Bisect says that
> > fdtable-implement-new-pagesize-based-fdtable-allocator.patch is at fault.
> >
> > CONFIG_PPC_64K_PAGES=y is required for it to fail, with 4K pages it's
> > fine.
> >
> > (Hardware is a Quad G5, 1GB RAM, g5_defconfig + CONFIG_PPC_64K_PAGES,
> > defaults on all new options)
> >
> >
> >
> > kernel BUG in copy_fdtable at fs/file.c:138!
>
> FWIW, I too was hitting this bug, during init:
>
> [   41.659823] Freeing unused kernel memory: 320k freed
> INIT: version 2.86 bootin[   42.509322] kernel BUG in copy_fdtable at
> fs/file.c:138!
>
> and of course systm does not come up.
>
> --linas

I'm digging through this right now, trying to figure out exactly what went 
wrong (and why some people are seeing this, while others are not). All the 
code seems correct; another pair of eyes is always welcome though.

-- Vadim Lobanov

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 19:04   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-10 21:44     ` Michal Piotrowski
  2006-10-10 21:52       ` 2.6.19-rc1-mm1 Andrew Morton
  0 siblings, 1 reply; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-10 21:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> On Tue, 10 Oct 2006 18:09:31 +0200
> "Michal Piotrowski" <michal.k.k.piotrowski@gmail.com> wrote:
>
> > On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > >
> >
> > This looks strange
> > ps aux | grep t3
> > root      4305 81.6  0.1   5952  2596 pts/7    R+   17:54   2:44
> > python ./rt-tester.py t3-l1-pi-steal.tst
> > michal    4351  0.0  0.0   3908   760 pts/5    R+   17:58   0:00 grep t3
> > [michal@euridica ~]$ ps aux | grep creat
> > root      3934 87.3  0.0   1652   496 pts/4    R    17:25  28:37 creat05
> > michal    4353  0.0  0.0   3912   772 pts/5    S+   17:58   0:00 grep creat
> >
> > python ./rt-tester.py t3-l1-pi-steal.tst and creat05 (from LTP) are
> > always in running state (creat05 since 28 minutes). I don't have any
> > idea why this happens.
> >
>
> The fdtable patches might have some problems.
>
> http://userweb.kernel.org/~akpm/mp.bz2 is 2.6.19-rc1-mm1 without those
> patches.  Does it work better?

Yes, it does. Thanks.

BTW. Kernel hangs while running Cyclictest
(http://rt.wiki.kernel.org/index.php/Cyclictest)
cyclictest -t 10 -l 100000
(or "bin/autotest tests/cyclictest/control" in autotest). I don't see
nothing special on tty (currently my sysklogd is broken, FC6
problem..)

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 21:44     ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-10 21:52       ` Andrew Morton
  2006-10-20 20:44         ` 2.6.19-rc1-mm1 Thomas Gleixner
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 21:52 UTC (permalink / raw)
  To: Michal Piotrowski; +Cc: linux-kernel, Thomas Gleixner

On Tue, 10 Oct 2006 23:44:04 +0200
"Michal Piotrowski" <michal.k.k.piotrowski@gmail.com> wrote:

> BTW. Kernel hangs while running Cyclictest
> (http://rt.wiki.kernel.org/index.php/Cyclictest)
> cyclictest -t 10 -l 100000
> (or "bin/autotest tests/cyclictest/control" in autotest). I don't see
> nothing special on tty (currently my sysklogd is broken, FC6
> problem..)

cc added.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG in filp_close() (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 15:47 ` BUG in filp_close() (was: Re: 2.6.19-rc1-mm1) Dave Kleikamp
@ 2006-10-10 22:07   ` Dave Kleikamp
  2006-10-10 22:14     ` Vadim Lobanov
  2006-10-10 22:38     ` Vadim Lobanov
  0 siblings, 2 replies; 88+ messages in thread
From: Dave Kleikamp @ 2006-10-10 22:07 UTC (permalink / raw)
  Cc: linux-kernel, Vadim Lobanov

On Tue, 2006-10-10 at 10:47 -0500, Dave Kleikamp wrote:
> On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> 
> I'm seeing an exception in filp_close(), called from sys_dup2().  I have
> only seen it when I try to start up a java application (Lotus
> Workplace).
> 
> I suspect that it may be related to the fdtable work, but I haven't
> investigated it too closely.

Still don't know exactly what's going on here.  In case it helps, this
is the call to dup2() from strace output:

1419  open("/dev/null", O_RDWR)         = 7
1419  getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
1419  dup2(7, 524)                      = 524
1419  dup2(7, 525 <unfinished ...>

> 
> > +fdtable-delete-pointless-code-in-dup_fd.patch
> > +fdtable-make-fdarray-and-fdsets-equal-in-size.patch
> > +fdtable-remove-the-free_files-field.patch
> > +fdtable-implement-new-pagesize-based-fdtable-allocator.patch
> > 
> >  Redo the fdtable code.
> 
> BUG: unable to handle kernel paging request at virtual address 3237304a
>  printing eip:
> c015636f
> *pde = 00000000
> Oops: 0000 [#1]
> PREEMPT 
> last sysfs file: /block/hda/hda5/stat
> Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
> CPU:    0
> EIP:    0060:[<c015636f>]    Not tainted VLI
> EFLAGS: 00010206   (2.6.19-rc1-mm1 #1)
> EIP is at filp_close+0xc/0x5e
> eax: 00000000   ebx: 32373036   ecx: cbc66000   edx: 00000000
> esi: 00000001   edi: dff0cc80   ebp: cbc67f8c   esp: cbc67f80
> ds: 007b   es: 007b   ss: 0068
> Process java (pid: 12945, ti=cbc66000 task=ce9d6b00 task.ti=cbc66000)
> Stack: 0000020c 00000001 cef765c0 cbc67fb4 c01623ed 32373036 dff0cc80 dff0cca4 
>        32373036 dff0cc80 00000007 00000000 fffffff4 cbc66000 c0102e05 00000007 
>        0000020c 00000000 00000000 fffffff4 bf966c14 0000003f 0000007b c03b007b 
> Call Trace:
>  [<c01623ed>] sys_dup2+0xdb/0x10f
>  [<c0102e05>] sysenter_past_esp+0x56/0x79
> DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
> Leftover inexact backtrace:
>  =======================
> Code: 26 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 4c 73 03 89 73 4c 89 f8 e8 c0 51 26 00 5b 5e 5f 5d c3 55 89 e5 57 8b 7d 0c 56 53 8b 5d 08 <8b> 43 14 85 c0 75 0f 68 a1 e8 3f c0 31 f6 e8 54 35 fc ff 59 eb 
> EIP: [<c015636f>] filp_close+0xc/0x5e SS:ESP 0068:cbc67f80
>  <1>BUG: unable to handle kernel paging request at virtual address 02404e7c
>  printing eip:
> c015636f
> *pde = 00000000
> Oops: 0000 [#2]
> PREEMPT 
> last sysfs file: /block/hda/hda5/stat
> Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
> CPU:    0
> EIP:    0060:[<c015636f>]    Not tainted VLI
> EFLAGS: 00010202   (2.6.19-rc1-mm1 #1)
> EIP is at filp_close+0xc/0x5e
> eax: 00000000   ebx: 02404e68   ecx: cc636000   edx: 00000000
> esi: 00000001   edi: dfcfecc0   ebp: cc637f8c   esp: cc637f80
> ds: 007b   es: 007b   ss: 0068
> Process java (pid: 13593, ti=cc636000 task=ce97f550 task.ti=cc636000)
> Stack: 0000020c 00000001 cbc56b80 cc637fb4 c01623ed 02404e68 dfcfecc0 dfcfece4 
>        02404e68 dfcfecc0 00000007 00000000 fffffff4 cc636000 c0102e05 00000007 
>        0000020c 00000000 00000000 fffffff4 bfc5f704 0000003f 0000007b c03b007b 
> Call Trace:
>  [<c01623ed>] sys_dup2+0xdb/0x10f
>  [<c0102e05>] sysenter_past_esp+0x56/0x79
> DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
> Leftover inexact backtrace:
>  =======================
> Code: 26 00 8b 43 04 8b 40 0c 0f b3 30 3b 73 4c 73 03 89 73 4c 89 f8 e8 c0 51 26 00 5b 5e 5f 5d c3 55 89 e5 57 8b 7d 0c 56 53 8b 5d 08 <8b> 43 14 85 c0 75 0f 68 a1 e8 3f c0 31 f6 e8 54 35 fc ff 59 eb 
> EIP: [<c015636f>] filp_close+0xc/0x5e SS:ESP 0068:cc637f80
>  <1>BUG: unable to handle kernel NULL pointer dereference at virtual address 00000127
>  printing eip:
> c01874ca
> *pde = 00000000
> Oops: 0000 [#3]
> PREEMPT 
> last sysfs file: /block/hda/hda5/stat
> Modules linked in: irda crc_ccitt tun airo e1000 pcmcia yenta_socket rsrc_nonstatic pcmcia_core radeon rtc ntfs jfs
> CPU:    0
> EIP:    0060:[<c01874ca>]    Not tainted VLI
> EFLAGS: 00210246   (2.6.19-rc1-mm1 #1)
> EIP is at dnotify_flush+0xf/0x73
> eax: c8892c4b   ebx: b7f96e4a   ecx: cab2c000   edx: b7f96e4a
> esi: 000000ff   edi: c148a280   ebp: cab2df70   esp: cab2df64
> ds: 007b   es: 007b   ss: 0068
> Process java (pid: 13942, ti=cab2c000 task=d572d4d0 task.ti=cab2c000)
> Stack: b7f96e4a 00000000 c148a280 cab2df8c c01563a6 b7f96e4a c148a280 0000020c 
>        00000001 cef5dec0 cab2dfb4 c01623ed b7f96e4a c148a280 c148a2a4 b7f96e4a 
>        c148a280 00000007 00000000 fffffff4 cab2c000 c0102e05 00000007 0000020c 
> Call Trace:
>  [<c01563a6>] filp_close+0x43/0x5e
>  [<c01623ed>] sys_dup2+0xdb/0x10f
>  [<c0102e05>] sysenter_past_esp+0x56/0x79
> DWARF2 unwinder stuck at sysenter_past_esp+0x56/0x79
> Leftover inexact backtrace:
>  =======================
> Code: ff ff 53 e8 d3 00 fe ff 83 c4 0c eb 07 89 f0 e8 6b 40 23 00 8d 65 f4 5b 5e 5f 5d c3 55 89 e5 8b 55 08 57 56 53 8b 42 08 8b 70 30 <0f> b7 46 28 25 00 f0 00 00 3d 00 40 00 00 75 4c 8d 7e 70 89 f8 
> EIP: [<c01874ca>] dnotify_flush+0xf/0x73 SS:ESP 0068:cab2df64
>  
> 
-- 
David Kleikamp
IBM Linux Technology Center


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG in filp_close() (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 22:07   ` Dave Kleikamp
@ 2006-10-10 22:14     ` Vadim Lobanov
  2006-10-10 22:38     ` Vadim Lobanov
  1 sibling, 0 replies; 88+ messages in thread
From: Vadim Lobanov @ 2006-10-10 22:14 UTC (permalink / raw)
  To: Dave Kleikamp; +Cc: linux-kernel

On Tuesday 10 October 2006 15:07, Dave Kleikamp wrote:
> Still don't know exactly what's going on here.  In case it helps, this
> is the call to dup2() from strace output:
>
> 1419  open("/dev/null", O_RDWR)         = 7
> 1419  getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
> 1419  dup2(7, 524)                      = 524
> 1419  dup2(7, 525 <unfinished ...>

Thanks for the data point.

Hmmm... looks as if the likely sequence of events was:
create embedded fdtable
extend fdtable, allocate external data to handle fd = 524
try to extend fdtable again, crash.

Seems as if alloc_fdtable() or copy_fdtable() are to blame, but the code logic 
seems to be identical. Hmmmm.

-- Vadim Lobanov


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (7 preceding siblings ...)
  2006-10-10 18:09 ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
@ 2006-10-10 22:17 ` Badari Pulavarty
  2006-10-11  6:56   ` 2.6.19-rc1-mm1 Arjan van de Ven
  2006-10-11  3:13 ` 2.6.19-rc1-mm1 Badari Pulavarty
                   ` (5 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-10 22:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml

On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote: 
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/


I hate to report always failures, I hope you don't hate me
for that :)

My EM64T box doesn't boot -mm1. Seems like IRQ problem ?

Thanks,
Badari

Linux version 2.6.19-rc1-mm1-smp (root@elm3a241) (gcc version 4.1.1 20060612 (Red Hat 4.1.1-3)) #2 SMP Tue Oct 10 10:37:46 PDT 2006
Command line: ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,38400 rhgb verbose
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009dc00 (usable)
 BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000d7fcca80 (usable)
 BIOS-e820: 00000000d7fcca80 - 00000000d7fd0000 (ACPI data)
 BIOS-e820: 00000000d7fd0000 - 00000000d8000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000128000000 (usable)
end_pfn_map = 1212416
DMI 2.3 present.
  >>> ERROR: Invalid checksum
No NUMA configuration found
Faking a node at 0000000000000000-0000000128000000
Bootmem setup node 0 0000000000000000-0000000128000000
Zone PFN ranges:
  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  Normal    1048576 ->  1212416
early_node_map[3] active PFN ranges
    0:        0 ->      157
    0:      256 ->   884684
    0:  1048576 ->  1212416
Intel MultiProcessor Specification v1.4
MPTABLE: OEM ID: IBM ENSW MPTABLE: Product ID: x346 SMP     MPTABLE: APIC at: 0xFEE00000
Processor #0 (Bootup-CPU)
Processor #6
I/O APIC #14 at 0xFEC00000.
I/O APIC #13 at 0xFEC84000.
I/O APIC #12 at 0xFEC84400.
I/O APIC #11 at 0xFEC80000.
I/O APIC #10 at 0xFEC80400.
Setting APIC routing to physical flat
Processors: 2
Nosave address range: 000000000009d000 - 000000000009e000
Nosave address range: 000000000009e000 - 00000000000a0000
Nosave address range: 00000000000a0000 - 00000000000e0000
Nosave address range: 00000000000e0000 - 0000000000100000
Nosave address range: 00000000d7fcc000 - 00000000d7fcd000
Nosave address range: 00000000d7fcd000 - 00000000d7fd0000
Nosave address range: 00000000d7fd0000 - 00000000d8000000
Nosave address range: 00000000d8000000 - 00000000fec00000
Nosave address range: 00000000fec00000 - 0000000100000000
Allocating PCI resources starting at dc000000 (gap: d8000000:26c00000)
SMP: Allowing 2 CPUs, 0 hotplug CPUs
PERCPU: Allocating 50432 bytes of per cpu data
Built 1 zonelists.  Total pages: 1019681
Kernel command line: ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,38400 rhgb verbose
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 32768 bytes)
Console: colour VGA+ 80x25
Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBCLASSES:    8
... MAX_LOCK_DEPTH:          30
... MAX_LOCKDEP_KEYS:        2048
... CLASSHASH_SIZE:           1024
... MAX_LOCKDEP_ENTRIES:     8192
... MAX_LOCKDEP_CHAINS:      8192
... CHAINHASH_SIZE:          4096
 memory used by lock dependency info: 1328 kB
 per task-struct memory footprint: 1680 bytes
Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
Checking aperture...
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing software IO TLB between 0x1675000 - 0x5675000
Memory: 4004408k/4849664k available (2714k kernel code, 189292k reserved, 2094k data, 328k init)
Calibrating delay using timer specific routine.. 6014.59 BogoMIPS (lpj=12029192)
Security Framework v1.0.0 initialized
Mount-cache hash table entries: 256
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 2048K
CPU 0/0 -> Node 0
using mwait in idle threads.
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
CPU0: Thermal monitoring enabled (TM1)
lockdep: not fixing up alternatives.
Using local APIC timer interrupts.
result 12500678
Detected 12.500 MHz APIC timer.
lockdep: not fixing up alternatives.
Booting processor 1/2 APIC 0x6
Initializing CPU#1
Calibrating delay using timer specific routine.. 6000.53 BogoMIPS (lpj=12001079)
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 2048K
CPU 1/6 -> Node 0
CPU: Physical Processor ID: 3
CPU: Processor Core ID: 0
CPU1: Thermal monitoring enabled (TM1)
                  Intel(R) Xeon(TM) CPU 3.00GHz stepping 03
Brought up 2 CPUs
testing NMI watchdog ... OK.
time.c: Using 1.193182 MHz WALL PIT GTOD PIT/TSC timer.
time.c: Detected 3000.178 MHz processor.
migration_cost=1820
checking if image is initramfs... it is
Freeing initrd memory: 1743k freed
NET: Registered protocol family 16
PCI: Using configuration type 1
ACPI: Interpreter disabled.
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI quirk: region 0580-05ff claimed by ICH4 ACPI/GPIO/TCO
PCI quirk: region 0400-043f claimed by ICH4 GPIO
PCI: PXH quirk detected, disabling MSI for SHPC device
PCI: PXH quirk detected, disabling MSI for SHPC device
PCI: Transparent bridge - 0000:00:1e.0
PCI->APIC IRQ transform: 0000:00:1d.0[A] -> IRQ 16
PCI->APIC IRQ transform: 0000:00:1d.1[B] -> IRQ 19
PCI->APIC IRQ transform: 0000:00:1d.7[D] -> IRQ 23
PCI->APIC IRQ transform: 0000:00:1f.1[A] -> IRQ 17
PCI->APIC IRQ transform: 0000:00:1f.3[B] -> IRQ 17
PCI->APIC IRQ transform: 0000:05:00.0[A] -> IRQ 16
PCI->APIC IRQ transform: 0000:06:00.0[A] -> IRQ 16
PCI->APIC IRQ transform: 0000:08:07.0[A] -> IRQ 27
PCI->APIC IRQ transform: 0000:08:07.1[B] -> IRQ 24
PCI->APIC IRQ transform: 0000:01:06.0[A] -> IRQ 20
PCI-GART: No AMD northbridge found.
PCI: Bridge: 0000:02:00.0
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:02:00.2
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:02.0
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:04.0
  IO window: disabled.
  MEM window: dd000000-deffffff
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:05.0
  IO window: disabled.
  MEM window: db000000-dcffffff
  PREFETCH window: disabled.
PCI: Bridge: 0000:07:00.0
  IO window: 4000-4fff
  MEM window: d9000000-daffffff
  PREFETCH window: df000000-df0fffff
PCI: Bridge: 0000:07:00.2
  IO window: 5000-ffff
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:06.0
  IO window: 4000-ffff
  MEM window: d9000000-daffffff
  PREFETCH window: df000000-df0fffff
PCI: Bridge: 0000:00:1e.0
  IO window: 3000-3fff
  MEM window: f8000000-f8ffffff
  PREFETCH window: f0000000-f7ffffff
PCI: No IRQ known for interrupt pin A of device 0000:00:02.0. Probably buggy MP table.
PCI: No IRQ known for interrupt pin A of device 0000:00:04.0. Probably buggy MP table.
PCI: No IRQ known for interrupt pin A of device 0000:00:05.0. Probably buggy MP table.
PCI: No IRQ known for interrupt pin A of device 0000:00:06.0. Probably buggy MP table.
NET: Registered protocol family 2
IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
TCP established hash table entries: 65536 (order: 9, 3670016 bytes)
TCP bind hash table entries: 32768 (order: 8, 1835008 bytes)
TCP: Hash tables configured (established 65536 bind 32768)
TCP reno registered
audit: initializing netlink socket (disabled)
audit(1160515309.208:1): initialized
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pcie_portdrv_probe->Dev[3595:8086] has invalid IRQ. Check vendor BIOS
pcie_portdrv_probe->Dev[3597:8086] has invalid IRQ. Check vendor BIOS
pcie_portdrv_probe->Dev[3598:8086] has invalid IRQ. Check vendor BIOS
pcie_portdrv_probe->Dev[3599:8086] has invalid IRQ. Check vendor BIOS
Real Time Clock Driver v1.12ac
Non-volatile memory driver v1.2
Linux agpgart interface v0.101 (c) Dave Jones
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 128000K size 1024 blocksize
tg3.c:v3.66 (September 23, 2006)
eth0: Tigon3 [partno(BCM95721) rev 4101 PHY(5750)] (PCI Express) 10/100/1000BaseT Ethernet 00:11:25:8f:60:06
eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[1]
eth0: dma_rwctrl[76180000] dma_mask[64-bit]
eth1: Tigon3 [partno(BCM95721) rev 4101 PHY(5750)] (PCI Express) 10/100/1000BaseT Ethernet 00:11:25:8f:60:07
eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[1] TSOcap[1]
eth1: dma_rwctrl[76180000] dma_mask[64-bit]
scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0
        <Adaptec AIC7902 Ultra320 SCSI adapter>
        aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 101-133Mhz, 512 SCBs
scsi1 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0
        <Adaptec AIC7902 Ultra320 SCSI adapter>
        aic7902: Ultra320 Wide Channel B, SCSI Id=7, PCI-X 101-133Mhz, 512 SCBs
scsi 1:0:0:0: Direct-Access     IBM-ESXS MAP3367NC     FN C101 PQ: 0 ANSI: 3
 target1:0:0: asynchronous
scsi1:A:0:0: Tagged Queuing enabled.  Depth 32
 target1:0:0: Beginning Domain Validation
 target1:0:0: wide asynchronous
 target1:0:0: FAST-160 WIDE SCSI 320.0 MB/s DT IU RTI PCOMP (6.25 ns, offset 127)
 target1:0:0: Ending Domain Validation
scsi 1:0:2:0: Direct-Access     IBM-ESXS MAP3367NC     FN C101 PQ: 0 ANSI: 3
 target1:0:2: asynchronous
scsi1:A:2:0: Tagged Queuing enabled.  Depth 32
 target1:0:2: Beginning Domain Validation
 target1:0:2: wide asynchronous
 target1:0:2: FAST-160 WIDE SCSI 320.0 MB/s DT IU RTI PCOMP (6.25 ns, offset 127)
 target1:0:2: Ending Domain Validation
scsi 1:0:8:0: Processor         IBM      25R5170a S320  0 1    PQ: 0 ANSI: 2
 target1:0:8: asynchronous
 target1:0:8: Beginning Domain Validation
 target1:0:8: Ending Domain Validation
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write through
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write through
 sda: sda1 sda2
sd 1:0:0:0: Attached scsi disk sda
SCSI device sdb: 71096640 512-byte hdwr sectors (36401 MB)
sdb: Write Protect is off
SCSI device sdb: drive cache: write through
SCSI device sdb: 71096640 512-byte hdwr sectors (36401 MB)
sdb: Write Protect is off
SCSI device sdb: drive cache: write through
 sdb: sdb1 sdb2
sd 1:0:2:0: Attached scsi disk sdb
sd 1:0:0:0: Attached scsi generic sg0 type 0
sd 1:0:2:0: Attached scsi generic sg1 type 0
scsi 1:0:8:0: Attached scsi generic sg2 type 3
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: PC Speaker as /class/input/input0
NET: Registered protocol family 1
Freeing unused kernel memory: 328k freed
Write protecting the kernel read-only data: 565k
input: AT Translated Set 2 keyboard as /class/input/input1
Red Hat nash version 5.0.41 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
input: PS/2 Generic Mouse as /class/input/input2
Creating block device nodes.
Loading ide-core.ko module
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Loading ide-disk.ko module
Loading dm-mod.ko module
device-mapper: ioctl: 4.10.0-ioctl (2006-09-14) initialised: dm-devel@redhat.com
Loading dm-mirror.ko module
Loading dm-zero.ko module
Loading dm-snapshot.ko module
Making device-mapper control node
Scanning logical volumes
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2
Activating logical volumes
  2 logical volume(s) in volume group "VolGroup00" now active
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /proc/bus/usb
ERROR unmounting old /proc/bus/usb: No such file or directory
forcing unmount of /proc/bus/usb
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
                Welcome to Red Hat Enterprise Linux
                Press 'I' to enter interactive startup.
warning: process `date' used the removed sysctl system call
Setting clock  (utc): Tue Oct 10 14:22:36 PDT 2006 [  OK  ]
Starting udev: udevd[539]: add_to_rules: unknown key 'MODALIAS'
udevd[539]: add_to_rules: unknown key 'MODALIAS'
udevd[539]: add_to_rules: unknown key 'MODALIAS'
[  OK  ]
Setting hostname elm3a241:  [  OK  ]
Setting up Logical Volume Management:   2 logical volume(s) in volume group "VolGroup00" now active
[  OK  ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00: clean, 454331/8339520 files, 6170765/8339456 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/sda1
/boot: clean, 67/26104 files, 101516/104388 blocks
[  OK  ]
Remounting root filesystem in read-write mode:  [  OK  ]
Mounting local filesystems:  [  OK  ]
Enabling local filesystem quotas:  [  OK  ]
Enabling local swap partitions:  swapon: /dev/dm-1: Device or resource busy
                                                                           [FAILED]
Enabling /etc/fstab swaps:  [  OK  ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Starting readahead_early:  Starting background readahead: [  OK  ]
[  OK  ]
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.19-rc1-mm1-smp/kernel/arch/x86_64/kernel/cpufreq/acpi-cpufreq.ko): No such device
Applying ip6tables firewall rules: [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  [  OK  ]
Starting system logger: [  OK  ]
Starting kernel logger: [  OK  ]
Starting irqbalance: [  OK  ]
Starting portmap: [  OK  ]
Starting NFS statd: [  OK  ]
Starting RPC idmapd: [  OK  ]
Starting system message bus: [  OK  ]
[  OK  ] Bluetooth services:[  OK  ]
Mounting other filesystems:  [  OK  ]
Starting hidd: [  OK  ]
Loading autofs4: [  OK  ]
Starting automount: [  OK  ]
Starting smartd: [  OK  ]
Starting hpiod: [  OK  ]
Starting hpssd: [  OK  ]
Starting cups: [  OK  ]
Starting sshd: [  OK  ]
Starting sendmail: [  OK  ]
Starting sm-client: [  OK  ]
Starting console mouse services: [  OK  ]
Starting crond: [  OK  ]
Starting xfs: [  OK  ]
Starting anacron: [  OK  ]
Starting atd: [  OK  ]
Starting yum-updatesd: [  OK  ]
Starting Avahi daemon: do_IRQ: 0.57 No irq handler for vector



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG in filp_close() (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 22:07   ` Dave Kleikamp
  2006-10-10 22:14     ` Vadim Lobanov
@ 2006-10-10 22:38     ` Vadim Lobanov
  1 sibling, 0 replies; 88+ messages in thread
From: Vadim Lobanov @ 2006-10-10 22:38 UTC (permalink / raw)
  To: Dave Kleikamp; +Cc: linux-kernel, Olof Johansson, Andrew Morton

On Tuesday 10 October 2006 15:07, Dave Kleikamp wrote:
> On Tue, 2006-10-10 at 10:47 -0500, Dave Kleikamp wrote:
> > On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc
> > >1/2.6.19-rc1-mm1/
> >
> > I'm seeing an exception in filp_close(), called from sys_dup2().  I have
> > only seen it when I try to start up a java application (Lotus
> > Workplace).
> >
> > I suspect that it may be related to the fdtable work, but I haven't
> > investigated it too closely.
>
> Still don't know exactly what's going on here.  In case it helps, this
> is the call to dup2() from strace output:
>
> 1419  open("/dev/null", O_RDWR)         = 7
> 1419  getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
> 1419  dup2(7, 524)                      = 524
> 1419  dup2(7, 525 <unfinished ...>
>
> > > +fdtable-delete-pointless-code-in-dup_fd.patch
> > > +fdtable-make-fdarray-and-fdsets-equal-in-size.patch
> > > +fdtable-remove-the-free_files-field.patch
> > > +fdtable-implement-new-pagesize-based-fdtable-allocator.patch
> > >
> > >  Redo the fdtable code.

D'oh!!! Everybody who hit this bug can feel free to call me a moron now! (And 
Andrew will probably take me up on that offer, for all the residual flak he 
caught. :)) The problem is in the following logic:
+        nr++;
+        nr /= (PAGE_SIZE / 4 / sizeof(struct file *));
+        nr = roundup_pow_of_two(nr);
+        nr *= (PAGE_SIZE / 4 / sizeof(struct file *));
+        if (nr > NR_OPEN)
+                nr = NR_OPEN;
The problem is that roundup_pow_of_two() will not necessarily bring the array 
up to the necessary size, and we get an array overflow. This is clearly 
visible in the example above: dup2(..., 524) with a PAGE_SIZE of 4K. (Thanks 
for sending that in, Dave.) Let me think about the best way to fix this 
computation, and I'll send out a patch for you folks to test to see if it 
fixes your problem, if you'll oblige.

-- Vadim Lobanov, idiot of the day

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1)
  2006-10-10 20:31     ` Vadim Lobanov
@ 2006-10-10 23:05       ` Linas Vepstas
  0 siblings, 0 replies; 88+ messages in thread
From: Linas Vepstas @ 2006-10-10 23:05 UTC (permalink / raw)
  To: Vadim Lobanov, Andrew Morton
  Cc: Olof Johansson, Andrew Morton, linuxppc-dev, linux-kernel

On Tue, Oct 10, 2006 at 01:31:11PM -0700, Vadim Lobanov wrote:
> On Tuesday 10 October 2006 13:20, Linas Vepstas wrote:
> > On Tue, Oct 10, 2006 at 12:15:19PM -0500, Olof Johansson wrote:
> > > I keep hitting this on -rc1-mm1. The system comes up but I can't login
> > > since login hits it.
> > >
> > > Bisect says that
> > > fdtable-implement-new-pagesize-based-fdtable-allocator.patch is at fault.
> > >
> > > CONFIG_PPC_64K_PAGES=y is required for it to fail, with 4K pages it's
> > > fine.
> > >
> > > (Hardware is a Quad G5, 1GB RAM, g5_defconfig + CONFIG_PPC_64K_PAGES,
> > > defaults on all new options)
> > >
> > > kernel BUG in copy_fdtable at fs/file.c:138!
> >
> > FWIW, I too was hitting this bug, during init:
> >
> > [   41.659823] Freeing unused kernel memory: 320k freed
> > INIT: version 2.86 bootin[   42.509322] kernel BUG in copy_fdtable at
> > fs/file.c:138!
> >
> > and of course systm does not come up.

I forgot to mention my h/w was completely different (a cell)

> I'm digging through this right now, trying to figure out exactly what went 
> wrong (and why some people are seeing this, while others are not). All the 
> code seems correct; another pair of eyes is always welcome though.

The patch that AKPM just posted at

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/hot-fixes/revert-fdtable-implement-new-pagesize-based-fdtable-allocator.patch

boots for me.

Thanks Andrew!

--linas

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 19:25   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-10 19:41     ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
@ 2006-10-10 23:10     ` Paul Mackerras
  2006-10-10 23:16       ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
  2006-10-10 23:37       ` 2.6.19-rc1-mm1 Andrew Morton
  1 sibling, 2 replies; 88+ messages in thread
From: Paul Mackerras @ 2006-10-10 23:10 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Jeremy Fitzhardinge, linux-kernel

Andrew Morton writes:

> My plan was to pathetically spam the powerpc guys with it once all the
> above is merged up.  I took a close look and couldn't see why it was
> failing.

What was the failure?

Paul.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 23:10     ` 2.6.19-rc1-mm1 Paul Mackerras
@ 2006-10-10 23:16       ` Jeremy Fitzhardinge
  2006-10-10 23:37       ` 2.6.19-rc1-mm1 Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Jeremy Fitzhardinge @ 2006-10-10 23:16 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Andrew Morton, linux-kernel, Michael Ellerman

Paul Mackerras wrote:
> Andrew Morton writes:
>
>   
>> My plan was to pathetically spam the powerpc guys with it once all the
>> above is merged up.  I took a close look and couldn't see why it was
>> failing.
>>     
>
> What was the failure?
>   

I've included it below.  But Michael Ellerman said it worked OK for him 
when applied to the plain Linus tree, and Andrew said that 
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18/2.6.18-mm3/hot-fixes/slab-reduce-numa-text-size-tidy-fix.patch 
fixed it.  So I thought it was OK.

    J

> On Wed, 04 Oct 2006 00:22:33 -0600
> akpm@osdl.org wrote:
>
>> > Subject: generic-implementatation-of-bug-fix
>
> x86_64 works OK.  powerpc compiles now, but hangs after "returning from
> prom_init".  I can't see why.  The quickest way to fix this is to merge it
> into mainline as-is then whistle innocently.
>
> Can any of the powerpc guys spot-the-bug??
>
> Thanks.
>
>
> From: Jeremy Fitzhardinge <jeremy@goop.org>
>
> This makes powerpc use the generic BUG machinery.  The biggest reports the
> function name, since it is redundant with kallsyms, and not needed in general.
>
> There is an overall reduction of code, since module_32/64 duplicated several
> functions.
>
> Unfortunately there's no way to tell gcc that BUG won't return, so the BUG
> macro includes a goto loop.  This will generate a real jmp instruction, which
> is never used.
>
> BTW, powerpc doesn't seem to be using BUG_OPCODE or BUG_ILLEGAL_INSTRUCTION
> for actual BUGs any more (I presume they were once used).  There are still a
> couple of uses of those macros elsewhere (kernel/prom_init.c and
> kernel/head_64.S); should be converted to "twi 31,0,0" as well?
>
> [akpm@osdl.org: build fixes]
> Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
> Cc: Andi Kleen <ak@muc.de>
> Cc: Hugh Dickens <hugh@veritas.com>
> Cc: Michael Ellerman <michael@ellerman.id.au>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> ---
>
>  arch/powerpc/Kconfig              |    5 +
>  arch/powerpc/kernel/module_32.c   |   43 +-------------
>  arch/powerpc/kernel/module_64.c   |   43 +-------------
>  arch/powerpc/kernel/traps.c       |   54 ++----------------
>  arch/powerpc/kernel/vmlinux.lds.S |    6 --
>  arch/powerpc/xmon/xmon.c          |   10 +--
>  include/asm-powerpc/bug.h         |   83 ++++++++++++++--------------
>  include/asm-powerpc/module.h      |    2 
>  8 files changed, 65 insertions(+), 181 deletions(-)
>
> diff -puN arch/powerpc/Kconfig~generic-bug-for-powerpc arch/powerpc/Kconfig
> --- a/arch/powerpc/Kconfig~generic-bug-for-powerpc
> +++ a/arch/powerpc/Kconfig
> @@ -99,6 +99,11 @@ config AUDIT_ARCH
>  	bool
>  	default y
>  
> +config GENERIC_BUG
> +	bool
> +	default y
> +	depends on BUG
> +
>  config DEFAULT_UIMAGE
>  	bool
>  	help
> diff -puN arch/powerpc/kernel/module_32.c~generic-bug-for-powerpc arch/powerpc/kernel/module_32.c
> --- a/arch/powerpc/kernel/module_32.c~generic-bug-for-powerpc
> +++ a/arch/powerpc/kernel/module_32.c
> @@ -23,6 +23,7 @@
>  #include <linux/string.h>
>  #include <linux/kernel.h>
>  #include <linux/cache.h>
> +#include <linux/bug.h>
>  
>  #if 0
>  #define DEBUGP printk
> @@ -273,48 +274,10 @@ int module_finalize(const Elf_Ehdr *hdr,
>  		    const Elf_Shdr *sechdrs,
>  		    struct module *me)
>  {
> -	char *secstrings;
> -	unsigned int i;
> -
> -	me->arch.bug_table = NULL;
> -	me->arch.num_bugs = 0;
> -
> -	/* Find the __bug_table section, if present */
> -	secstrings = (char *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
> -	for (i = 1; i < hdr->e_shnum; i++) {
> -		if (strcmp(secstrings+sechdrs[i].sh_name, "__bug_table"))
> -			continue;
> -		me->arch.bug_table = (void *) sechdrs[i].sh_addr;
> -		me->arch.num_bugs = sechdrs[i].sh_size / sizeof(struct bug_entry);
> -		break;
> -	}
> -
> -	/*
> -	 * Strictly speaking this should have a spinlock to protect against
> -	 * traversals, but since we only traverse on BUG()s, a spinlock
> -	 * could potentially lead to deadlock and thus be counter-productive.
> -	 */
> -	list_add(&me->arch.bug_list, &module_bug_list);
> -
> -	return 0;
> +	return module_bug_finalize(hdr, sechdrs, me);
>  }
>  
>  void module_arch_cleanup(struct module *mod)
>  {
> -	list_del(&mod->arch.bug_list);
> -}
> -
> -struct bug_entry *module_find_bug(unsigned long bugaddr)
> -{
> -	struct mod_arch_specific *mod;
> -	unsigned int i;
> -	struct bug_entry *bug;
> -
> -	list_for_each_entry(mod, &module_bug_list, bug_list) {
> -		bug = mod->bug_table;
> -		for (i = 0; i < mod->num_bugs; ++i, ++bug)
> -			if (bugaddr == bug->bug_addr)
> -				return bug;
> -	}
> -	return NULL;
> +	module_bug_cleanup(mod);
>  }
> diff -puN arch/powerpc/kernel/module_64.c~generic-bug-for-powerpc arch/powerpc/kernel/module_64.c
> --- a/arch/powerpc/kernel/module_64.c~generic-bug-for-powerpc
> +++ a/arch/powerpc/kernel/module_64.c
> @@ -20,6 +20,7 @@
>  #include <linux/moduleloader.h>
>  #include <linux/err.h>
>  #include <linux/vmalloc.h>
> +#include <linux/bug.h>
>  #include <asm/module.h>
>  #include <asm/uaccess.h>
>  
> @@ -416,48 +417,10 @@ LIST_HEAD(module_bug_list);
>  int module_finalize(const Elf_Ehdr *hdr,
>  		const Elf_Shdr *sechdrs, struct module *me)
>  {
> -	char *secstrings;
> -	unsigned int i;
> -
> -	me->arch.bug_table = NULL;
> -	me->arch.num_bugs = 0;
> -
> -	/* Find the __bug_table section, if present */
> -	secstrings = (char *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
> -	for (i = 1; i < hdr->e_shnum; i++) {
> -		if (strcmp(secstrings+sechdrs[i].sh_name, "__bug_table"))
> -			continue;
> -		me->arch.bug_table = (void *) sechdrs[i].sh_addr;
> -		me->arch.num_bugs = sechdrs[i].sh_size / sizeof(struct bug_entry);
> -		break;
> -	}
> -
> -	/*
> -	 * Strictly speaking this should have a spinlock to protect against
> -	 * traversals, but since we only traverse on BUG()s, a spinlock
> -	 * could potentially lead to deadlock and thus be counter-productive.
> -	 */
> -	list_add(&me->arch.bug_list, &module_bug_list);
> -
> -	return 0;
> +	return module_bug_finalize(hdr, sechdrs, me);
>  }
>  
>  void module_arch_cleanup(struct module *mod)
>  {
> -	list_del(&mod->arch.bug_list);
> -}
> -
> -struct bug_entry *module_find_bug(unsigned long bugaddr)
> -{
> -	struct mod_arch_specific *mod;
> -	unsigned int i;
> -	struct bug_entry *bug;
> -
> -	list_for_each_entry(mod, &module_bug_list, bug_list) {
> -		bug = mod->bug_table;
> -		for (i = 0; i < mod->num_bugs; ++i, ++bug)
> -			if (bugaddr == bug->bug_addr)
> -				return bug;
> -	}
> -	return NULL;
> +	module_bug_cleanup(mod);
>  }
> diff -puN arch/powerpc/kernel/traps.c~generic-bug-for-powerpc arch/powerpc/kernel/traps.c
> --- a/arch/powerpc/kernel/traps.c~generic-bug-for-powerpc
> +++ a/arch/powerpc/kernel/traps.c
> @@ -32,6 +32,7 @@
>  #include <linux/kprobes.h>
>  #include <linux/kexec.h>
>  #include <linux/backlight.h>
> +#include <linux/bug.h>
>  
>  #include <asm/kdebug.h>
>  #include <asm/pgtable.h>
> @@ -731,54 +732,9 @@ static int emulate_instruction(struct pt
>  	return -EINVAL;
>  }
>  
> -/*
> - * Look through the list of trap instructions that are used for BUG(),
> - * BUG_ON() and WARN_ON() and see if we hit one.  At this point we know
> - * that the exception was caused by a trap instruction of some kind.
> - * Returns 1 if we should continue (i.e. it was a WARN_ON) or 0
> - * otherwise.
> - */
> -extern struct bug_entry __start___bug_table[], __stop___bug_table[];
> -
> -#ifndef CONFIG_MODULES
> -#define module_find_bug(x)	NULL
> -#endif
> -
> -struct bug_entry *find_bug(unsigned long bugaddr)
> +int is_valid_bugaddr(unsigned long addr)
>  {
> -	struct bug_entry *bug;
> -
> -	for (bug = __start___bug_table; bug < __stop___bug_table; ++bug)
> -		if (bugaddr == bug->bug_addr)
> -			return bug;
> -	return module_find_bug(bugaddr);
> -}
> -
> -static int check_bug_trap(struct pt_regs *regs)
> -{
> -	struct bug_entry *bug;
> -	unsigned long addr;
> -
> -	if (regs->msr & MSR_PR)
> -		return 0;	/* not in kernel */
> -	addr = regs->nip;	/* address of trap instruction */
> -	if (addr < PAGE_OFFSET)
> -		return 0;
> -	bug = find_bug(regs->nip);
> -	if (bug == NULL)
> -		return 0;
> -	if (bug->line & BUG_WARNING_TRAP) {
> -		/* this is a WARN_ON rather than BUG/BUG_ON */
> -		printk(KERN_ERR "Badness in %s at %s:%ld\n",
> -		       bug->function, bug->file,
> -		       bug->line & ~BUG_WARNING_TRAP);
> -		dump_stack();
> -		return 1;
> -	}
> -	printk(KERN_CRIT "kernel BUG in %s at %s:%ld!\n",
> -	       bug->function, bug->file, bug->line);
> -
> -	return 0;
> +	return is_kernel_addr(addr);
>  }
>  
>  void __kprobes program_check_exception(struct pt_regs *regs)
> @@ -812,7 +768,9 @@ void __kprobes program_check_exception(s
>  			return;
>  		if (debugger_bpt(regs))
>  			return;
> -		if (check_bug_trap(regs)) {
> +
> +		if (!(regs->msr & MSR_PR) &&  /* not user-mode */
> +		    report_bug(regs->nip) == BUG_TRAP_TYPE_WARN) {
>  			regs->nip += 4;
>  			return;
>  		}
> diff -puN arch/powerpc/kernel/vmlinux.lds.S~generic-bug-for-powerpc arch/powerpc/kernel/vmlinux.lds.S
> --- a/arch/powerpc/kernel/vmlinux.lds.S~generic-bug-for-powerpc
> +++ a/arch/powerpc/kernel/vmlinux.lds.S
> @@ -62,11 +62,7 @@ SECTIONS
>  		__stop___ex_table = .;
>  	}
>  
> -	__bug_table : {
> -		__start___bug_table = .;
> -		*(__bug_table)
> -		__stop___bug_table = .;
> -	}
> +	BUG_TABLE
>  
>  /*
>   * Init sections discarded at runtime
> diff -puN arch/powerpc/xmon/xmon.c~generic-bug-for-powerpc arch/powerpc/xmon/xmon.c
> --- a/arch/powerpc/xmon/xmon.c~generic-bug-for-powerpc
> +++ a/arch/powerpc/xmon/xmon.c
> @@ -19,6 +19,7 @@
>  #include <linux/module.h>
>  #include <linux/sysrq.h>
>  #include <linux/interrupt.h>
> +#include <linux/bug.h>
>  
>  #include <asm/ptrace.h>
>  #include <asm/string.h>
> @@ -32,7 +33,6 @@
>  #include <asm/cputable.h>
>  #include <asm/rtas.h>
>  #include <asm/sstep.h>
> -#include <asm/bug.h>
>  
>  #ifdef CONFIG_PPC64
>  #include <asm/hvcall.h>
> @@ -1329,7 +1329,7 @@ static void backtrace(struct pt_regs *ex
>  
>  static void print_bug_trap(struct pt_regs *regs)
>  {
> -	struct bug_entry *bug;
> +	const struct bug_entry *bug;
>  	unsigned long addr;
>  
>  	if (regs->msr & MSR_PR)
> @@ -1340,11 +1340,11 @@ static void print_bug_trap(struct pt_reg
>  	bug = find_bug(regs->nip);
>  	if (bug == NULL)
>  		return;
> -	if (bug->line & BUG_WARNING_TRAP)
> +	if (is_warning_bug(bug))
>  		return;
>  
> -	printf("kernel BUG in %s at %s:%d!\n",
> -	       bug->function, bug->file, (unsigned int)bug->line);
> +	printf("kernel BUG at %s:%u!\n",
> +	       bug->file, bug->line);
>  }
>  
>  void excprint(struct pt_regs *fp)
> diff -puN include/asm-powerpc/bug.h~generic-bug-for-powerpc include/asm-powerpc/bug.h
> --- a/include/asm-powerpc/bug.h~generic-bug-for-powerpc
> +++ a/include/asm-powerpc/bug.h
> @@ -13,37 +13,40 @@
>  
>  #ifndef __ASSEMBLY__
>  
> -struct bug_entry {
> -	unsigned long	bug_addr;
> -	long		line;
> -	const char	*file;
> -	const char	*function;
> -};
> -
> -struct bug_entry *find_bug(unsigned long bugaddr);
> -
> -/*
> - * If this bit is set in the line number it means that the trap
> - * is for WARN_ON rather than BUG or BUG_ON.
> - */
> -#define BUG_WARNING_TRAP	0x1000000
> -
>  #ifdef CONFIG_BUG
>  
> +/* _EMIT_BUG_ENTRY expects args %0,%1,%2,%3 to be FILE, LINE, flags and
> +   sizeof(struct bug_entry), respectively */
> +#ifdef CONFIG_DEBUG_BUGVERBOSE
> +#define _EMIT_BUG_ENTRY				\
> +	".section __bug_table,\"a\"\n"		\
> +	"2:\t" PPC_LONG "1b, %0\n"		\
> +	"\t.short %1, %2\n"			\
> +	".org 2b+%3\n"				\
> +	".previous\n"
> +#else
> +#define _EMIT_BUG_ENTRY				\
> +	".section __bug_table,\"a\"\n"		\
> +	"2:\t" PPC_LONG "1b\n"			\
> +	"\t.short %2\n"				\
> +	".org 2b+%3\n"				\
> +	".previous\n"
> +#endif
> +
>  /*
>   * BUG_ON() and WARN_ON() do their best to cooperate with compile-time
>   * optimisations. However depending on the complexity of the condition
>   * some compiler versions may not produce optimal results.
>   */
>  
> -#define BUG() do {							 \
> -	__asm__ __volatile__(						 \
> -		"1:	twi 31,0,0\n"					 \
> -		".section __bug_table,\"a\"\n"				 \
> -		"\t"PPC_LONG"	1b,%0,%1,%2\n"				 \
> -		".previous"						 \
> -		: : "i" (__LINE__), "i" (__FILE__), "i" (__FUNCTION__)); \
> -} while (0)
> +#define BUG() do {							\
> +		__asm__ __volatile__(					\
> +			"1:	twi 31,0,0\n"				\
> +			_EMIT_BUG_ENTRY					\
> +			: : "i" (__FILE__), "i" (__LINE__),		\
> +			    "i" (0), "i"  (sizeof(struct bug_entry)));	\
> +		for(;;) ;						\
> +	} while (0)
>  
>  #define BUG_ON(x) do {						\
>  	if (__builtin_constant_p(x)) {				\
> @@ -51,23 +54,22 @@ struct bug_entry *find_bug(unsigned long
>  			BUG();					\
>  	} else {						\
>  		__asm__ __volatile__(				\
> -		"1:	"PPC_TLNEI"	%0,0\n"			\
> -		".section __bug_table,\"a\"\n"			\
> -		"\t"PPC_LONG"	1b,%1,%2,%3\n"			\
> -		".previous"					\
> -		: : "r" ((long)(x)), "i" (__LINE__),		\
> -		    "i" (__FILE__), "i" (__FUNCTION__));	\
> +		"1:	"PPC_TLNEI"	%4,0\n"			\
> +		_EMIT_BUG_ENTRY					\
> +		: : "i" (__FILE__), "i" (__LINE__), "i" (0),	\
> +		  "i" (sizeof(struct bug_entry)),		\
> +		  "r" ((long)(x)));				\
> +		for(;;) ;					\
>  	}							\
>  } while (0)
>  
>  #define __WARN() do {						\
>  	__asm__ __volatile__(					\
>  		"1:	twi 31,0,0\n"				\
> -		".section __bug_table,\"a\"\n"			\
> -		"\t"PPC_LONG"	1b,%0,%1,%2\n"			\
> -		".previous"					\
> -		: : "i" (__LINE__ + BUG_WARNING_TRAP),		\
> -		    "i" (__FILE__), "i" (__FUNCTION__));	\
> +		_EMIT_BUG_ENTRY					\
> +		: : "i" (__FILE__), "i" (__LINE__),		\
> +		  "i" (BUGFLAG_WARNING),			\
> +		  "i" (sizeof(struct bug_entry)));		\
>  } while (0)
>  
>  #define WARN_ON(x) ({						\
> @@ -77,13 +79,12 @@ struct bug_entry *find_bug(unsigned long
>  			__WARN();				\
>  	} else {						\
>  		__asm__ __volatile__(				\
> -		"1:	"PPC_TLNEI"	%0,0\n"			\
> -		".section __bug_table,\"a\"\n"			\
> -		"\t"PPC_LONG"	1b,%1,%2,%3\n"			\
> -		".previous"					\
> -		: : "r" (__ret_warn_on),			\
> -		    "i" (__LINE__ + BUG_WARNING_TRAP),		\
> -		    "i" (__FILE__), "i" (__FUNCTION__));	\
> +		"1:	"PPC_TLNEI"	%4,0\n"			\
> +		_EMIT_BUG_ENTRY					\
> +		: : "i" (__FILE__), "i" (__LINE__),		\
> +		  "i" (BUGFLAG_WARNING),			\
> +		  "i" (sizeof(struct bug_entry)),		\
> +		  "r" (__ret_warn_on));				\
>  	}							\
>  	unlikely(__ret_warn_on);				\
>  })
> diff -puN include/asm-powerpc/module.h~generic-bug-for-powerpc include/asm-powerpc/module.h
> --- a/include/asm-powerpc/module.h~generic-bug-for-powerpc
> +++ a/include/asm-powerpc/module.h
> @@ -46,8 +46,6 @@ struct mod_arch_specific {
>  	unsigned int num_bugs;
>  };
>  
> -extern struct bug_entry *module_find_bug(unsigned long bugaddr);
> -
>  /*
>   * Select ELF headers.
>   * Make empty section for module_frob_arch_sections to expand.
> _
>


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 23:10     ` 2.6.19-rc1-mm1 Paul Mackerras
  2006-10-10 23:16       ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
@ 2006-10-10 23:37       ` Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-10 23:37 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Jeremy Fitzhardinge, linux-kernel

On Wed, 11 Oct 2006 09:10:23 +1000
Paul Mackerras <paulus@samba.org> wrote:

> Andrew Morton writes:
> 
> > My plan was to pathetically spam the powerpc guys with it once all the
> > above is merged up.  I took a close look and couldn't see why it was
> > failing.
> 
> What was the failure?
> 

White-screen hang after "returning from prom_init".

I'll merge Jeremy's latest patches and retest this evening.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 16:13         ` Arjan van de Ven
@ 2006-10-10 23:54           ` Eric W. Biederman
  2006-10-11  8:47             ` Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Eric W. Biederman @ 2006-10-10 23:54 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Peter Zijlstra, Andrew Morton, linux-kernel, Chen, Kenneth W,
	linux-mm, Nick Piggin

Arjan van de Ven <arjan@infradead.org> writes:

> On Tue, 2006-10-10 at 15:14 +0200, Peter Zijlstra wrote:
>> > 
>> > We need to consider at least if any of the following are part of rss:
>> > * VM_IO io mmaped device stuff 
>> > * Non-linear mappings
>> > * Shared hugetlb memory that shares pagetables
>> > * Shared hugetlb memory
>> > * Hugetlb memory in general
>> > * Shared normal memory that shares pagetables
>> > * Shared normal memory (file backed; eg pagecache)
>> > * Shared normal memory (anonymous/non-file-backed)
>> > * Sysv/ipc shared memory
>> > * Not shared normal memory

There is a concept related to RSS that is very interesting.  The
minimum RSS that a process needs to keep from thrashing.

It can be shown that if your RSS rlimit is greater that your minimum
RSS your process will never thrash. 

One thing that older paging algorithms would try and do when there
was memory pressure was to dynamically discover an applications
minimum RSS, and if they couldn't meet it swap that process out,
because the program can't make progress anyway.

A per process not a per application RSS fails to model multiple
process applications but the concepts are sound.

So since VM_IO does not have any effect on paging it should not
be counted but if you were a stickler the page tables from the
VM_IO should be counted.

The other thing to note is even if you RSS is just above your minimum
RSS that will only result in your process having pages bounce in and
out of the page cache (not necessarily to disk).   So while it will
increase minor faults a restrictive RSS is not a problem when
you have excess resources.

>>  - shared mapped pages could be accounted on vma level, since both
>> containers have access to the same file, there is already an imbalance,
>> so I'd not worry about the 1%-99% usage scenario here.
>
> or one level below; if you count it in the actual PTE page then the
> sharing case will "just work". It's a trick question; do you count it as
> 100% or do you count it as 100% / number of sharers.

I'm not certain I even want to follow the logic here. The answer is
clear.

For processes shared pages are not special.

For computing a container RSS shared pages need to be counted the
first time they are mapped by any process in a container, and
uncounted the last time they are unmapped by a process in a container.
With rmap we have the data structures necessary to do the accounting,
although it might be a bit of a pain.


>>  - regular, non mapped, pagecache pages however have no owner - what to
>> do. (fake vma - which would result in each container paying equally for
>> all these pages?)
>
> if they're clean I wouldn't count them to anything actually

If the pages aren't mapped they aren't part of the resident set size.

At least not until we start worrying about per container or per
process splits of the page cache, and there are clearly good reasons
to avoid that.

>> Anyway, I'd rather not break RSS twice, once now because we don't quite
>> know what to do, and later when we do get an acceptable mm container and
>> have to include shared memory in one way or the other.
>
>
> RSS of a container versus RSS of a process is an interesting question
> for sure ;)

Agreed.  Historically it was much more interesting because we didn't
have rmap so telling if your set of processes had mapped the page
already is a challenge.  At this point unless the performance of
the accounting is to much it should just be a simple counting problem.

The real challenge is doing a decent job of picking the appropriate
page to unmap when a new mapping by a process would exceed the rss
limit.  That is the one piece of the puzzle we have never implemented
:(

You can declare success when you can push one container into heavy
swapping and the rest of the containers are still running fine.

Eric

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (8 preceding siblings ...)
  2006-10-10 22:17 ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-11  3:13 ` Badari Pulavarty
  2006-10-11  4:01   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-11 12:51   ` 2.6.19-rc1-mm1 Theodore Tso
  2006-10-11 19:54 ` 2.6.19-rc1-mm1 Martin J. Bligh
                   ` (4 subsequent siblings)
  14 siblings, 2 replies; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-11  3:13 UTC (permalink / raw)
  To: Andrew Morton, Theodore Tso; +Cc: linux-kernel

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>
>
> - Added the ext4 filesystem.  Quick usage instructions:
>
>   - Grab updated e2fsprogs from
>     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
>   

Hi Ted,

e2fsprogs-1.39-tyt1-rollup.patch doesn't compile. (seems to be missing 
percent.c). Can
you role up new version ? I had to apply individual patches to get it 
working ..

Thanks,
Badari



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11  3:13 ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-11  4:01   ` Andrew Morton
       [not found]     ` <1160578934.1447.1.camel@dyn9047017100.beaverton.ibm.com>
  2006-10-11 12:51   ` 2.6.19-rc1-mm1 Theodore Tso
  1 sibling, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-11  4:01 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: Theodore Tso, linux-kernel

On Tue, 10 Oct 2006 20:13:49 -0700
Badari Pulavarty <pbadari@us.ibm.com> wrote:

> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> >
> >
> > - Added the ext4 filesystem.  Quick usage instructions:
> >
> >   - Grab updated e2fsprogs from
> >     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
> >   
> 
> Hi Ted,
> 
> e2fsprogs-1.39-tyt1-rollup.patch doesn't compile. (seems to be missing 
> percent.c). Can
> you role up new version ? I had to apply individual patches to get it 
> working ..
> 

http://userweb.kernel.org/~akpm/e2fsprogs-akpm.tar.gz is the version I
used.  That's e2fsprogs-1.39 plus patches from
http://www.bullopensource.org/ext4/20060926/

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 14:04   ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-11  5:35     ` Neil Brown
  2006-10-11 10:48       ` 2.6.19-rc1-mm1 Michal Piotrowski
  0 siblings, 1 reply; 88+ messages in thread
From: Neil Brown @ 2006-10-11  5:35 UTC (permalink / raw)
  To: Michal Piotrowski
  Cc: Andrew Morton, Pavel Machek, Rafael J. Wysocki, linux-kernel,
	Ingo Molnar

On Tuesday October 10, michal.k.k.piotrowski@gmail.com wrote:
> On 10/10/06, Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> > Hi,
> >
> > On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > >
> >
> > Kernel 2.6.19-rc1-mm1 + Neil's avoid_lockdep_warning_in_md.patch
> > (http://www.ussg.iu.edu/hypermail/linux/kernel/0610.1/0642.html)
> >
> > (I'll try to reproduce this without Neil's patch).
> 
> I can't reproduce this without Neil's patch.
> 

Despite this circumstantial evidence, I don't see how my patch could
possible have an effect here....

Looking at the code, starting at _cpu_down in the CONFIG_HOTPLUG_CPU
case, the call notifier chain 'cpu_chain' contains
workqueue_cpu_callback which does 'mutex_lock(&workqueue_mutex)' in
the "DOWN_PREPARE" case and mutex_unlock(&workqueue_mutex) in the
DOWN_FAILED and DEAD cases.

blocking_notifier_call_chain is
	down_read(&nh->rwsem);
	ret = notifier_call_chain(&nh->head, val, v);
	up_read(&nh->rwsem);

and so holds ->rwsem while calling the callback.
So the locking sequence ends up as:

 down_read(&cpu_chain.rwsem);
 mutex_lock(&workqueue_mutex);
 up_read(&cpu_chain.rwsem);

 down_read(&cpu_chain.rwsem);
 mutex_unlock(&workqueue_mutex);
 up_read(&workqueue_mutex);

and lockdep doesn't seem to like this.  It sees workqueue_mutex
claimed while cpu_chain.rwsem is held. and then it sees
cpu_chain.rwsem claimed while workqueue_mutex is held, which looks a
bit like a class ABBA deadlock.
Of course because it is a 'down_read' rather than a 'down', it isn't
really a dead lock.

I don't know how to tell lockdep to do the right thing, but I'll leave
that up to Ingo et al.

Why it didn't trigger without my patch I cannot imagine.  Are you sure
the config was identical (you didn't remove CONFIG_HOTPLUG_CPU or
anything did you?).

NeilBrown


> >
> > echo shutdown > /sys/power/disk; echo disk > /sys/power/state
> >
> > =======================================================
> > [ INFO: possible circular locking dependency detected ]
> > 2.6.19-rc1-mm1 #4
> > -------------------------------------------------------

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 22:17 ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-11  6:56   ` Arjan van de Ven
  0 siblings, 0 replies; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-11  6:56 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: akpm, linux-kernel

On Tue, 2006-10-10 at 15:17 -0700, Badari Pulavarty wrote:
> On Tue, 2006-10-10 at 00:09 -0700, Andrew Morton wrote: 
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> 
> 
> I hate to report always failures, I hope you don't hate me
> for that :)
> 
> My EM64T box doesn't boot -mm1. Seems like IRQ problem ?
> Starting Avahi daemon: do_IRQ: 0.57 No irq handler for vector


I'm seeing something simliar (different number though) a few minutes
after boot with yesterdays git snapshot... something is sick in irq
land...

-- 
if you want to mail me at work (you don't), use arjan (at) linux.intel.com


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-10 23:54           ` Eric W. Biederman
@ 2006-10-11  8:47             ` Arjan van de Ven
  2006-10-11 12:07               ` Eric W. Biederman
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-11  8:47 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Peter Zijlstra, Andrew Morton, linux-kernel, Chen, Kenneth W,
	linux-mm, Nick Piggin

On Tue, 2006-10-10 at 17:54 -0600, Eric W. Biederman wrote:

> For processes shared pages are not special.

depends on what question you want to answer with RSS.
If the question is "workload working set size" then you are right. If
the question is "how much ram does my application cause to be used" the
answer is FAR less clear....

You seem to have an implicit definition on what RSS should mean; but
it's implicit. Mind making an explicit definition of what RSS should be
in your opinion? I think that's the biggest problem we have right now;
several people have different ideas about what it should/could be, and
as such we're not talking about the same thing. Lets first agree/specify
what it SHOULD mean, and then we can figure out what gets counted for
that ;)



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11  5:35     ` 2.6.19-rc1-mm1 Neil Brown
@ 2006-10-11 10:48       ` Michal Piotrowski
  2006-10-11 11:23         ` 2.6.19-rc1-mm1 Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-11 10:48 UTC (permalink / raw)
  To: Neil Brown
  Cc: Andrew Morton, Pavel Machek, Rafael J. Wysocki, linux-kernel,
	Ingo Molnar

On 11/10/06, Neil Brown <neilb@suse.de> wrote:
> On Tuesday October 10, michal.k.k.piotrowski@gmail.com wrote:
> > On 10/10/06, Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> > > Hi,
> > >
> > > On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > > >
> > >
> > > Kernel 2.6.19-rc1-mm1 + Neil's avoid_lockdep_warning_in_md.patch
> > > (http://www.ussg.iu.edu/hypermail/linux/kernel/0610.1/0642.html)
> > >
> > > (I'll try to reproduce this without Neil's patch).
> >
> > I can't reproduce this without Neil's patch.
> >
>
> Despite this circumstantial evidence, I don't see how my patch could
> possible have an effect here....
>
> Looking at the code, starting at _cpu_down in the CONFIG_HOTPLUG_CPU
> case, the call notifier chain 'cpu_chain' contains
> workqueue_cpu_callback which does 'mutex_lock(&workqueue_mutex)' in
> the "DOWN_PREPARE" case and mutex_unlock(&workqueue_mutex) in the
> DOWN_FAILED and DEAD cases.
>
> blocking_notifier_call_chain is
>         down_read(&nh->rwsem);
>         ret = notifier_call_chain(&nh->head, val, v);
>         up_read(&nh->rwsem);
>
> and so holds ->rwsem while calling the callback.
> So the locking sequence ends up as:
>
>  down_read(&cpu_chain.rwsem);
>  mutex_lock(&workqueue_mutex);
>  up_read(&cpu_chain.rwsem);
>
>  down_read(&cpu_chain.rwsem);
>  mutex_unlock(&workqueue_mutex);
>  up_read(&workqueue_mutex);
>
> and lockdep doesn't seem to like this.  It sees workqueue_mutex
> claimed while cpu_chain.rwsem is held. and then it sees
> cpu_chain.rwsem claimed while workqueue_mutex is held, which looks a
> bit like a class ABBA deadlock.
> Of course because it is a 'down_read' rather than a 'down', it isn't
> really a dead lock.
>
> I don't know how to tell lockdep to do the right thing, but I'll leave
> that up to Ingo et al.
>
> Why it didn't trigger without my patch I cannot imagine.  Are you sure
> the config was identical (you didn't remove CONFIG_HOTPLUG_CPU or
> anything did you?).

No, I didn't remove CONFIG_HOTPLUG_CPU or anything else.

I didn't do enough testing - only a few hibernatins.

>
> NeilBrown
>

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 10:48       ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-11 11:23         ` Arjan van de Ven
  2006-10-11 13:08           ` _cpu_down deadlock [was Re: 2.6.19-rc1-mm1] Neil Brown
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-11 11:23 UTC (permalink / raw)
  To: Michal Piotrowski
  Cc: Neil Brown, Andrew Morton, Pavel Machek, Rafael J. Wysocki,
	linux-kernel, Ingo Molnar


> > blocking_notifier_call_chain is
> >         down_read(&nh->rwsem);
> >         ret = notifier_call_chain(&nh->head, val, v);
> >         up_read(&nh->rwsem);
> >
> > and so holds ->rwsem while calling the callback.
> > So the locking sequence ends up as:
> >
> >  down_read(&cpu_chain.rwsem);
> >  mutex_lock(&workqueue_mutex);
> >  up_read(&cpu_chain.rwsem);
> >
> >  down_read(&cpu_chain.rwsem);
> >  mutex_unlock(&workqueue_mutex);
> >  up_read(&workqueue_mutex);
> >
> > and lockdep doesn't seem to like this.  It sees workqueue_mutex
> > claimed while cpu_chain.rwsem is held. and then it sees
> > cpu_chain.rwsem claimed while workqueue_mutex is held, which looks a
> > bit like a class ABBA deadlock.
> > Of course because it is a 'down_read' rather than a 'down', it isn't
> > really a dead lock.

ok can you explain to me why "down_read" doesn't make this a deadlock
while "down" would make it a deadlock? I have trouble following your
reasoning.....

(remember that rwsems are strictly fair)



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-11  8:47             ` Arjan van de Ven
@ 2006-10-11 12:07               ` Eric W. Biederman
  2006-10-11 13:55                 ` Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Eric W. Biederman @ 2006-10-11 12:07 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Peter Zijlstra, Andrew Morton, linux-kernel, Chen, Kenneth W,
	linux-mm, Nick Piggin

Arjan van de Ven <arjan@infradead.org> writes:

> On Tue, 2006-10-10 at 17:54 -0600, Eric W. Biederman wrote:
>
>> For processes shared pages are not special.

Actually the above is not quite true you can map a shared page twice
into the same process but in practice it rarely happens.

> depends on what question you want to answer with RSS.
> If the question is "workload working set size" then you are right. If
> the question is "how much ram does my application cause to be used" the
> answer is FAR less clear....

There are two basic concerns.  How do you keep an application from
going crazy and trashing the rest of your system?  A question on what
number do you need to implement a resource limit.

The other question is how do I get good information so I can
effectively understand what kind of resources a given
application is using and hopefully predict what kind of
resources that application will use in the future.

The last time I tried to answer the question "how much ram does my
application cause to be used"  I had to slowly start up additional
copies and watch how much free memory decreased.

Having a couple of additional counts in addition to RSS would probably
be the most help in understanding resource usage.  Counting the number
of private dirty resident pages would be interesting.  As would
counting the number of pages that are resident in the process but not
resident in any other process.

It might also help to have a per page report on which file it backs
and how many user it has.  Unfortunately that is totally overwhelming
detail and the act of reporting it would quite likely change the
result as it would take so much memory to store the result.

> You seem to have an implicit definition on what RSS should mean; but
> it's implicit. Mind making an explicit definition of what RSS should be
> in your opinion? I think that's the biggest problem we have right now;
> several people have different ideas about what it should/could be, and
> as such we're not talking about the same thing. Lets first agree/specify
> what it SHOULD mean, and then we can figure out what gets counted for
> that ;)

Well I tried to defined it in terms of what you can use it for.

I would define the resident set size as the total number of bytes
of physical RAM that a process (or set of processes) is using,
irrespective of the rest of the system.  

By physical RAM I mean that if a single page (if shared) is used twice
by a single process it will be counted only once.  This definition
works well for shared and private pages.  

COW pages are probably the most subtle.  They are both shared and not
shared.   Since that sharing is application visible and at application
discretion I would count COW pages as shared until they that sharing
is broken, and then I would count them as private pages.  

The principle is that you don't find the ``owner'' of a page and
charge the page to the ``owner''.  Instead you find the users
of a page and charge all of them for the page exactly once.

By and large most of that usage comes from pages in the page tables
so they are the most interesting items to count.

Things like file descriptors, inodes, page tables and other kernel
memory are interesting but are generally overshadowed by the page
table users, and generally kernel data structures don't have reverse
maps which makes it difficult to charge all of the users.

So I think the counting should be primarily about what is mapped into
the page tables.  But other things can be added as is appropriate or
easy.

The practical effect should be that an application that needs more
pages than it's specified RSS to avoid thrashing should thrash but
it shouldn't take the rest of the system with it.


The biggest instance of system memory that an application does not
seem to have true control over is the page cache.  Some kind of limit
that prevents one application from destroying everything another
application doing seems interesting.  But I expect the solution there
are I/O limits and not memory limits.

Eric

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11  3:13 ` 2.6.19-rc1-mm1 Badari Pulavarty
  2006-10-11  4:01   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-11 12:51   ` Theodore Tso
  1 sibling, 0 replies; 88+ messages in thread
From: Theodore Tso @ 2006-10-11 12:51 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: Andrew Morton, linux-kernel

On Tue, Oct 10, 2006 at 08:13:49PM -0700, Badari Pulavarty wrote:
> Hi Ted,
> 
> e2fsprogs-1.39-tyt1-rollup.patch doesn't compile. (seems to be missing 
> percent.c). Can
> you role up new version ? I had to apply individual patches to get it 
> working ..

OK, fixed.  I've also created a slightly new structure in:

ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim

Each new version will be its own directory, i.e., e2fsprogs-1.39-tyt1,
with a symlink LATEST pointing at the most recent directory.

Within each directory, there will be a tarball of the complete
sources, as requested by akpm, as well a broken-out tar.gz file and a
single file that has all of the patches rolled up.  I've regenerated
the rollup patches this time with feeling (and the -N diff option :-),
so once the new structure gets mirrored out from master.kernel.org to
ftp.kernel.org, you should be able to get the fixed rollup patch, as
well as a pre-patched tarball.

Regards,

						- Ted

^ permalink raw reply	[flat|nested] 88+ messages in thread

* _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-11 11:23         ` 2.6.19-rc1-mm1 Arjan van de Ven
@ 2006-10-11 13:08           ` Neil Brown
  2006-10-11 13:32             ` Rusty Russell
  2006-10-11 16:39             ` Andrew Morton
  0 siblings, 2 replies; 88+ messages in thread
From: Neil Brown @ 2006-10-11 13:08 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Michal Piotrowski, Andrew Morton, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Wednesday October 11, arjan@infradead.org wrote:
> 
> > > blocking_notifier_call_chain is
> > >         down_read(&nh->rwsem);
> > >         ret = notifier_call_chain(&nh->head, val, v);
> > >         up_read(&nh->rwsem);
> > >
> > > and so holds ->rwsem while calling the callback.
> > > So the locking sequence ends up as:
> > >
> > >  down_read(&cpu_chain.rwsem);
> > >  mutex_lock(&workqueue_mutex);
> > >  up_read(&cpu_chain.rwsem);
> > >
> > >  down_read(&cpu_chain.rwsem);
> > >  mutex_unlock(&workqueue_mutex);
> > >  up_read(&workqueue_mutex);
> > >
> > > and lockdep doesn't seem to like this.  It sees workqueue_mutex
> > > claimed while cpu_chain.rwsem is held. and then it sees
> > > cpu_chain.rwsem claimed while workqueue_mutex is held, which looks a
> > > bit like a class ABBA deadlock.
> > > Of course because it is a 'down_read' rather than a 'down', it isn't
> > > really a dead lock.
> 
> ok can you explain to me why "down_read" doesn't make this a deadlock
> while "down" would make it a deadlock? I have trouble following your
> reasoning.....
> 
> (remember that rwsems are strictly fair)

I see your point.

While thread A holds just workqueue_mutex,
thread B takes cpu_chain.rwsem for read then tries to take
workqueue_mutex and blocks.
Now thread C tries to get a write lock on cpu_chain.rwsem and blocks
as well.
Finally thread A moves on to try to get a read lock on cpu_chain.rwsem
and this blocks because thread C is waiting for a write lock.

So A waits on B and C, C waits on B, B waits on A.
Deadlock.

I guess _cpu_down should
	down_read(&cpu_chain.rwsem);
and then call notifier_call_chain multiple times.  I wonder if that
would be safe.

Who do we blame this on?  Are you still the cpu-hot-plug guy Rusty?

NeilBrown

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-11 13:08           ` _cpu_down deadlock [was Re: 2.6.19-rc1-mm1] Neil Brown
@ 2006-10-11 13:32             ` Rusty Russell
  2006-10-11 16:39             ` Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Rusty Russell @ 2006-10-11 13:32 UTC (permalink / raw)
  To: Neil Brown
  Cc: Arjan van de Ven, Michal Piotrowski, Andrew Morton, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar

On Wed, 2006-10-11 at 23:08 +1000, Neil Brown wrote:
> Who do we blame this on?  Are you still the cpu-hot-plug guy Rusty?

Well, I wasn't the one who introduced locking into notifier chains,
which is the cause from my reading of your explanation...

Rusty.
-- 
Help! Save Australia from the worst of the DMCA: http://linux.org.au/law


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-11 12:07               ` Eric W. Biederman
@ 2006-10-11 13:55                 ` Arjan van de Ven
  2006-10-11 17:15                   ` Chen, Kenneth W
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-11 13:55 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Peter Zijlstra, Andrew Morton, linux-kernel, Chen, Kenneth W,
	linux-mm, Nick Piggin

On Wed, 2006-10-11 at 06:07 -0600, Eric W. Biederman wrote:
> Arjan van de Ven <arjan@infradead.org> writes:
> 
> > On Tue, 2006-10-10 at 17:54 -0600, Eric W. Biederman wrote:
> >
> >> For processes shared pages are not special.
> 
> Actually the above is not quite true you can map a shared page twice
> into the same process but in practice it rarely happens.

yeah I'm entirely fine with ignoring that case (or making the person who
does it pay for it :)

> 
> > depends on what question you want to answer with RSS.
> > If the question is "workload working set size" then you are right. If
> > the question is "how much ram does my application cause to be used" the
> > answer is FAR less clear....
> 
> There are two basic concerns.  How do you keep an application from
> going crazy and trashing the rest of your system?  A question on what
> number do you need to implement a resource limit.

yet at the same time if 2 apps mmap a shared file, and app 1 keeps it in
pagecache, it doesn't cause app2 to trash, or rather, it's not like if
app 2 did NOT have the page from that file, the system wouldn't trash.


> > You seem to have an implicit definition on what RSS should mean; but
> > it's implicit. Mind making an explicit definition of what RSS should be
> > in your opinion? I think that's the biggest problem we have right now;
> > several people have different ideas about what it should/could be, and
> > as such we're not talking about the same thing. Lets first agree/specify
> > what it SHOULD mean, and then we can figure out what gets counted for
> > that ;)
> 
> Well I tried to defined it in terms of what you can use it for.
> 
> I would define the resident set size as the total number of bytes
> of physical RAM that a process (or set of processes) is using,
> irrespective of the rest of the system.  
>  
> 
> So I think the counting should be primarily about what is mapped into
> the page tables.  But other things can be added as is appropriate or
> easy.
> 
> The practical effect should be that an application that needs more
> pages than it's specified RSS to avoid thrashing should thrash but
> it shouldn't take the rest of the system with it.


so by your definition, hugepages are part of RSS.

Ken: what is your definition of RSS ?



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-11 13:08           ` _cpu_down deadlock [was Re: 2.6.19-rc1-mm1] Neil Brown
  2006-10-11 13:32             ` Rusty Russell
@ 2006-10-11 16:39             ` Andrew Morton
  2006-10-11 23:46               ` Neil Brown
  1 sibling, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-11 16:39 UTC (permalink / raw)
  To: Neil Brown
  Cc: Arjan van de Ven, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Wed, 11 Oct 2006 23:08:21 +1000
Neil Brown <neilb@suse.de> wrote:

> On Wednesday October 11, arjan@infradead.org wrote:
> > 
> > > > blocking_notifier_call_chain is
> > > >         down_read(&nh->rwsem);
> > > >         ret = notifier_call_chain(&nh->head, val, v);
> > > >         up_read(&nh->rwsem);
> > > >
> > > > and so holds ->rwsem while calling the callback.
> > > > So the locking sequence ends up as:
> > > >
> > > >  down_read(&cpu_chain.rwsem);
> > > >  mutex_lock(&workqueue_mutex);
> > > >  up_read(&cpu_chain.rwsem);
> > > >
> > > >  down_read(&cpu_chain.rwsem);
> > > >  mutex_unlock(&workqueue_mutex);
> > > >  up_read(&workqueue_mutex);
> > > >
> > > > and lockdep doesn't seem to like this.  It sees workqueue_mutex
> > > > claimed while cpu_chain.rwsem is held. and then it sees
> > > > cpu_chain.rwsem claimed while workqueue_mutex is held, which looks a
> > > > bit like a class ABBA deadlock.
> > > > Of course because it is a 'down_read' rather than a 'down', it isn't
> > > > really a dead lock.
> > 
> > ok can you explain to me why "down_read" doesn't make this a deadlock
> > while "down" would make it a deadlock? I have trouble following your
> > reasoning.....
> > 
> > (remember that rwsems are strictly fair)
> 
> I see your point.
> 
> While thread A holds just workqueue_mutex,
> thread B takes cpu_chain.rwsem for read then tries to take
> workqueue_mutex and blocks.
> Now thread C tries to get a write lock on cpu_chain.rwsem and blocks
> as well.
> Finally thread A moves on to try to get a read lock on cpu_chain.rwsem
> and this blocks because thread C is waiting for a write lock.
> 
> So A waits on B and C, C waits on B, B waits on A.
> Deadlock.

Except the entire operation is serialised by the the two top-level callers
(cpu_up() and cpu_down()) taking mutex_lock(&cpu_add_remove_lock).  Can
lockdep be taught about that?

> Who do we blame this on?  Are you still the cpu-hot-plug guy Rusty?

It's fun blaming Rusty for stuff, but he can dodge this one with
more-than-usual ease, I'm afraid.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 (ext4 problem ?)
       [not found]     ` <1160578934.1447.1.camel@dyn9047017100.beaverton.ibm.com>
@ 2006-10-11 16:56       ` Andrew Morton
  2006-10-11 17:08         ` Badari Pulavarty
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-11 16:56 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: Theodore Tso, lkml, shaggy, ext4

On Wed, 11 Oct 2006 08:02:14 -0700
Badari Pulavarty <pbadari@us.ibm.com> wrote:

> On Tue, 2006-10-10 at 21:01 -0700, Andrew Morton wrote: 
> > 
> > > Andrew Morton wrote:
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > > >
> > > >
> > > > - Added the ext4 filesystem.  Quick usage instructions:
> > > >
> > > >   - Grab updated e2fsprogs from
> > > >     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
> > > >   
> 
> ext4 did not survive my simple stress tests. 
> 
> I ran 4 copies of fsx on ext4dev filesystem (without extents) +
> 4 copies of fsx on ext4dev (with extents). 
> 
> Machine hung after running for few hours. There are 4 fsx sigsegv
> messages on the console and the last message on the console is
> 
> do_IRQ: 0.62 No irq handler for vector
> 

Quite a few people are hitting that - it's related to Eric's recent
IRQ/APIC-routing changes.

I don't know why that would cause fsx to get a sigsegv though.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 (ext4 problem ?)
  2006-10-11 16:56       ` 2.6.19-rc1-mm1 (ext4 problem ?) Andrew Morton
@ 2006-10-11 17:08         ` Badari Pulavarty
  0 siblings, 0 replies; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-11 17:08 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Theodore Tso, lkml, shaggy, ext4

On Wed, 2006-10-11 at 09:56 -0700, Andrew Morton wrote:
> On Wed, 11 Oct 2006 08:02:14 -0700
> Badari Pulavarty <pbadari@us.ibm.com> wrote:
> 
> > On Tue, 2006-10-10 at 21:01 -0700, Andrew Morton wrote: 
> > > 
> > > > Andrew Morton wrote:
> > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > > > >
> > > > >
> > > > > - Added the ext4 filesystem.  Quick usage instructions:
> > > > >
> > > > >   - Grab updated e2fsprogs from
> > > > >     ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs-interim/
> > > > >   
> > 
> > ext4 did not survive my simple stress tests. 
> > 
> > I ran 4 copies of fsx on ext4dev filesystem (without extents) +
> > 4 copies of fsx on ext4dev (with extents). 
> > 
> > Machine hung after running for few hours. There are 4 fsx sigsegv
> > messages on the console and the last message on the console is
> > 
> > do_IRQ: 0.62 No irq handler for vector
> > 
> 
> Quite a few people are hitting that - it's related to Eric's recent
> IRQ/APIC-routing changes.
> 
> I don't know why that would cause fsx to get a sigsegv though.

I don't think they are related. Hopefully once we figure out IRQ
problem, we can try to track down fsx problems.

Thanks,
Badari


^ permalink raw reply	[flat|nested] 88+ messages in thread

* RE: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-11 13:55                 ` Arjan van de Ven
@ 2006-10-11 17:15                   ` Chen, Kenneth W
  2006-10-11 22:36                     ` Benjamin LaHaise
  0 siblings, 1 reply; 88+ messages in thread
From: Chen, Kenneth W @ 2006-10-11 17:15 UTC (permalink / raw)
  To: 'Arjan van de Ven', Eric W. Biederman
  Cc: Peter Zijlstra, Andrew Morton, linux-kernel, linux-mm, Nick Piggin

Arjan van de Ven wrote on Wednesday, October 11, 2006 6:55 AM
> > Well I tried to defined it in terms of what you can use it for.
> > 
> > I would define the resident set size as the total number of bytes
> > of physical RAM that a process (or set of processes) is using,
> > irrespective of the rest of the system.  
> > 
> > So I think the counting should be primarily about what is mapped into
> > the page tables.  But other things can be added as is appropriate or
> > easy.
> > 
> > The practical effect should be that an application that needs more
> > pages than it's specified RSS to avoid thrashing should thrash but
> > it shouldn't take the rest of the system with it.
> 
> 
> so by your definition, hugepages are part of RSS.
> 
> Ken: what is your definition of RSS ?

I'm more inclined to define RSS as "how much ram does my application
cause to be used".  To monitor process's working set size, We already
have /proc/<pid>/smaps.  Whether we can use working set size in an
intelligent way in mm is an interesting question. Though, so far such
accounting is not utilized at all.

- Ken

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (9 preceding siblings ...)
  2006-10-11  3:13 ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-11 19:54 ` Martin J. Bligh
  2006-10-11 21:58   ` 2.6.19-rc1-mm1 Badari Pulavarty
  2006-10-11 19:59 ` 2.6.19-rc1-mm1 Martin J. Bligh
                   ` (3 subsequent siblings)
  14 siblings, 1 reply; 88+ messages in thread
From: Martin J. Bligh @ 2006-10-11 19:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>
>
>
>   
fsx seems to fail now, across several different machines.

http://test.kernel.org/functional/index.html


and drill down under "regression" on the failing ones.

eg, see end of
http://test.kernel.org/abat/54516/debug/test.log.1 (i386)
and
http://test.kernel.org/abat/54503/debug/test.log.1 (x86_64)

-rc1 is OK (as is -rc1-git7)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (10 preceding siblings ...)
  2006-10-11 19:54 ` 2.6.19-rc1-mm1 Martin J. Bligh
@ 2006-10-11 19:59 ` Martin J. Bligh
  2006-10-11 20:10   ` 2.6.19-rc1-mm1 Michal Piotrowski
  2006-10-11 21:47   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-11 21:19 ` 2.6.19-rc1-mm1 Michael Lothian
                   ` (2 subsequent siblings)
  14 siblings, 2 replies; 88+ messages in thread
From: Martin J. Bligh @ 2006-10-11 19:59 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Andy Whitcroft

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>
>
> -
>   

Oh, and hangs in LTP.

x86_64 just hangs.
http://test.kernel.org/abat/54544/debug/test.log.1 (in something io-ish)


http://test.kernel.org/abat/54541/debug/test.log.1 (ppc64)
craps itself with

Modules linked in:
NIP: C0000000000CC520 LR: C0000000000CC4EC CTR: 0000000000000FF5
REGS: c00000069ae83940 TRAP: 0700   Not tainted  (2.6.19-rc1-mm1-autokern1)
MSR: 8000000000029032 <EE,ME,IR,DR>  CR: 28002424  XER: 20000000
TASK = c000000768026660[32160] 'openfile' THREAD: c00000069ae80000 CPU: 2
GPR00: 0000000000000001 C00000069AE83BC0 C00000000065E548 FFFFFFFFFFFFFFF4 
GPR04: 00000000000000D0 0000000000000040 C0000006DF1D200A 0000000000000008 
GPR08: 0000000000000001 0000000000000000 C00000003FFA3000 0000000000000000 
GPR12: 000000000000F032 C00000000053E480 0000000000000000 0000000000000000 
GPR16: 00000000100D5D40 00000000100CCFF8 00000000FF8352E0 00000000F800F7E0 
GPR20: 00000000FF8352D0 0000000010000D38 0000000000000001 0000000000000003 
GPR24: 00000000F67C9F80 FFFFFFFFFFFFFF9C C0000007750C4680 C0000007750C4690 
GPR28: 0000000000000040 C000000775AF9CC0 C000000000570348 C000000775AF9CC0 
NIP [C0000000000CC520] .expand_files+0x1f4/0x354
LR [C0000000000CC4EC] .expand_files+0x1c0/0x354
Call Trace:
[C00000069AE83BC0] [C0000000000CC470] .expand_files+0x144/0x354 (unreliable)
[C00000069AE83C60] [C0000000000AE148] .get_unused_fd+0x80/0x170
[C00000069AE83D00] [C0000000000AE6EC] .do_sys_open+0x5c/0x140
[C00000069AE83DB0] [C0000000000ED574] .compat_sys_open+0x24/0x38
[C00000069AE83E30] [C00000000000871C] syscall_exit+0x0/0x40


and another one from another ppc64 box

gekko-lp1 login:-- 0:conmux-control -- time-stamp -- Oct/10/06  9:38:14 --
 cpu 0x3: Vector: 700 (Program Check) at [c0000000e9a43960]
    pc: c0000000000f1454: .expand_files+0x1f4/0x354
    lr: c0000000000f1420: .expand_files+0x1c0/0x354
    sp: c0000000e9a43be0
   msr: 8000000000029032
  current = 0xc0000000e8b4a810
  paca    = 0xc000000000482b80
    pid   = 26003, comm = creat05
kernel BUG in copy_fdtable at fs/file.c:138!
enter ? for help
[c0000000e9a43c80] c0000000000d0af8 .get_unused_fd+0x80/0x170
[c0000000e9a43d20] c0000000000d1094 .do_sys_open+0x54/0x12c
[c0000000e9a43dc0] c0000000000161b8 .compat_sys_creat+0x14/0x28
[c0000000e9a43e30] c00000000000871c syscall_exit+0x0/0x40
--- Exception: c01 (System Call) at 000000000ff6e3b0
SP (ff9cf310) is in userspace
3:mon>-- 0:conmux-control -- time-stamp -- Oct/10/06  9:40:19 --
-- 0:conmux-control -- time-stamp -- Oct/10/06  9:48:51 --



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 19:59 ` 2.6.19-rc1-mm1 Martin J. Bligh
@ 2006-10-11 20:10   ` Michal Piotrowski
  2006-10-11 21:47   ` 2.6.19-rc1-mm1 Andrew Morton
  1 sibling, 0 replies; 88+ messages in thread
From: Michal Piotrowski @ 2006-10-11 20:10 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel, Andy Whitcroft

On 11/10/06, Martin J. Bligh <mbligh@google.com> wrote:
> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> >
> >
> > -
> >
>
> Oh, and hangs in LTP.

It's probably a problem with fdtable patches
http://www.ussg.iu.edu/hypermail/linux/kernel/0610.1/0925.html

Regards,
Michal

-- 
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (11 preceding siblings ...)
  2006-10-11 19:59 ` 2.6.19-rc1-mm1 Martin J. Bligh
@ 2006-10-11 21:19 ` Michael Lothian
  2006-10-12 12:18 ` 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader Helge Hafting
  2006-10-12 18:37 ` 2.6.19-rc1-mm1 Valdis.Kletnieks
  14 siblings, 0 replies; 88+ messages in thread
From: Michael Lothian @ 2006-10-11 21:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On 10/10/06, Andrew Morton <akpm@osdl.org> wrote:
>
>
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>
>
> git-libata-all.patch
>
>
>

Hi

I think I've found a regression in the pata-via module. My cdrom drive isn't
detected I have compiled in and also tried as modules pata-via and the SCSI
CDROM device driver

I think the problem may be due to my cdrom not having a jumper setting
either master or slave (or even cable select for that matter) as I lost the
wee jumper.

Even if this is the case I'd still call this a regression as the old code
finds it no problem

My dmesg states:

pata_via 0000:00:0f.1: version 0.1.14
ata3: PATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0xA400 irq 14
ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xA408 irq 15
scsi2 : pata_via
ata3.00: ATAPI, max UDMA/33
EXT3-fs: mounted filesystem with ordered data mode.
ata3.00: qc timeout (cmd 0xa1)
ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
ata3.00: revalidation failed (errno=-5)
ata3.00: limiting speed to UDMA/25
ata3: failed to recover some devices, retrying in 5 secs
ata3.00: qc timeout (cmd 0xa1)
ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
ata3.00: revalidation failed (errno=-5)
ata3: failed to recover some devices, retrying in 5 secs
ata3.00: qc timeout (cmd 0xa1)
ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
ata3.00: revalidation failed (errno=-5)
ata3.00: disabled
scsi3 : pata_via
ATA: abnormal status 0x8 on port 0x177


Does anyone have any ideas on why this is the case?

Cheers for any help you can offer

Mike

PS Apologies for the 3rd time your receiving this andrew

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 19:59 ` 2.6.19-rc1-mm1 Martin J. Bligh
  2006-10-11 20:10   ` 2.6.19-rc1-mm1 Michal Piotrowski
@ 2006-10-11 21:47   ` Andrew Morton
  2006-10-12 10:22     ` 2.6.19-rc1-mm1 Andy Whitcroft
  2006-10-12 18:09     ` 2.6.19-rc1-mm1 Badari Pulavarty
  1 sibling, 2 replies; 88+ messages in thread
From: Andrew Morton @ 2006-10-11 21:47 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: linux-kernel, Andy Whitcroft

On Wed, 11 Oct 2006 12:59:19 -0700
"Martin J. Bligh" <mbligh@google.com> wrote:

> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> >
> >
> > -
> >   
> 
> Oh, and hangs in LTP.
> 
> x86_64 just hangs.
> http://test.kernel.org/abat/54544/debug/test.log.1 (in something io-ish)
> 

What makes you thing it was something io-ish?

> 
> http://test.kernel.org/abat/54541/debug/test.log.1 (ppc64)
> craps itself with

There's been a fix for this in hot-fixes/ for 24 hours.  It'd be good if you
could tinkle the scripts to pull that directory in.

Or just suck the -mm git tree.  That incorprates additions to hot-fixes/ within
five minutes.


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 19:54 ` 2.6.19-rc1-mm1 Martin J. Bligh
@ 2006-10-11 21:58   ` Badari Pulavarty
  2006-10-16 15:56     ` 2.6.19-rc1-mm1 Andy Whitcroft
  0 siblings, 1 reply; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-11 21:58 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel

Martin J. Bligh wrote:
> Andrew Morton wrote:
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/ 
>>
>>
>>
>>
>>   
> fsx seems to fail now, across several different machines.
>
> http://test.kernel.org/functional/index.html
>
>
> and drill down under "regression" on the failing ones.
>
> eg, see end of
> http://test.kernel.org/abat/54516/debug/test.log.1 (i386)
> and
> http://test.kernel.org/abat/54503/debug/test.log.1 (x86_64)
>

I am seeing fsx failures on 1k/2k ext3 filesystems, but not on 4k.
Do you know the filesystem type & blocksize ?

Thanks,
Badari


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: RSS accounting (was: Re: 2.6.19-rc1-mm1)
  2006-10-11 17:15                   ` Chen, Kenneth W
@ 2006-10-11 22:36                     ` Benjamin LaHaise
  0 siblings, 0 replies; 88+ messages in thread
From: Benjamin LaHaise @ 2006-10-11 22:36 UTC (permalink / raw)
  To: Chen, Kenneth W
  Cc: 'Arjan van de Ven',
	Eric W. Biederman, Peter Zijlstra, Andrew Morton, linux-kernel,
	linux-mm, Nick Piggin

On Wed, Oct 11, 2006 at 10:15:39AM -0700, Chen, Kenneth W wrote:
> I'm more inclined to define RSS as "how much ram does my application
> cause to be used".  To monitor process's working set size, We already
> have /proc/<pid>/smaps.  Whether we can use working set size in an
> intelligent way in mm is an interesting question. Though, so far such
> accounting is not utilized at all.

If that is the case, it would make sense to account such things as page 
tables and other kernel allocations against the RSS, which would be useful.  
That said, it's possible to keep semantics fairly close to those currently 
implemented by tracking RSS differently for shared vs private areas -- 
those vmas which are shared could be placed on a list and then summed when 
RSS is read.  That said, I'm not sure it is a good idea, as the cost of 
obtaining RSS for tools like top is exactly why we have the current 
counters maintained to provide O(1) semantics.

All of the old semantics are covered by smaps, though, so I'd agree with 
any changes to make RSS reflect allocations incurred by this process.

		-ben
-- 
"Time is of no importance, Mr. President, only life is important."
Don't Email: <dont@kvack.org>.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-11 16:39             ` Andrew Morton
@ 2006-10-11 23:46               ` Neil Brown
  2006-10-12  6:51                 ` Arjan van de Ven
  0 siblings, 1 reply; 88+ messages in thread
From: Neil Brown @ 2006-10-11 23:46 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Arjan van de Ven, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Wednesday October 11, akpm@osdl.org wrote:
> > 
> > So A waits on B and C, C waits on B, B waits on A.
> > Deadlock.
> 
> Except the entire operation is serialised by the the two top-level callers
> (cpu_up() and cpu_down()) taking mutex_lock(&cpu_add_remove_lock).  Can
> lockdep be taught about that?

So you are saying that even though we have locking sequences
  A -> B  and B -> A,
that cannot - in this case - cause a deadlock as both sequences only
ever happen under a third exclusive lock C,
So when lockdep records a lock-dependency A -> B, it should also
record a list of locks that are *always* held when that dependency
occurs.
Then, when it finds a new dependency and does loop detection, it
should exclude from the path any dependency which is always under a
lock that some other dependency in the path is always under.
Also, loop checking as to happen both when a new dependency is found,
and when a lock is removed from the set of locks that protect the
dependency.

Recording stack traces might be interesting as you potentially need to
record a trace for ever minimal set of locks that the dependency is
created under.

So the ball is back in Ingo's court ?

Though it is odd that the warning doesn't trigger every time....


> 
> > Who do we blame this on?  Are you still the cpu-hot-plug guy Rusty?
> 
> It's fun blaming Rusty for stuff, but he can dodge this one with
> more-than-usual ease, I'm afraid.

In that case,  I was never dreaming of blaming him, only letting him
know that there is a lock-dep warning in code that he might be seen as
responsible for - just in case anyone does blame him.
Yes.  That's what I was doing.  Definitely.

NeilBrown

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-11 23:46               ` Neil Brown
@ 2006-10-12  6:51                 ` Arjan van de Ven
  2006-10-12  7:53                   ` SPAM: " Neil Brown
  0 siblings, 1 reply; 88+ messages in thread
From: Arjan van de Ven @ 2006-10-12  6:51 UTC (permalink / raw)
  To: Neil Brown
  Cc: Andrew Morton, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Thu, 2006-10-12 at 09:46 +1000, Neil Brown wrote:
> On Wednesday October 11, akpm@osdl.org wrote:
> > > 
> > > So A waits on B and C, C waits on B, B waits on A.
> > > Deadlock.
> > 
> > Except the entire operation is serialised by the the two top-level callers
> > (cpu_up() and cpu_down()) taking mutex_lock(&cpu_add_remove_lock).  Can
> > lockdep be taught about that?
> 
> So you are saying that even though we have locking sequences
>   A -> B  and B -> A,
> that cannot - in this case - cause a deadlock as both sequences only
> ever happen under a third exclusive lock C,
> So when lockdep records a lock-dependency A -> B, it should also
> record a list of locks that are *always* held when that dependency
> occurs.

in that case... why are A and B there *at all* ?



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: SPAM: Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-12  6:51                 ` Arjan van de Ven
@ 2006-10-12  7:53                   ` Neil Brown
  2006-10-12  8:04                     ` Andrew Morton
  0 siblings, 1 reply; 88+ messages in thread
From: Neil Brown @ 2006-10-12  7:53 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Andrew Morton, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Thursday October 12, arjan@infradead.org wrote:
> On Thu, 2006-10-12 at 09:46 +1000, Neil Brown wrote:
> > On Wednesday October 11, akpm@osdl.org wrote:
> > > > 
> > > > So A waits on B and C, C waits on B, B waits on A.
> > > > Deadlock.
> > > 
> > > Except the entire operation is serialised by the the two top-level callers
> > > (cpu_up() and cpu_down()) taking mutex_lock(&cpu_add_remove_lock).  Can
> > > lockdep be taught about that?
> > 
> > So you are saying that even though we have locking sequences
> >   A -> B  and B -> A,
> > that cannot - in this case - cause a deadlock as both sequences only
> > ever happen under a third exclusive lock C,
> > So when lockdep records a lock-dependency A -> B, it should also
> > record a list of locks that are *always* held when that dependency
> > occurs.
> 
> in that case... why are A and B there *at all* ?
> 

:-)

Obviously because someone out-side of C might want to interact with
the data protected by A or B.

But wait... what are the implications of that.

The data managed by B (where B == cpu_chain.rwsem) is a list of 
notifiers.  Each notifier is called with CPU_DOWN_PREPARE and then
will be called with either CPU_DOWN_FAILED or CPU_DEAD.

Now because we release and reclaim B it is possible for someone to add
or remove a notifier.  Either of these event means that the relevant
notifier will get called with one of these but not the other.  It
seems likely that a notifier will be written to assume this
bracketing.
In fact workqueue_cpu_callback (which is such a notifier) does
		mutex_lock(&workqueue_mutex);
in CPU_DOWN_PREPARE and 
		mutex_unlock(&workqueue_mutex);
in CPU_DOWN_FAILED and CPU_DEAD.

If it got registered in the middle of _cpu_down, then it would unlock
a mutex that wasn't locked.  Now I suspect it cannot be registered
while _cpu_down is active as it is only registered once, very early.
But it certainly does raise the question of why all this locking
is needed....

I think I'm in favour of the following.  It should clean up the
lockdep warning and seems to make sense.

NeilBrown

Signed-off-by: Neil Brown <neilb@suse.de>

### Diffstat output
 ./kernel/cpu.c |   20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff .prev/kernel/cpu.c ./kernel/cpu.c
--- .prev/kernel/cpu.c	2006-10-12 17:46:37.000000000 +1000
+++ ./kernel/cpu.c	2006-10-12 17:51:50.000000000 +1000
@@ -126,9 +126,11 @@ static int _cpu_down(unsigned int cpu)
 	if (!cpu_online(cpu))
 		return -EINVAL;
 
-	err = blocking_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE,
+	down_read(&cpu_chain.rwsem);
+	err = raw_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE,
 						(void *)(long)cpu);
 	if (err == NOTIFY_BAD) {
+		up_read(&cpu_chain.rwsem);
 		printk("%s: attempt to take down CPU %u failed\n",
 				__FUNCTION__, cpu);
 		return -EINVAL;
@@ -146,11 +148,11 @@ static int _cpu_down(unsigned int cpu)
 
 	if (IS_ERR(p)) {
 		/* CPU didn't die: tell everyone.  Can't complain. */
-		if (blocking_notifier_call_chain(&cpu_chain, CPU_DOWN_FAILED,
+		if (raw_notifier_call_chain(&cpu_chain, CPU_DOWN_FAILED,
 				(void *)(long)cpu) == NOTIFY_BAD)
 			BUG();
 
-		err = PTR_ERR(p);
+			err = PTR_ERR(p);
 		goto out_allowed;
 	}
 
@@ -169,7 +171,7 @@ static int _cpu_down(unsigned int cpu)
 	put_cpu();
 
 	/* CPU is completely dead: tell everyone.  Too late to complain. */
-	if (blocking_notifier_call_chain(&cpu_chain, CPU_DEAD,
+	if (raw_notifier_call_chain(&cpu_chain, CPU_DEAD,
 			(void *)(long)cpu) == NOTIFY_BAD)
 		BUG();
 
@@ -178,6 +180,7 @@ static int _cpu_down(unsigned int cpu)
 out_thread:
 	err = kthread_stop(p);
 out_allowed:
+	up_read(&cpu_chain.rwsem);
 	set_cpus_allowed(current, old_allowed);
 	return err;
 }
@@ -206,7 +209,8 @@ static int __devinit _cpu_up(unsigned in
 	if (cpu_online(cpu) || !cpu_present(cpu))
 		return -EINVAL;
 
-	ret = blocking_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE, hcpu);
+	down_read(&cpu_chain.rwsem);
+	ret = raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE, hcpu);
 	if (ret == NOTIFY_BAD) {
 		printk("%s: attempt to bring up CPU %u failed\n",
 				__FUNCTION__, cpu);
@@ -223,13 +227,13 @@ static int __devinit _cpu_up(unsigned in
 	BUG_ON(!cpu_online(cpu));
 
 	/* Now call notifier in preparation. */
-	blocking_notifier_call_chain(&cpu_chain, CPU_ONLINE, hcpu);
+	raw_notifier_call_chain(&cpu_chain, CPU_ONLINE, hcpu);
 
 out_notify:
 	if (ret != 0)
-		blocking_notifier_call_chain(&cpu_chain,
+		raw_notifier_call_chain(&cpu_chain,
 				CPU_UP_CANCELED, hcpu);
-
+	up_read(&cpu_chain.rwsem);
 	return ret;
 }
 

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: SPAM: Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-12  7:53                   ` SPAM: " Neil Brown
@ 2006-10-12  8:04                     ` Andrew Morton
  2006-10-13  4:49                       ` Neil Brown
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-12  8:04 UTC (permalink / raw)
  To: Neil Brown
  Cc: Arjan van de Ven, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Thu, 12 Oct 2006 17:53:11 +1000
Neil Brown <neilb@suse.de> wrote:

> I think I'm in favour of the following. 

Would be simpler to take cpu_add_remove_lock in
[un]register_cpu_notifier().  I actually thought I'd done that to fix this
bug but must have forgotten or lost the patch :(

We can then convert all the notifier chains in there to raw_*.


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 21:47   ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-12 10:22     ` Andy Whitcroft
  2006-10-12 18:09     ` 2.6.19-rc1-mm1 Badari Pulavarty
  1 sibling, 0 replies; 88+ messages in thread
From: Andy Whitcroft @ 2006-10-12 10:22 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Martin J. Bligh, linux-kernel

Andrew Morton wrote:
> On Wed, 11 Oct 2006 12:59:19 -0700
> "Martin J. Bligh" <mbligh@google.com> wrote:
> 
>> Andrew Morton wrote:
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>>>
>>>
>>> -
>>>   
>> Oh, and hangs in LTP.
>>
>> x86_64 just hangs.
>> http://test.kernel.org/abat/54544/debug/test.log.1 (in something io-ish)
>>
> 
> What makes you thing it was something io-ish?
> 
>> http://test.kernel.org/abat/54541/debug/test.log.1 (ppc64)
>> craps itself with
> 
> There's been a fix for this in hot-fixes/ for 24 hours.  It'd be good if you
> could tinkle the scripts to pull that directory in.
> 
> Or just suck the -mm git tree.  That incorprates additions to hot-fixes/ within
> five minutes.

I have to say I always forget its there, debug and fix it only to find
its in hotfixes, grr.  So having the test system notice and fire new
jobs off with these too is the Right Thing (tm).

I've hopefully modified the test system to take hot-fixes into account.
  I do wonder if there should be a series file in this directory, as we
have no ordering otherwise and it would simplify the detection and
application of these patches at my end for sure.

Anyhow, hopefully we'll get some results in the next 4 hours out to TKO
and see how it looks ... assuming they don't all go "what patch, boom,
crash".

-apw


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (12 preceding siblings ...)
  2006-10-11 21:19 ` 2.6.19-rc1-mm1 Michael Lothian
@ 2006-10-12 12:18 ` Helge Hafting
  2006-10-12 18:29   ` Andrew Morton
  2006-10-12 18:37 ` 2.6.19-rc1-mm1 Valdis.Kletnieks
  14 siblings, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-12 12:18 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

I found an easy way to hang the kernel when copying a SD-card:

dd if=/dev/sdc of=file bs=1048576

I.e. copy the entire 256MB card in 1MB chunks.  I got about
160MB before the kernel hung.  Not even sysrq+B worked, I needed
the reset button.  The pc has a total of 512MB memory if that matters.

Using bs=4096 instead let me copy the entire card with no problems,
but that seems to progress slower.

The above 'dd' command hangs my office pc every time. So I can repeat
it for debugging purposes. 


Helge Hafting

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 21:47   ` 2.6.19-rc1-mm1 Andrew Morton
  2006-10-12 10:22     ` 2.6.19-rc1-mm1 Andy Whitcroft
@ 2006-10-12 18:09     ` Badari Pulavarty
  2006-10-12 18:52       ` 2.6.19-rc1-mm1 Vadim Lobanov
  1 sibling, 1 reply; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-12 18:09 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Martin J. Bligh, lkml, Andy Whitcroft

On Wed, 2006-10-11 at 14:47 -0700, Andrew Morton wrote:
> On Wed, 11 Oct 2006 12:59:19 -0700
> "Martin J. Bligh" <mbligh@google.com> wrote:
> 
> > Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
> > >
> > >
> > > -
> > >   
> > 
> > Oh, and hangs in LTP.
> > 
> > x86_64 just hangs.
> > http://test.kernel.org/abat/54544/debug/test.log.1 (in something io-ish)
> > 
> 
> What makes you thing it was something io-ish?

create05 test hang goes away with hot-fix (revert-fd-table stuff).
FYI.

Thanks,
Badari




^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-12 12:18 ` 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader Helge Hafting
@ 2006-10-12 18:29   ` Andrew Morton
  2006-10-13 13:11     ` Helge Hafting
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-12 18:29 UTC (permalink / raw)
  To: Helge Hafting; +Cc: linux-kernel

On Thu, 12 Oct 2006 14:18:04 +0200
Helge Hafting <helge.hafting@aitel.hist.no> wrote:

> I found an easy way to hang the kernel when copying a SD-card:
> 
> dd if=/dev/sdc of=file bs=1048576
> 
> I.e. copy the entire 256MB card in 1MB chunks.  I got about
> 160MB before the kernel hung.  Not even sysrq+B worked, I needed
> the reset button.  The pc has a total of 512MB memory if that matters.
> 
> Using bs=4096 instead let me copy the entire card with no problems,
> but that seems to progress slower.
> 
> The above 'dd' command hangs my office pc every time. So I can repeat
> it for debugging purposes. 
> 

What device driver is providing /dev/sdc?

Did any previous kernels work correctly?  If so, which?

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
                   ` (13 preceding siblings ...)
  2006-10-12 12:18 ` 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader Helge Hafting
@ 2006-10-12 18:37 ` Valdis.Kletnieks
  14 siblings, 0 replies; 88+ messages in thread
From: Valdis.Kletnieks @ 2006-10-12 18:37 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, tglx, mingo, johnstul

[-- Attachment #1: Type: text/plain, Size: 697 bytes --]

On Tue, 10 Oct 2006 00:09:28 PDT, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/

> - Added the high-resolution timers and dynamic-ticks code.  Please be sure
>  to cc tglx@linutronix.de>, mingo@elte.hu and johnstul@us.ibm.com if it blows
>  up.

Compiles, boots, and behaves on my Dell Latitude C840 that previously had
indigestion.  It selected the ACPI-PM timesource right off the bat (for reasons
I don't understand, previous dynticks used the tsc timesource), so I'm not
seeing the huge clock drift issues I had with previous dyntick patches when
running 'cpuspeed' - it drops from 1.6Ghz to 1.2Ghz and back without a problem.


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-12 18:09     ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-12 18:52       ` Vadim Lobanov
  2006-10-12 19:01         ` 2.6.19-rc1-mm1 Badari Pulavarty
  0 siblings, 1 reply; 88+ messages in thread
From: Vadim Lobanov @ 2006-10-12 18:52 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: Andrew Morton, Martin J. Bligh, lkml, Andy Whitcroft

On Thursday 12 October 2006 11:09, Badari Pulavarty wrote:
> create05 test hang goes away with hot-fix (revert-fd-table stuff).
> FYI.

Does it also go away with the "Eradicate fdarray overflow" patch instead of 
the hot-fix?

> Thanks,
> Badari

-- Vadim Lobanov

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-12 18:52       ` 2.6.19-rc1-mm1 Vadim Lobanov
@ 2006-10-12 19:01         ` Badari Pulavarty
  0 siblings, 0 replies; 88+ messages in thread
From: Badari Pulavarty @ 2006-10-12 19:01 UTC (permalink / raw)
  To: Vadim Lobanov; +Cc: Andrew Morton, Martin J. Bligh, lkml, Andy Whitcroft

On Thu, 2006-10-12 at 11:52 -0700, Vadim Lobanov wrote:
> On Thursday 12 October 2006 11:09, Badari Pulavarty wrote:
> > create05 test hang goes away with hot-fix (revert-fd-table stuff).
> > FYI.
> 
> Does it also go away with the "Eradicate fdarray overflow" patch instead of 
> the hot-fix?

I just verified. Test hang goes away with your overflow fix.

Thanks,
Badari


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: _cpu_down deadlock [was Re: 2.6.19-rc1-mm1]
  2006-10-12  8:04                     ` Andrew Morton
@ 2006-10-13  4:49                       ` Neil Brown
  0 siblings, 0 replies; 88+ messages in thread
From: Neil Brown @ 2006-10-13  4:49 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Arjan van de Ven, Michal Piotrowski, Pavel Machek,
	Rafael J. Wysocki, linux-kernel, Ingo Molnar, rusty

On Thursday October 12, akpm@osdl.org wrote:
> On Thu, 12 Oct 2006 17:53:11 +1000
> Neil Brown <neilb@suse.de> wrote:
> 
> > I think I'm in favour of the following. 
> 
> Would be simpler to take cpu_add_remove_lock in
> [un]register_cpu_notifier().  I actually thought I'd done that to fix this
> bug but must have forgotten or lost the patch :(
> 
> We can then convert all the notifier chains in there to raw_*.

The two philosophers gaped at him.

"Bloody hell," said Majikthise, "now that is what I call
thinking. Here Vroomfondel, why do we never think of things like
that?" 

"Dunno," said Vroomfondel in an awed whisper, "think our brains must
be too highly trained Majikthise." 

[ http://flag.blackened.net/dinsdale/dna/book1.html ]

I guess you'll be wanting this then, unless you have done it already.

NeilBrown

-----------
Subject: Convert cpu hotplug notifiers to use raw_notifier instead of blocking_notifier

The use of blocking notifier by _cpu_up and _cpu_down in cpu.c
has two problem.

1/ An interaction with the workqueue notifier causes lockdep to
   spit a warning.
2/ A notifier could conceivable be added or removed while _cpu_up or
   _cpu_down are in process.  As each notifier is called twice 
   (prepare then commit/abort) this could be unhealthy.

To fix to we simply take cpu_add_remove_lock while adding
or removing notifiers to/from the list.

This makes the 'blocking' usage unnecessary as all accesses to
cpu_chain are now protected by cpu_add_remove_lock.  So
change "blocking" to "raw" in all relevant places.
This fixes 1.

Credit: Andrew Morton
Cc:  rusty@rustcorp.com.au (maintainer)
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com> (reporter)
Signed-off-by: Neil Brown <neilb@suse.de>

### Diffstat output
 ./kernel/cpu.c |   24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff .prev/kernel/cpu.c ./kernel/cpu.c
--- .prev/kernel/cpu.c	2006-10-13 14:30:56.000000000 +1000
+++ ./kernel/cpu.c	2006-10-13 14:33:49.000000000 +1000
@@ -19,7 +19,7 @@
 static DEFINE_MUTEX(cpu_add_remove_lock);
 static DEFINE_MUTEX(cpu_bitmask_lock);
 
-static __cpuinitdata BLOCKING_NOTIFIER_HEAD(cpu_chain);
+static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);
 
 /* If set, cpu_up and cpu_down will return -EBUSY and do nothing.
  * Should always be manipulated under cpu_add_remove_lock
@@ -68,7 +68,11 @@ EXPORT_SYMBOL_GPL(unlock_cpu_hotplug);
 /* Need to know about CPUs going up/down? */
 int __cpuinit register_cpu_notifier(struct notifier_block *nb)
 {
-	return blocking_notifier_chain_register(&cpu_chain, nb);
+	int ret;
+	mutex_lock(&cpu_add_remove_lock);
+	ret = raw_notifier_chain_register(&cpu_chain, nb);
+	mutex_unlock(&cpu_add_remove_lock);
+	return ret;
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
@@ -77,7 +81,9 @@ EXPORT_SYMBOL(register_cpu_notifier);
 
 void unregister_cpu_notifier(struct notifier_block *nb)
 {
-	blocking_notifier_chain_unregister(&cpu_chain, nb);
+	mutex_lock(&cpu_add_remove_lock);
+	raw_notifier_chain_unregister(&cpu_chain, nb);
+	mutex_unlock(&cpu_add_remove_lock);
 }
 EXPORT_SYMBOL(unregister_cpu_notifier);
 
@@ -126,7 +132,7 @@ static int _cpu_down(unsigned int cpu)
 	if (!cpu_online(cpu))
 		return -EINVAL;
 
-	err = blocking_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE,
+	err = raw_notifier_call_chain(&cpu_chain, CPU_DOWN_PREPARE,
 						(void *)(long)cpu);
 	if (err == NOTIFY_BAD) {
 		printk("%s: attempt to take down CPU %u failed\n",
@@ -146,7 +152,7 @@ static int _cpu_down(unsigned int cpu)
 
 	if (IS_ERR(p)) {
 		/* CPU didn't die: tell everyone.  Can't complain. */
-		if (blocking_notifier_call_chain(&cpu_chain, CPU_DOWN_FAILED,
+		if (raw_notifier_call_chain(&cpu_chain, CPU_DOWN_FAILED,
 				(void *)(long)cpu) == NOTIFY_BAD)
 			BUG();
 
@@ -169,7 +175,7 @@ static int _cpu_down(unsigned int cpu)
 	put_cpu();
 
 	/* CPU is completely dead: tell everyone.  Too late to complain. */
-	if (blocking_notifier_call_chain(&cpu_chain, CPU_DEAD,
+	if (raw_notifier_call_chain(&cpu_chain, CPU_DEAD,
 			(void *)(long)cpu) == NOTIFY_BAD)
 		BUG();
 
@@ -206,7 +212,7 @@ static int __devinit _cpu_up(unsigned in
 	if (cpu_online(cpu) || !cpu_present(cpu))
 		return -EINVAL;
 
-	ret = blocking_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE, hcpu);
+	ret = raw_notifier_call_chain(&cpu_chain, CPU_UP_PREPARE, hcpu);
 	if (ret == NOTIFY_BAD) {
 		printk("%s: attempt to bring up CPU %u failed\n",
 				__FUNCTION__, cpu);
@@ -223,11 +229,11 @@ static int __devinit _cpu_up(unsigned in
 	BUG_ON(!cpu_online(cpu));
 
 	/* Now call notifier in preparation. */
-	blocking_notifier_call_chain(&cpu_chain, CPU_ONLINE, hcpu);
+	raw_notifier_call_chain(&cpu_chain, CPU_ONLINE, hcpu);
 
 out_notify:
 	if (ret != 0)
-		blocking_notifier_call_chain(&cpu_chain,
+		raw_notifier_call_chain(&cpu_chain,
 				CPU_UP_CANCELED, hcpu);
 
 	return ret;

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-12 18:29   ` Andrew Morton
@ 2006-10-13 13:11     ` Helge Hafting
  2006-10-13 16:29       ` Andrew Morton
  0 siblings, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-13 13:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Andrew Morton wrote:
> On Thu, 12 Oct 2006 14:18:04 +0200
> Helge Hafting <helge.hafting@aitel.hist.no> wrote:
>
>   
>> I found an easy way to hang the kernel when copying a SD-card:
>>
>> dd if=/dev/sdc of=file bs=1048576
>>
>> I.e. copy the entire 256MB card in 1MB chunks.  I got about
>> 160MB before the kernel hung.  Not even sysrq+B worked, I needed
>> the reset button.  The pc has a total of 512MB memory if that matters.
>>
>> Using bs=4096 instead let me copy the entire card with no problems,
>> but that seems to progress slower.
>>
>> The above 'dd' command hangs my office pc every time. So I can repeat
>> it for debugging purposes. 
>>
>>     
>
> What device driver is providing /dev/sdc?
>   
It is an usb card reader, so it is "usb mass storage"
and "scsi disk".
> Did any previous kernels work correctly?  If so, which?
>   

I just got that card reader, so I haven't tested any earlier kernels.
I have another machine with a card reader, which I have used for
a long time. But I only ever copy files with "cp" on that one.

This time I used "dd" to get an image of the entire card, and got trouble
when using 1M chunks. 

I can try with verbose scsi debug messages if that might help?

Helge Hafting



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-13 13:11     ` Helge Hafting
@ 2006-10-13 16:29       ` Andrew Morton
  2006-10-13 18:10         ` [linux-usb-devel] " Alan Stern
  0 siblings, 1 reply; 88+ messages in thread
From: Andrew Morton @ 2006-10-13 16:29 UTC (permalink / raw)
  To: Helge Hafting; +Cc: linux-kernel, linux-usb-devel

On Fri, 13 Oct 2006 15:11:11 +0200
Helge Hafting <helge.hafting@aitel.hist.no> wrote:

> Andrew Morton wrote:
> > On Thu, 12 Oct 2006 14:18:04 +0200
> > Helge Hafting <helge.hafting@aitel.hist.no> wrote:
> >
> >   
> >> I found an easy way to hang the kernel when copying a SD-card:
> >>
> >> dd if=/dev/sdc of=file bs=1048576
> >>
> >> I.e. copy the entire 256MB card in 1MB chunks.  I got about
> >> 160MB before the kernel hung.  Not even sysrq+B worked, I needed
> >> the reset button.  The pc has a total of 512MB memory if that matters.
> >>
> >> Using bs=4096 instead let me copy the entire card with no problems,
> >> but that seems to progress slower.
> >>
> >> The above 'dd' command hangs my office pc every time. So I can repeat
> >> it for debugging purposes. 
> >>
> >>     
> >
> > What device driver is providing /dev/sdc?
> >   
> It is an usb card reader, so it is "usb mass storage"
> and "scsi disk".
> > Did any previous kernels work correctly?  If so, which?
> >   
> 
> I just got that card reader, so I haven't tested any earlier kernels.
> I have another machine with a card reader, which I have used for
> a long time. But I only ever copy files with "cp" on that one.
> 
> This time I used "dd" to get an image of the entire card, and got trouble
> when using 1M chunks. 
> 
> I can try with verbose scsi debug messages if that might help?
> 

Maybe.  The first step is to tell the developers. (adds cc).


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-13 16:29       ` Andrew Morton
@ 2006-10-13 18:10         ` Alan Stern
  2006-10-18  9:31           ` Helge Hafting
  0 siblings, 1 reply; 88+ messages in thread
From: Alan Stern @ 2006-10-13 18:10 UTC (permalink / raw)
  To: Helge Hafting, Andrew Morton
  Cc: Kernel development list, USB development list

On Fri, 13 Oct 2006, Andrew Morton wrote:

> On Fri, 13 Oct 2006 15:11:11 +0200
> Helge Hafting <helge.hafting@aitel.hist.no> wrote:
> 
> > Andrew Morton wrote:
> > > On Thu, 12 Oct 2006 14:18:04 +0200
> > > Helge Hafting <helge.hafting@aitel.hist.no> wrote:
> > >
> > >   
> > >> I found an easy way to hang the kernel when copying a SD-card:
> > >>
> > >> dd if=/dev/sdc of=file bs=1048576
> > >>
> > >> I.e. copy the entire 256MB card in 1MB chunks.  I got about
> > >> 160MB before the kernel hung.  Not even sysrq+B worked, I needed
> > >> the reset button.  The pc has a total of 512MB memory if that matters.
> > >>
> > >> Using bs=4096 instead let me copy the entire card with no problems,
> > >> but that seems to progress slower.
> > >>
> > >> The above 'dd' command hangs my office pc every time. So I can repeat
> > >> it for debugging purposes. 
> > >>
> > >>     
> > >
> > > What device driver is providing /dev/sdc?
> > >   
> > It is an usb card reader, so it is "usb mass storage"
> > and "scsi disk".
> > > Did any previous kernels work correctly?  If so, which?
> > >   
> > 
> > I just got that card reader, so I haven't tested any earlier kernels.
> > I have another machine with a card reader, which I have used for
> > a long time. But I only ever copy files with "cp" on that one.
> > 
> > This time I used "dd" to get an image of the entire card, and got trouble
> > when using 1M chunks. 
> > 
> > I can try with verbose scsi debug messages if that might help?

Verbose usb-storage debugging messages would help more 
(CONFIG_USB_STORAGE_DEBUG and CONFIG_USB_DEBUG).  If the kernel hangs very 
badly you might need to use a serial console to capture all the logging 
information.

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-11 21:58   ` 2.6.19-rc1-mm1 Badari Pulavarty
@ 2006-10-16 15:56     ` Andy Whitcroft
  0 siblings, 0 replies; 88+ messages in thread
From: Andy Whitcroft @ 2006-10-16 15:56 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: Martin J. Bligh, Andrew Morton, linux-kernel

Badari Pulavarty wrote:
> Martin J. Bligh wrote:
>> Andrew Morton wrote:
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc1/2.6.19-rc1-mm1/
>>>
>>>
>>>
>>>
>>>   
>> fsx seems to fail now, across several different machines.
>>
>> http://test.kernel.org/functional/index.html
>>
>>
>> and drill down under "regression" on the failing ones.
>>
>> eg, see end of
>> http://test.kernel.org/abat/54516/debug/test.log.1 (i386)
>> and
>> http://test.kernel.org/abat/54503/debug/test.log.1 (x86_64)
>>
> 
> I am seeing fsx failures on 1k/2k ext3 filesystems, but not on 4k.
> Do you know the filesystem type & blocksize ?

Ok.  I've been poking at these results to try and get you these answers.
 In the process I noted that the benchmark was recently reviewed and
overhauled.  Looking at the changes it looks like we are now reporting
the results from some tests which are backgrounded for additional load,
which would not have previously been reported.  So this might not be a
new phenomenon.  We have some stable tests coming through now, so I
should be able to use them as a reference to be sure.

Here are the ones which are failing currently, note that the 139 at the
start is the exit status as reported by the shell, so SIGSEGV:

bl6-13: x86_64 ext3
-------------------
139 ./fsx-linux -l 500000 -r 4096 -t 2048 -w 2048 -Z -R -W -N 10000
test/junkfile
139 ./fsx-linux -N 10000 -o 128000 -A -l 500000 -r 512 -t 4096 -w 1024
-Z -R -W test/junkfile


elm3b239: x86_64 reiserfs
-------------------------
139 ./fsx-linux -N 10000 -o 8192 -A -l 500000 -r 1024 -t 2048 -w 2048 -Z
-R -W test/junkfile
139 ./fsx-linux -N 10000 -o 128000 -r 2048 -w 4096 -Z -R -W test/junkfile
139 ./fsx-linux -N 10000 -o 8192 -A -l 500000 -r 1024 -t 2048 -w 1024 -Z
-R -W test/junkfile

I have also seen the following style messages on 19-rc1-mm1:

short write: 0x15000 bytes instead of 0xf000

Note that this really does mean a _long_ write!

-apw

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-13 18:10         ` [linux-usb-devel] " Alan Stern
@ 2006-10-18  9:31           ` Helge Hafting
  2006-10-18 16:26             ` Alan Stern
  0 siblings, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-18  9:31 UTC (permalink / raw)
  To: Alan Stern; +Cc: Andrew Morton, Kernel development list, USB development list

Alan Stern wrote:
> Verbose usb-storage debugging messages would help more 
> (CONFIG_USB_STORAGE_DEBUG and CONFIG_USB_DEBUG).  If the kernel hangs very 
> badly you might need to use a serial console to capture all the logging 
> information.
>   
Version information first: This is 2.6.19-rc1, not mm1.  I apparently
forgot to apply the mm1 patch before compiling it.

I got a BUG, which I could write down by getting X out of the way first.
It is repeatable, just ask if I omitted something cruical. On bootup,
the verbose debugging complains about read errors on sdc,
I guess the kernel tries to get the partition table.  I have no idea
why there is read errors - that shouldn't hang anything though.

To bring it down:

dd if=/dev/sdc of=sdc.dump bs=1M

sd 0:0:0:2 ioctl_internal_command return code: 8000002
 :Current: Sense key: Hardware Error
  Additional Sense: End_of_data detected
cut here----
Kernel BUG at [Verbose debugging unavailable]
invalid opcode: 0000 [#1]
cpu:0
EIP: 0060:[<c031f823>] Not tainted VLI
Eflags: 00010002  (2.6.16-rc1 #16)
EIP is at start_unlink_async
eax:00000000 ebx:dfe69180 ecx:e0832020 edx:00000005
esi:dffdb6bc edi:00010021 ebp:dffdb6bc esp:c0664d58
ds:007b es:007b ss:0068
Process swapper . . .
stack . . .
Call trace
ehci_urb_dequeue
unlink1
usb_hcd_unlink_urb
sg_complete
usb_hcd_giveback_urb
qh_completions
ehci_work
ehci_irq
usb_hcd_irq
handle_IRQ_event
handle_fasteoi_irq
do_IRQ

Code 5d e9 8e 31 ff ff f6 43 28 01 75 b8 c7 43 24 00 00 00 00 eb af . . .
<0>Kernel Panic - not syncing fatal exception in interrupt
<0>Rebooting in 300 seconds

It did reboot in 300 seconds, I had to crash twice to get this much written down.
I checked that stuff written down the first time was identical.

Invalid opcode suggest a compiler bug or memory scribble, or possibly
calling a bad function pointer. The crash is trivial to reproduce,
just ask me.

In case it matters:
$ lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] SiS645DX Host & Memory & AGP Controller
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] (rev 04)
00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:0b.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78)
00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]


Helge 


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-18  9:31           ` Helge Hafting
@ 2006-10-18 16:26             ` Alan Stern
  2006-10-19 12:25               ` Helge Hafting
  0 siblings, 1 reply; 88+ messages in thread
From: Alan Stern @ 2006-10-18 16:26 UTC (permalink / raw)
  To: Helge Hafting; +Cc: Paolo Ornati, Kernel development list, USB development list

On Wed, 18 Oct 2006, Helge Hafting wrote:

> Alan Stern wrote:
> > Verbose usb-storage debugging messages would help more 
> > (CONFIG_USB_STORAGE_DEBUG and CONFIG_USB_DEBUG).  If the kernel hangs very 
> > badly you might need to use a serial console to capture all the logging 
> > information.
> >   
> Version information first: This is 2.6.19-rc1, not mm1.  I apparently
> forgot to apply the mm1 patch before compiling it.
> 
> I got a BUG, which I could write down by getting X out of the way first.
> It is repeatable, just ask if I omitted something cruical. On bootup,
> the verbose debugging complains about read errors on sdc,
> I guess the kernel tries to get the partition table.  I have no idea
> why there is read errors - that shouldn't hang anything though.

That's why I asked for the USB debugging logs (which you forgot to include
here).

> To bring it down:
> 
> dd if=/dev/sdc of=sdc.dump bs=1M
> 
> sd 0:0:0:2 ioctl_internal_command return code: 8000002
>  :Current: Sense key: Hardware Error
>   Additional Sense: End_of_data detected
> cut here----
> Kernel BUG at [Verbose debugging unavailable]
> invalid opcode: 0000 [#1]
> cpu:0
> EIP: 0060:[<c031f823>] Not tainted VLI
> Eflags: 00010002  (2.6.16-rc1 #16)

Hmmm.  Well, a recent patch affecting that area was just reverted because 
it added some problems.  Maybe you're seeing those same problems.  
Although I don't think they involved invalid opcode errors...

You're the second person I've seen report invalid opcode errors in the
recent kernels.  The other report involved uhci-hcd, not ehci-hcd.  See
here:

http://marc.theaimsgroup.com/?l=linux-usb-users&m=115942141207661&w=2

It's possible that both of these are caused by something unrelated 
overwriting kernel memory.

By the way, what happens if you add a "skip=" argument to dd so that the 
copy begins near the end of the device?  Does the oops then occur that 
much sooner?

Oh, and the next time this happens, could you copy down all of the code
bytes from the oops message?  And also provide the section from "objdump
-d drivers/usb/host/ehci-hcd.o" for the start_unlink_async routine?

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-18 16:26             ` Alan Stern
@ 2006-10-19 12:25               ` Helge Hafting
  2006-10-19 18:40                 ` Alan Stern
  0 siblings, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-19 12:25 UTC (permalink / raw)
  To: Alan Stern; +Cc: Paolo Ornati, Kernel development list, USB development list

[-- Attachment #1: Type: text/plain, Size: 2202 bytes --]

Alan Stern wrote:
> On Wed, 18 Oct 2006, Helge Hafting wrote:
>   
[...]
> That's why I asked for the USB debugging logs (which you forgot to include
> here).
>   
Attached dmesg.gz with lots of usb messages.

>> To bring it down:
>>
>> dd if=/dev/sdc of=sdc.dump bs=1M
>>     
This time, it seems to have crashed on the first megabyte.
I mounted the filesystem synchronously, and still I had 0 bytes
in the dumpfile.  The crash also came with no delay after
pressing enter.

> It's possible that both of these are caused by something unrelated 
> overwriting kernel memory.
>   
something like a function pointer mistaken for a data pointer?
> By the way, what happens if you add a "skip=" argument to dd so that the 
> copy begins near the end of the device?  Does the oops then occur that 
> much sooner?
>   
No, it is random. May happen immediately, may happen after a while.
I even had "cfdisk /dev/sdc" crash on me fresh after a reboot.
> Oh, and the next time this happens, could you copy down all of the code
> bytes from the oops message?  And also provide the section from "objdump
> -d drivers/usb/host/ehci-hcd.o" for the start_unlink_async routine?
>   
objdump for start_unlink_async attached.

 From the BUG:

Stack (All I got before it rebooted after 300s)
00000010 c0664dc8 dff84000 dffdbc00 dffdb600 00000296
df9244c0 c03248de c0664dc8

EIP: [<c031f823>] start_unlink_async+0x16/0xf2
SS:ESP:0068:c0664d58



Code (Complete) 5d e9 8e 31 ff ff f6 43 28 01 75 b8 c7 43 24 00 00 00 00 
eb af
57 56 53 83 ec 10 89 c6 89 d3 8b 48 04 8b 39 8b 40 14 85 c0 74
6f <0f> 0b 39 5e 10 74 78 c6 43 68 02 8d 43 60 e8 9f 3c f1 ff 89 5e

I found this in the start_unlink_async dump - here it is with the
same line breaking as well as the differences:
{Before start_unlink_async}
5d
e9 8e 31 ff ff        ; objdump has "e9 fc ff ff ff" here, it is a jump
f6 43 28 01
75 b8
c7 43 24 00 00 00 00
eb af
start_unlink_async
57
56
53
83 ec 10
89 c6
89 d3
8b 48 04
8b 39
8b 40 14
85 c0
74 6f
0f 0b
39 5e 10
74 78
c6 43 68 02
8d 43 60
e8 9f 3c f1 ff ; objdump has "e8 fc ff ff ff" here, a call
89 5e

Calls and jumps are different, but I guess that is just linking effects?

Hope this is useful,
Helge Hafting

[-- Attachment #2: dmesg.gz --]
[-- Type: application/gzip, Size: 10451 bytes --]

[-- Attachment #3: objdump.start_unlink_async --]
[-- Type: text/plain, Size: 5409 bytes --]

00000fed <start_unlink_async>:
     fed:       57                      push   %edi
     fee:       56                      push   %esi
     fef:       53                      push   %ebx
     ff0:       83 ec 10                sub    $0x10,%esp
     ff3:       89 c6                   mov    %eax,%esi
     ff5:       89 d3                   mov    %edx,%ebx
     ff7:       8b 48 04                mov    0x4(%eax),%ecx
     ffa:       8b 39                   mov    (%ecx),%edi
     ffc:       8b 40 14                mov    0x14(%eax),%eax
     fff:       85 c0                   test   %eax,%eax
    1001:       74 6f                   je     1072 <start_unlink_async+0x85>
    1003:       0f 0b                   ud2a   
    1005:       39 5e 10                cmp    %ebx,0x10(%esi)
    1008:       74 78                   je     1082 <start_unlink_async+0x95>
    100a:       c6 43 68 02             movb   $0x2,0x68(%ebx)
    100e:       8d 43 60                lea    0x60(%ebx),%eax
    1011:       e8 fc ff ff ff          call   1012 <start_unlink_async+0x25>
    1016:       89 5e 14                mov    %ebx,0x14(%esi)
    1019:       8b 4e 10                mov    0x10(%esi),%ecx
    101c:       8b 41 48                mov    0x48(%ecx),%eax
    101f:       39 c3                   cmp    %eax,%ebx
    1021:       74 09                   je     102c <start_unlink_async+0x3f>
    1023:       89 c1                   mov    %eax,%ecx
    1025:       8b 40 48                mov    0x48(%eax),%eax
    1028:       39 c3                   cmp    %eax,%ebx
    102a:       75 f7                   jne    1023 <start_unlink_async+0x36>
    102c:       8b 03                   mov    (%ebx),%eax
    102e:       89 01                   mov    %eax,(%ecx)
    1030:       8b 43 48                mov    0x48(%ebx),%eax
    1033:       89 41 48                mov    %eax,0x48(%ecx)
    1036:       8b 46 fc                mov    0xfffffffc(%esi),%eax
    1039:       85 c0                   test   %eax,%eax
    103b:       0f 84 83 00 00 00       je     10c4 <start_unlink_async+0xd7>
    1041:       8b 46 04                mov    0x4(%esi),%eax
    1044:       83 cf 40                or     $0x40,%edi
    1047:       89 38                   mov    %edi,(%eax)
    1049:       8b 46 04                mov    0x4(%esi),%eax
    104c:       8b 00                   mov    (%eax),%eax
    104e:       8b 86 84 00 00 00       mov    0x84(%esi),%eax
    1054:       85 c0                   test   %eax,%eax
    1056:       75 41                   jne    1099 <start_unlink_async+0xac>
    1058:       8b 15 00 00 00 00       mov    0x0,%edx
    105e:       8d 86 84 00 00 00       lea    0x84(%esi),%eax
    1064:       83 c2 0a                add    $0xa,%edx
    1067:       83 c4 10                add    $0x10,%esp
    106a:       5b                      pop    %ebx
    106b:       5e                      pop    %esi
    106c:       5f                      pop    %edi
    106d:       e9 fc ff ff ff          jmp    106e <start_unlink_async+0x81>
    1072:       0f b6 52 68             movzbl 0x68(%edx),%edx
    1076:       80 fa 01                cmp    $0x1,%dl
    1079:       74 8a                   je     1005 <start_unlink_async+0x18>
    107b:       80 fa 04                cmp    $0x4,%dl
    107e:       75 83                   jne    1003 <start_unlink_async+0x16>
    1080:       eb 83                   jmp    1005 <start_unlink_async+0x18>
    1082:       8b 56 fc                mov    0xfffffffc(%esi),%edx
    1085:       85 d2                   test   %edx,%edx
    1087:       74 09                   je     1092 <start_unlink_async+0xa5>
    1089:       85 c0                   test   %eax,%eax
    108b:       90                      nop    
    108c:       8d 74 26 00             lea    0x0(%esi),%esi
    1090:       74 3e                   je     10d0 <start_unlink_async+0xe3>
    1092:       83 c4 10                add    $0x10,%esp
    1095:       5b                      pop    %ebx
    1096:       5e                      pop    %esi
    1097:       5f                      pop    %edi
    1098:       c3                      ret    
    1099:       c7 44 24 0c 65 00 00    movl   $0x65,0xc(%esp)
    10a0:       00 
    10a1:       c7 44 24 08 78 00 00    movl   $0x78,0x8(%esp)
    10a8:       00 
    10a9:       c7 44 24 04 00 00 00    movl   $0x0,0x4(%esp)
    10b0:       00 
    10b1:       c7 04 24 18 00 00 00    movl   $0x18,(%esp)
    10b8:       e8 fc ff ff ff          call   10b9 <start_unlink_async+0xcc>
    10bd:       e8 fc ff ff ff          call   10be <start_unlink_async+0xd1>
    10c2:       eb 94                   jmp    1058 <start_unlink_async+0x6b>
    10c4:       31 d2                   xor    %edx,%edx
    10c6:       89 f0                   mov    %esi,%eax
    10c8:       83 c4 10                add    $0x10,%esp
    10cb:       5b                      pop    %ebx
    10cc:       5e                      pop    %esi
    10cd:       5f                      pop    %edi
    10ce:       eb 0f                   jmp    10df <end_unlink_async>
    10d0:       83 e7 df                and    $0xffffffdf,%edi
    10d3:       89 39                   mov    %edi,(%ecx)
    10d5:       0f ba b6 b4 00 00 00    btrl   $0x2,0xb4(%esi)
    10dc:       02 
    10dd:       eb b3                   jmp    1092 <start_unlink_async+0xa5>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-19 12:25               ` Helge Hafting
@ 2006-10-19 18:40                 ` Alan Stern
  2006-10-19 18:57                   ` Christopher "Monty" Montgomery
  2006-10-20 11:44                   ` Helge Hafting
  0 siblings, 2 replies; 88+ messages in thread
From: Alan Stern @ 2006-10-19 18:40 UTC (permalink / raw)
  To: Helge Hafting
  Cc: Christopher Monty Montgomery, Paolo Ornati,
	Kernel development list, USB development list

On Thu, 19 Oct 2006, Helge Hafting wrote:

> Alan Stern wrote:
> > On Wed, 18 Oct 2006, Helge Hafting wrote:
> >   
> [...]
> > That's why I asked for the USB debugging logs (which you forgot to include
> > here).
> >   
> Attached dmesg.gz with lots of usb messages.

But no messages from the time just before the BUG occurred.  :-(

> >> To bring it down:
> >>
> >> dd if=/dev/sdc of=sdc.dump bs=1M
> >>     
> This time, it seems to have crashed on the first megabyte.
> I mounted the filesystem synchronously, and still I had 0 bytes
> in the dumpfile.  The crash also came with no delay after
> pressing enter.
> 
> > It's possible that both of these are caused by something unrelated 
> > overwriting kernel memory.
> >   
> something like a function pointer mistaken for a data pointer?

After looking at the debugging output, no.  That "invalid opcode" is a red 
herring.  What you encountered this time was a BUG() in the source code of 
start_unlink_async() in drivers/usb/host/ehci-q.c:

#ifdef DEBUG
	assert_spin_locked(&ehci->lock);
	if (ehci->reclaim
			|| (qh->qh_state != QH_STATE_LINKED
				&& qh->qh_state != QH_STATE_UNLINK_WAIT)
			)
		BUG ();
#endif

You could try putting a printk() just before the BUG() to display the 
values of ehci->reclaim and qh->qh_state.  Maybe also change the BUG() to 
WARN(), which might help prevent your system from crashing so badly.

Monty has been making changes to this driver recently; maybe he has some 
ideas about the problem.

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-19 18:40                 ` Alan Stern
@ 2006-10-19 18:57                   ` Christopher "Monty" Montgomery
  2006-10-20 11:44                   ` Helge Hafting
  1 sibling, 0 replies; 88+ messages in thread
From: Christopher "Monty" Montgomery @ 2006-10-19 18:57 UTC (permalink / raw)
  To: Alan Stern
  Cc: Helge Hafting, Paolo Ornati, Kernel development list,
	USB development list

On 10/19/06, Alan Stern <stern@rowland.harvard.edu> wrote:

> Monty has been making changes to this driver recently; maybe he has some
> ideas about the problem.

I have been watching the thread worried that this is due to a change
I've made.  However, I should not have done anything to change
handling on the async queue-- at least, I've not made any changes
intentionally, which is not the same thing as not making any changes.

I'll also be interested to see the result of the additional debug message.

Monty

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-19 18:40                 ` Alan Stern
  2006-10-19 18:57                   ` Christopher "Monty" Montgomery
@ 2006-10-20 11:44                   ` Helge Hafting
  2006-10-20 15:55                     ` Alan Stern
  1 sibling, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-20 11:44 UTC (permalink / raw)
  To: Alan Stern
  Cc: Christopher Monty Montgomery, Paolo Ornati,
	Kernel development list, USB development list

Alan Stern wrote:
[...]
> After looking at the debugging output, no.  That "invalid opcode" is a red 
> herring.  What you encountered this time was a BUG() in the source code of 
> start_unlink_async() in drivers/usb/host/ehci-q.c:
>
> #ifdef DEBUG
> 	assert_spin_locked(&ehci->lock);
> 	if (ehci->reclaim
> 			|| (qh->qh_state != QH_STATE_LINKED
> 				&& qh->qh_state != QH_STATE_UNLINK_WAIT)
> 			)
> 		BUG ();
> #endif
>
> You could try putting a printk() just before the BUG() to display the 
> values of ehci->reclaim and qh->qh_state.  Maybe also change the BUG() to 
>   
ehci->reclaim=0
qh->qh_state=5
> WARN(), which might help prevent your system from crashing so badly.
>   
WARN didn't help much. I then got the warning twice, followed by
another BUG:
process klogd
ehci_irq
usb_hcd_irq
handle_IRQ_event
handle_fasteio_irq
do_IRQ

So I set it back to BUG. Crashing hard isn't so bad when I
know what is coming - I simply remount everything synchronously
before trying.

I hope these printk's help. I can add more of them too, if needed.
Big transfers seems to bring out the worst - I always get the
crash on the first megabyte now. 

During boot I get lots of those "Hardware error, end-of-data detected"
messages, but I've never seen it crash during bootup.

Helge Hafting

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-20 11:44                   ` Helge Hafting
@ 2006-10-20 15:55                     ` Alan Stern
  2006-10-23  9:12                       ` Helge Hafting
  2006-10-23 20:36                       ` Christopher "Monty" Montgomery
  0 siblings, 2 replies; 88+ messages in thread
From: Alan Stern @ 2006-10-20 15:55 UTC (permalink / raw)
  To: Helge Hafting
  Cc: Christopher Monty Montgomery, Paolo Ornati,
	Kernel development list, USB development list

On Fri, 20 Oct 2006, Helge Hafting wrote:

> Alan Stern wrote:
> [...]
> > After looking at the debugging output, no.  That "invalid opcode" is a red 
> > herring.  What you encountered this time was a BUG() in the source code of 
> > start_unlink_async() in drivers/usb/host/ehci-q.c:
> >
> > #ifdef DEBUG
> > 	assert_spin_locked(&ehci->lock);
> > 	if (ehci->reclaim
> > 			|| (qh->qh_state != QH_STATE_LINKED
> > 				&& qh->qh_state != QH_STATE_UNLINK_WAIT)
> > 			)
> > 		BUG ();
> > #endif
> >
> > You could try putting a printk() just before the BUG() to display the 
> > values of ehci->reclaim and qh->qh_state.  Maybe also change the BUG() to 
> >   
> ehci->reclaim=0
> qh->qh_state=5

5 is QH_STATE_COMPLETING.  That explains why the BUG() fires.

At this point it's beyond me.  Monty will have to take it from here.


> During boot I get lots of those "Hardware error, end-of-data detected"
> messages, but I've never seen it crash during bootup.

Those messages are from the card reader.  It doesn't seem to be working 
right.  It returns the "end-of-data" error in response to a PREVENT MEDIUM 
REMOVAL command and it returns a phase error in response to a READ 
command.  In spite of the fact that it claims to have a 256 MB card 
present.

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.19-rc1-mm1
  2006-10-10 21:52       ` 2.6.19-rc1-mm1 Andrew Morton
@ 2006-10-20 20:44         ` Thomas Gleixner
  0 siblings, 0 replies; 88+ messages in thread
From: Thomas Gleixner @ 2006-10-20 20:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Michal Piotrowski, linux-kernel

On Tue, 2006-10-10 at 14:52 -0700, Andrew Morton wrote:
> On Tue, 10 Oct 2006 23:44:04 +0200
> "Michal Piotrowski" <michal.k.k.piotrowski@gmail.com> wrote:
> 
> > BTW. Kernel hangs while running Cyclictest
> > (http://rt.wiki.kernel.org/index.php/Cyclictest)
> > cyclictest -t 10 -l 100000
> > (or "bin/autotest tests/cyclictest/control" in autotest). I don't see
> > nothing special on tty (currently my sysklogd is broken, FC6
> > problem..)

Michal,

is this on a SMP box ?

	tglx



^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-20 15:55                     ` Alan Stern
@ 2006-10-23  9:12                       ` Helge Hafting
  2006-10-23 14:13                         ` Alan Stern
  2006-10-23 20:36                       ` Christopher "Monty" Montgomery
  1 sibling, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-23  9:12 UTC (permalink / raw)
  To: Alan Stern
  Cc: Christopher Monty Montgomery, Paolo Ornati,
	Kernel development list, USB development list

Alan Stern wrote:
>>> You could try putting a printk() just before the BUG() to display the 
>>> values of ehci->reclaim and qh->qh_state.  Maybe also change the BUG() to 
>>>   
>>>       
>> ehci->reclaim=0
>> qh->qh_state=5
>>     
>
> 5 is QH_STATE_COMPLETING.  That explains why the BUG() fires.
>
> At this point it's beyond me.  Monty will have to take it from here.
>
>   
>> During boot I get lots of those "Hardware error, end-of-data detected"
>> messages, but I've never seen it crash during bootup.
>>     
>
> Those messages are from the card reader.  It doesn't seem to be working 
> right.  It returns the "end-of-data" error in response to a PREVENT MEDIUM 
> REMOVAL command
Unlike a cdrom, it doesn't have the means to prevent media removal. :-)
>  and it returns a phase error in response to a READ 
> command.  In spite of the fact that it claims to have a 256 MB card 
> present.
>   
It has slots for several different cards, all the other
slots are empty. 

Perhaps it is broken, but interesting as a "stress-test".
Linux should not crash because of a bad usb thing, just complain.

Helge Hafting


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-23  9:12                       ` Helge Hafting
@ 2006-10-23 14:13                         ` Alan Stern
  0 siblings, 0 replies; 88+ messages in thread
From: Alan Stern @ 2006-10-23 14:13 UTC (permalink / raw)
  To: Helge Hafting
  Cc: Christopher Monty Montgomery, Paolo Ornati,
	Kernel development list, USB development list

On Mon, 23 Oct 2006, Helge Hafting wrote:

> >> During boot I get lots of those "Hardware error, end-of-data detected"
> >> messages, but I've never seen it crash during bootup.
> >>     
> >
> > Those messages are from the card reader.  It doesn't seem to be working 
> > right.  It returns the "end-of-data" error in response to a PREVENT MEDIUM 
> > REMOVAL command
> Unlike a cdrom, it doesn't have the means to prevent media removal. :-)

There's nothing wrong with that; lots of devices don't have the means to 
prevent media removal.  The proper response is "Invalid Command", not "End 
of Data".  If the device sent the proper reply you wouldn't get all those 
"Hardware error, end-of-data detected" messages in the log.

> >  and it returns a phase error in response to a READ 
> > command.  In spite of the fact that it claims to have a 256 MB card 
> > present.
> >   
> It has slots for several different cards, all the other
> slots are empty. 

Were all the slots empty?  If yes, the reader should not have indicated a
card was present in that slot.  If no, the reader should have returned the
data from the card instead of a phase error.  Either way, it misbehaved.

> Perhaps it is broken, but interesting as a "stress-test".
> Linux should not crash because of a bad usb thing, just complain.

Linux did not crash because of the bad reader; it crashed because of an 
unrelated bug in ehci-hcd.  (Although it's possible that the bug was 
triggered by the error-recovery for the bad reader.)

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-20 15:55                     ` Alan Stern
  2006-10-23  9:12                       ` Helge Hafting
@ 2006-10-23 20:36                       ` Christopher "Monty" Montgomery
  2006-10-24 10:16                         ` Helge Hafting
  1 sibling, 1 reply; 88+ messages in thread
From: Christopher "Monty" Montgomery @ 2006-10-23 20:36 UTC (permalink / raw)
  To: Alan Stern
  Cc: Helge Hafting, Paolo Ornati, Kernel development list,
	USB development list

On 10/20/06, Alan Stern <stern@rowland.harvard.edu> wrote:
> At this point it's beyond me.  Monty will have to take it from here.

I will look more closely at what might have changed there.  Despite
the code refactoring (and a hand-resolved patch collision at that
point) the async disable handling *should* have been functionally
unchanged from 2.6.18.  I will revisit that closely.

Has it actually been demonstrated that this does not crash 2.6.18
(pre-my-patches) kernels?  If it crashes earlier, that doesn't mean
I'm uninterested in fixing it, I just want to know.  I don't think
that had been explicitly answered earlier in the thread.

Monty

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-23 20:36                       ` Christopher "Monty" Montgomery
@ 2006-10-24 10:16                         ` Helge Hafting
  2006-10-24 14:09                           ` Alan Stern
  0 siblings, 1 reply; 88+ messages in thread
From: Helge Hafting @ 2006-10-24 10:16 UTC (permalink / raw)
  To: Christopher "Monty" Montgomery
  Cc: Alan Stern, Paolo Ornati, Kernel development list, USB development list

[-- Attachment #1: Type: text/plain, Size: 1237 bytes --]

Christopher "Monty" Montgomery wrote:
> On 10/20/06, Alan Stern <stern@rowland.harvard.edu> wrote:
>> At this point it's beyond me.  Monty will have to take it from here.
>
> I will look more closely at what might have changed there.  Despite
> the code refactoring (and a hand-resolved patch collision at that
> point) the async disable handling *should* have been functionally
> unchanged from 2.6.18.  I will revisit that closely.
>
> Has it actually been demonstrated that this does not crash 2.6.18
> (pre-my-patches) kernels?
I just tested this. 2.6.18 does not crash. I still get tons of errors,
and no data. Copying using 1MB chunks or 4kB chunks
don't matter, it doesn't work.  So card, reader or driver must be faulty.
The card works in a windows machine though.

2.6.19-rc1 gets data with 4kB chunks, and BUGs with 1M chunks.
> If it crashes earlier, that doesn't mean
> I'm uninterested in fixing it, I just want to know.  I don't think
> that had been explicitly answered earlier in the thread.
2.6.18 wasn't tried before, the reason being I did not have this
card reader when 2.6.18 was current.

dmesg output for 2.6.18 (after the dd attempts) is attached.  I have
edited out stuff that isn't usb or scsi.

Helge Hafting


[-- Attachment #2: dmesg3.gz --]
[-- Type: application/gzip, Size: 3387 bytes --]

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader
  2006-10-24 10:16                         ` Helge Hafting
@ 2006-10-24 14:09                           ` Alan Stern
  0 siblings, 0 replies; 88+ messages in thread
From: Alan Stern @ 2006-10-24 14:09 UTC (permalink / raw)
  To: Helge Hafting
  Cc: Christopher "Monty" Montgomery, Paolo Ornati,
	Kernel development list, USB development list

On Tue, 24 Oct 2006, Helge Hafting wrote:

> I just tested this. 2.6.18 does not crash. I still get tons of errors,
> and no data. Copying using 1MB chunks or 4kB chunks
> don't matter, it doesn't work.  So card, reader or driver must be faulty.
> The card works in a windows machine though.
> 
> 2.6.19-rc1 gets data with 4kB chunks, and BUGs with 1M chunks.

It would be interesting to compare 2.6.18 with 2.6.19-rc to see why the 
first gets only errors while the second is able to transfer some data 
using 4 KB chunks.

(By the way, what do you mean by 4 KB chunks or 1 MB chunks?  Does this 
refer to the bs= option for dd?  That has almost nothing to do with the 
size of the transfers actually sent to the device.)

But the log will be useless unless you turn on CONFIG_USB_STORAGE_DEBUG.

Alan Stern


^ permalink raw reply	[flat|nested] 88+ messages in thread

end of thread, other threads:[~2006-10-24 14:09 UTC | newest]

Thread overview: 88+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-10  7:09 2.6.19-rc1-mm1 Andrew Morton
2006-10-10  7:20 ` 2.6.19-rc1-mm1 Arjan van de Ven
2006-10-10  7:45   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10  8:03     ` 2.6.19-rc1-mm1 Arjan van de Ven
2006-10-10 13:14       ` RSS accounting (was: Re: 2.6.19-rc1-mm1) Peter Zijlstra
2006-10-10 16:13         ` Arjan van de Ven
2006-10-10 23:54           ` Eric W. Biederman
2006-10-11  8:47             ` Arjan van de Ven
2006-10-11 12:07               ` Eric W. Biederman
2006-10-11 13:55                 ` Arjan van de Ven
2006-10-11 17:15                   ` Chen, Kenneth W
2006-10-11 22:36                     ` Benjamin LaHaise
2006-10-10  7:31 ` 2.6.19-rc1-mm1 Miguel Ojeda
2006-10-10  8:10   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10  9:57     ` 2.6.19-rc1-mm1 Miguel Ojeda
2006-10-10 18:25       ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
2006-10-10 12:19 ` 2.6.19-rc1-mm1 Theodore Tso
2006-10-10 12:26   ` 2.6.19-rc1-mm1 Arjan van de Ven
2006-10-10 16:21   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10 13:10 ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-10 14:04   ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-11  5:35     ` 2.6.19-rc1-mm1 Neil Brown
2006-10-11 10:48       ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-11 11:23         ` 2.6.19-rc1-mm1 Arjan van de Ven
2006-10-11 13:08           ` _cpu_down deadlock [was Re: 2.6.19-rc1-mm1] Neil Brown
2006-10-11 13:32             ` Rusty Russell
2006-10-11 16:39             ` Andrew Morton
2006-10-11 23:46               ` Neil Brown
2006-10-12  6:51                 ` Arjan van de Ven
2006-10-12  7:53                   ` SPAM: " Neil Brown
2006-10-12  8:04                     ` Andrew Morton
2006-10-13  4:49                       ` Neil Brown
2006-10-10 15:47 ` BUG in filp_close() (was: Re: 2.6.19-rc1-mm1) Dave Kleikamp
2006-10-10 22:07   ` Dave Kleikamp
2006-10-10 22:14     ` Vadim Lobanov
2006-10-10 22:38     ` Vadim Lobanov
2006-10-10 16:09 ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-10 19:04   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10 21:44     ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-10 21:52       ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-20 20:44         ` 2.6.19-rc1-mm1 Thomas Gleixner
2006-10-10 17:15 ` BUG() in copy_fdtable() with 64K pages (2.6.19-rc1-mm1) Olof Johansson
2006-10-10 19:34   ` Andrew Morton
2006-10-10 20:20   ` Linas Vepstas
2006-10-10 20:31     ` Vadim Lobanov
2006-10-10 23:05       ` Linas Vepstas
2006-10-10 18:09 ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
2006-10-10 19:25   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10 19:41     ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
2006-10-10 23:10     ` 2.6.19-rc1-mm1 Paul Mackerras
2006-10-10 23:16       ` 2.6.19-rc1-mm1 Jeremy Fitzhardinge
2006-10-10 23:37       ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-10 22:17 ` 2.6.19-rc1-mm1 Badari Pulavarty
2006-10-11  6:56   ` 2.6.19-rc1-mm1 Arjan van de Ven
2006-10-11  3:13 ` 2.6.19-rc1-mm1 Badari Pulavarty
2006-10-11  4:01   ` 2.6.19-rc1-mm1 Andrew Morton
     [not found]     ` <1160578934.1447.1.camel@dyn9047017100.beaverton.ibm.com>
2006-10-11 16:56       ` 2.6.19-rc1-mm1 (ext4 problem ?) Andrew Morton
2006-10-11 17:08         ` Badari Pulavarty
2006-10-11 12:51   ` 2.6.19-rc1-mm1 Theodore Tso
2006-10-11 19:54 ` 2.6.19-rc1-mm1 Martin J. Bligh
2006-10-11 21:58   ` 2.6.19-rc1-mm1 Badari Pulavarty
2006-10-16 15:56     ` 2.6.19-rc1-mm1 Andy Whitcroft
2006-10-11 19:59 ` 2.6.19-rc1-mm1 Martin J. Bligh
2006-10-11 20:10   ` 2.6.19-rc1-mm1 Michal Piotrowski
2006-10-11 21:47   ` 2.6.19-rc1-mm1 Andrew Morton
2006-10-12 10:22     ` 2.6.19-rc1-mm1 Andy Whitcroft
2006-10-12 18:09     ` 2.6.19-rc1-mm1 Badari Pulavarty
2006-10-12 18:52       ` 2.6.19-rc1-mm1 Vadim Lobanov
2006-10-12 19:01         ` 2.6.19-rc1-mm1 Badari Pulavarty
2006-10-11 21:19 ` 2.6.19-rc1-mm1 Michael Lothian
2006-10-12 12:18 ` 2.6.19-rc1-mm1 - locks when using "dd bs=1M" from card reader Helge Hafting
2006-10-12 18:29   ` Andrew Morton
2006-10-13 13:11     ` Helge Hafting
2006-10-13 16:29       ` Andrew Morton
2006-10-13 18:10         ` [linux-usb-devel] " Alan Stern
2006-10-18  9:31           ` Helge Hafting
2006-10-18 16:26             ` Alan Stern
2006-10-19 12:25               ` Helge Hafting
2006-10-19 18:40                 ` Alan Stern
2006-10-19 18:57                   ` Christopher "Monty" Montgomery
2006-10-20 11:44                   ` Helge Hafting
2006-10-20 15:55                     ` Alan Stern
2006-10-23  9:12                       ` Helge Hafting
2006-10-23 14:13                         ` Alan Stern
2006-10-23 20:36                       ` Christopher "Monty" Montgomery
2006-10-24 10:16                         ` Helge Hafting
2006-10-24 14:09                           ` Alan Stern
2006-10-12 18:37 ` 2.6.19-rc1-mm1 Valdis.Kletnieks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).