public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.6.8.1-mm1
@ 2004-08-16 21:37 Andrew Morton
  2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
                   ` (9 more replies)
  0 siblings, 10 replies; 38+ messages in thread
From: Andrew Morton @ 2004-08-16 21:37 UTC (permalink / raw)
  To: linux-kernel


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


- perfctr is ready to be merged up, but there are concerns that it
  duplicates perfmon capabilities, and that perfmon may be a better base from
  which to start.  Am waiting for the dust to settle on that front.

- The packet-writing patches should be ready to go, but I haven't even
  looked at them yet, and am not sure that anyone else has reviewed the code.

- Added the kprobes facility.

  Generally we prefer to not merge infrastructure into the kernel unless it
  has in-kernel users.  kprobes is exceptional, in that its applications are
  all custom-written to solve a particular problem.

  One problem we face with kprobes is that there is no easy way in which it
  can receive runtime (or regression) testing.

  This patchset does include an application (a network packet tracer) but
  it's not obvious that we should retain that in the kernel.

- This kernel probably still has the ia64 scheduler startup bug, although it
  works For Me.

- If people have significant patches in here, please regression test them to
  make sure everything landed OK, thanks.




Changes since 2.6.8-rc4-mm1:


 linus.patch
 bk-acpi.patch
 bk-agpgart.patch
 bk-alsa.patch
 bk-arm.patch
 bk-dma-declare-coherent-memory.patch
 bk-cpufreq.patch
 bk-driver-core.patch
 bk-drm.patch
 bk-ieee1394.patch
 bk-input.patch
 bk-kbuild.patch
 bk-libata.patch
 bk-netdev.patch
 bk-ntfs.patch
 bk-pci.patch
 bk-pnp.patch
 bk-power.patch
 bk-scsi.patch
 bk-usb.patch

 Latest versions of external trees

-bk-netdev-axnet_cs-fix.patch
-bk-netdev-hp-plus-fix.patch
-fa311-mac-address-fix.patch
-268-rc2-mm1-link-errors.patch
-drm-optimisation.patch
-add-bus-dependencies-to-two-scsi-drivers.patch
-cdrom-mo-drive-open-write-fix.patch
-qla2xxx-allocation-mode-fix.patch
-scsi-gdth-kill-define-__devinitdata.patch
-remove-spaces-from-pci-ide-pci_drivername-field.patch

 Merged

-sysfs-backing-store-add-sysfs_dirent-to-sysfs-dentry.patch
-sysfs-backing-store-use-sysfs_dirent-tree-for-readdir-etc.patch
-sysfs-backing-store-free-sysfs_dirent-on-file-removal.patch
-sysfs-backing-store-change-sysfs_file_operations.patch
+sysfs-backing-store-prepare-file_operations.patch
+sysfs-backing-store-add-sysfs_dirent.patch
+sysfs-backing-store-use-sysfs_dirent-tree-in-removal.patch
+sysfs-backing-store-use-sysfs_dirent-tree-in-dir-file_operations.patch
 sysfs-backing-store-stop-pinning-dentries-inodes-for-leaves.patch

 New version of the sysfs-backed-by-kobject space-saving patches

+i2c-keywestc-build-fix.patch
+ipr-build-fix.patch

 Build fixes for external trees

+nmi-build-fix-2.patch

 Build fix

+i386_exception_notifiers.patch
+kprobes-base.patch
+kprobes-unset-fix.patch
+kprobes-func-args.patch
+kprobes-build-fix.patch
+network-packet-tracer-module-using-kprobes-interface.patch

 kprobes, plus an application thereof.

+kgdb-is-incompatible-with-kprobes.patch

 Plaster over kprobes/kgdb incompatibilities

+ppc32-make-ppc40x-large-tlb-mapping-optional.patch
+ppc32-handle-misaligned-string-multiple-insns.patch
+ppc32-emulate-obsolete-instructions.patch
+ppc32-emulate-obsolete-instructions-fix.patch
+ppc32-add-docs-for-ppc-noltlbs-and-nobats-parameters.patch

 ppc32 updates

+ppc64-reduce-stack-overflow-warning-threshold.patch
+ppc64-remove-old-asm-offsets.patch
+ppc64-set-time-related-systemcfg-fields.patch
+ppc64-include-profilec-in-kernel-irqc.patch
+ppc64-1-4-use-platform-numbering-of-cpus-for-hypervisor-calls.patch
+ppc64-2-4-use-cpu_present_map-in-ppc64.patch
+ppc64-3-4-rework-secondary-smt-thread-setup-at-boot.patch
+ppc64-4-4-remove-unnecessary-cpu-maps.patch
+ppc64-power4-oprofile-update.patch
+ppc64-disable-oprofile-debug-messages.patch
+ppc64-allow-oprofile-module-to-be-safely-unloaded.patch
+ppc64-add-missing-export_symbols-for-oprofile.patch
+ppc64-fix-oprofile-error-messages.patch
+ppc64-set-tbl-it_type-in-iommu-code.patch
+ibmveth-module-tag-fixes.patch
+ibmveth-race-fix.patch
+ibmveth-hypervisor-retval-fix.patch
+ibmveth-hypervisor-memory-barrier.patch

 ppc64 updates

+final-ide-barrier-bug.patch

 Fix another final bug in the IDE barrier code.

-perfctr-ppc32-sysctl-warning-fix.patch

 This was in the wrong place.

+perfctr-smp-hang-fix.patch

 perfctr fix.

-sched-single-array.patch

 Drop this experimental patch.  Was inconclusive.

+legacy_va_layout-docs-fix.patch
+legacy_va_layout-compile-error-with-sysctl=n.patch

 More fixes for /proc/sys/vm/legacy_va_layout

-posix-locking-fix-to-posix_same_owner.patch
-posix-locking-fix-to-locking-code.patch
-posix-locking-fix-up-nfs4statec.patch
-posix-locking-fix-up-lockd.patch
-posix-locking-fl_owner_t-to-pid-mapping.patch
+posix-locking-posix_same_owner-fixes.patch
+posix-locking-hook-functions.patch
+posix-locking-nfsv4-server.patch
+posix-locking-lockd-fixes.patch
+posix-locking-lifetime-fixes.patch
+posix-locking-move-file-lock-fields.patch
+posix-locking-filesystems-call-posix_lock_file.patch

 Updated posix file locking fixes

+get-blockdev-size-right-in-pktcdvd-after-switching-discs.patch
+speed-up-the-cdrw-packet-writing-driver.patch
+cdrom-buffer-size-fix.patch

 packet-writing fixes

+uml-updates.patch
+uml-fixes.patch

 UML fixes

+include-compilerh-in-videodevh.patch

 Build fix

+altix-system-controller-fixes.patch

 Altix driver update

+iteraid-warning-fix.patch
+iteraid-pci_enable_device-for-irq-routing.patch

 ITE RAID driver fixes

-consolidate-prof_cpu_mask.patch
-profile_pc.patch
-profile_pc-fix.patch
-profile_pc-fix-2.patch
-profile_pc-fix-3.patch
-proc_pc-alpha-fix.patch
-profile_tick.patch
-profile-tick-fix.patch
-early-profiling-oops-fix.patch
-move-profile-operations.patch
-prof_pc-proc-fixes.patch
-prof-fix-create_proc_profile.patch
-make-private-profile-state-static.patch
-make-prof_buffer-atomic_t.patch
+profile-consolidate-prof_cpu_mask.patch
+profile-introduce-profile_pc.patch
+profile-consolidate-hit-count-increments-in-profile_tick.patch
+profile-move-profile_operations.patch
+profile-make-private-profile-state-static.patch
+profile-make-prof_buffer-atomic_t.patch
+remove-iseries-profiling.patch

 Reconsolidate the kernel profiling cleanup patch series

+ipmi-driver-updates.patch

 IPMI fixes and features

+dio-pages-in-io-accounting-fix.patch

 direct-io fix

+consolidated-readahead-fixes.patch

 pagecache readahead tuneup.

+kill-clone_idletask-fix.patch

 Fix up kill-clone_idletask.patch

+fix-i386-x86_64-idle-routine-selection-comment-updates.patch

 Comments for fix-i386-x86_64-idle-routine-selection.patch

+use-posix-headers-in-sumversionc.patch

 Cross-building fix

+x86-esr-print-quietness.patch

 Quieten some boot-time printks

+intel8x0c-sound-use-pci_vendor_id-rather-than-bare-numbers.patch

 sound driver cleanups

+fix-rxrpc-compile-errors-with-sysctl=n.patch

 build fix

+typo-fixes-for-cpufreq.patch

 Fix some tpyos

+dnotify-autofs-may-create-signal-restart-syscall-loop.patch

 check for the right signals in autofs

+ix86x86_64-cpu-features.patch

 Display more x86 CPU features in /proc/cpuinfo

+libfs-move-transaction-file-ops-into-libfs.patch

 libfs consolidation

+dont-print-per-cpu-delay-loop-calibration.patch

 boot-time printk removals.

+fix-sn_console-for-config_smp=n.patch

 SN build fix

+via-velocity-wrong-module-name-in-kconfig-documentation.patch

 Kconfig help fix

+reduce-ptyc-ifdef-clutter.patch

 Code cleanup

+bug-on-inconsistant-dcache-tree-in-may_delete.patch

 VFS debug check

+using-get_cycles-for-add_timer_randomness.patch

 Speed up the random driver

+remove-dead-config_kernel_elf-kconfig-entry.patch

 Kconfig cleanup

+fix-some-comments-about-epoch-in-arch-alpha-kernel-timec.patch

 Comment fixes

+small-simplification-for-two-security-dependencies.patch

 security Kconfig cleanups

+configurable-selinux-bootparam-value.patch

 Make the default value of selinux_enabled Kconfigurable

+fix-typos-in-security-securityc.patch

 Fix more tpyos

+use-simple_read_from_buffer-in-selinuxfs.patch
+use-simple_read_from_buffer-in-proc_info_read-and-proc_pid_attr_read.patch

 Code consolidation

+fw-new-linux-268-rc4-mm1-ipv6-in-ipv6-undefined-references.patch

 ipv6 build fix

+ttys0-vs-ttys00-confusion.patch

 Fix tty device naming

+reduce-size-of-struct-buffer_head-on-64bit.patch
+reduce-size-of-struct-dentry-on-64bit.patch
+remove-cacheline-alignment-from-inode-slabs.patch

 Reduce struct sizes on 64-bit machines.

+waitid-system-call.patch
+waitid-system-call-update.patch
+waitid-ia64-build-fix.patch
+waitid-system-call-cleanups.patch

 sys_waitid()

+read-cpumasks-every-time-when-exporting-through-sysfs.patch

 Make sysfs cpumap contents reflect current reality.

+centralize-i386-constants.patch

 Code cleanup

+fix-permissions-on-module_param-usage.patch
+module-parameters-in-sysfs-for-built-in-modules.patch
+remove-module_parm-from-main-part-of-kernel.patch

 Module system fixes

+filemap_index_overflow.patch

 Don't read an extra pagecache page in the VFS file reading code

+synclinkc-replace-syncppp-with-genhdlc.patch
+synclinkmpc-replace-syncppp-with-genhdlc.patch
+synclink_csc-replace-syncppp-with-genhdlc.patch

 Code consolidation in the synclink drivers

+reiserfs-xattr-acl-fixes.patch

 reiserfs xattr/acl fixes

+files-up-to-4-gb-support-for-iso9660-filesystems.patch

 Fix iso9660 handling of large files

+selinux-add-null-device-node-to-selinuxfs-remove-open_devnull.patch
+selinux-revalidate-access-to-controlling-tty.patch
+selinux-defer-inode-security-initialization.patch
+selinux-fix-name_bind-audit.patch

 SELinux updates




All 611 patches:


linus.patch

procfs-taskname-locking.patch
  proc fs task name locking fix

fix-reading-string-module-parameters-in-sysfs.patch
  fix reading string module parameters in sysfs

sysfs-backing-store-prepare-file_operations.patch
  sysfs backing store - prepare sysfs_file_operations helpers

sysfs-backing-store-add-sysfs_dirent.patch
  sysfs backing store - add sysfs_direct structure

sysfs-backing-store-use-sysfs_dirent-tree-in-removal.patch
  sysfs backing store: use sysfs_dirent based tree in file removal

sysfs-backing-store-use-sysfs_dirent-tree-in-dir-file_operations.patch
  sysfs backing store: use sysfs_dirent based tree in dir file operations

sysfs-backing-store-stop-pinning-dentries-inodes-for-leaves.patch
  sysfs backing store: stop pinning dentries/inodes for leaf entries

bk-acpi.patch

bk-agpgart.patch

bk-alsa.patch

bk-arm.patch

bk-dma-declare-coherent-memory.patch

bk-cpufreq.patch

bk-driver-core.patch

bk-drm.patch

bk-ieee1394.patch

bk-input.patch

bk-kbuild.patch

bk-libata.patch

bk-netdev.patch

bk-ntfs.patch

bk-pci.patch

bk-pnp.patch

bk-power.patch

bk-scsi.patch

bk-usb.patch

mm.patch
  add -mmN to EXTRAVERSION

mm-swsusp-make-sure-we-do-not-return-to-userspace-where-image-is-on-disk.patch
  -mm swsusp: make sure we do not return to userspace where image is on disk

mm-swsusp-copy_page-is-harmfull.patch
  -mm swsusp: copy_page is harmfull

sound-control-build-fix.patch
  sound/core/control.c build fix

i2c-keywestc-build-fix.patch
  i2c-keywest.c build fix

ipr-build-fix.patch
  ipr.c build fix

nmi-trigger-switch-support-for-debuggingupdated.patch
  NMI trigger switch support for debugging(updated)

nmi-trigger-switch-support-for-debuggingupdated-fix.patch
  nmi-trigger-switch-support-for-debuggingupdated-fix

nmi-build-fix.patch
  nmi-build-fix

nmi-build-fix-2.patch
  more NMI build fixes

make-i386-die-more-resilient-against-recursive-errors.patch
  Make i386 die() more resilient against recursive errors

i386_exception_notifiers.patch
  i386 exceptions notifier for kprobes

kprobes-base.patch
  kprobes base patch

kprobes-unset-fix.patch
  kprobes: fix things when CONFIG_KPROBES is unset

kprobes-func-args.patch
  Jumper Probes to provide function arguments

kprobes-build-fix.patch
  kprobes build fix

network-packet-tracer-module-using-kprobes-interface.patch
  Network packet tracer module using kprobes interface.

kgdb-ga.patch
  kgdb stub for ia32 (George Anzinger's one)
  kgdbL warning fix
  kgdb buffer overflow fix
  kgdbL warning fix
  kgdb: CONFIG_DEBUG_INFO fix
  x86_64 fixes
  correct kgdb.txt Documentation link (against  2.6.1-rc1-mm2)
  kgdb: fix for recent gcc
  kgdb warning fixes
  THREAD_SIZE fixes for kgdb
  Fix stack overflow test for non-8k stacks
  kgdb-ga.patch fix for i386 single-step into sysenter
  fix TRAP_BAD_SYSCALL_EXITS on i386
  add TRAP_BAD_SYSCALL_EXITS config for i386

kgdb-is-incompatible-with-kprobes.patch
  kgdb-is-incompatible-with-kprobes

kgdboe-netpoll.patch
  kgdb-over-ethernet via netpoll
  kgdboe: fix configuration of MAC address

kgdb-x86_64-support.patch
  kgdb-x86_64-support.patch for 2.6.2-rc1-mm3
  kgdb-x86_64-warning-fixes

kgdb-ia64-support.patch
  IA64 kgdb support
  ia64 kgdb repair and cleanup
  ia64 kgdb fix

kgdb-ia64-fixes.patch
  kgdb: ia64 fixes

make-tree_lock-an-rwlock.patch
  make mapping->tree_lock an rwlock

must-fix.patch
  must fix lists update
  must fix list update
  mustfix update
  must-fix update
  mustfix lists

ppc32-remove-hardcoded-offsets-from-ppc-asm.patch
  ppc32: remove hardcoded offsets from ppc asm

ppc32-optimize-fix-timer_interrupt-loop.patch
  ppc32: optimize/fix timer_interrupt loop

ppc32-make-ppc40x-large-tlb-mapping-optional.patch
  ppc32: make PPC40x large tlb mapping optional

ppc32-handle-misaligned-string-multiple-insns.patch
  ppc32: handle misaligned string/multiple insns

ppc32-emulate-obsolete-instructions.patch
  ppc32: emulate obsolete instructions

ppc32-emulate-obsolete-instructions-fix.patch
  ppc32-emulate-obsolete-instructions fix

ppc32-add-docs-for-ppc-noltlbs-and-nobats-parameters.patch
  ppc32: add docs for noltlbs and nobats parameters

ppc64-reduce-stack-overflow-warning-threshold.patch
  ppc64: reduce stack overflow warning threshold

ppc64-remove-old-asm-offsets.patch
  ppc64: remove old asm offsets

ppc64-set-time-related-systemcfg-fields.patch
  ppc64: set time-related systemcfg fields

ppc64-include-profilec-in-kernel-irqc.patch
  ppc64: include profile.c in kernel/irq.c

ppc64-1-4-use-platform-numbering-of-cpus-for-hypervisor-calls.patch
  ppc64: use platform numbering of cpus for hypervisor calls.

ppc64-2-4-use-cpu_present_map-in-ppc64.patch
  ppc64: use cpu_present_map in ppc64

ppc64-3-4-rework-secondary-smt-thread-setup-at-boot.patch
  ppc64: rework secondary SMT thread setup at boot

ppc64-4-4-remove-unnecessary-cpu-maps.patch
  ppc64: remove unnecessary cpu maps

ppc64-power4-oprofile-update.patch
  ppc64: POWER4 oprofile update

ppc64-disable-oprofile-debug-messages.patch
  ppc64: disable oprofile debug messages

ppc64-allow-oprofile-module-to-be-safely-unloaded.patch
  ppc64: allow oprofile module to be safely unloaded

ppc64-add-missing-export_symbols-for-oprofile.patch
  ppc64: add missing EXPORT_SYMBOLS for oprofile

ppc64-fix-oprofile-error-messages.patch
  ppc64: Fix oprofile error messages

ppc64-set-tbl-it_type-in-iommu-code.patch
  ppc64: set tbl->it_type in iommu code

ibmveth-module-tag-fixes.patch
  ibmveth: module tag fixes

ibmveth-race-fix.patch
  ibmveth: race fixes

ibmveth-hypervisor-retval-fix.patch
  ibmveth: hypervisor return value fix

ibmveth-hypervisor-memory-barrier.patch
  ibmveth: add memory barrier for hypervisor synchronisation

ppc64-reloc_hide.patch

invalidate_inodes-speedup.patch
  invalidate_inodes speedup
  more invalidate_inodes speedup fixes

dev-mem-restriction-patch.patch
  /dev/mem restriction patch

get_user_pages-handle-VM_IO.patch
  fix get_user_pages() against mappings of /dev/mem

pid_max-fix.patch
  Bug when setting pid_max > 32k

jbd-remove-livelock-avoidance.patch
  JBD: remove livelock avoidance code in journal_dirty_data()

journal_add_journal_head-debug.patch
  journal_add_journal_head-debug

list_del-debug.patch
  list_del debug check

oops-dump-preceding-code.patch
  i386 oops output: dump preceding code

lockmeter.patch
  lockmeter
  ia64 CONFIG_LOCKMETER fix

unplug-can-sleep.patch
  unplug functions can sleep

firestream-warnings.patch
  firestream warnings

ext3_rsv_cleanup.patch
  ext3 block reservation patch set -- ext3 preallocation cleanup

ext3_rsv_base.patch
  ext3 block reservation patch set -- ext3 block reservation
  ext3 reservations: fix performance regression
  ext3 block reservation patch set -- mount and ioctl feature
  ext3 block reservation patch set -- dynamically increase reservation window
  ext3 reservation ifdef cleanup patch
  ext3 reservation max window size check patch
  ext3 reservation file ioctl fix

ext3-reservation-default-on.patch
  ext3 reservation: default to on

ext3-lazy-discard-reservation-window-patch.patch
  ext3 lazy discard reservation window patch
  ext3 discard reservation in last iput fix patch
  Fix lazy reservation discard
  ext3 reservations: bad_inode fix
  ext3 reservation discard race fix

really-ptrace-single-step-2.patch
  ptrace single-stepping fix

ipr-ppc64-depends.patch
  Make ipr.c require ppc

disk-barrier-core.patch
  disk barriers: core
  disk-barrier-core-tweaks

disk-barrier-ide.patch
  disk barriers: IDE
  disk-barrier-ide-symbol-expoprt
  disk-barrier ide warning fix

barrier-update.patch
  barrier update

barrier-flushing-fix.patch
  barrier flushing fix

final-ide-barrier-bug.patch
  final ide barrier bug!

disk-barrier-scsi.patch
  disk barriers: scsi

disk-barrier-dm.patch
  disk barriers: devicemapper

disk-barrier-md.patch
  disk barriers: MD

barrier-md-fix.patch
  barriers: md fix

2-2-md-multipathing-fixes.patch
  md: fix multipath for readhead requests

reiserfs-v3-barrier-support.patch
  reiserfs v3 barrier support
  reiserfs-v3-barrier-support-tweak

sync_dirty_buffer-retval.patch
  make sync_dirty_buffer() return something useful

ext3-barrier-support.patch
  ext3 barrier support

jbd-barrier-fallback-on-failure.patch
  jbd: barrier fallback on failure

ide-print-failed-opcode.patch
  ide: print failed opcode on IO errors
  From: Jens Axboe <axboe@suse.de>
  Subject: Re: ide errors in 7-rc1-mm1 and later

add-bh_eopnotsupp-for-testing.patch
  add BH_Eopnotsupp for testing async barrier failures

handle-async-barrier-failures.patch
  Handle async barrier failures

blk_queue_free_tags-fix.patch
  blk_queue_free_tags() fix

blk_resize_tags-fix.patch
  blk_resize_tags() fix

blk_queue_tags_resize_failure.patch
  handle blk_queue_tags_resize() allocation failures

multipath-readahead-fix-fix.patch
  multipath readahead fix fix

tty_io-hangup-locking.patch
  tty_io.c hangup locking

perfctr-core.patch
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][1/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: core
  CONFIG_PERFCTR=n build fix
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][6/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: misc

perfctr-i386.patch
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386
  perfctr #if/#ifdef cleanup
  perfctr Dothan support
  perfctr x86_tests build fix

perfctr-x86-init-bug.patch
  perfctr x86 init bug

perfctr-k8-fix-for-internal-benchmarking-code.patch
  perfctr: K8 fix for internal benchmarking code

perfctr-x86-update.patch
  perfctr x86 update

perfctr-x86_64.patch
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][3/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: x86_64

perfctr-ppc.patch
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][4/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: PowerPC
  perfctr ppc32 update
  perfctr update 4/6: PPC32 cleanups

perfctr-ppc32-buglet-fix.patch
  perfctr ppc32 buglet fix

perfctr-virtualised-counters.patch
  From: Mikael Pettersson <mikpe@csd.uu.se>
  Subject: [PATCH][5/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: virtualised counters
  perfctr update 6/6: misc minor cleanups
  perfctr update 3/6: __user annotations
  perfctr-cpus_complement-fix
  perfctr cpumask cleanup

perfctr-ifdef-cleanup.patch
  perfctr ifdef cleanup

perfctr-update-2-6-kconfig-related-updates.patch
  perfctr update 2/6: Kconfig-related updates

perfctr-update-5-6-reduce-stack-usage.patch
  perfctr update 5/6: reduce stack usage

perfctr-low-level-documentation.patch
  perfctr low-level documentation

perfctr-documentation-update.patch
  perfctr documentation update

perfctr-inheritance-1-3-driver-updates.patch
  perfctr inheritance 1/3: driver updates

perfctr-inheritance-illegal-sleep-bug.patch
  perfctr inheritance illegal sleep bug

perfctr-inheritance-2-3-kernel-updates.patch
  perfctr inheritance 2/3: kernel updates

perfctr-inheritance-3-3-documentation-updates.patch
  perfctr inheritance 3/3: documentation updates

perfctr-inheritance-locking-fix.patch
  perfctr inheritance locking fix

perfctr-smp-hang-fix.patch
  perfctr SMP hang fix

ext3-online-resize-patch.patch
  ext3: online resizing

ext3-online-resize-warning-fix.patch
  ext3-online-resize-warning-fix

sched-timeslice-fix.patch
  sched: fix timeslice calculations for HZ=1000.

sched-clean-init-idle.patch
  sched: cleanup init_idle()

sched-clean-fork.patch
  sched: cleanup, improve sched <=> fork APIs

sched-clean-fork-rename-wake_up_new_process-wake_up_new_task.patch
  sched: rename wake_up_new_process -> wake_up_new_task

kernelthread-idle-fix-2.patch
  kernel thread idle fix

sched-misc-cleanups-2.patch
  sched: misc cleanups #2

sched-unlikely-rt_task.patch
  sched: make rt_task unlikely

sched-misc.patch
  sched: sched misc changes

sched-misc-fix-rt.patch
  sched: fix RT scheduling & interactivity estimator

sched-no-balance-clone.patch
  sched: disable balance on clone

sched-remove-balance-clone.patch
  sched: remove balance on clone

sched-fork-hotplug-cleanuppatch.patch
  sched: fork hotplug hanling cleanup

sched-consolidate-sched-domains.patch
  sched: consolidate sched domains

sched-consolidate-sched-domains-ppc64-fix.patch
  sched-consolidate-sched-domains ppc64 fix

sched-consolidate-domains-fix.patch
  sched: fix for sched-consolidate-domains

sched-consolidate-domains-fix-2.patch
  another sched consolidate domains fix

sched-domain-node-span-4.patch
  sched: limit cpuspan of node scheduler domains

sched-merge-fix.patch
  sched: merge fix

sched-domain-node-span-4-warning-fix.patch
  sched-domain-node-span-4-warning-fix

sched-isolated-sched-domains.patch
  sched: isolated sched domains

sched-isolated-sched-domains-fix.patch
  sched-isolated-sched-domains-fix

create-cpu_sibling_map-for-ppc64.patch
  Create cpu_sibling_map for PPC64

create-cpu_sibling_map-for-ppc64-fix.patch
  create-cpu_sibling_map-for-ppc64-fix

sched-adjust-p4-per-cpu-gain.patch
  sched: adjust p4 per-cpu gain

schedstat-v10.patch
  scheduler statistics

sched-init_idle-fork_by_hand-consolidation.patch
  sched: consolidate init_idle() and fork_by_hand()

sched-sparc32-fix.patch
  sched: sparc32 fixes

sched-sparc32-fix-fix.patch
  sun4d fork_idle() fix

schedstat-up-fix.patch
  schedstat: UP fix
  
  SMP fix --
  for_each_domain() is not defined if not CONFIG_SMP, so show_schedstat
  needed a couple of extra ifdefs.
  
  Signed-off-by: Rick Lindsley <ricklind@us.ibm.com>
  Signed-off-by: Ingo Molnar <mingo@elte.hu>

sched-whitespace-cleanups.patch
  sched: whitespace cleanups

sched-nonlinear-timeslicespatch.patch
  sched: nonlinear timeslices

memory-backed-inodes-fix.patch
  memory-backed inodes fix

ext3_bread-cleanup.patch
  ext3_bread() cleanup

flexible-mmap-2.6.7-mm3-A8.patch
  i386 virtual memory layout rework

flexible-mmap-bug-fix.patch
  flexible-mmap BUG fix

flexible-mmap-updatepatch-267-mm5.patch
  flexible-mmap update

sysctl-tunable-for-flexmmap.patch
  sysctl tunable for flexmmap

legacy_va_layout-docs.patch
  legacy_va_layout docs

legacy_va_layout-docs-fix.patch
  legacy_va_layout-docs-fix

legacy_va_layout-compile-error-with-sysctl=n.patch
  legacy_va_layout compile error with SYSCTL=n

flex-mmap-for-s390x.patch
  flex mmap for s390(x)

pcmcia-implement-driver-model-support.patch
  pcmcia: implement driver model support

pcmcia-update-network-drivers.patch
  pcmcia: update network drivers

pcmcia-update-wireless-drivers.patch
  pcmcia: update wireless drivers

pcmcia-fix-eject-lockup.patch
  pcmcia: fix eject lockup

pcmcia-add-hotplug-support.patch
  pcmcia: add *hotplug support

posix-locking-posix_same_owner-fixes.patch
  posix locking: posix_same_owner() fixes

posix-locking-hook-functions.patch
  posix locking: add hook functions

posix-locking-nfsv4-server.patch
  posix locking: nfsv4 server updates

posix-locking-lockd-fixes.patch
  posix locking: NLM: fix lockd to use the new posix locking callbacks

posix-locking-lifetime-fixes.patch
  posix locking: ->fl_owner lifetime fixes

posix-locking-move-file-lock-fields.patch
  posix locking: move file_lock fields

posix-locking-filesystems-call-posix_lock_file.patch
  posix locking: make filesystems call posix_lock_file()

dvdrw-support-for-267-bk13.patch
  DVD+RW support for 2.6.7-bk13

cdrw-packet-writing-support-for-267-bk13.patch
  CDRW packet writing support

packet-remove-warning.patch
  packet: remove #warning

packet-door-unlock.patch
  packet writing: door unlocking fix
  pkt_lock_door() warning fix

dvd-rw-packet-writing-update.patch
  Packet writing support for DVD-RW and DVD+RW discs.

fix-race-in-pktcdvd-kernel-thread-handling.patch
  Fix race in pktcdvd kernel thread handling

fix-open-close-races-in-pktcdvd.patch
  Fix open/close races in pktcdvd

packet-writing-review-fixups.patch
  packet writing: review fixups

get-blockdev-size-right-in-pktcdvd-after-switching-discs.patch
  Get blockdev size right in pktcdvd after switching discs

remove-pkt_dev-from-struct-pktcdvd_device.patch
  Remove pkt_dev from struct pktcdvd_device

packet-writing-docco.patch
  packet writing documentation

trivial-cdrw-packet-writing-doc-update.patch
  Trivial CDRW packet writing doc update

convert-packet-writing-to-seq_file.patch
  packet writing: convert to seq_file

control-pktcdvd-with-an-auxiliary-character-device.patch
  Control pktcdvd with an auxiliary character device
  Subject: Re: 2.6.8-rc2-mm2

control-pktcdvd-with-an-auxiliary-character-device-fix.patch
  control-pktcdvd-with-an-auxiliary-character-device-fix

simplified-request-size-handling-in-cdrw-packet-writing.patch
  Simplified request size handling in CDRW packet writing

fix-setting-of-maximum-read-speed-in-cdrw-packet-writing.patch
  Fix setting of maximum read speed in CDRW packet writing

speed-up-the-cdrw-packet-writing-driver.patch
  Speed up the cdrw packet writing driver

cdrom-buffer-size-fix.patch
  cdrom: buffer sizing fix

r8169_napi-help-text-2.patch
  R8169_NAPI help text

no-sysgood-for-ptrace-singlestep.patch
  Don't use SYSGOOD for ptrace singlestep

err2-6-hashbin_remove_this-locking-fix.patch
  err2-6: hashbin_remove_this() locking fix

dm-use-idr.patch
  devicemapper: use an IDR tree for tracking minors

ipc-1-3-add-refcount-to-ipc_rcu_alloc.patch
  ipc: Add refcount to ipc_rcu_alloc

ipc-2-3-remove-sem_revalidate.patch
  ipc: remove sem_revalidate

ipc-3-3-enforce-semvmx-limit-for-undo.patch
  ipc: enforce SEMVMX limit for undo

cleanup-of-ipc-msgc.patch
  cleanup of ipc/msg.c

sk98lin-procfs-fix.patch
  sk98lin procfs fix

cpufreq-driver-for-nforce2-kernel-267.patch
  cpufreq driver for nForce2

allow-modular-ide-pnp.patch
  allow modular ide-pnp

uml-base-patch.patch
  uml: Uml base patch

uml-sched-update.patch
  uml-sched-update

rename-uml-console-device.patch
  uml: rename console_device

uml-readds-just-for-now-ghashh-for-uml.patch
  uml: Readds (just for now) ghash.h for UML

uml-avoid-that-gcc-breaks-uml-with-unit-at-a-time-compilation-mode.patch
  uml: Avoid that gcc breaks UML with "unit at a time" compilation mode.

uml-fixes-an-host-fd-leak-caused-by-hostfs.patch
  uml: Fixes an host fd leak caused by hostfs.

uml-adds-legacy_pty-config-option.patch
  uml: Adds LEGACY_PTY config option

uml-makes-make-help-arch=um-work.patch
  uml: Makes "make help ARCH=um" work.

uml-fixes-fixdepc-to-support-arch-um-include-uml-configh.patch
  uml: Fixes "fixdep.c" to support arch/um/include/uml-config.h.

uml-kill-useless-warnings.patch
  uml: Kill useless warnings

uml-avoids-compile-failure-when-host-misses-tkill.patch
  uml: Avoids compile failure when host misses tkill().

uml-reduces-code-in-_user-files-by-moving-it-in-_kern-files-if-already-possible.patch
  uml: Reduces code in *_user files, by moving it in _kern files if already possible.

uml-fixes-raw-and-uses-it-in-check_one_sigio-also-fixes-a-silly-panic-eintr-returned-by-call.patch
  uml: Fixes raw() and uses it in check_one_sigio; also fixes a silly panic (EINTR returned by call).

uml-folds-hostaudio_userc-into-hostaudio_kernc.patch
  uml: Folds hostaudio_user.c into hostaudio_kern.c.

uml-use-ptrace_scemu-the-so-called-sysemu-to-reduce-syscall-cost.patch
  uml: Use PTRACE_SCEMU (the so-called SYSEMU) to reduce syscall cost.

uml-adds-the-nosysemu-command-line-parameter-to-disable-sysemu.patch
  uml: Adds the "nosysemu" command line parameter to disable SYSEMU

uml-adds-proc-sysemu-to-toggle-sysemu-usage.patch
  uml: Adds /proc/sysemu to toggle SYSEMU usage.

uml-fix-for-sysemu-patches.patch
  uml: Fix for sysemu patches

uml-handles-correctly-errno-==-eintr-in-lots-of-places.patch
  uml: Handles correctly errno == EINTR in lots of places.

uml-adds-some-exports.patch
  uml: Adds some exports

uml-avoids-a-panic-for-a-legal-situation.patch
  uml: Avoids a panic for a legal situation

uml-removes-dead-code-in-trap_kernc.patch
  uml: Removes dead code in trap_kern.c

uml-make-malloc-call-vmalloc-if-needed-needed-for-hostfs-on-26-host.patch
  uml: Make malloc() call vmalloc if needed. Needed for hostfs on 2.6 host.

uml-little-kmalloc.patch
  uml: little-kmalloc

uml-fix-os_process_pc-and-os_process_parent-for-corner-cases.patch
  uml: Fix os_process_pc and os_process_parent for corner cases.

uml-remove-a-group-of-unused-bh-functions.patch
  uml: remove a group of unused bh functions

uml-updates.patch
  UML updates

uml-fixes.patch
  UML fixes

fix-warnings-in-net-irda.patch
  sparse: fix warnings in net/irda/*

i810_audio-fix-the-error-path-of-resource-management.patch
  i810_audio: Fix the error path of resource management

fix-drivers-isdn-hisax-avm_pcic-build-warning-when.patch
  Fix drivers/isdn/hisax/avm_pci.c build warning when !CONFIG_ISAPNP

idr-stale-comment.patch
  idr.c: remove stale comment

idr-comments-updates.patch
  idr comments updates

schedule-profiling.patch
  schedule() profiling
  From: Arjan van de Ven <arjanv@redhat.com>
  Subject: Re: schedule profileing

add-a-few-might_sleep-checks.patch
  Add a few might_sleep() checks

add-a-few-might_sleep-checks-fix.patch
  add-a-few-might_sleep-checks fix

even-more-might_sleep-checks.patch
  even more might_sleep() checks

tmpfs-atomicity-fix.patch
  tmpfs atomicity fix

release_task-may-sleep.patch
  permit sleeping in release_task()

crc16-renaming-in-via-velocity-ethernet-driver.patch
  CRC16 renaming in VIA Velocity ethernet driver

per_cpu-per_cpu-cpu_gdt_table.patch
  percpu: cpu_gdt_table

per_cpu-per_cpu-cpu_gdt_table-fix.patch
  per_cpu-per_cpu-cpu_gdt_table-fix

per_cpu-per_cpu-init_tss.patch
  percpu: init_tss

per_cpu-per_cpu-cpu_tlbstate.patch
  percpu: cpu_tlbstate

gcc35-alps_tdlb7.c.patch
  gcc-3.5 fixes

gcc35-always-inline.patch
  gcc-3.5 fixes

gcc35-auerswald.c.patch
  gcc-3.5 fixes

gcc35-dabusb.c.patch
  gcc-3.5 fixes

gcc35-ds.c.patch
  gcc-3.5 fixes

gcc35-fixmap.h.patch
  gcc-3.5: fixmap.h fix

gcc35-mtrr.h.patch
  gcc-3.5 fixes

gcc35-sonypi.patch
  gcc-3.5 fixes

gcc35-sp887x.c.patch
  gcc-3.5 fixes

gcc35-tda1004x.c.patch
  gcc-3.5 fixes

gcc35-transport.h.patch
  gcc-3.5 fixes

gcc35-ufs_fs.h.patch
  gcc-3.5 fixes

gcc35-videodev.c.patch
  gcc-3.5 fixes

gcc35-wavefront_fx.c.patch
  gcc-3.5 fixes

dev-zero-vs-hugetlb-mappings.patch
  /dev/zero vs hugetlb mappings.

hugetlbfs-private-mappings.patch
  hugetlbfs private mappings

net-kconfig-crc16-fix.patch
  net/Kconfig crc16 warning fix

preset-loops_per_jiffy-for-faster-booting.patch
  preset loops_per_jiffy for faster booting

define-inline-as-__attribute__always_inline-also-for-gcc-=-34.patch
  #define inline as __attribute__((always_inline)) also for gcc >= 3.4

gcc-34-and-broken-inlining.patch
  clean up __always_inline__ usage

handle-undefined-symbols.patch
  Fail if vmlinux contains undefined symbols

sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch
  sparc32: ignore undefined symbols with 3 or more leading underscores

split-generic_file_aio_write-into-buffered-and-direct-i-o-parts.patch
  split generic_file_aio_write into buffered and direct I/O parts

making-i-dhash_entries-cmdline-work-as-it-use-to.patch
  Make i/dhash_entries cmdline work as it use to.

making-i-dhash_entries-cmdline-work-as-it-use-to-fix.patch
  making-i-dhash_entries-cmdline-work-as-it-use-to-fix

jbd-recovery-latency-fix.patch
  jbd recovery latency fix

truncate_inode_pages-latency-fix.patch
  truncate_inode_pages-latency-fix

journal_clean_checkpoint_list-latency-fix.patch
  journal_clean_checkpoint_list latency fix

journal_clean_checkpoint_list-latency-fix-fix.patch
  journal_clean_checkpoint_list-latency-fix-fix

kjournald-smp-latency-fix.patch
  kjournald-smp-latency-fix

unmap_vmas-smp-latency-fix.patch
  unmap_vmas-smp-latency-fix

__cleanup_transaction-latency-fix.patch
  __cleanup_transaction-latency-fix

prune_dcache-latency-fix.patch
  prune_dcache-latency-fix

filemap_sync-latency-fix.patch
  filemap_sync-latency-fix

slab-latency-fix.patch
  slab-latency-fix

get_user_pages-latency-fix.patch
  get_user_pages-latency-fix

send_IPI_mask_bitmask-build-fix.patch
  send_IPI_mask_bitmask() build fix

e1000-build-fix.patch
  e1000 build fix

e1000-inlining-fix.patch
  e1000 inlining fix

pty_write-latency-fix.patch
  pty_write-latency-fix

enable-all-events-for-initramfs.patch
  Enable all events for initramfs

arch-i386-kernel-smpc-gcc341-inlining-fix.patch
  arch/i386/kernel/smp.c gcc341 inlining fix

268-rc2-mm2-warning-on-numa-q.patch
  warning on NUMA-Q

was-removal-of-sync-in-panic.patch
  remove sync() from panic

move-cache_reap-out-of-timer-context.patch
  Move cache_reap out of timer context

move-cache_reap-out-of-timer-context-fix.patch
  move-cache_reap-out-of-timer-context-fix

gettimeofday-nanoseconds-patch-makes-it-possible-for-the-posix-timer.patch
  gettimeofday nanoseconds patch

x86-64-singlestep-through-sigreturn-system-call-2.patch
  Fix x86-64 singlestep through sigreturn system call

create-nodemask_t.patch
  Create nodemask_t

some-random-nodemask-fix.patch
  nodemask fix

nodemask-build-fix.patch
  nodemask build fix

add-ixdp2x01-board-support-to-cs89x0-driver.patch
  Add IXDP2x01 board support to CS89x0 driver

remove-dead-prototypes.patch
  remove dead prototypes

s390-use-include-asm-generic-dma-mapping-brokenh.patch
  s390: Use include/asm-generic/dma-mapping-broken.h

cdrom-get_last_written-fix.patch
  Subject: cdrom.c get_last_written fixup

get_random_bytes-returns-the-same-on-every-boot.patch
  get_random_bytes() returns the same on every boot

locking-optimization-for-cache_reap.patch
  slab: locking optimization for cache_reap

b44-add-47xx-support.patch
  b44: add 47xx support

signal-race-fix.patch
  signal handling race fix

signal-race-fix-ia64.patch
  signal-race-fix: ia64

signal-race-fix-s390.patch
  signal-race fixes for s390

signal-race-fix-s390-fix.patch
  s390 signal handling fixes

signal-race-fix-x86_64.patch
  signal-race-fixes: x86-64 support

signal-race-fix-x86_64-fix.patch
  x86_64 signal handling fix

ppc-signal-handling-fixes.patch
  ppc signal handling fixes

signal-race-fixes-sparc-sparc64.patch
  signal handling race fixes: sparc and sparc64

signal-race-fixes-ppc64.patch
  pPC64 signal race fix patch

signal-race-fix-alpha.patch
  alpha signal race fixes

process-aggregates.patch
  Process Aggregates (PAGG)

process-aggregates-warning-fix.patch
  process-aggregates warning fix

process-aggregates-macro-fix.patch
  process-aggregates macro fix

allow-x86_64-to-reenable-interrupts-on-contention.patch
  Allow x86_64 to reenable interrupts on contention

move-pit-code-to-timer_pit.patch
  x86: move PIT code to timer_pit

move-pit-code-to-timer_pit-warning-fix.patch
  move-pit-code-to-timer_pit-warning-fix

i2o-build_99.patch
  i20 rewrite

i2o-build_99-gcc295-fixes.patch
  i2o-build_99-gcc295-fixes

i2o-resync-with-post-266-changes.patch
  i2o: resync with post-2.6.6 changes

i2o-resync-with-post-266-changes-2.patch
  i2o: more resyncing with post-2.6.6 changes

i2o-devfs-fix.patch
  i2o devfs fix

apic-output-reduction.patch
  IO-APIC debug message reduction

fix-ide-probe-double-detection.patch
  Fix ide probe double detection

fix-smm-failures-on-e750x-systems.patch
  fix SMM failures on E750x systems

serial-cs-and-unusable-port-size-ranges.patch
  serial-cs and unusable port size ranges

make-shrinker_sem-an-rwsem.patch
  make shrinker_sem an rwsem

vlan-support-for-3c59x-3c90x.patch
  VLAN support for 3c59x/3c90x

break-out-zone-free-list-initialization.patch
  break out zone free list initialization

radeonfb-cleanup-and-little-fixes.patch
  radeonfb: cleanup and little fixes

rivafb-i2c-fixes.patch
  Rivafb I2C fixes

fbmon-edd-blacklist.patch
  fbcom: EDD-based blacklisting

fbcon-differentiate-bits_per_pixel-from-color-depth.patch
  fbcon: ifferentiate bits_per_pixel from color depth

fbcon-differentiate-bits_per_pixel-from-color-depth-fixup.patch
  fbcon-differentiate-bits_per_pixel-from-color-depth-fixup

fbcon-differentiate-bits_per_pixel-from-color-depth-export.patch
  fbcon-differentiate-bits_per_pixel-from-color-depth-export

fbdev-set-color-fields-correctly.patch
  fbdev: set color fields correctly

fbdev-attn-maintainers-set-correct-hardware-capabilities.patch
  fbdev: ATTN: Maintainers - Set correct hardware capabilities

rivafb-do-not-tap-vga-ports-if-not-x86.patch
  rivafb: Do not tap VGA ports if not X86

i810fb-fixes.patch
  i810fb fixes

i810fb-fixes-2.patch
  i810fb fixes #2

fbdev-find-correct-logo-for-directcolor-24bpp.patch
  fbdev: find correct logo for directcolor < 24bpp

rivafb-kill-riva_chip_info-and-riva_chips.patch
  rivafb: kill riva_chip_info and riva_chips

include-compilerh-in-videodevh.patch
  include "compiler.h" in videodev.h

net-smc9194c-fix-inline-compile-errors-fwd.patch
  net/smc9194.c: fix gcc-3.5 inline compile errors

net-hamachic-remove-bogus-inline-at-function-prototype.patch
  net/hamachi.c: gcc-3.5 build fixes

scsi-qla2xxx-fix-inline-compile-errors.patch
  qla2xxx gcc-3.5 fixes

net-rrunnerc-fix-inline-compile-error.patch
  net/rrunner.c: gcc-3.5 fixes

istallion-remove-inlines.patch
  istallion: gcc-3.5 fixes

mxserc-fix-inlines-fwd.patch
  mxser.c: gcc-3.5 fixes

radio-maestroc-remove-an-inline-fwd.patch
  radio-maestro.c: gcc-3.5 fixes

net-tulip-dmfec-fix-inline-compile-errors-fwd.patch
  net/tulip/dmfe.c: gcc-3.5 fixes

fix-inlining-errors-in-drivers-scsi-aic7xxx-aic79xx_osmc.patch
  inlining errors in drivers/scsi/aic7xxx/aic79xx_osm.c

fix-inline-related-gcc-34-build-failures-in.patch
  fix inline related gcc 3.4 build failures in drivers/net/wan/dscc4.c

igxb_main-gcc-34-build-fix.patch
  ixgb_main.c: fix inline compile errors

ext2_readdir-filp-f_pos-fix.patch
  ext2_readdir() filp->f_pos fix

do_general_protection-doesnt-disable-irq.patch
  do_general_protection doesn't disable irq

proc_pid_cmdline-race-fix.patch
  proc_pid_cmdline() race fix

support-for-exar-xr17c158-octal-uart.patch
  Support for Exar XR17C158 Octal UART

x86_64-merge-2.patch
  New x86-64 merge

x86_64-merge-2-build-fix.patch
  x86_64-merge-2 build fix

fix-o=-compilation-on-x86-64.patch
  Fix O= compilation on x86-64

ia64-swiotlb-fixes.patch
  ia64: Various swiotlb fixes

ia64-swiotlb-fixes-fix.patch
  ia64: more swiotlb fixes

altix-system-controller-communication-driver.patch
  Altix system controller communication driver

snsc-build-fix.patch
  snsc-build-fix

more-altix-system-controller-changes.patch
  More Altix system controller changes

altix-system-controller-fixes.patch
  Altix system controller fixes

move-duplicate-bug-and-warn_on-bits-to-asm-generic.patch
  move duplicate BUG and WARN_ON bits to asm-generic

move-duplicate-bug-and-warn_on-bits-to-asm-generic-fix.patch
  Fix missing backslash in asm-generic/bug.h

fix-con_buf_size-usage.patch
  Fix CON_BUF_SIZE usage

vprintk-support.patch
  vprintk support

vprintk-for-ext2-errors.patch
  vprintk for ext2 errors

vprintk-for-ext3-errors.patch
  vprintk for ext3 errors

prio_tree-kill-vma_prio_tree_init.patch
  prio_tree: kill vma_prio_tree_init()

prio_tree-iterator-vma_prio_tree_next-cleanup.patch
  prio_tree: iterator + vma_prio_tree_next cleanup

rcu-cpu-offline-cleanup.patch
  RCU - cpu-offline-cleanup

rcu-rcu-cpu-offline-fix.patch
  RCU - cpu offline fix

rcu-low-latency-rcu.patch
  RCU: low latency rcu

rcu-clean-up-code.patch
  rcu: clean up code

rcu-fix-spaces-in-rcupdateh.patch
  rcu: fix spaces in rcupdate.h

rcu-introduce-call_rcu_bh.patch
  rcu: introduce call_rcu_bh()

rcu-use-call_rcu_bh-in-route-cache.patch
  rcu: use call_rcu_bh() in route cache

rcu-document-rcu-api.patch
  rcu: document RCU api

rcu-abstracted-rcu-dereferencing.patch
  rcu: abstracted RCU dereferencing

alpha-print-the-symbol-of-pc-and-ra-during-oops.patch
  alpha: print the symbol of pc and ra during Oops

first-next_cpu-returns-values-nr_cpus.patch
  first/next_cpu returns values > NR_CPUS

first-next_cpu-returns-values-nr_cpus-fix.patch
  first-next_cpu-returns-values-nr_cpus fix

add-support-for-it8212-ide-controllers.patch
  Add support for IT8212 IDE controllers

drivers-net-wan-cycx_x25c189-warning-conflicting-types.patch
  drivers/net/wan/cycx_x25.c:189: warning: conflicting types for built-in function 'log2'

watchdog-fix-warning-defined-but-not-used.patch
  watchdog: fix warning "defined but not used"

i386-hotplug-cpu.patch
  i386 Hotplug CPU

token-based-thrashing-control.patch
  token based thrashing control

token-based-thrashing-control-remove-debug.patch
  token-based-thrashing-control-remove-debug

token-based-load-control-no-swap-build-fix.patch
  laod control: fix the build with CONFIG_SWAP=n

writeback-page-range-hint.patch
  Writeback page range hint

fix-writeback-page-range-to-use-exact-limits.patch
  Fix writeback page range to use exact limits

mpage-writepages-range-limit-fix.patch
  mpage writepages range limit fix

filemap_fdatawrite-range-interface.patch
  filemap_fdatawrite range interface

concurrent-o_sync-write-support.patch
  Concurrent O_SYNC write support

nfsd-force-server-side-tcp-when-nfsv4-enabled.patch
  nfsd: force server-side TCP when NFSv4 enabled

nfsd-nfsd-is-missing-a-put_group_info-in-the-auth_null.patch
  nfsd: nfsd is missing a put_group_info in the auth_null

nfsd-make-cache_init-initialize-reference-count-to-1.patch
  nfsd: make cache_init initialize reference count to 1

nfsd-simplify-auth_domain_lookup.patch
  nfsd: simplify auth_domain_lookup

nfsd-fix-ip_map-cache-reference-count-leak.patch
  nfsd: fix ip_map cache reference count leak.

nfsd-basic-v4-acl-definitions.patch
  nfsd: basic v4 ACL definitions

nfsd-posix-nfsv4-acl-translation-for-nfsd.patch
  nfsd: POSIX<->NFSv4 acl translation for nfsd

nfsd-acl-support-for-the-nfsv4-server.patch
  nfsd: ACL support for the NFSv4 server

cdrom-event-notification-fixes.patch
  cdrom event notification fixes

new-device-driver-to-enable-the-ibm-multiport-serial-adapter.patch
  new device driver to enable the IBM Multiport Serial Adapter

iteraid.patch
  ITE RAID driver

iteraid-cleanup.patch
  iteraid cleanup

iteraid-warning-fix.patch
  iteraid warning fix

iteraid-pci_enable_device-for-irq-routing.patch
  iteraid: pci_enable_device() for IRQ routing

kill-udf-registration-unregistration-messages.patch
  kill UDF registration/unregistration messages

sparc-remove-undefined-symbol.patch
  sparc: remove undefined symbol

nbd-fix-struct-request-race-condition.patch
  nbd: fix struct request race condition

profile-consolidate-prof_cpu_mask.patch
  profiling: consolidate prof_cpu_mask

profile-introduce-profile_pc.patch
  profiling: introduce profile_pc()

profile-consolidate-hit-count-increments-in-profile_tick.patch
  profiling: consolidate hit count increments in profile_tick()

profile-move-profile_operations.patch
  profiling: move profile_operations

profile-make-private-profile-state-static.patch
  profiling: make private profile state static

profile-make-prof_buffer-atomic_t.patch
  profiling: make prof_buffer atomic_t

remove-iseries-profiling.patch
  ppc64: remove iseries profiling

ipmi-watchdog-patch.patch
  IPMI Watchdog handling updates

ipmi-driver-updates.patch
  IPMI driver updates

dio-bio-sizing-fix.patch
  direct-io: size the BIOs more accurately

dio-pages-in-io-accounting-fix.patch
  DIO pages-in-io accounting fix

is_err-is-unlikely.patch
  mark IS_ERR as unlikely()

is_err-unlikeliness-cleanup.patch
  IS_ERR() unlikeliness cleanup

igxb-speedup.patch
  igxb-speedup

fix-netpoll-cleanup-on-abort-without-dev.patch
  Fix netpoll cleanup on abort without dev

add-missing-watchdog-compatible_ioctls.patch
  add missing watchdog COMPATIBLE_IOCTLs

aioc-rename-struct-timeout-to-struct-aio_timeout.patch
  aio.c: rename 'struct timeout' to 'struct aio_timeout'

fix-compiling-oldconfig-with-gcc-35.patch
  fix compiling oldconfig with gcc-3.5

dont-pass-mem_map-into-init-functions.patch
  don't pass mem_map into init functions

dont-pass-mem_map-into-init-functions-ia64-fix.patch
  don't pass mem_map into init functions: ia64 fix

dont-pass-mem_map-into-init-functions-arches.patch
  don't pass mem_map into init functions: other architectures

dont-pass-mem_map-into-init-functions-ia64-fix-2.patch
  dont-pass-mem_map-into-init-functions-ia64-fix-2

dont-pass-mem_map-into-init-functions-x86_64-fix.patch
  dont-pass-mem_map-into-init-functions x86_64 fix

dont-pass-mem_map-into-init-functions-x86-fix.patch
  dont-pass-mem_map-into-init-functions x86 fix

dont-pass-mem_map-into-init-functions-even-more-fixes.patch
  dont-pass-mem_map-into-init-functions more fixes

might-sleep-in-atomic-while-dumping-elf.patch
  fix might-sleep-in-atomic while dumping elf

awe_wave-oss-too-much-__exit.patch
  awe_wave (OSS): too much __exit

serialize-access-to-ide-devices.patch
  serialize access to ide devices

mark-loop_change_fd-as-an-ulong-compat-ioctl.patch
  mark LOOP_CHANGE_FD as an ULONG compat ioctl

readahead-simplification.patch
  readahead: simplify recent fixes

consolidated-readahead-fixes.patch
  readahead fixes

mlock-as-user-for-268-rc2-mm2.patch
  rlimit-based mlocks for unprivileged users

mlock-as-user-fixes.patch
  mlock-as-user fixes

increase-mlock-limit-to-32k.patch
  increase per-user mlock limit default to 32k

increase-mlock-limit-to-32k-cleanup.patch
  increase mlock limit to 32k cleanup

idt77252c-add-missing-pci_enable_device.patch
  idt77252.c: add missing pci_enable_device()

ip2mainc-add-missing-pci_enable_device.patch
  ip2main.c: add missing pci_enable_device()

tpam_mainc-add-missing-pci_enable_device.patch
  tpam_main.c: add missing pci_enable_device()

ibmasm-add-missing-pci_enable_device.patch
  ibmasm: add missing pci_enable_device()

hp100c-add-missing-pci_enable_device.patch
  hp100.c: add missing pci_enable_device()

ioc3-ethc-add-missing-pci_enable_device.patch
  ioc3-eth.c: add missing pci_enable_device()

de4x5c-add-missing-pci_enable_device.patch
  de4x5.c: add missing pci_enable_device()

cpqfc-add-missing-pci_enable_device.patch
  cpqfc: add missing pci_enable_device()

remove-unconditional-pci-acpi-irq-routing.patch
  remove unconditional PCI ACPI IRQ routing

add-pci_fixup_enable-pass.patch
  pci: add pci_fixup_enable pass

fix-gcc-35-compile-issue-in-mm-mempolicyc.patch
  Fix gcc 3.5 compile issue in mm/mempolicy.c

eata_pio-warning-fix.patch
  eata_pio.c warning fix

via-agpc-resume-suspend-support.patch
  via-agp.c resume/suspend support

disable-atykb-warning.patch
  disable atykb "too many keys pressed" warning

collected-aio-retry-fixes-and-enhancements.patch
  AIO: retry infrastructure fixes and enhancements

collected-aio-retry-fixes-and-enhancements-cleanup.patch
  collected-aio-retry-fixes-and-enhancements-cleanup

aio-splice-runlist-for-fairness-across-io-contexts.patch
  AIO: Splice runlist for fairness across io contexts

aio-workqueue-context-switch-reduction.patch
  AIO: workqueue context switch reduction

x86_64-numa-emulation.patch
  x86_64: emulate NUMA on non-NUMA hardware

make-max_init_args-25.patch
  Make MAX_INIT_ARGS 32

wireless-extension-v17-for-linus.patch
  Wireless Extension v17 for Linus

wireless-drivers-update-for-we-17.patch
  Wireless drivers update for WE-17

request_region-for-winbond-and-smsc-parport-drivers.patch
  request_region for winbond and smsc parport drivers

knfsd-server-permissions-fix.patch
  knfsd: fix server permission handling

make-md-no-device-warning-kern_warning.patch
  md: make MD no device warning KERN_WARNING

ia64-dma_mapping-fix.patch
  ia64: dma_mapping fix

automatically-enable-bigsmp-on-big-hp-machines.patch
  Automatically enable bigsmp on big HP machines

rss-ulimit-enforcement.patch
  RSS ulimit enforcement

fix-proc-pid-statm-documentation.patch
  Fix /proc/pid/statm documentation

cciss-update-fixes-to-32-64-bit-conversions.patch
  cciss: fixes to 32/64-bit conversions

cciss-updates-zero-out-buffer-in-passthru-ioctls-for-hp.patch
  cciss: zero out buffer in passthru ioctls for HP utilities

cciss-updates-proc-fixes-for-268-rc3.patch
  cciss: /proc fixes

cciss-updates-cylinder-calculation-fix-for-268-rc3.patch
  cciss: cylinder calculation fix

cciss-updates-id-change-for-v100-controller-for-268-rc3.patch
  cciss: id change for V100 controller

cciss-updates-pdev-intr-fix-for-268-rc3.patch
  cciss: pdev->intr fix

cciss-update-7-read_ahead-bumped-to-1024.patch
  cciss: read_ahead bumped to 1024

cciss-update-8-maintainers-update-for-hp.patch
  cciss update 8 maintainers update for HP

cciss-congig-dependency-fix.patch
  cciss /proc dependency fix

rmaplock-1-5-pageanon-in-mapping.patch
  rmaplock: PageAnon in mapping

rmaplock-2-5-kill-page_map_lock.patch
  rmaplock: kill page_map_lock

rmaplock-3-5-slab_destroy_by_rcu.patch
  rmaplock: SLAB_DESTROY_BY_RCU

rmaplock-4-5-mm-lock-ordering.patch
  rmaplock: mm lock ordering

rmaplock-5-5-swapoff-use-anon_vma.patch
  rmaplock: swapoff use anon_vma

x86-bitopsh-commentary-on-instruction-reordering.patch
  x86 bitops.h commentary on instruction reordering

clarify-get_task_mm-mmgrab.patch
  clarify get_task_mm (mmgrab)

simple-fs-stop-ve-dentries.patch
  simple fs stop -ve dentries

8139too-rx-fifo-overflow-recovery.patch
  8139too: Rx fifo/overflow recovery

8139too-be-sure-to-progress-durin-rtl8139_rx.patch
  8139too: be sure to progress durin rtl8139_rx()

via-velocity-more-inetaddr_notifier-fix.patch
  via-velocity: more inetaddr_notifier fix

vm-tune-writeback.patch
  vm: writeout watermark tuning

alloc-pages-watermark-fixes.patch
  vm: alloc_pages watermark fixes

alloc-pages-priority-tuning.patch
  alloc_pages priority tuning

fix-d_path-errors.patch
  Correctly handle d_path error returns

emu10k1-maintainer-update.patch
  emu10k1 maintainer update

ptr_ok-cleanup.patch
  x86: remove hard-coded numbers from ptr_ok()

mpage_readpage-unable-to-handle-bigger-requests.patch
  Fix mpage_readpage() for big requests

mpage_readpage-unable-to-handle-bigger-requests-warning-fix.patch
  mpage_readpage-unable-to-handle-bigger-requests warning fix

improve-speed-of-freeing-bootmem.patch
  improve speed of freeing bootmem

implement-in-kernel-keys-keyring-management.patch
  implement in-kernel keys & keyring management

implement-in-kernel-keys-keyring-management-afs-workaround.patch
  implement-in-kernel-keys-keyring-management afs workaround

consolidate-clone_idletask-masking.patch
  sched: consolidate CLONE_IDLETASK masking

kill-clone_idletask.patch
  kill CLONE_IDLETASK

kill-clone_idletask-fix.patch
  kill-clone_idletask fix

oprofile-xscale-fixes-for-pxa270-xscale2.patch
  OProfile/XScale fixes for PXA270/XScale2

remove-magic-1-from-shm-segment-count.patch
  remove magic +1 from shm segment count

268-rc3-jffs2-unable-to-read-filesystems.patch
  jffs2 unable to read filesystems

via-rhine-suspend-resume-support.patch
  via-rhine: suspend/resume support

via-rhine-de-isolate-phy.patch
  via-rhine: de-isolate PHY

via-rhine-small-fixes.patch
  via-rhine: small fixes

fix-i386-x86_64-idle-routine-selection.patch
  fix i386/x86_64 idle routine selection

fix-i386-x86_64-idle-routine-selection-comment-updates.patch
  fix-i386-x86_64-idle-routine-selection comment updates

video-mode-handling-linked-list-of-video-modes.patch
  Video Mode Handling - Linked list of video modes

video-mode-handling-linked-list-of-video-modes-build-fix.patch
  video-mode-handling-linked-list-of-video-modes-build-fix

video-mode-handling-save-per-display-graphics-display-settings.patch
  Video Mode Handling - Save per-display graphics/display settings

video-mode-handling-delete-entries-from-mode-list.patch
  Video Mode Handling - Delete entries from mode list

video-mode-handling-reduce-memory-footprint-of-fbdev.patch
  Video Mode Handling - Reduce memory footprint of fbdev

x86-pae-swapspace-expansion.patch
  x86 PAE swapspace expansion

executable-hugetlb-pages.patch
  hugetlb: permit executable mappings

knfsd-fix-brokenness-with-fsid=-export-option.patch
  kNFSd: fix brokenness with fsid= export option

md-fix-problems-with-checksum-handling-in-md-superblocks.patch
  md: fix problems with checksum handling in MD superblocks.

sk98lin-no-procfs-build-fix.patch
  sk98lin/skge.c doesn't compile with PROC_FS=n

fix-net-hamradio-dmascc-with-gcc-34-fwd.patch
  fix net/hamradio/dmascc with gcc 3.4

fix-warnings-in-es7000.patch
  Fix warnings in es7000

reduce-aacraid-namespace-pollution.patch
  reduce aacraid namespace polution

reduce-bkl-usage-in-do_coredump.patch
  Reduce bkl usage in do_coredump

ide-do-spin-up-for-all-platforms.patch
  IDE: do spin up for all platforms

apm_infodisabled-fix.patch
  apm_info.disabled fix

267-rc3-mm2-inlining-failures.patch
  fix inlining failures

qlogic-isp2x00-remove-needless-busyloop.patch
  QLogic ISP2x00: remove needless busyloop

high2lowuid-warning-fix.patch
  hige2lowuid warning fixes

new-cpu_has_-flags.patch
  New cpu_has_ flags

get_nodes-mask-miscalculation.patch
  Fix get_nodes() mask miscalculation

use-posix-headers-in-sumversionc.patch
  Use posix headers in sumversion.c

x86-esr-print-quietness.patch
  x86: quieten the "ESR value" printks

intel8x0c-sound-use-pci_vendor_id-rather-than-bare-numbers.patch
  intel8x0.c sound: use PCI_VENDOR_ID* rather than bare numbers

fix-rxrpc-compile-errors-with-sysctl=n.patch
  fix rxrpc compile errors with SYSCTL=n

typo-fixes-for-cpufreq.patch
  Typo fixes for cpufreq

dnotify-autofs-may-create-signal-restart-syscall-loop.patch
  dnotify + autofs may create signal/restart syscall loop

ix86x86_64-cpu-features.patch
  ix86,x86_64 cpu features

libfs-move-transaction-file-ops-into-libfs.patch
  libfs: move transaction file ops into libfs

dont-print-per-cpu-delay-loop-calibration.patch
  don't print per-cpu delay loop calibration

fix-sn_console-for-config_smp=n.patch
  fix sn_console for CONFIG_SMP=n

via-velocity-wrong-module-name-in-kconfig-documentation.patch
  via-velocity: wrong module name in Kconfig documentation

reduce-ptyc-ifdef-clutter.patch
  reduce pty.c ifdef clutter

bug-on-inconsistant-dcache-tree-in-may_delete.patch
  BUG() on inconsistant dcache tree in may_delete

using-get_cycles-for-add_timer_randomness.patch
  Using get_cycles for add_timer_randomness

remove-dead-config_kernel_elf-kconfig-entry.patch
  ppc32: remove dead CONFIG_KERNEL_ELF Kconfig entry

fix-some-comments-about-epoch-in-arch-alpha-kernel-timec.patch
  fix some comments about epoch in arch/alpha/kernel/time.c

small-simplification-for-two-security-dependencies.patch
  small simplification for two SECURITY dependencies

configurable-selinux-bootparam-value.patch
  configurable SELinux bootparam value

fix-typos-in-security-securityc.patch
  Fix typos in security/security.c

use-simple_read_from_buffer-in-selinuxfs.patch
  use simple_read_from_buffer in selinuxfs

use-simple_read_from_buffer-in-proc_info_read-and-proc_pid_attr_read.patch
  use simple_read_from_buffer in proc_info_read and proc_pid_attr_read

fw-new-linux-268-rc4-mm1-ipv6-in-ipv6-undefined-references.patch
  Fix IPv6-in-IPv6 undefined references

ttys0-vs-ttys00-confusion.patch
  Fix ttyS0 vs. ttyS00 confusion

reduce-size-of-struct-buffer_head-on-64bit.patch
  reduce size of struct buffer_head on 64bit

reduce-size-of-struct-dentry-on-64bit.patch
  reduce size of struct dentry on 64bit

waitid-system-call.patch
  waitid system call

waitid-system-call-update.patch
  waitid system call update

waitid-ia64-build-fix.patch
  waitid-ia64-build-fix

waitid-system-call-cleanups.patch
  waitid-system-call cleanups

remove-cacheline-alignment-from-inode-slabs.patch
  remove cacheline alignment from inode slabs

read-cpumasks-every-time-when-exporting-through-sysfs.patch
  Read cpumasks every time when exporting through sysfs

centralize-i386-constants.patch
  Centralize i386 Constants

fix-permissions-on-module_param-usage.patch
  Fix Permissions on module_param Usage

module-parameters-in-sysfs-for-built-in-modules.patch
  Move param section out of init area, for export of built-in module params

remove-module_parm-from-main-part-of-kernel.patch
  Remove MODULE_PARM from main part of kernel

filemap_index_overflow.patch
  fix pagecache reading off-by-one

synclinkc-replace-syncppp-with-genhdlc.patch
  synclink.c: replace syncppp with genhdlc

synclinkmpc-replace-syncppp-with-genhdlc.patch
  synclinkmp.c: replace syncppp with genhdlc

synclink_csc-replace-syncppp-with-genhdlc.patch
  synclink_cs.c: replace syncppp with genhdlc

reiserfs-xattr-acl-fixes.patch
  reiserfs: xattr/acl fixes

files-up-to-4-gb-support-for-iso9660-filesystems.patch
  Fix access of files up to 4 GB support for ISO9660 filesystems

selinux-add-null-device-node-to-selinuxfs-remove-open_devnull.patch
  SELinux: add null device node to selinuxfs, remove open_devnull

selinux-revalidate-access-to-controlling-tty.patch
  SELinux: revalidate access to controlling tty

selinux-defer-inode-security-initialization.patch
  SElinux; defer inode security initialization

selinux-fix-name_bind-audit.patch
  SELinux: fix name_bind audit




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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
@ 2004-08-16 21:47 ` Christoph Hellwig
  2004-08-17 13:20   ` 2.6.8.1-mm1 Frediano Ziglio
  2004-08-18 23:57   ` 2.6.8.1-mm1 Peter Osterlund
  2004-08-16 22:30 ` 2.6.8.1-mm1 Bartlomiej Zolnierkiewicz
                   ` (8 subsequent siblings)
  9 siblings, 2 replies; 38+ messages in thread
From: Christoph Hellwig @ 2004-08-16 21:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> - The packet-writing patches should be ready to go, but I haven't even
>   looked at them yet, and am not sure that anyone else has reviewed the code.

It's still messing with the elevator setting directly which is a no-go.
That's not the packet-writing drivers fault but needs solving first.


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

* Re: 2.6.8.1-mm1
  2004-08-16 22:30 ` 2.6.8.1-mm1 Bartlomiej Zolnierkiewicz
@ 2004-08-16 21:51   ` Alan Cox
  0 siblings, 0 replies; 38+ messages in thread
From: Alan Cox @ 2004-08-16 21:51 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz; +Cc: Andrew Morton, Linux Kernel Mailing List

On Llu, 2004-08-16 at 23:30, Bartlomiej Zolnierkiewicz wrote:
> Please don't push this upstream, it duplicates _a lot_ of functionality 
> present in drivers/ide / libata (Alan Cox has native drivers/ide driver,
> although I would still prefer libata based driver) and contains code for RAID 
> metadata handling which should belong to user-space.

Some of the metadata handling is needed kernel side. I'm hoping we can
avoid most of it with the drive hotplug code. The corner case causing
the problem is when no arrays are configured so there is no device/hwif
present.

I looked at the libata stuff - it's part of the reason I sent Jeff the
error dump/translate patch but right now libata is woefully ignorant of
a large number of IDE/EIDE/ATA considerations.

Alan


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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
  2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
@ 2004-08-16 22:30 ` Bartlomiej Zolnierkiewicz
  2004-08-16 21:51   ` 2.6.8.1-mm1 Alan Cox
  2004-08-16 23:25 ` 2.6.8.1-mm1 Arkadiusz Miskiewicz
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 38+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-08-16 22:30 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


Hi,

On Monday 16 August 2004 23:37, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8
>.1-mm1

> iteraid.patch
>   ITE RAID driver

Please don't push this upstream, it duplicates _a lot_ of functionality 
present in drivers/ide / libata (Alan Cox has native drivers/ide driver,
although I would still prefer libata based driver) and contains code for RAID 
metadata handling which should belong to user-space.

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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
  2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
  2004-08-16 22:30 ` 2.6.8.1-mm1 Bartlomiej Zolnierkiewicz
@ 2004-08-16 23:25 ` Arkadiusz Miskiewicz
  2004-08-16 23:39 ` 2.6.8.1-mm1 Martin J. Bligh
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 38+ messages in thread
From: Arkadiusz Miskiewicz @ 2004-08-16 23:25 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Monday 16 of August 2004 23:37, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8
>.1-mm1

Hmm, no orinoco_cs drver (long awaited) update?

patches were on lkml here
http://urloogle.com/AG/

-- 
Arkadiusz Miśkiewicz     CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org, 1024/3DB19BBD, JID: arekm.jabber.org, PLD/Linux

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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (2 preceding siblings ...)
  2004-08-16 23:25 ` 2.6.8.1-mm1 Arkadiusz Miskiewicz
@ 2004-08-16 23:39 ` Martin J. Bligh
  2004-08-17  1:32   ` 2.6.8.1-mm1 Nathan Lynch
  2004-08-17  3:07 ` 2.6.8.1-mm1 William Lee Irwin III
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 38+ messages in thread
From: Martin J. Bligh @ 2004-08-16 23:39 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

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

make install from this config file:

ftp://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/config.numaq

results in this failure:

make: *** No rule to make target `.tmp_kallsyms2.S', needed by `.tmp_kallsyms2.o'.  Stop.

gcc 2.95.4 ... 2.6.8.1 compiles fine. I have a feeling that people have discussed
this before - apologies if so, but I can't find the answer in my logs -sorry.


M.


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

* Re: 2.6.8.1-mm1
  2004-08-16 23:39 ` 2.6.8.1-mm1 Martin J. Bligh
@ 2004-08-17  1:32   ` Nathan Lynch
  2004-08-17  6:59     ` 2.6.8.1-mm1 Sam Ravnborg
  0 siblings, 1 reply; 38+ messages in thread
From: Nathan Lynch @ 2004-08-17  1:32 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel

On Mon, 2004-08-16 at 18:39, Martin J. Bligh wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1-mm1
> 
> make install from this config file:
> 
> ftp://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/config.numaq
> 
> results in this failure:
> 
> make: *** No rule to make target `.tmp_kallsyms2.S', needed by `.tmp_kallsyms2.o'.  Stop.

I hit the same thing on ppc64 with gcc 3.3.2-ish.  Doing a non-parallel
make (i.e. without -j) seems to work around it for me.

Nathan



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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (3 preceding siblings ...)
  2004-08-16 23:39 ` 2.6.8.1-mm1 Martin J. Bligh
@ 2004-08-17  3:07 ` William Lee Irwin III
  2004-08-17  3:09   ` 2.6.8.1-mm1 William Lee Irwin III
  2004-08-17  5:59 ` 2.6.8.1-mm1 Nathan Lynch
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  3:07 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> - This kernel probably still has the ia64 scheduler startup bug, although it
>   works For Me.

AIUI that was fixed by kill-clone-idletask-fix.patch


-- wli

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

* Re: 2.6.8.1-mm1
  2004-08-17  3:07 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  3:09   ` William Lee Irwin III
  2004-08-17  3:19     ` 2.6.8.1-mm1 Andrew Morton
  0 siblings, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  3:09 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
>> - This kernel probably still has the ia64 scheduler startup bug, although it
>>   works For Me.

On Mon, Aug 16, 2004 at 08:07:48PM -0700, William Lee Irwin III wrote:
> AIUI that was fixed by kill-clone-idletask-fix.patch

How did you compile on ia64? I get:

make: *** No rule to make target `.tmp_kallsyms3.S', needed by `.tmp_kallsyms3.o'.  Stop.


-- wli

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

* Re: 2.6.8.1-mm1
  2004-08-17  3:09   ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  3:19     ` Andrew Morton
  2004-08-17  3:41       ` 2.6.8.1-mm1 William Lee Irwin III
  2004-08-17 14:38       ` 2.6.8.1-mm1 (compile stats) John Cherry
  0 siblings, 2 replies; 38+ messages in thread
From: Andrew Morton @ 2004-08-17  3:19 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: linux-kernel

William Lee Irwin III <wli@holomorphy.com> wrote:
>
> On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> >> - This kernel probably still has the ia64 scheduler startup bug, although it
> >>   works For Me.
> 
> On Mon, Aug 16, 2004 at 08:07:48PM -0700, William Lee Irwin III wrote:
> > AIUI that was fixed by kill-clone-idletask-fix.patch
> 
> How did you compile on ia64? I get:

I suspect I got lucky.

> make: *** No rule to make target `.tmp_kallsyms3.S', needed by `.tmp_kallsyms3.o'.  Stop.
> 

People are saying that `make -j1' will work around this.

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

* Re: 2.6.8.1-mm1
  2004-08-17  3:19     ` 2.6.8.1-mm1 Andrew Morton
@ 2004-08-17  3:41       ` William Lee Irwin III
  2004-08-17  4:16         ` 2.6.8.1-mm1 Nick Piggin
  2004-08-17 14:38       ` 2.6.8.1-mm1 (compile stats) John Cherry
  1 sibling, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  3:41 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

William Lee Irwin III <wli@holomorphy.com> wrote:
>> How did you compile on ia64? I get:

On Mon, Aug 16, 2004 at 08:19:15PM -0700, Andrew Morton wrote:
> I suspect I got lucky.
> People are saying that `make -j1' will work around this.

Comes up fine on Altix, so it appears kill-clone_idletask-fix.patch
took care of everything.


-- wli

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

* Re: 2.6.8.1-mm1
  2004-08-17  3:41       ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  4:16         ` Nick Piggin
  0 siblings, 0 replies; 38+ messages in thread
From: Nick Piggin @ 2004-08-17  4:16 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: Andrew Morton, linux-kernel, Ingo Molnar

William Lee Irwin III wrote:

>William Lee Irwin III <wli@holomorphy.com> wrote:
>
>>>How did you compile on ia64? I get:
>>>
>
>On Mon, Aug 16, 2004 at 08:19:15PM -0700, Andrew Morton wrote:
>
>>I suspect I got lucky.
>>People are saying that `make -j1' will work around this.
>>
>
>Comes up fine on Altix, so it appears kill-clone_idletask-fix.patch
>took care of everything.
>
>

Can the sched stuff in -mm go to Linus soon then? The earlier in
this cycle the better, I think.

Any boot problems introduced by the cleanup stuff shouldn't be too
hard to track down, and the simplifications are worth the possible
breakage IMO.

The scheduler behavioural change is restricted to introducing child
runs last for CLONE_VM clones, and removing balance-on-clone. Both
should be improvements on most real world threaded apps, and have
been in -mm long enough to get as much test coverage as they ever
will.


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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (4 preceding siblings ...)
  2004-08-17  3:07 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  5:59 ` Nathan Lynch
  2004-08-17  7:19   ` 2.6.8.1-mm1 Rusty Russell
  2004-08-17 11:38   ` 2.6.8.1-mm1 Srivatsa Vaddagiri
  2004-08-17  6:20 ` 2.6.8.1-mm1 William Lee Irwin III
                   ` (3 subsequent siblings)
  9 siblings, 2 replies; 38+ messages in thread
From: Nathan Lynch @ 2004-08-17  5:59 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, Zwane Mwaikambo, Srivatsa Vaddagiri, Rusty Russell

I can consistently hit this BUG_ON in migration_call's CPU_DEAD handling
by doing:

while true ; do
echo 0 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu1/online
done

and then starting a kernel build.  It seems to take less than 20
minutes.  I can also recreate it on ppc64, but only with
CONFIG_PREEMPT=y (I haven't tried without preempt on i386 yet).

kernel BUG at kernel/sched.c:4035!                                              
invalid operand: 0000 [#1]                                                      
PREEMPT SMP                                                                     
Modules linked in:                                                              
CPU:    0                                                                       
EIP:    0060:[<c0122b1b>]    Not tainted VLI                                    
EFLAGS: 00010202   (2.6.8.1-mm1)                                                
EIP is at migration_call+0x1bb/0x300                                            
eax: 00000001   ebx: c1410f60   ecx: 00000000   edx: deee8ec8                   
esi: deee8000   edi: 00000001   ebp: deee8ee0   esp: deee8eb8                   
ds: 007b   es: 007b   ss: 0068                                                  
Process bash (pid: 2956, threadinfo=deee8000 task=df448150)                     
Stack: deee8ed4 de6f6630 de6f6630 deee8ed4 00000296 deee8ee4 00000296 c04a5b78  
       00000001 00000006 deee8ef4 c0136928 deee8000 00000001 c04a7a40 deee8f2c  
       c01405ac c01a8d79 c04f5700 00000000 deee8000 00000001 00000001 000000ff  
Call Trace:                                                                     
 [<c01082ea>] show_stack+0x7a/0x90                                              
 [<c0108472>] show_registers+0x152/0x1c0                                        
 [<c01086a0>] die+0x110/0x200                                                   
 [<c0108b99>] do_invalid_op+0xe9/0xf0                                           
 [<c0107ed9>] error_code+0x2d/0x38                                              
 [<c0136928>] notifier_call_chain+0x28/0x50                                     
 [<c01405ac>] cpu_down+0x11c/0x230                                              
 [<c02a5d98>] store_online+0x38/0x40                                            
 [<c02a3117>] sysdev_store+0x37/0x40                                            
 [<c01a8b8e>] flush_write_buffer+0x2e/0x40                                      
 [<c01a8bea>] sysfs_write_file+0x4a/0x60                                        
 [<c016b362>] vfs_write+0xa2/0x100                                              
 [<c016b471>] sys_write+0x41/0x70                                               
 [<c010746f>] syscall_call+0x7/0xb                                              
Code: 0b cd 0f 6f 54 43 c0 eb 8e c7 04 24 6f 34 43 c0 b8 54 2a 12 c0 89 44 24 04
 e8 e2 3f 00 00 0f 0b 89 00 82 d4 42 c0 e9 4a ff ff ff <0f> 0b c3 0f 6f 54 43 c0
 e9 2c ff ff ff e8 53 87 2f 00 e9 17 ff

Nathan


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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (5 preceding siblings ...)
  2004-08-17  5:59 ` 2.6.8.1-mm1 Nathan Lynch
@ 2004-08-17  6:20 ` William Lee Irwin III
  2004-08-17  6:40   ` 2.6.8.1-mm1 sam
  2004-08-17  7:05 ` 2.6.8.1-mm1 Nathan Lynch
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  6:20 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> handle-undefined-symbols.patch
>   Fail if vmlinux contains undefined symbols
> sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch
>   sparc32: ignore undefined symbols with 3 or more leading underscores

Okay, this patch has officially made my shitlist along with whatever
introduced the second check. The following appears to be necessary to
get sparc64 to link, which of course clashes wildly with the UML
changes to get *it* to link.

And why the Hell are we checking twice??? Check #2 lagging behind
check #1 wrt. updates caused a relatively large amount of pain as I had
to scour the whole damn tree for where the Hell check #2 was happening
and that on a relatively slow box as my faster sparc64 box is down until
ambient temperature regulation issues are mitigated by weather.

This scripting crap is fragile and nightmarish. We should probably be
examining the ELF bits directly in C.


-- wli

Index: mm1-2.6.8.1/Makefile
===================================================================
--- mm1-2.6.8.1.orig/Makefile	2004-08-16 21:09:23.000000000 -0700
+++ mm1-2.6.8.1/Makefile	2004-08-16 23:06:39.530357000 -0700
@@ -542,8 +542,29 @@
 	$(if $($(quiet)cmd_vmlinux__),					\
 	  echo '  $($(quiet)cmd_vmlinux__)' &&) 			\
 	$(cmd_vmlinux__);						\
-	if $(OBJDUMP) --syms $@ | $(AWK) '$$4!~/^___.*/ { print $$0 }'	\
-		| egrep -q '^([^R]|R[^E]|RE[^G])[^w]*\*UND\*'; then	\
+	if $(OBJDUMP) --syms $@						\
+	| $(AWK) 'BEGIN {						\
+		status = 1						\
+	}								\
+	$$4 !~ /^___.*/ && $$1 !~ /^REG.*/ {				\
+		for (i = 0; i < NF; ++i) {				\
+			if ($$i == "*UND*") {				\
+				for (j = i - 1; j >= 0; --j) {		\
+					if ($$j == "w")			\
+						break;			\
+				}					\
+				if (j < 0) {				\
+					printf "undefined!!\n";		\
+					print $$0;			\
+					status = 0			\
+				}					\
+			}						\
+		}							\
+	}								\
+	END {								\
+		exit status						\
+	}';								\
+		then							\
 		echo 'ldchk: $@: final image has undefined symbols:';	\
 		$(NM) $@ | sed 's/^ *U \(.*\)/  \1/p;d';		\
 		$(RM) -f $@;						\
Index: mm1-2.6.8.1/scripts/mksysmap
===================================================================
--- mm1-2.6.8.1.orig/scripts/mksysmap	2004-08-16 21:07:48.000000000 -0700
+++ mm1-2.6.8.1/scripts/mksysmap	2004-08-16 23:07:40.852035000 -0700
@@ -18,9 +18,31 @@
 # they are used by the sparc BTFIXUP logic - and is assumed to be undefined.
 
 
-if [ "`$NM -u $1 | grep -v ' ___'`" != "" ]; then
-	echo "$1: error: undefined symbol(s) found:"
-	$NM -u $1 | grep -v ' ___'
+if $(OBJDUMP) --syms $@							\
+	| $(AWK) 'BEGIN {						\
+		status = 1						\
+	}								\
+	$$4 !~ /^___.*/ && $$1 !~ /^REG.*/ {				\
+		for (i = 0; i < NF; ++i) {				\
+			if ($$i == "*UND*") {				\
+				for (j = i - 1; j >= 0; --j) {		\
+					if ($$j == "w")			\
+						break;			\
+				}					\
+				if (j < 0) {				\
+					printf "undefined!!\n";		\
+					print $$0;			\
+					status = 0			\
+				}					\
+			}						\
+		}							\
+	}								\
+	END {								\
+		exit status						\
+	}';								\
+	then
+		echo "$1: error: undefined symbol(s) found:"
+		$NM -u $1 | grep -v ' ___'
 	exit 1
 fi
 

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

* Re: 2.6.8.1-mm1
  2004-08-17  6:59     ` 2.6.8.1-mm1 Sam Ravnborg
@ 2004-08-17  6:25       ` Martin J. Bligh
  2004-08-17  6:38         ` 2.6.8.1-mm1 Andrew Morton
  2004-08-17  7:00       ` 2.6.8.1-mm1 William Lee Irwin III
  1 sibling, 1 reply; 38+ messages in thread
From: Martin J. Bligh @ 2004-08-17  6:25 UTC (permalink / raw)
  To: Sam Ravnborg, Nathan Lynch; +Cc: Andrew Morton, linux-kernel

> On Mon, Aug 16, 2004 at 08:32:24PM -0500, Nathan Lynch wrote:
>> On Mon, 2004-08-16 at 18:39, Martin J. Bligh wrote:
>> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1-mm1
>> > 
>> > make install from this config file:
>> > 
>> > ftp://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/config.numaq
>> > 
>> > results in this failure:
>> > 
>> > make: *** No rule to make target `.tmp_kallsyms2.S', needed by `.tmp_kallsyms2.o'.  Stop.
>> 
>> I hit the same thing on ppc64 with gcc 3.3.2-ish.  Doing a non-parallel
>> make (i.e. without -j) seems to work around it for me.
> Fix below:
> 
> 	Sam
> 
> ===== Makefile 1.516 vs edited =====
> --- 1.516/Makefile	2004-08-12 23:09:08 +02:00
> +++ edited/Makefile	2004-08-16 23:40:09 +02:00
> @@ -600,6 +600,9 @@
>  .tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds FORCE
>  	$(call if_changed_rule,vmlinux__)
>  
> +# Needs to visit scripts/ before $(KALLSYMS) can be used.
> +$(KALLSYMS): scripts ;
> +
>  endif
>  
>  # Finally the vmlinux rule

Well ... that worked - thanks. But NUMA is still FITH.


arch/i386/mm/discontig.c: In function `zone_sizes_init':
arch/i386/mm/discontig.c:422: warning: passing arg 3 of `free_area_init_node' from incompatible pointer type
arch/i386/mm/discontig.c:422: warning: passing arg 4 of `free_area_init_node' makes pointer from integer without a cast
arch/i386/mm/discontig.c:422: warning: passing arg 5 of `free_area_init_node' makes integer from pointer without a cast
arch/i386/mm/discontig.c:422: too few arguments to function `free_area_init_node'
arch/i386/mm/discontig.c:430: warning: passing arg 3 of `free_area_init_node' from incompatible pointer type
arch/i386/mm/discontig.c:430: warning: passing arg 4 of `free_area_init_node' makes pointer from integer without a cast
arch/i386/mm/discontig.c:430: warning: passing arg 5 of `free_area_init_node' makes integer from pointer without a cast
arch/i386/mm/discontig.c:430: too few arguments to function `free_area_init_node'
make[1]: *** [arch/i386/mm/discontig.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [arch/i386/mm] Error 2
make: *** Waiting for unfinished jobs....
larry:~/linux/2.6.8.1-mm1# 


Which looks rather like the problem that this patch fixed (cut & pasted, sorry ....) 

--- mm2-2.6.8-rc3.orig/arch/i386/mm/discontig.c 2004-08-08 15:39:24.000000000 -0
700
+++ mm2-2.6.8-rc3/arch/i386/mm/discontig.c      2004-08-09 01:18:30.750614368 -0
700
@@ -418,15 +418,15 @@
                 * remapped KVA area - mbligh
                 */
                if (!nid)
-                       free_area_init_node(nid, NODE_DATA(nid), 0, 
-                               zones_size, start, zholes_size);
+                       free_area_init_node(nid, NODE_DATA(nid),
+                                       zones_size, start, zholes_size);
                else {
                        unsigned long lmem_map;
                        lmem_map = (unsigned long)node_remap_start_vaddr[nid];
                        lmem_map += sizeof(pg_data_t) + PAGE_SIZE - 1;
                        lmem_map &= PAGE_MASK;
-                       free_area_init_node(nid, NODE_DATA(nid), 
-                               (struct page *)lmem_map, zones_size, 
+                       NODE_DATA(nid)->node_mem_map = (struct page *)lmem_map;
+                       free_area_init_node(nid, NODE_DATA(nid), zones_size, 
                                start, zholes_size);
                }
        }


Except that's already applied ... Andrew - did you back out the one this was fixing?
If so, I presume this one needs to die too ... backing it out by hand seems to fix 
compilation, at least. (dont-pass-mem_map-into-init-functions-x86-fix.patch)

M.




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

* Re: 2.6.8.1-mm1
  2004-08-17  6:25       ` 2.6.8.1-mm1 Martin J. Bligh
@ 2004-08-17  6:38         ` Andrew Morton
  0 siblings, 0 replies; 38+ messages in thread
From: Andrew Morton @ 2004-08-17  6:38 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: sam, nathanl, linux-kernel

"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> Well ... that worked - thanks. But NUMA is still FITH.
> 
> 
>  arch/i386/mm/discontig.c: In function `zone_sizes_init':
>  arch/i386/mm/discontig.c:422: warning: passing arg 3 of `free_area_init_node' from incompatible pointer type
>  arch/i386/mm/discontig.c:422: warning: passing arg 4 of `free_area_init_node' makes pointer from integer without a cast
>  arch/i386/mm/discontig.c:422: warning: passing arg 5 of `free_area_init_node' makes integer from pointer without a cast
>  arch/i386/mm/discontig.c:422: too few arguments to function `free_area_init_node'
>  arch/i386/mm/discontig.c:430: warning: passing arg 3 of `free_area_init_node' from incompatible pointer type
>  arch/i386/mm/discontig.c:430: warning: passing arg 4 of `free_area_init_node' makes pointer from integer without a cast
>  arch/i386/mm/discontig.c:430: warning: passing arg 5 of `free_area_init_node' makes integer from pointer without a cast
>  arch/i386/mm/discontig.c:430: too few arguments to function `free_area_init_node'
>  make[1]: *** [arch/i386/mm/discontig.o] Error 1

Oh crap - I seem to have misread a backout patch from Dave as a fix, so
most-but-not-all of that damn patch is reverted.  If you back out
dont-pass-mem_map-into-init-functions-even-more-fixes.patch it should work
OK.

I'll drop the whole thing.

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

* Re: 2.6.8.1-mm1
  2004-08-17  6:20 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  6:40   ` sam
  0 siblings, 0 replies; 38+ messages in thread
From: sam @ 2004-08-17  6:40 UTC (permalink / raw)
  To: William Lee Irwin III; +Cc: Andrew Morton, linux-kernel

> On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
>> handle-undefined-symbols.patch
>>   Fail if vmlinux contains undefined symbols
>> sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch
>>   sparc32: ignore undefined symbols with 3 or more leading underscores
>
> Okay, this patch has officially made my shitlist along with whatever
> introduced the second check. The following appears to be necessary to
> get sparc64 to link, which of course clashes wildly with the UML
> changes to get *it* to link.

rmk's ldchk in top-level Makefile needs to be backed out. The check
for undefined symbols are now moved to the mksysmap script.
The patch doing this was on top of Linus's tree therefore the confusion.

But I see this check causing almost only pain, so I hope during the
weekend to come up with something that allow us to specify
the final link rule in the arch Makefile.

Something like:
*/built-in.o =>
  vmlinux.o
  =>
    kallsyms steps
    =>
      arch specific link rule (vmlinux-arch.o)
      =>
        vmlinux


Challenge here is to make it elegant without causing changes for
architectures that do not need it.
The arm can have the dreadful "check for undefined symbols" if needed.

> This scripting crap is fragile and nightmarish. We should probably be
> examining the ELF bits directly in C.
I started looking into this but backed out in fear of doing
too much duplicated work.
If we do a kernel elf-tool then it should cover
also the need for btfixup.

   Sam


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

* Re: 2.6.8.1-mm1
  2004-08-17  1:32   ` 2.6.8.1-mm1 Nathan Lynch
@ 2004-08-17  6:59     ` Sam Ravnborg
  2004-08-17  6:25       ` 2.6.8.1-mm1 Martin J. Bligh
  2004-08-17  7:00       ` 2.6.8.1-mm1 William Lee Irwin III
  0 siblings, 2 replies; 38+ messages in thread
From: Sam Ravnborg @ 2004-08-17  6:59 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: Martin J. Bligh, Andrew Morton, linux-kernel

On Mon, Aug 16, 2004 at 08:32:24PM -0500, Nathan Lynch wrote:
> On Mon, 2004-08-16 at 18:39, Martin J. Bligh wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1-mm1
> > 
> > make install from this config file:
> > 
> > ftp://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/config.numaq
> > 
> > results in this failure:
> > 
> > make: *** No rule to make target `.tmp_kallsyms2.S', needed by `.tmp_kallsyms2.o'.  Stop.
> 
> I hit the same thing on ppc64 with gcc 3.3.2-ish.  Doing a non-parallel
> make (i.e. without -j) seems to work around it for me.
Fix below:

	Sam

===== Makefile 1.516 vs edited =====
--- 1.516/Makefile	2004-08-12 23:09:08 +02:00
+++ edited/Makefile	2004-08-16 23:40:09 +02:00
@@ -600,6 +600,9 @@
 .tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds FORCE
 	$(call if_changed_rule,vmlinux__)
 
+# Needs to visit scripts/ before $(KALLSYMS) can be used.
+$(KALLSYMS): scripts ;
+
 endif
 
 # Finally the vmlinux rule


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

* Re: 2.6.8.1-mm1
  2004-08-17  6:59     ` 2.6.8.1-mm1 Sam Ravnborg
  2004-08-17  6:25       ` 2.6.8.1-mm1 Martin J. Bligh
@ 2004-08-17  7:00       ` William Lee Irwin III
  2004-08-17  7:05         ` 2.6.8.1-mm1 William Lee Irwin III
  1 sibling, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  7:00 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Nathan Lynch, Andrew Morton, linux-kernel

On Mon, Aug 16, 2004 at 08:32:24PM -0500, Nathan Lynch wrote:
>> I hit the same thing on ppc64 with gcc 3.3.2-ish.  Doing a non-parallel
>> make (i.e. without -j) seems to work around it for me.

On Tue, Aug 17, 2004 at 08:59:01AM +0200, Sam Ravnborg wrote:
> Fix below:

The result of this appears to be:

$ time make -s -j16 rpm
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /mnt/rpmbuild/tmp/rpm-tmp.55854
+ umask 022
+ cd /mnt/rpmbuild/BUILD
+ cd /mnt/rpmbuild/BUILD
+ rm -rf kernel-2.6.8.1mm1
+ /usr/bin/gzip -dc /home/wli/kernel-2.6.8.1mm1.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd kernel-2.6.8.1mm1
++ /usr/bin/id -u
+ '[' 1000 = 0 ']'
++ /usr/bin/id -u
+ '[' 1000 = 0 ']'
+ /bin/chmod -Rf a+rX,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /mnt/rpmbuild/tmp/rpm-tmp.95241
+ umask 022
+ cd /mnt/rpmbuild/BUILD
+ /bin/rm -rf /var/tmp/kernel-2.6.8.1mm1-root
++ dirname /var/tmp/kernel-2.6.8.1mm1-root
+ /bin/mkdir -p /var/tmp
+ /bin/mkdir /var/tmp/kernel-2.6.8.1mm1-root
+ cd kernel-2.6.8.1mm1
+ make clean
make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
+ make -j16
make[2]: warning: -jN forced in submake: disabling jobserver mode.
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  SYMLINK include/asm -> include/asm-x86_64
  SPLIT   include/linux/autoconf.h -> include/config/*
cc1: error: output filename specified twice
make[2]: *** [scripts/kallsyms] Error 1
make[2]: *** Waiting for unfinished jobs....
error: Bad exit status from /mnt/rpmbuild/tmp/rpm-tmp.95241 (%build)


RPM build errors:
    Bad exit status from /mnt/rpmbuild/tmp/rpm-tmp.95241 (%build)
make[1]: *** [rpm] Error 1
make: *** [rpm] Error 2
make -s -j16 rpm  38.38s user 9.50s system 81% cpu 58.513 total


-- wli

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

* Re: 2.6.8.1-mm1
  2004-08-17  7:00       ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  7:05         ` William Lee Irwin III
  0 siblings, 0 replies; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17  7:05 UTC (permalink / raw)
  To: Sam Ravnborg, Nathan Lynch, Andrew Morton, linux-kernel

On Mon, Aug 16, 2004 at 08:32:24PM -0500, Nathan Lynch wrote:
>>> I hit the same thing on ppc64 with gcc 3.3.2-ish.  Doing a non-parallel
>>> make (i.e. without -j) seems to work around it for me.

On Tue, Aug 17, 2004 at 08:59:01AM +0200, Sam Ravnborg wrote:
>> Fix below:
>
On Tue, Aug 17, 2004 at 12:00:11AM -0700, William Lee Irwin III wrote:
> The result of this appears to be:

Never mind, the semicolon was essential.


-- wli

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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (6 preceding siblings ...)
  2004-08-17  6:20 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17  7:05 ` Nathan Lynch
  2004-08-17 13:39   ` 2.6.8.1-mm1 Zwane Mwaikambo
  2004-08-17 12:54 ` 2.6.8.1-mm1 William Lee Irwin III
  2004-08-17 21:59 ` ldchk -> arch/arm/Makefile? [Was: 2.6.8.1-mm1] Sam Ravnborg
  9 siblings, 1 reply; 38+ messages in thread
From: Nathan Lynch @ 2004-08-17  7:05 UTC (permalink / raw)
  To: Andrew Morton; +Cc: lkml, Zwane Mwaikambo


> i386-hotplug-cpu.patch
>   i386 Hotplug CPU

i386 seems to want something like this to avoid crashing in
find_busiest_group... looks like there's a short window in fixup_irqs
where interrupts are enabled while we're taking a cpu down.

Unable to handle kernel NULL pointer dereference at virtual address 00000008    
 printing eip:                                                                  
c011eb2d                                                                        
*pde = 00000000                                                                 
Oops: 0000 [#1]                                                                 
SMP                                                                             
Modules linked in:                                                              
CPU:    1                                                                       
EIP:    0060:[<c011eb2d>]    Not tainted VLI                                    
EFLAGS: 00010002   (2.6.8.1-mm1)                                                
EIP is at find_busiest_group+0x1cd/0x350                                        
eax: db4cfec0   ebx: 00000000   ecx: 00000080   edx: 00000000                   
esi: 0000007d   edi: c05d3460   ebp: db4cfea0   esp: db4cfe54                   
ds: 007b   es: 007b   ss: 0068                                                  
Process kstopmachine (pid: 3527, threadinfo=db4cf000 task=c157a030)             
Stack: c014cb31 dff9bba0 c05b7000 00000000 00000001 00000080 00000000 00004000  
       00000080 c05d346c 00000000 c05d3460 db4cfec0 00000001 c14119e0 00000001  
       c14119e0 c1410f60 00000001 db4cfedc c011edad 00000001 dfb70130 dfb70130  
Call Trace:                                                                     
 [<c010815a>] show_stack+0x7a/0x90                                              
 [<c01082e2>] show_registers+0x152/0x1c0                                        
 [<c0108501>] die+0x101/0x1e0                                                   
 [<c011be11>] do_page_fault+0x301/0x5d1                                         
 [<c0107d4d>] error_code+0x2d/0x38                                              
 [<c011edad>] load_balance+0x3d/0x280                                           
 [<c011f381>] rebalance_tick+0xa1/0xb0                                          
 [<c011f4a1>] scheduler_tick+0x111/0x4c0                                        
 [<c0118612>] smp_apic_timer_interrupt+0xe2/0xf0                                
 [<c0107cd2>] apic_timer_interrupt+0x1a/0x20                                    
 [<c0117e66>] __cpu_disable+0x16/0x30                                           
 [<c013d654>] take_cpu_down+0x24/0x50                                           
 [<c0143b53>] do_stop+0x63/0x70                                                 
 [<c013c1a5>] kthread+0xa5/0xb0                                                 
 [<c0105375>] kernel_thread_helper+0x5/0x10                                     
Code: 02 0f af d6 39 d0 0f 86 05 01 00 00 8b 5d cc 89 ca 8b 45 d4 29 da 29 c8 39
 c2 0f 47 d0 8b 45 e4 89 10 8b 5d e0 8b 4b 08 8b 5d dc <8b> 43 08 39 c8 0f 47 c1
 0f af c2 8b 55 e4 c1 e8 07 83 f8 7e 89

Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>

Index: 2.6.8.1-mm1/arch/i386/kernel/apic.c
===================================================================
--- 2.6.8.1-mm1.orig/arch/i386/kernel/apic.c
+++ 2.6.8.1-mm1/arch/i386/kernel/apic.c
@@ -1138,7 +1138,8 @@
 	 * interrupt lock, which is the WrongThing (tm) to do.
 	 */
 	irq_enter();
-	smp_local_timer_interrupt(&regs);
+	if (!cpu_is_offline(cpu))
+		smp_local_timer_interrupt(&regs);
 	irq_exit();
 }
 



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

* Re: 2.6.8.1-mm1
  2004-08-17  5:59 ` 2.6.8.1-mm1 Nathan Lynch
@ 2004-08-17  7:19   ` Rusty Russell
  2004-08-17  8:45     ` [patch] new-task-fix.patch, 2.6.8.1-mm1 Ingo Molnar
  2004-08-17 11:38   ` 2.6.8.1-mm1 Srivatsa Vaddagiri
  1 sibling, 1 reply; 38+ messages in thread
From: Rusty Russell @ 2004-08-17  7:19 UTC (permalink / raw)
  To: Nathan Lynch
  Cc: Andrew Morton, lkml - Kernel Mailing List, Zwane Mwaikambo,
	Srivatsa Vaddagiri, Nick Piggin, Ingo Molnar

On Tue, 2004-08-17 at 15:59, Nathan Lynch wrote:
> I can consistently hit this BUG_ON in migration_call's CPU_DEAD handling
> by doing:
> 
> while true ; do
> echo 0 > /sys/devices/system/cpu/cpu1/online
> echo 1 > /sys/devices/system/cpu/cpu1/online
> done
> 
> and then starting a kernel build.  It seems to take less than 20
> minutes.  I can also recreate it on ppc64, but only with
> CONFIG_PREEMPT=y (I haven't tried without preempt on i386 yet).

Hmm, can you figure out what patch in -mm breaks it?

Looking through 2.6.8.1-mm1, I see this code which doesn't make sense:


	if (likely(cpu == this_cpu)) {
...
	} else {
		runqueue_t *this_rq = cpu_rq(this_cpu);

		/*
		 * Not the local CPU - must adjust timestamp. This should
		 * get optimised away in the !CONFIG_SMP case.
		 */
		p->timestamp = (p->timestamp - this_rq->timestamp_last_tick)
					+ rq->timestamp_last_tick;
		__activate_task(p, rq);
		if (TASK_PREEMPTS_CURR(p, rq))
			resched_task(rq->curr);

		current->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(current) *
			PARENT_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
		schedstat_inc(rq, wunt_moved);
	}

	if (unlikely(cpu != this_cpu)) {
		task_rq_unlock(rq, &flags);
		rq = task_rq_lock(current, &flags);
	}
	current->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(current) *
		PARENT_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
	task_rq_unlock(rq, &flags);
}

So, first off, the statements under "if (unlikely(cpu != this_cpu))" can
be folded into the previous block, since that's under the same test. 
Secondly, why is sleep_avg being set twice to the same thing, and why
are we happy to adjust it the first time without holding the rq lock for
current, but the second time we make sure we are holding the rq lock? 
recalc_task_prio seems happy to adjust a tasks ->sleep_avg without
holding any lock at all...

Rusty.
-- 
Anyone who quotes me in their signature is an idiot -- Rusty Russell


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

* [patch] new-task-fix.patch, 2.6.8.1-mm1
  2004-08-17  7:19   ` 2.6.8.1-mm1 Rusty Russell
@ 2004-08-17  8:45     ` Ingo Molnar
  2004-08-17 11:35       ` Nick Piggin
  0 siblings, 1 reply; 38+ messages in thread
From: Ingo Molnar @ 2004-08-17  8:45 UTC (permalink / raw)
  To: Rusty Russell
  Cc: Nathan Lynch, Andrew Morton, lkml - Kernel Mailing List,
	Zwane Mwaikambo, Srivatsa Vaddagiri, Nick Piggin

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


* Rusty Russell <rusty@rustcorp.com.au> wrote:

> Looking through 2.6.8.1-mm1, I see this code which doesn't make sense:

> So, first off, the statements under "if (unlikely(cpu != this_cpu))"
> can be folded into the previous block, since that's under the same
> test.  Secondly, why is sleep_avg being set twice to the same thing,
> and why are we happy to adjust it the first time without holding the
> rq lock for current, but the second time we make sure we are holding
> the rq lock? [...]

agreed, this is a bug - the code has rotten somewhat. The attached patch
fixes it. I've also cleaned up the locking and added this_rq, to make
clear when and how we are hopping from one runqueue to another. (this
cleanup would have made the original bug more obvious as well.)

This comes after sched-nonlinear-timeslicespatch.patch in 2.6.8.1-mm1. 
Tested on x86.

> [...]  recalc_task_prio seems happy to adjust a tasks ->sleep_avg
> without holding any lock at all...

this is not true - we always update ->avg_sleep while holding the lock. 
recalc_task_prio() is stricly called with p's runqueue lock held.

	Ingo

[-- Attachment #2: new-task-fix.patch --]
[-- Type: text/plain, Size: 1650 bytes --]


Rusty noticed that we update the parent ->avg_sleep without holding the
runqueue lock. Also the code needed cleanups.

Signed-off-by: Ingo Molnar <mingo@elte.hu>

--- linux/kernel/sched.c.orig	
+++ linux/kernel/sched.c	
@@ -1344,7 +1344,7 @@ void fastcall wake_up_new_task(task_t * 
 {
 	unsigned long flags;
 	int this_cpu, cpu;
-	runqueue_t *rq;
+	runqueue_t *rq, *this_rq;
 
 	rq = task_rq_lock(p, &flags);
 	cpu = task_cpu(p);
@@ -1386,8 +1386,15 @@ void fastcall wake_up_new_task(task_t * 
 		} else
 			/* Run child last */
 			__activate_task(p, rq);
+		/*
+		 * We skip the following code due to cpu == this_cpu
+	 	 *
+		 *   task_rq_unlock(rq, &flags);
+		 *   this_rq = task_rq_lock(current, &flags);
+		 */
+		this_rq = rq;
 	} else {
-		runqueue_t *this_rq = cpu_rq(this_cpu);
+		this_rq = cpu_rq(this_cpu);
 
 		/*
 		 * Not the local CPU - must adjust timestamp. This should
@@ -1399,18 +1406,17 @@ void fastcall wake_up_new_task(task_t * 
 		if (TASK_PREEMPTS_CURR(p, rq))
 			resched_task(rq->curr);
 
-		current->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(current) *
-			PARENT_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
 		schedstat_inc(rq, wunt_moved);
-	}
-
-	if (unlikely(cpu != this_cpu)) {
+		/*
+		 * Parent and child are on different CPUs, now get the
+		 * parent runqueue to update the parent's ->sleep_avg:
+		 */
 		task_rq_unlock(rq, &flags);
-		rq = task_rq_lock(current, &flags);
+		this_rq = task_rq_lock(current, &flags);
 	}
 	current->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(current) *
 		PARENT_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
-	task_rq_unlock(rq, &flags);
+	task_rq_unlock(this_rq, &flags);
 }
 
 /*

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

* Re: [patch] new-task-fix.patch, 2.6.8.1-mm1
  2004-08-17  8:45     ` [patch] new-task-fix.patch, 2.6.8.1-mm1 Ingo Molnar
@ 2004-08-17 11:35       ` Nick Piggin
  0 siblings, 0 replies; 38+ messages in thread
From: Nick Piggin @ 2004-08-17 11:35 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Rusty Russell, Nathan Lynch, Andrew Morton,
	lkml - Kernel Mailing List, Zwane Mwaikambo, Srivatsa Vaddagiri



Ingo Molnar wrote:

>* Rusty Russell <rusty@rustcorp.com.au> wrote:
>
>  
>
>>Looking through 2.6.8.1-mm1, I see this code which doesn't make sense:
>>    
>>
>
>  
>
>>So, first off, the statements under "if (unlikely(cpu != this_cpu))"
>>can be folded into the previous block, since that's under the same
>>test.  Secondly, why is sleep_avg being set twice to the same thing,
>>and why are we happy to adjust it the first time without holding the
>>rq lock for current, but the second time we make sure we are holding
>>the rq lock? [...]
>>    
>>
>
>agreed, this is a bug - the code has rotten somewhat. The attached patch
>fixes it. I've also cleaned up the locking and added this_rq, to make
>clear when and how we are hopping from one runqueue to another. (this
>cleanup would have made the original bug more obvious as well.)
>
>This comes after sched-nonlinear-timeslicespatch.patch in 2.6.8.1-mm1. 
>Tested on x86.
>
>  
>

Looks OK to me. Thanks Ingo, Rusty.


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

* Re: 2.6.8.1-mm1
  2004-08-17  5:59 ` 2.6.8.1-mm1 Nathan Lynch
  2004-08-17  7:19   ` 2.6.8.1-mm1 Rusty Russell
@ 2004-08-17 11:38   ` Srivatsa Vaddagiri
  2004-08-17 17:53     ` 2.6.8.1-mm1 Andrew Morton
  1 sibling, 1 reply; 38+ messages in thread
From: Srivatsa Vaddagiri @ 2004-08-17 11:38 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: Andrew Morton, lkml, Zwane Mwaikambo, Rusty Russell

I found this to be due to task leak in exit code. In release_task:

	a. Task is removed from task-list (unhash_process)
	b. More processing is done (like proc_pid_flush etc)
	   before task finally dies.

The problem is the task can get preempted between a and b. In that window
its CPU can die and migrate_all_tasks will not migrate the task (since
it is not on the list).  This will cause the task to be forever stuck
to the dead cpu.

One option is not to remove the task until the last minute (when
it calls schedule). Rusty however felt that release_task can be 
called from __put_task_struct, which will avoid the problem we have
now. He is most likely going to send a patch for the same.

	
On Tue, Aug 17, 2004 at 12:59:02AM -0500, Nathan Lynch wrote:
> I can consistently hit this BUG_ON in migration_call's CPU_DEAD handling
> by doing:
> 
> while true ; do
> echo 0 > /sys/devices/system/cpu/cpu1/online
> echo 1 > /sys/devices/system/cpu/cpu1/online
> done
> 
> and then starting a kernel build.  It seems to take less than 20
> minutes.  I can also recreate it on ppc64, but only with
> CONFIG_PREEMPT=y (I haven't tried without preempt on i386 yet).
> 
> kernel BUG at kernel/sched.c:4035!                                              
> invalid operand: 0000 [#1]                                                      
> PREEMPT SMP                                                                     
> Modules linked in:                                                              
> CPU:    0                                                                       
> EIP:    0060:[<c0122b1b>]    Not tainted VLI                                    
> EFLAGS: 00010202   (2.6.8.1-mm1)                                                
> EIP is at migration_call+0x1bb/0x300                                            
> eax: 00000001   ebx: c1410f60   ecx: 00000000   edx: deee8ec8                   
> esi: deee8000   edi: 00000001   ebp: deee8ee0   esp: deee8eb8                   
> ds: 007b   es: 007b   ss: 0068                                                  
> Process bash (pid: 2956, threadinfo=deee8000 task=df448150)                     
> Stack: deee8ed4 de6f6630 de6f6630 deee8ed4 00000296 deee8ee4 00000296 c04a5b78  
>        00000001 00000006 deee8ef4 c0136928 deee8000 00000001 c04a7a40 deee8f2c  
>        c01405ac c01a8d79 c04f5700 00000000 deee8000 00000001 00000001 000000ff  
> Call Trace:                                                                     
>  [<c01082ea>] show_stack+0x7a/0x90                                              
>  [<c0108472>] show_registers+0x152/0x1c0                                        
>  [<c01086a0>] die+0x110/0x200                                                   
>  [<c0108b99>] do_invalid_op+0xe9/0xf0                                           
>  [<c0107ed9>] error_code+0x2d/0x38                                              
>  [<c0136928>] notifier_call_chain+0x28/0x50                                     
>  [<c01405ac>] cpu_down+0x11c/0x230                                              
>  [<c02a5d98>] store_online+0x38/0x40                                            
>  [<c02a3117>] sysdev_store+0x37/0x40                                            
>  [<c01a8b8e>] flush_write_buffer+0x2e/0x40                                      
>  [<c01a8bea>] sysfs_write_file+0x4a/0x60                                        
>  [<c016b362>] vfs_write+0xa2/0x100                                              
>  [<c016b471>] sys_write+0x41/0x70                                               
>  [<c010746f>] syscall_call+0x7/0xb                                              
> Code: 0b cd 0f 6f 54 43 c0 eb 8e c7 04 24 6f 34 43 c0 b8 54 2a 12 c0 89 44 24 04
>  e8 e2 3f 00 00 0f 0b 89 00 82 d4 42 c0 e9 4a ff ff ff <0f> 0b c3 0f 6f 54 43 c0
>  e9 2c ff ff ff e8 53 87 2f 00 e9 17 ff
> 
> Nathan
> 

-- 


Thanks and Regards,
Srivatsa Vaddagiri,
Linux Technology Center,
IBM Software Labs,
Bangalore, INDIA - 560017

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

* Re: 2.6.8.1-mm1
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (7 preceding siblings ...)
  2004-08-17  7:05 ` 2.6.8.1-mm1 Nathan Lynch
@ 2004-08-17 12:54 ` William Lee Irwin III
  2004-08-17 14:15   ` 2.6.8.1-mm1 William Lee Irwin III
  2004-08-17 21:59 ` ldchk -> arch/arm/Makefile? [Was: 2.6.8.1-mm1] Sam Ravnborg
  9 siblings, 1 reply; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17 12:54 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1-mm1
> - perfctr is ready to be merged up, but there are concerns that it
>   duplicates perfmon capabilities, and that perfmon may be a better base from
>   which to start.  Am waiting for the dust to settle on that front.
> - The packet-writing patches should be ready to go, but I haven't even
>   looked at them yet, and am not sure that anyone else has reviewed the code.
> - Added the kprobes facility.

Hmm. Got this on a JS20.


Elapsed time since release of system processors: 0 mins 32 secs

Config file read, 1024 bytes
Welcome
Welcome to yaboot version 1.3.10
Enter "help" to get some basic usage information
boot:
  mm1-2.6.8.1                2.4.21-wired             * 2.4.21-147-pseries64    
  2.4.21-EL-pseries64        wli-2.6.6-rc3-mm1          mm2-2.6.6-rc3           
  virgin-2.6.6-rc3           virgin-2.6.5
boot: mm1-2.6.8.1
Please wait, loading kernel...
   Elf64 kernel loaded...
Looking for displays
OF stdout is    : /vdevice/vty@0
Opening displays...
Hypertas detected, assuming LPAR !
instantiating rtas at 0x0000000007a4e000...rtas_ram_size = 2ea000
fixed_base_addr = 7a4e000
code_base_addr = 7ad8000
Code Image Load Complete.
registered vars:
name                              addr               size  hash align
--------------------------------  ----------------   ----  ---- -----
glob_rtas_trace_buf             : 0000000007a97100  65552     7      0
perf_tools_corr_token_ptr       : 0000000007aabd00      8     7      0
prtas_was_interrupted           : 0000000007aa8100      4     9      1
callperf                        : 0000000007aa8400  12320     9      1
pglob_os_term_state             : 0000000007aab700      4    12      1
hypStopWatch                    : 0000000007aa7400   1800    14      8
prtas_in_progress               : 0000000007aa7e00      4    20      1
bufferstatus                    : 0000000007aac000     40    30      1
last_error_log                  : 0000000007aac500   1024    30      0
perf_tools_buff                 : 0000000007aaba00     88    31      0
nmi_work_buffer                 : 0000000007aad000   4096    31     12
 done
0000000000000000 : booting  cpu /cpus/PowerPC,970@0
0000000000000001 : starting cpu /cpus/PowerPC,970@1... ... done
Calling quiesce ...
returning from prom_init
firmware_features = 0x11ff7f
Starting Linux PPC64 2.6.8.1-mm1
-----------------------------------------------------
naca                          = 0xc000000000004000
naca->pftSize                 = 0x18
naca->debug_switch            = 0x0
naca->interrupt_controller    = 0x2
systemcfg                     = 0xc000000000005000
systemcfg->processorCount     = 0x2
systemcfg->physicalMemorySize = 0x3d000000
systemcfg->dCacheL1LineSize   = 0x80
systemcfg->iCacheL1LineSize   = 0x80
htab_data.htab                = 0x0000000000000000
htab_data.num_ptegs           = 0x20000
-----------------------------------------------------
[boot]0100 MM Init
[boot]0100 MM Init Done
Trap instruction interrupt : Invalid Instruction
[0x0]dummy:
+0x00000000: 00000000   invalid
hdb(0)> 

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

* Re: 2.6.8.1-mm1
  2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
@ 2004-08-17 13:20   ` Frediano Ziglio
  2004-08-18 23:57   ` 2.6.8.1-mm1 Peter Osterlund
  1 sibling, 0 replies; 38+ messages in thread
From: Frediano Ziglio @ 2004-08-17 13:20 UTC (permalink / raw)
  To: Christoph Hellwig, petero2, axboe, Andrew Morton; +Cc: linux-kernel

Il lun, 2004-08-16 alle 23:47, Christoph Hellwig ha scritto:
> On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> > - The packet-writing patches should be ready to go, but I haven't even
> >   looked at them yet, and am not sure that anyone else has reviewed the code.
> 
> It's still messing with the elevator setting directly which is a no-go.
> That's not the packet-writing drivers fault but needs solving first.
> 

I tried 2.6.8.1-mm1 ASAP and DVD+/-RW works very well.
I even used two drives together (a CD writer and a DVD writer).

Compiling kernel (using 2.6.8.1 + Petero Patch, cd not used) I got this
error using mkinitrd

Unable to handle kernel NULL pointer dereference at virtual address
00000050
 printing eip:
e0abd8a6
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: loop ext3 jbd nls_iso8859_1 nls_cp437 vfat fat floppy
ipv6 parport_pc lp parport autofs4 sunrpc
forcedeth 3c59x ipt_REJECT ipt_state ip_conntrack iptable_filter
ip_tables dm_mod usblp ohci_hcd ehci_hcd button battery asus_acpi ac
reiserfs aic7xxx sd_mod scsi_mod
CPU:    0
EIP:    0060:[<e0abd8a6>]    Not tainted
EFLAGS: 00010286   (2.6.8)
EIP is at lo_open+0x6/0x30 [loop]
eax: 00000000   ebx: dc8eec00   ecx: e0abd8a0   edx: deef3560
esi: dff5ea00   edi: dff5ea00   ebp: e0abec00   esp: d00abf10
ds: 007b   es: 007b   ss: 0068
Process nash (pid: 4595, threadinfo=d00aa000 task=deea37b0)
Stack: c0156119 c0155cff c0155c10 dff5ea0c deef3560 00000000 deef3560
c9595a0c
       dff5ea00 d535fbcc c01563f5 deef3560 c9595a0c dff63f20 c014e6c6
ffffffe9
       d00abf68 00000000 d1056000 d00aa000 c014e5bc d00abf68 d535fbcc
dff63f20
Call Trace:
 [<c0156119>] do_open+0xe9/0x300
 [<c0155cff>] bdget+0xdf/0xf0
 [<c0155c10>] bdev_set+0x0/0x10
 [<c01563f5>] blkdev_open+0x25/0x60
 [<c014e6c6>] dentry_open+0x106/0x1a0
 [<c014e5bc>] filp_open+0x4c/0x50
 [<c014e788>] get_unused_fd+0x28/0xb0
 [<c014e8ad>] sys_open+0x4d/0xa0
 [<c0105d29>] sysenter_past_esp+0x52/0x71
Code: 8b 40 50 8b 40 38 8d 88 08 01 00 00 ff 88 08 01 00 00 0f 88

I got some error using cdrwtool (it seems to send an ABORT, perhaps
cause it expect that recorder write at 12x ?? I have a 2x CD
rewriter...). I don't know it this information it's useful

scsi0:0:5:0: Attempting to queue an ABORT message
CDB: 0x25 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
scsi0: At time of recovery, card was not paused
>>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<<
scsi0: Dumping Card State in Message-in phase, at SEQADDR 0x43
Card was paused
ACCUM = 0x0, SINDEX = 0x3, DINDEX = 0x8c, ARG_2 = 0x0
HCNT = 0x0 SCBPTR = 0x0
SCSISIGI[0x0] ERROR[0x0] SCSIBUSL[0x0] LASTPHASE[0xe0]
SCSISEQ[0x12] SBLKCTL[0x2] SCSIRATE[0x0] SEQCTL[0x10]
SEQ_FLAGS[0x0] SSTAT0[0x5] SSTAT1[0xa] SSTAT2[0x0]
SSTAT3[0x0] SIMODE0[0x0] SIMODE1[0xa4] SXFRCTL0[0x80]
DFCNTRL[0x0] DFSTATUS[0x29]
STACK: 0x0 0x150 0xf3 0xed
SCB count = 4
Kernel NEXTQSCB = 3
Card NEXTQSCB = 2
QINFIFO entries: 2
Waiting Queue entries:
Disconnected Queue entries:
QOUTFIFO entries:
Sequencer Free SCB List: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sequencer SCB Info:
  0 SCB_CONTROL[0xc0] SCB_SCSIID[0x57] SCB_LUN[0x0] SCB_TAG[0xff]
  1 SCB_CONTROL[0x88] SCB_SCSIID[0x37] SCB_LUN[0x0] SCB_TAG[0xff]
  2 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  3 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  4 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  5 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  6 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  7 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  8 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
  9 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 10 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 11 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 12 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 13 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 14 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
 15 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff]
Pending list:
  2 SCB_CONTROL[0x40] SCB_SCSIID[0x57] SCB_LUN[0x0]
Kernel Free SCB list: 1 0
Untagged Q(5): 2
DevQ(0:3:0): 0 waiting
DevQ(0:5:0): 0 waiting

<<<<<<<<<<<<<<<<< Dump Card State Ends >>>>>>>>>>>>>>>>>>
scsi0:0:5:0: Cmd aborted from QINFIFO
aic7xxx_abort returns 0x2002

Trying to mount an iso cd with packet writing I got some warnings
(system continue to be stable)

cdrom: This disc doesn't have any tracks I recognize!
cdrom: This disc doesn't have any tracks I recognize!
cdrom: This disc doesn't have any tracks I recognize!
cdrom: This disc doesn't have any tracks I recognize!
cdrom: This disc doesn't have any tracks I recognize!
Device not ready.  Make sure there is a disc in the drive.
Device not ready.  Make sure there is a disc in the drive.
cdrom: This disc doesn't have any tracks I recognize!
pktcdvd: writer pktcdvd0 mapped to sr1
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 20 00
00 20 00
Info fld=0x20 (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 128
Buffer I/O error on device pktcdvd0, logical block 16
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 22 00
00 1e 00
Info fld=0x22 (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 136
Buffer I/O error on device pktcdvd0, logical block 17
SCSI error : <0 0 5 0> return code = 0x8000002
Info fld=0x0, Current sr1: sense key Aborted Command
end_request: I/O error, dev sr1, sector 144
Buffer I/O error on device pktcdvd0, logical block 18
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 26 00
00 1a 00
Info fld=0x26 (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 152
Buffer I/O error on device pktcdvd0, logical block 19
SCSI error : <0 0 5 0> return code = 0x8000002
Info fld=0x0, Current sr1: sense key Aborted Command
end_request: I/O error, dev sr1, sector 160
Buffer I/O error on device pktcdvd0, logical block 20
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 20 00
00 02 00
Info fld=0x20 (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 128
Buffer I/O error on device pktcdvd0, logical block 16
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 2a 00
00 16 00
Info fld=0x2a (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 168
Buffer I/O error on device pktcdvd0, logical block 21
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 2c 00
00 14 00
Info fld=0x2c (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 176
Buffer I/O error on device pktcdvd0, logical block 22
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 2e 00
00 12 00
Info fld=0x2e (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 184
Buffer I/O error on device pktcdvd0, logical block 23
...
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 3c 00
00 04 00
Info fld=0x3c (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 240
Buffer I/O error on device pktcdvd0, logical block 30
scsi0: ERROR on channel 0, id 5, lun 0, CDB: Read (10) 00 00 00 00 3e 00
00 02 00
Info fld=0x3e (nonstd), Current sr1: sense key Medium Error
Additional sense: No seek complete
end_request: I/O error, dev sr1, sector 248
Buffer I/O error on device pktcdvd0, logical block 31
pktcdvd: inserted media is CD-RW
pktcdvd: Fixed packets, 32 blocks, Mode-2 disc
pktcdvd: Max. media speed: 2
pktcdvd: write speed 2
pktcdvd: 549888kB available on disc
FAT: bogus number of reserved sectors
VFS: Can't find a valid FAT filesystem on dev pktcdvd0.

freddy77



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

* Re: 2.6.8.1-mm1
  2004-08-17  7:05 ` 2.6.8.1-mm1 Nathan Lynch
@ 2004-08-17 13:39   ` Zwane Mwaikambo
  0 siblings, 0 replies; 38+ messages in thread
From: Zwane Mwaikambo @ 2004-08-17 13:39 UTC (permalink / raw)
  To: Nathan Lynch; +Cc: Andrew Morton, lkml

On Tue, 17 Aug 2004, Nathan Lynch wrote:

> i386 seems to want something like this to avoid crashing in
> find_busiest_group... looks like there's a short window in fixup_irqs
> where interrupts are enabled while we're taking a cpu down.

> Index: 2.6.8.1-mm1/arch/i386/kernel/apic.c
> ===================================================================
> --- 2.6.8.1-mm1.orig/arch/i386/kernel/apic.c
> +++ 2.6.8.1-mm1/arch/i386/kernel/apic.c
> @@ -1138,7 +1138,8 @@
>  	 * interrupt lock, which is the WrongThing (tm) to do.
>  	 */
>  	irq_enter();
> -	smp_local_timer_interrupt(&regs);
> +	if (!cpu_is_offline(cpu))
> +		smp_local_timer_interrupt(&regs);
>  	irq_exit();

Hmm i really am trying to avoid that, thats why we also mask the APIC
timer after fixup_irqs, can we try tackling that instead?

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

* Re: 2.6.8.1-mm1
  2004-08-17 12:54 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17 14:15   ` William Lee Irwin III
  0 siblings, 0 replies; 38+ messages in thread
From: William Lee Irwin III @ 2004-08-17 14:15 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.8.1/2.6.8.1-mm1

On Tue, Aug 17, 2004 at 05:54:59AM -0700, William Lee Irwin III wrote:
> Hmm. Got this on a JS20.
> Elapsed time since release of system processors: 0 mins 32 secs
[...]

A firmware upgrade seems to have taken care of this.


-- wli

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

* Re: 2.6.8.1-mm1 (compile stats)
  2004-08-17  3:19     ` 2.6.8.1-mm1 Andrew Morton
  2004-08-17  3:41       ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17 14:38       ` John Cherry
  1 sibling, 0 replies; 38+ messages in thread
From: John Cherry @ 2004-08-17 14:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Linux 2.6 (mm tree) Compile Statistics (gcc 3.2.2)

Kernel            bzImage   bzImage  bzImage  modules  bzImage  modules
                (defconfig) (allno) (allyes) (allyes) (allmod) (allmod)
--------------- ---------- -------- -------- -------- -------- --------
2.6.8.1-mm1       0w/0e     0w/0e    78w/0e    4w/0e   1w/0e     74w/0e
2.6.8-rc4-mm1     0w/0e     0w/5e    81w/0e    4w/0e   1w/0e     75w/0e
2.6.8-rc3-mm2     1w/7e     0w/5e    82w/8e    4w/0e   2w/8e     75w/0e
2.6.8-rc3-mm1     0w/0e     1w/5e    81w/9e    4w/0e   1w/0e     75w/0e
2.6.8-rc2-mm2     0w/0e     4w/5e    87w/9e    4w/0e   1w/0e     80w/0e
2.6.8-rc2-mm1     0w/0e     0w/0e    83w/9e    3w/0e   1w/0e     81w/0e
2.6.8-rc1-mm1     0w/0e     0w/0e    88w/9e    5w/0e   1w/0e     87w/0e
2.6.7-mm7         0w/0e     0w/0e    89w/9e    5w/0e   1w/0e     84w/0e
2.6.7-mm6         0w/0e     0w/0e    85w/9e    5w/0e   1w/0e     80w/0e
2.6.7-mm5         0w/0e     0w/0e    92w/0e    5w/0e   1w/0e     87w/0e
2.6.7-mm4         0w/0e     0w/0e    94w/0e    5w/0e   1w/0e     89w/0e
2.6.7-mm3         0w/0e     0w/0e    90w/6e    5w/0e   1w/0e     86w/0e
2.6.7-mm2         0w/0e     0w/0e   109w/0e    7w/0e   1w/0e    106w/0e
2.6.7-mm1         0w/0e     5w/0e   108w/0e    5w/0e   1w/0e    104w/0e
2.6.7-rc3-mm2     0w/0e     5w/0e   105w/10e   5w/0e   2w/0e    100w/2e
2.6.7-rc3-mm1     0w/0e     5w/0e   104w/10e   5w/0e   2w/0e    100w/2e
2.6.7-rc2-mm2     0w/0e     5w/0e   109w/10e   5w/0e   2w/0e    105w/2e
2.6.7-rc2-mm1     0w/0e    12w/0e   158w/13e   5w/0e   3w/0e    153w/4e
2.6.7-rc1-mm1     0w/0e     6w/0e   108w/0e    5w/0e   2w/0e    104w/0e
2.6.6-mm5         0w/0e     0w/0e   109w/5e    5w/0e   2w/0e    110w/0e
2.6.6-mm4         0w/0e     0w/0e   112w/9e    5w/0e   2w/5e    106w/1e
2.6.6-mm3         3w/9e     0w/0e   120w/26e   5w/0e   2w/0e    114w/10e
2.6.6-mm2         4w/11e    0w/0e   120w/24e   6w/0e   2w/0e    118w/9e
2.6.6-mm1         1w/0e     0w/0e   118w/25e   6w/0e   2w/0e    114w/10e
2.6.6-rc3-mm2     0w/0e     0w/0e   117w/ 0e   8w/0e   2w/0e    116w/0e
2.6.6-rc3-mm1     0w/0e     0w/0e   120w/10e   8w/0e   2w/0e    152w/2e
2.6.6-rc2-mm2     0w/0e     1w/5e   118w/ 0e   8w/0e   3w/0e    118w/0e
2.6.6-rc2-mm1     0w/0e     0w/0e   115w/ 0e   7w/0e   3w/0e    116w/0e
2.6.6-rc1-mm1     0w/0e     0w/7e   122w/ 0e   7w/0e   4w/0e    122w/0e
2.6.5-mm6         0w/0e     0w/0e   123w/ 0e   7w/0e   4w/0e    124w/0e
2.6.5-mm5         0w/0e     0w/0e   119w/ 0e   7w/0e   4w/0e    120w/0e
2.6.5-mm4         0w/0e     0w/0e   120w/ 0e   7w/0e   4w/0e    121w/0e
2.6.5-mm3         0w/0e     1w/0e   121w/12e   7w/0e   3w/0e    123w/0e
2.6.5-mm2         0w/0e     0w/0e   128w/12e   7w/0e   3w/0e    134w/0e
2.6.5-mm1         0w/0e     5w/0e   122w/ 0e   7w/0e   3w/0e    124w/0e
2.6.5-rc3-mm4     0w/0e     0w/0e   124w/ 0e   8w/0e   4w/0e    126w/0e
2.6.5-rc3-mm3     0w/0e     5w/0e   129w/14e   8w/0e   4w/0e    129w/6e
2.6.5-rc3-mm2     0w/0e     5w/0e   130w/14e   8w/0e   4w/0e    129w/6e
2.6.5-rc3-mm1     0w/0e     5w/0e   129w/ 0e   8w/0e   4w/0e    129w/0e
2.6.5-rc2-mm5     0w/0e     5w/0e   130w/ 0e   8w/0e   4w/0e    129w/0e
2.6.5-rc2-mm4     0w/0e     5w/0e   134w/ 0e   8w/0e   3w/0e    133w/0e
2.6.5-rc2-mm3     0w/0e     5w/0e   134w/ 0e   8w/0e   3w/0e    133w/0e
2.6.5-rc2-mm2     0w/0e     5w/0e   137w/ 0e   8w/0e   3w/0e    134w/0e
2.6.5-rc2-mm1     0w/0e     5w/0e   136w/ 0e   8w/0e   3w/0e    134w/0e
2.6.5-rc1-mm2     0w/0e     5w/0e   135w/ 5e   8w/0e   3w/0e    133w/0e
2.6.5-rc1-mm1     0w/0e     5w/0e   135w/ 5e   8w/0e   3w/0e    133w/0e
2.6.4-mm2         1w/2e     5w/2e   144w/10e   8w/0e   3w/2e    144w/0e
2.6.4-mm1         1w/0e     5w/0e   146w/ 5e   8w/0e   3w/0e    144w/0e
2.6.4-rc2-mm1     1w/0e     5w/0e   146w/12e  11w/0e   3w/0e    147w/2e
2.6.4-rc1-mm2     1w/0e     5w/0e   144w/ 0e  11w/0e   3w/0e    145w/0e
2.6.4-rc1-mm1     1w/0e     5w/0e   147w/ 5e  11w/0e   3w/0e    147w/0e
2.6.3-mm4         1w/0e     5w/0e   146w/ 0e   7w/0e   3w/0e    142w/0e
2.6.3-mm3         1w/2e     5w/2e   146w/15e   7w/0e   3w/2e    144w/5e
2.6.3-mm2         1w/8e     5w/0e   140w/ 0e   7w/0e   3w/0e    138w/0e
2.6.3-mm1         1w/0e     5w/0e   143w/ 5e   7w/0e   3w/0e    141w/0e
2.6.3-rc3-mm1     1w/0e     0w/0e   144w/13e   7w/0e   3w/0e    142w/3e
2.6.3-rc2-mm1     1w/0e     0w/265e 144w/ 5e   7w/0e   3w/0e    145w/0e
2.6.3-rc1-mm1     1w/0e     0w/265e 141w/ 5e   7w/0e   3w/0e    143w/0e
2.6.2-mm1         2w/0e     0w/264e 147w/ 5e   7w/0e   3w/0e    173w/0e
2.6.2-rc3-mm1     2w/0e     0w/265e 146w/ 5e   7w/0e   3w/0e    172w/0e
2.6.2-rc2-mm2     0w/0e     0w/264e 145w/ 5e   7w/0e   3w/0e    171w/0e
2.6.2-rc2-mm1     0w/0e     0w/264e 146w/ 5e   7w/0e   3w/0e    172w/0e
2.6.2-rc1-mm3     0w/0e     0w/265e 144w/ 8e   7w/0e   3w/0e    169w/0e
2.6.2-rc1-mm2     0w/0e     0w/264e 144w/ 5e  10w/0e   3w/0e    171w/0e
2.6.2-rc1-mm1     0w/0e     0w/264e 144w/ 5e  10w/0e   3w/0e    171w/0e
2.6.1-mm5         2w/5e     0w/264e 153w/11e  10w/0e   3w/0e    180w/0e
2.6.1-mm4         0w/821e   0w/264e 154w/ 5e   8w/1e   5w/0e    179w/0e
2.6.1-mm3         0w/0e     0w/0e   151w/ 5e  10w/0e   3w/0e    177w/0e
2.6.1-mm2         0w/0e     0w/0e   143w/ 5e  12w/0e   3w/0e    171w/0e
2.6.1-mm1         0w/0e     0w/0e   146w/ 9e  12w/0e   6w/0e    171w/0e
2.6.1-rc2-mm1     0w/0e     0w/0e   149w/ 0e  12w/0e   6w/0e    171w/4e
2.6.1-rc1-mm2     0w/0e     0w/0e   157w/15e  12w/0e   3w/0e    185w/4e
2.6.1-rc1-mm1     0w/0e     0w/0e   156w/10e  12w/0e   3w/0e    184w/2e
2.6.0-mm2         0w/0e     0w/0e   161w/ 0e  12w/0e   3w/0e    189w/0e
2.6.0-mm1         0w/0e     0w/0e   173w/ 0e  12w/0e   3w/0e    212w/0e

Web page with links to complete details:
   http://developer.osdl.org/cherry/compile/

John




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

* Re: 2.6.8.1-mm1
  2004-08-17 11:38   ` 2.6.8.1-mm1 Srivatsa Vaddagiri
@ 2004-08-17 17:53     ` Andrew Morton
  2004-08-18  1:04       ` 2.6.8.1-mm1 Rusty Russell
  0 siblings, 1 reply; 38+ messages in thread
From: Andrew Morton @ 2004-08-17 17:53 UTC (permalink / raw)
  To: vatsa; +Cc: nathanl, linux-kernel, zwane, rusty, Ingo Molnar

Srivatsa Vaddagiri <vatsa@in.ibm.com> wrote:
>
> I found this to be due to task leak in exit code. In release_task:
> 
>  	a. Task is removed from task-list (unhash_process)
>  	b. More processing is done (like proc_pid_flush etc)
>  	   before task finally dies.
> 
>  The problem is the task can get preempted between a and b.

It seems wrong that a task can be preempted so late in its lifetime.  We're
just asking for nasty bugs by permitting that.

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

* ldchk -> arch/arm/Makefile? [Was: 2.6.8.1-mm1]
  2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
                   ` (8 preceding siblings ...)
  2004-08-17 12:54 ` 2.6.8.1-mm1 William Lee Irwin III
@ 2004-08-17 21:59 ` Sam Ravnborg
  9 siblings, 0 replies; 38+ messages in thread
From: Sam Ravnborg @ 2004-08-17 21:59 UTC (permalink / raw)
  To: Andrew Morton, Russell King; +Cc: linux-kernel

Hi Andrew.

The following two patches can be dropped from -mm. The functionality has
moved to scripts/mksysmap


handle-undefined-symbols.patch
  Fail if vmlinux contains undefined symbols
  
sparc32-ignore-undefined-symbols-with-3-or-more-leading-underscores.patch
  sparc32: ignore undefined symbols with 3 or more leading underscores
    

On the topic of undefined symbols only certain ARM tool-chains
actually have this problem.
Russell - would it be possible to move the check to arch/arm/Makefile?
Assuming people always build zImage or one of the other arch specific targets.

This check have so far caused much more pain than it ought to do - so
if we could move it to where it really matters would be better.

	Sam

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

* Re: 2.6.8.1-mm1
  2004-08-17 17:53     ` 2.6.8.1-mm1 Andrew Morton
@ 2004-08-18  1:04       ` Rusty Russell
  2004-08-18 17:36         ` 2.6.8.1-mm1 Nathan Lynch
  0 siblings, 1 reply; 38+ messages in thread
From: Rusty Russell @ 2004-08-18  1:04 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Srivatsa Vaddagiri, nathanl, lkml - Kernel Mailing List,
	Zwane Mwaikambo, Ingo Molnar

On Wed, 2004-08-18 at 03:53, Andrew Morton wrote:
> Srivatsa Vaddagiri <vatsa@in.ibm.com> wrote:
> >
> > I found this to be due to task leak in exit code. In release_task:
> > 
> >  	a. Task is removed from task-list (unhash_process)
> >  	b. More processing is done (like proc_pid_flush etc)
> >  	   before task finally dies.
> > 
> >  The problem is the task can get preempted between a and b.
> 
> It seems wrong that a task can be preempted so late in its lifetime.  We're
> just asking for nasty bugs by permitting that.

Indeed, but recent changes mean we need to be able to sleep
(proc_pid_flush) after we've unlinked the task.

IMHO, the best solution is to side-step the release_task-on-yourself
case which has been traditionally problematic anyway (remember the
SIGXCPU problem?) and do the release_task from finish_task_switch if the
parent isn't going to do it.  

Ingo, I don't understand this comment in exit_notify;

	/*
	 * Get a reference to it so that we can set the state
	 * as the last step. The state-setting only matters if the
	 * current task is releasing itself, to trigger the final
	 * put_task_struct() in finish_task_switch(). (thread self-reap)
	 */
	get_task_struct(tsk);

The flags, not the state, is checked in finish_task_switch: we must not
hit schedule with the PF_DEAD flag set, but the state should be OK?
I also don't see the need for get_task_struct().  Am I missing
something?

Thanks,
Rusty.

Name: Don't Sleep After We're Out Of Task List
Status: Booted on 2.6.8.1-mm1
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (authored)
Version: -mm

Ingo recently accidentally broke CPU hotplug by enabling preemption
around release_task(), which can be called on the current task if the
parent isn't interested.

The problem is, the task can be preempted and then the CPU can go
down: it's not in the task list any more, and so it won't get migrated
after the CPU goes down.  It stays on the down CPU, which triggers a
BUG_ON.

We have had previous problems with tasks releasing themselves:
oprofile has a comment about it, and we had the case of trying to
deliver SIGXCPU in the timer tick to the current task which had called
release_task().  This patch shuffles the self-reaping off to
finish_task_switch, so there's never a running task which isn't in the
task list, except idle threads.

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .28758-linux-2.6.8.1-mm1/include/linux/sched.h .28758-linux-2.6.8.1-mm1.updated/include/linux/sched.h
--- .28758-linux-2.6.8.1-mm1/include/linux/sched.h	2004-08-17 11:32:33.000000000 +1000
+++ .28758-linux-2.6.8.1-mm1.updated/include/linux/sched.h	2004-08-18 09:34:24.000000000 +1000
@@ -610,6 +610,7 @@ do { if (atomic_dec_and_test(&(tsk)->usa
 #define PF_STARTING	0x00000002	/* being created */
 #define PF_EXITING	0x00000004	/* getting shut down */
 #define PF_DEAD		0x00000008	/* Dead */
+#define PF_SELFREAP	0x00000010	/* Never a zombie, must be released */
 #define PF_FORKNOEXEC	0x00000040	/* forked but didn't exec */
 #define PF_SUPERPRIV	0x00000100	/* used super-user privileges */
 #define PF_DUMPCORE	0x00000200	/* dumped core */
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .28758-linux-2.6.8.1-mm1/kernel/exit.c .28758-linux-2.6.8.1-mm1.updated/kernel/exit.c
--- .28758-linux-2.6.8.1-mm1/kernel/exit.c	2004-08-17 11:32:33.000000000 +1000
+++ .28758-linux-2.6.8.1-mm1.updated/kernel/exit.c	2004-08-18 10:10:26.000000000 +1000
@@ -756,8 +756,8 @@ static void exit_notify(struct task_stru
 	state = TASK_ZOMBIE;
 	if (tsk->exit_signal == -1 && tsk->ptrace == 0)
 		state = TASK_DEAD;
-	else
-		tsk->state = state;
+	tsk->state = state;
+
 	/*
 	 * Clear these here so that update_process_times() won't try to deliver
 	 * itimer, profile or rlimit signals to this task while it is in late exit.
@@ -766,14 +766,6 @@ static void exit_notify(struct task_stru
 	tsk->it_prof_value = 0;
 	tsk->rlim[RLIMIT_CPU].rlim_cur = RLIM_INFINITY;
 
-	/*
-	 * Get a reference to it so that we can set the state
-	 * as the last step. The state-setting only matters if the
-	 * current task is releasing itself, to trigger the final
-	 * put_task_struct() in finish_task_switch(). (thread self-reap)
-	 */
-	get_task_struct(tsk);
-
 	write_unlock_irq(&tasklist_lock);
 
 	list_for_each_safe(_p, _n, &ptrace_dead) {
@@ -782,18 +774,12 @@ static void exit_notify(struct task_stru
 		release_task(t);
 	}
 
-	/* If the process is dead, release it - nobody will wait for it */
-	if (state == TASK_DEAD) {
-		release_task(tsk);
-		write_lock_irq(&tasklist_lock);
-		tsk->state = state;
-		_raw_write_unlock(&tasklist_lock);
-		local_irq_enable();
-	} else
-		preempt_disable();
-
+	preempt_disable();
+	/* PF_DEAD says drop ref after we schedule. */
 	tsk->flags |= PF_DEAD;
-	put_task_struct(tsk);
+	/* PF_SELFREAP says there's no parent to wait4() for us. */
+	if (state == TASK_DEAD)
+		tsk->flags |= PF_SELFREAP;
 }
 
 asmlinkage NORET_TYPE void do_exit(long code)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .28758-linux-2.6.8.1-mm1/kernel/sched.c .28758-linux-2.6.8.1-mm1.updated/kernel/sched.c
--- .28758-linux-2.6.8.1-mm1/kernel/sched.c	2004-08-17 11:32:34.000000000 +1000
+++ .28758-linux-2.6.8.1-mm1.updated/kernel/sched.c	2004-08-18 09:35:29.000000000 +1000
@@ -1480,8 +1480,11 @@ static void finish_task_switch(task_t *p
 	finish_arch_switch(rq, prev);
 	if (mm)
 		mmdrop(mm);
-	if (unlikely(prev_task_flags & PF_DEAD))
+	if (unlikely(prev_task_flags & PF_DEAD)) {
+		if (prev_task_flags & PF_SELFREAP)
+			release_task(prev);
 		put_task_struct(prev);
+	}
 }
 
 /**


-- 
Anyone who quotes me in their signature is an idiot -- Rusty Russell


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

* Re: 2.6.8.1-mm1
  2004-08-18  1:04       ` 2.6.8.1-mm1 Rusty Russell
@ 2004-08-18 17:36         ` Nathan Lynch
  0 siblings, 0 replies; 38+ messages in thread
From: Nathan Lynch @ 2004-08-18 17:36 UTC (permalink / raw)
  To: Rusty Russell
  Cc: Andrew Morton, Srivatsa Vaddagiri, lkml - Kernel Mailing List,
	Zwane Mwaikambo, Ingo Molnar

On Tue, 2004-08-17 at 20:04, Rusty Russell wrote:
> Name: Don't Sleep After We're Out Of Task List
> Status: Booted on 2.6.8.1-mm1
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (authored)
> Version: -mm

I tried this and I see might_sleep warnings from proc_pid_flush during
boot and during the test:

Debug: sleeping function called from invalid context at
fs/proc/base.c:1532
in_atomic():1, irqs_disabled():0
 [<c0108317>] dump_stack+0x17/0x20
 [<c0123196>] __might_sleep+0xb6/0xe0
 [<c01a2985>] proc_pid_flush+0x15/0x40
 [<c0128066>] release_task+0x1a6/0x270
 [<c011f49c>] finish_task_switch+0xac/0xe0
 [<c041acea>] schedule+0x53a/0xa70
 [<c041be29>] schedule_timeout+0xb9/0xc0
 [<c0180ebe>] do_select+0x18e/0x2f0
 [<c01812e3>] sys_select+0x293/0x4e0
 [<c010746f>] syscall_call+0x7/0xb

And I still hit the same BUG_ON when running the test:

kernel BUG at kernel/sched.c:4038!
invalid operand: 0000 [#1]
PREEMPT SMP 
Modules linked in:
CPU:    0
EIP:    0060:[<c0122b2b>]    Not tainted VLI
EFLAGS: 00010202   (2.6.8.1-mm1) 
EIP is at migration_call+0x1bb/0x300
eax: 00000001   ebx: c1410f60   ecx: 00000000   edx: dea71ec8
esi: dea71000   edi: 00000001   ebp: dea71ee0   esp: dea71eb8
ds: 007b   es: 007b   ss: 0068
Process bash (pid: 2956, threadinfo=dea71000 task=de4f0210)
Stack: dea71ed4 de4f07f0 de4f07f0 dea71ed4 00000296 dea71ee4 00000296 c04a5b78 
       00000001 00000006 dea71ef4 c01368c8 dea71000 00000001 c04a7a40 dea71f2c 
       c014054c c01a8d19 c04f5700 00000000 dea71000 00000001 00000001 000000ff 
Call Trace:
 [<c01082ea>] show_stack+0x7a/0x90
 [<c0108472>] show_registers+0x152/0x1c0
 [<c01086a0>] die+0x110/0x200
 [<c0108b99>] do_invalid_op+0xe9/0xf0
 [<c0107ed9>] error_code+0x2d/0x38
 [<c01368c8>] notifier_call_chain+0x28/0x50
 [<c014054c>] cpu_down+0x11c/0x230
 [<c02a5d38>] store_online+0x38/0x40
 [<c02a30b7>] sysdev_store+0x37/0x40
 [<c01a8b2e>] flush_write_buffer+0x2e/0x40
 [<c01a8b8a>] sysfs_write_file+0x4a/0x60
 [<c016b302>] vfs_write+0xa2/0x100
 [<c016b411>] sys_write+0x41/0x70
 [<c010746f>] syscall_call+0x7/0xb
Code: 0b d0 0f 0f 54 43 c0 eb 8e c7 04 24 0f 34 43 c0 b8 64 2a 12 c0 89 44 24 04
 e8 e2 3f 00 00 0f 0b 89 00 22 d4 42 c0 e9 4a ff ff ff <0f> 0b c6 0f 0f 54 43 c0
 e9 2c ff ff ff e8 e3 86 2f 00 e9 17 ff 

Anything else I can try?

Nathan



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

* Re: 2.6.8.1-mm1
  2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
  2004-08-17 13:20   ` 2.6.8.1-mm1 Frediano Ziglio
@ 2004-08-18 23:57   ` Peter Osterlund
  2004-08-19  9:45     ` 2.6.8.1-mm1 Christoph Hellwig
  1 sibling, 1 reply; 38+ messages in thread
From: Peter Osterlund @ 2004-08-18 23:57 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Andrew Morton, linux-kernel

Christoph Hellwig <hch@infradead.org> writes:

> On Mon, Aug 16, 2004 at 02:37:10PM -0700, Andrew Morton wrote:
> > - The packet-writing patches should be ready to go, but I haven't even
> >   looked at them yet, and am not sure that anyone else has reviewed the code.
> 
> It's still messing with the elevator setting directly which is a no-go.
> That's not the packet-writing drivers fault but needs solving first.

That can actually be avoided by letting the packet driver itself keep
track of how many unfinished bios there are in the CD request queue.
This is straightforward to implement.  The only small complication is
that incoming read requests need to be cloned so that the packet
driver can use a private bi_end_io function.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/block/pktcdvd.c |  100 +++++++++++++++++++----------------
 linux-petero/include/linux/pktcdvd.h |    9 ++-
 2 files changed, 65 insertions(+), 44 deletions(-)

diff -puN drivers/block/pktcdvd.c~packet-stacked-bio drivers/block/pktcdvd.c
--- linux/drivers/block/pktcdvd.c~packet-stacked-bio	2004-08-19 01:41:09.487329088 +0200
+++ linux-petero/drivers/block/pktcdvd.c	2004-08-19 01:41:09.493328176 +0200
@@ -71,34 +71,17 @@ static struct pktcdvd_device *pkt_devs[M
 static struct proc_dir_entry *pkt_proc;
 static int pkt_major;
 static struct semaphore ctl_mutex;	/* Serialize open/close/setup/teardown */
+static mempool_t *psd_pool;
 
 
-static struct pktcdvd_device *pkt_find_dev(request_queue_t *q)
+static void pkt_bio_finished(struct pktcdvd_device *pd)
 {
-	int i;
-
-	for (i = 0; i < MAX_WRITERS; i++) {
-		struct pktcdvd_device *pd = pkt_devs[i];
-		if (pd && bdev_get_queue(pd->bdev) == q)
-			return pd;
-	}
-
-	return NULL;
-}
-
-static void pkt_lowlevel_elv_completed_req_fn(request_queue_t *q, struct request *req)
-{
-	struct pktcdvd_device *pd = pkt_find_dev(q);
-	BUG_ON(!pd);
-
-	if (elv_queue_empty(q)) {
+	BUG_ON(atomic_read(&pd->cdrw.pending_bios) <= 0);
+	if (atomic_dec_and_test(&pd->cdrw.pending_bios)) {
 		VPRINTK("pktcdvd: queue empty\n");
 		atomic_set(&pd->iosched.attention, 1);
 		wake_up(&pd->wqueue);
 	}
-
-	if (pd->cdrw.elv_completed_req_fn)
-		pd->cdrw.elv_completed_req_fn(q, req);
 }
 
 static void pkt_bio_init(struct bio *bio)
@@ -561,7 +544,7 @@ static void pkt_iosched_process_queue(st
 
 		if (pd->iosched.writing) {
 			if (high_prio_read || (!writes_queued && reads_queued)) {
-				if (!elv_queue_empty(q)) {
+				if (atomic_read(&pd->cdrw.pending_bios) > 0) {
 					VPRINTK("pktcdvd: write, waiting\n");
 					break;
 				}
@@ -570,7 +553,7 @@ static void pkt_iosched_process_queue(st
 			}
 		} else {
 			if (!reads_queued && writes_queued) {
-				if (!elv_queue_empty(q)) {
+				if (atomic_read(&pd->cdrw.pending_bios) > 0) {
 					VPRINTK("pktcdvd: read, waiting\n");
 					break;
 				}
@@ -607,6 +590,7 @@ static void pkt_iosched_process_queue(st
 			}
 		}
 
+		atomic_inc(&pd->cdrw.pending_bios);
 		generic_make_request(bio);
 	}
 }
@@ -714,6 +698,7 @@ static int pkt_end_io_read(struct bio *b
 		atomic_inc(&pkt->run_sm);
 		wake_up(&pd->wqueue);
 	}
+	pkt_bio_finished(pd);
 
 	return 0;
 }
@@ -731,6 +716,7 @@ static int pkt_end_io_packet_write(struc
 
 	pd->stats.pkt_ended++;
 
+	pkt_bio_finished(pd);
 	atomic_dec(&pkt->io_wait);
 	atomic_inc(&pkt->run_sm);
 	wake_up(&pd->wqueue);
@@ -1996,14 +1982,10 @@ static int pkt_open_dev(struct pktcdvd_d
 			goto out_putdev;
 		}
 	}
-	spin_lock_irq(q->queue_lock);
-	pd->cdrw.elv_completed_req_fn = q->elevator.elevator_completed_req_fn;
-	q->elevator.elevator_completed_req_fn = pkt_lowlevel_elv_completed_req_fn;
-	spin_unlock_irq(q->queue_lock);
 
 	if (write) {
 		if ((ret = pkt_open_write(pd)))
-			goto restore_queue;
+			goto out_putdev;
 		/*
 		 * Some CDRW drives can not handle writes larger than one packet,
 		 * even if the size is a multiple of the packet size.
@@ -2018,17 +2000,13 @@ static int pkt_open_dev(struct pktcdvd_d
 	}
 
 	if ((ret = pkt_set_segment_merging(pd, q)))
-		goto restore_queue;
+		goto out_putdev;
 
 	if (write)
 		printk("pktcdvd: %lukB available on disc\n", lba << 1);
 
 	return 0;
 
-restore_queue:
-	spin_lock_irq(q->queue_lock);
-	q->elevator.elevator_completed_req_fn = pd->cdrw.elv_completed_req_fn;
-	spin_unlock_irq(q->queue_lock);
 out_putdev:
 	blkdev_put(pd->bdev);
 out:
@@ -2041,18 +2019,12 @@ out:
  */
 static void pkt_release_dev(struct pktcdvd_device *pd, int flush)
 {
-	request_queue_t *q;
-
 	if (flush && pkt_flush_cache(pd))
 		DPRINTK("pktcdvd: %s not flushing cache\n", pd->name);
 
 	pkt_lock_door(pd, 0);
 
-	q = bdev_get_queue(pd->bdev);
 	pkt_set_speed(pd, MAX_SPEED, MAX_SPEED);
-	spin_lock_irq(q->queue_lock);
-	q->elevator.elevator_completed_req_fn = pd->cdrw.elv_completed_req_fn;
-	spin_unlock_irq(q->queue_lock);
 	blkdev_put(pd->bdev);
 }
 
@@ -2118,6 +2090,32 @@ static int pkt_close(struct inode *inode
 	return ret;
 }
 
+
+static void *psd_pool_alloc(int gfp_mask, void *data)
+{
+	return kmalloc(sizeof(struct packet_stacked_data), gfp_mask);
+}
+
+static void psd_pool_free(void *ptr, void *data)
+{
+	kfree(ptr);
+}
+
+static int pkt_end_io_read_cloned(struct bio *bio, unsigned int bytes_done, int err)
+{
+	struct packet_stacked_data *psd = bio->bi_private;
+	struct pktcdvd_device *pd = psd->pd;
+
+	if (bio->bi_size)
+		return 1;
+
+	bio_put(bio);
+	bio_endio(psd->bio, psd->bio->bi_size, err);
+	mempool_free(psd, psd_pool);
+	pkt_bio_finished(pd);
+	return 0;
+}
+
 static int pkt_make_request(request_queue_t *q, struct bio *bio)
 {
 	struct pktcdvd_device *pd;
@@ -2134,12 +2132,19 @@ static int pkt_make_request(request_queu
 	}
 
 	/*
-	 * quick remap a READ
+	 * Clone READ bios so we can have our own bi_end_io callback.
 	 */
 	if (bio_data_dir(bio) == READ) {
-		bio->bi_bdev = pd->bdev;
+		struct bio *cloned_bio = bio_clone(bio, GFP_NOIO);
+		struct packet_stacked_data *psd = mempool_alloc(psd_pool, GFP_NOIO);
+
+		psd->pd = pd;
+		psd->bio = bio;
+		cloned_bio->bi_bdev = pd->bdev;
+		cloned_bio->bi_private = psd;
+		cloned_bio->bi_end_io = pkt_end_io_read_cloned;
 		pd->stats.secs_r += bio->bi_size >> 9;
-		pkt_queue_bio(pd, bio, 1);
+		pkt_queue_bio(pd, cloned_bio, 1);
 		return 0;
 	}
 
@@ -2323,6 +2328,7 @@ static int pkt_seq_show(struct seq_file 
 
 	seq_printf(m, "\nQueue state:\n");
 	seq_printf(m, "\tbios queued:\t\t%d\n", pd->bio_queue_size);
+	seq_printf(m, "\tbios pending:\t\t%d\n", atomic_read(&pd->cdrw.pending_bios));
 	seq_printf(m, "\tcurrent sector:\t\t0x%llx\n", (unsigned long long)pd->current_sector);
 
 	pkt_count_states(pd, states);
@@ -2391,6 +2397,7 @@ static int pkt_new_dev(struct pktcdvd_de
 
 	pkt_init_queue(pd);
 
+	atomic_set(&pd->cdrw.pending_bios, 0);
 	pd->cdrw.thread = kthread_run(kcdrwd, pd, "%s", pd->name);
 	if (IS_ERR(pd->cdrw.thread)) {
 		printk("pktcdvd: can't start kernel thread\n");
@@ -2658,10 +2665,14 @@ int pkt_init(void)
 {
 	int ret;
 
+	psd_pool = mempool_create(PSD_POOL_SIZE, psd_pool_alloc, psd_pool_free, NULL);
+	if (!psd_pool)
+		return -ENOMEM;
+
 	ret = register_blkdev(pkt_major, "pktcdvd");
 	if (ret < 0) {
 		printk("pktcdvd: Unable to register block device\n");
-		return ret;
+		goto out2;
 	}
 	if (!pkt_major)
 		pkt_major = ret;
@@ -2681,6 +2692,8 @@ int pkt_init(void)
 
 out:
 	unregister_blkdev(pkt_major, "pktcdvd");
+out2:
+	mempool_destroy(psd_pool);
 	return ret;
 }
 
@@ -2689,6 +2702,7 @@ void pkt_exit(void)
 	remove_proc_entry("pktcdvd", proc_root_driver);
 	misc_deregister(&pkt_misc);
 	unregister_blkdev(pkt_major, "pktcdvd");
+	mempool_destroy(psd_pool);
 }
 
 MODULE_DESCRIPTION("Packet writing layer for CD/DVD drives");
diff -puN include/linux/pktcdvd.h~packet-stacked-bio include/linux/pktcdvd.h
--- linux/include/linux/pktcdvd.h~packet-stacked-bio	2004-08-19 01:41:09.488328936 +0200
+++ linux-petero/include/linux/pktcdvd.h	2004-08-19 01:41:09.493328176 +0200
@@ -141,7 +141,7 @@ struct packet_cdrw
 	struct list_head	pkt_active_list;
 	spinlock_t		active_list_lock; /* Serialize access to pkt_active_list */
 	struct task_struct	*thread;
-	elevator_completed_req_fn *elv_completed_req_fn;
+	atomic_t		pending_bios;
 };
 
 /*
@@ -231,6 +231,13 @@ struct pkt_rb_node {
 	struct bio		*bio;
 };
 
+struct packet_stacked_data
+{
+	struct bio		*bio;		/* Original read request bio */
+	struct pktcdvd_device	*pd;
+};
+#define PSD_POOL_SIZE		64
+
 struct pktcdvd_device
 {
 	struct block_device	*bdev;		/* dev attached */
_

-- 
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340

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

* Re: 2.6.8.1-mm1
  2004-08-18 23:57   ` 2.6.8.1-mm1 Peter Osterlund
@ 2004-08-19  9:45     ` Christoph Hellwig
  2004-08-20  5:44       ` 2.6.8.1-mm1 Peter Osterlund
  0 siblings, 1 reply; 38+ messages in thread
From: Christoph Hellwig @ 2004-08-19  9:45 UTC (permalink / raw)
  To: Peter Osterlund; +Cc: Christoph Hellwig, Andrew Morton, linux-kernel

On Thu, Aug 19, 2004 at 01:57:09AM +0200, Peter Osterlund wrote:
> That can actually be avoided by letting the packet driver itself keep
> track of how many unfinished bios there are in the CD request queue.
> This is straightforward to implement.  The only small complication is
> that incoming read requests need to be cloned so that the packet
> driver can use a private bi_end_io function.

Neat, this looks pretty good.  Other comments on the pkt driver (not related
to this patch):

in the blockdev ->open/->release->ioctl you can get your private data
from inode->i_bdev->bd_disk->private_data instead of doing the lookup.

You still have a little to much dev_t handling in your driver for my
taste, I'm going to take a look soon.


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

* Re: 2.6.8.1-mm1
  2004-08-19  9:45     ` 2.6.8.1-mm1 Christoph Hellwig
@ 2004-08-20  5:44       ` Peter Osterlund
  2004-08-20  6:03         ` 2.6.8.1-mm1 Christoph Hellwig
  0 siblings, 1 reply; 38+ messages in thread
From: Peter Osterlund @ 2004-08-20  5:44 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Andrew Morton, linux-kernel

Christoph Hellwig <hch@infradead.org> writes:

> On Thu, Aug 19, 2004 at 01:57:09AM +0200, Peter Osterlund wrote:
> > That can actually be avoided by letting the packet driver itself keep
> > track of how many unfinished bios there are in the CD request queue.
> > This is straightforward to implement.  The only small complication is
> > that incoming read requests need to be cloned so that the packet
> > driver can use a private bi_end_io function.
> 
> Neat, this looks pretty good.  Other comments on the pkt driver (not related
> to this patch):
> 
> in the blockdev ->open/->release->ioctl you can get your private data
> from inode->i_bdev->bd_disk->private_data instead of doing the lookup.

The release/ioctl functions should be no problems to convert, but how
do I prevent pkt_open() and pkt_remove_dev() from racing against each
other with your suggestion? Currently this is handled by the ctl_mutex
and the fact that pkt_find_dev_from_minor() returns NULL if the packet
device has gone away.

-- 
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340

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

* Re: 2.6.8.1-mm1
  2004-08-20  5:44       ` 2.6.8.1-mm1 Peter Osterlund
@ 2004-08-20  6:03         ` Christoph Hellwig
  0 siblings, 0 replies; 38+ messages in thread
From: Christoph Hellwig @ 2004-08-20  6:03 UTC (permalink / raw)
  To: Peter Osterlund; +Cc: Andrew Morton, linux-kernel

On Fri, Aug 20, 2004 at 07:44:47AM +0200, Peter Osterlund wrote:
> The release/ioctl functions should be no problems to convert, but how
> do I prevent pkt_open() and pkt_remove_dev() from racing against each
> other with your suggestion? Currently this is handled by the ctl_mutex
> and the fact that pkt_find_dev_from_minor() returns NULL if the packet
> device has gone away.

If you call del_gendisk early enough the blocklayer will synchrnoize
them for you.  It looks like you'll have to move del_gendisk a little up
for that, though.

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

end of thread, other threads:[~2004-08-20  6:03 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-16 21:37 2.6.8.1-mm1 Andrew Morton
2004-08-16 21:47 ` 2.6.8.1-mm1 Christoph Hellwig
2004-08-17 13:20   ` 2.6.8.1-mm1 Frediano Ziglio
2004-08-18 23:57   ` 2.6.8.1-mm1 Peter Osterlund
2004-08-19  9:45     ` 2.6.8.1-mm1 Christoph Hellwig
2004-08-20  5:44       ` 2.6.8.1-mm1 Peter Osterlund
2004-08-20  6:03         ` 2.6.8.1-mm1 Christoph Hellwig
2004-08-16 22:30 ` 2.6.8.1-mm1 Bartlomiej Zolnierkiewicz
2004-08-16 21:51   ` 2.6.8.1-mm1 Alan Cox
2004-08-16 23:25 ` 2.6.8.1-mm1 Arkadiusz Miskiewicz
2004-08-16 23:39 ` 2.6.8.1-mm1 Martin J. Bligh
2004-08-17  1:32   ` 2.6.8.1-mm1 Nathan Lynch
2004-08-17  6:59     ` 2.6.8.1-mm1 Sam Ravnborg
2004-08-17  6:25       ` 2.6.8.1-mm1 Martin J. Bligh
2004-08-17  6:38         ` 2.6.8.1-mm1 Andrew Morton
2004-08-17  7:00       ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  7:05         ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  3:07 ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  3:09   ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  3:19     ` 2.6.8.1-mm1 Andrew Morton
2004-08-17  3:41       ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  4:16         ` 2.6.8.1-mm1 Nick Piggin
2004-08-17 14:38       ` 2.6.8.1-mm1 (compile stats) John Cherry
2004-08-17  5:59 ` 2.6.8.1-mm1 Nathan Lynch
2004-08-17  7:19   ` 2.6.8.1-mm1 Rusty Russell
2004-08-17  8:45     ` [patch] new-task-fix.patch, 2.6.8.1-mm1 Ingo Molnar
2004-08-17 11:35       ` Nick Piggin
2004-08-17 11:38   ` 2.6.8.1-mm1 Srivatsa Vaddagiri
2004-08-17 17:53     ` 2.6.8.1-mm1 Andrew Morton
2004-08-18  1:04       ` 2.6.8.1-mm1 Rusty Russell
2004-08-18 17:36         ` 2.6.8.1-mm1 Nathan Lynch
2004-08-17  6:20 ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17  6:40   ` 2.6.8.1-mm1 sam
2004-08-17  7:05 ` 2.6.8.1-mm1 Nathan Lynch
2004-08-17 13:39   ` 2.6.8.1-mm1 Zwane Mwaikambo
2004-08-17 12:54 ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17 14:15   ` 2.6.8.1-mm1 William Lee Irwin III
2004-08-17 21:59 ` ldchk -> arch/arm/Makefile? [Was: 2.6.8.1-mm1] Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox