Skip to contentSkip to conversation

2.6.8.1-mm1

PATCH In review Andrew Morton 18 participants 38 messages Aug 16, 2004 – Aug 20, 2004

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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 <[email protected]>
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 <[email protected]>
Subject: [PATCH][1/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: core CONFIG_PERFCTR=n build fix
From: Mikael Pettersson <[email protected]>
Subject: [PATCH][6/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: misc

perfctr-i386.patch
From: Mikael Pettersson <[email protected]>
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 <[email protected]>
Subject: [PATCH][3/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: x86_64

perfctr-ppc.patch
From: Mikael Pettersson <[email protected]>
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 <[email protected]>
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.

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 <[email protected]>
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

#1 lore raw
Quoted 2 lines · Andrew Morton

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

#2 lore raw

Il lun, 2004-08-16 alle 23:47, Christoph Hellwig ha scritto:

Quoted 7 lines · Andrew Morton
Quoted 2 lines

- 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

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

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

#3 lore raw
In reply to Christoph Hellwig
Quoted 6 lines · Christoph Hellwig
Quoted 2 lines · Andrew Morton

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

---

 linux-petero/drivers/block/pktcdvd.c |  100 +++++++++++++++++++----------------
 linux-petero/include/linux/pktcdvd.h |    9 ++-
 2 files changed, 65 insertions(+), 44 deletions(-)
drivers/block/pktcdvd.c renamed from drivers/block/pktcdvd.c~packet-stacked-bio +57 -43
diff -puN drivers/block/pktcdvd.c~packet-stacked-bio drivers/block/pktcdvd.c
@@ -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");
include/linux/pktcdvd.h renamed from include/linux/pktcdvd.h~packet-stacked-bio +8 -1
diff -puN include/linux/pktcdvd.h~packet-stacked-bio include/linux/pktcdvd.h
@@ -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 */

_

Signature · 2 lines
Peter Osterlund - [email protected]
http://w1.894.telia.com/~u89404340
#4 lore raw
Quoted 5 lines · Peter Osterlund

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.

#5 lore raw
Quoted 7 lines · Christoph Hellwig
Quoted 5 lines · Peter Osterlund

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.

Quoted 5 lines

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.

Signature · 2 lines
Peter Osterlund - [email protected]
http://w1.894.telia.com/~u89404340
#6 lore raw
Quoted 5 lines · Peter Osterlund

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.

#7 lore raw
In reply to Andrew Morton

Hi,

Quoted 5 lines · Andrew Morton

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.

#8 lore raw
Quoted 4 lines · Bartlomiej Zolnierkiewicz

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

#9 lore raw
In reply to Andrew Morton
Quoted 2 lines · Andrew Morton

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/

Signature · 2 lines
Arkadiusz Miśkiewicz     CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org, 1024/3DB19BBD, JID: arekm.jabber.org, PLD/Linux
#10 lore raw
In reply to Andrew Morton
Quoted 1 line

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.

#11 lore raw
Quoted 9 lines · Martin J. Bligh
Quoted 1 line

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

#12 lore raw
Quoted 5 lines · Nathan Lynch
Quoted 4 lines · Martin J. Bligh
Quoted 1 line

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:

Quoted 8 lines
Quoted 5 lines

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

Makefile +3 -0
@@ -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
#13 lore raw
Quoted 22 lines · Nathan Lynch
Quoted 5 lines · Martin J. Bligh
Quoted 4 lines
Quoted 1 line

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:

Quoted 8 lines
Quoted 5 lines

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

Makefile line 608

Quoted 9 lines
Makefile +3 -0
@@ -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.

#14 lore raw
Quoted 4 lines · Martin J. Bligh

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

Quoted 10 lines

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.

#15 lore raw
In reply to Sam Ravnborg
Quoted 2 lines · Nathan Lynch
Quoted 2 lines

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.

Quoted 1 line · Sam Ravnborg

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

#16 lore raw
Quoted 2 lines · Nathan Lynch
Quoted 2 lines
Quoted 2 lines

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.

Quoted 2 lines · Sam Ravnborg
Quoted 1 line

Fix below:

Quoted 1 line · William Lee Irwin III

The result of this appears to be:

Never mind, the semicolon was essential.

-- wli

#18 lore raw
Quoted 2 lines · Andrew Morton
Quoted 2 lines

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

Quoted 1 line · William Lee Irwin III

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

#19 lore raw
Quoted 9 lines · William Lee Irwin III
Quoted 2 lines · Andrew Morton
Quoted 2 lines

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

Quoted 1 line · William Lee Irwin III

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

How did you compile on ia64? I get:

I suspect I got lucky.

Quoted 2 lines

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.

#20 lore raw
Quoted 1 line · William Lee Irwin III
Quoted 1 line

How did you compile on ia64? I get:

Quoted 2 lines · Andrew Morton

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

#21 lore raw
Quoted 5 lines · William Lee Irwin III
Quoted 2 lines · William Lee Irwin III
Quoted 2 lines

How did you compile on ia64? I get:

Quoted 10 lines
Quoted 3 lines · Andrew Morton

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.

#22 lore raw

Re: 2.6.8.1-mm1 (compile stats)

In reply to Andrew Morton

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

#23 lore raw
In reply to Andrew Morton

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

#24 lore raw
Quoted 11 lines · Nathan Lynch

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.

Signature · 1 line
Anyone who quotes me in their signature is an idiot -- Rusty Russell
#25 lore raw

PATCH 1/1 new-task-fix.patch, 2.6.8.1-mm1

Quoted 8 lines · Rusty Russell

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.

Quoted 2 lines

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

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

kernel/sched.c renamed from kernel/sched.c.orig +15 -9
@@ -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);
 }
 
 /*
#26 lore raw

Re: [patch] new-task-fix.patch, 2.6.8.1-mm1

Quoted 19 lines · Ingo Molnar
Quoted 6 lines · Rusty Russell

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

Quoted 8 lines

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? [...]

Quoted 9 lines

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.

#27 lore raw
In reply to Nathan Lynch

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.

Quoted 48 lines · Nathan Lynch

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

Signature · 5 lines
Thanks and Regards,
Srivatsa Vaddagiri,
Linux Technology Center,
IBM Software Labs,
Bangalore, INDIA - 560017
#28 lore raw

Review

Quoted 8 lines · Srivatsa Vaddagiri

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

(quoted diff) +0 -0
 	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.

#29 lore raw
Quoted 4 lines · Andrew Morton
Quoted 3 lines · Srivatsa Vaddagiri

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

Quoted 8 lines

Review

Quoted 5 lines
(quoted diff) +0 -0
 	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

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.

include/linux/sched.h +1 -0
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
@@ -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 */
kernel/exit.c +7 -21
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
@@ -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)
kernel/sched.c +4 -1
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
@@ -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);
+	}
 }
 
 /**
Signature · 1 line
Anyone who quotes me in their signature is an idiot -- Rusty Russell
#30 lore raw
Quoted 4 lines · Rusty Russell

Name: Don't Sleep After We're Out Of Task List
Status: Booted on 2.6.8.1-mm1

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

#31 lore raw
In reply to Andrew Morton
Quoted 4 lines · Andrew Morton

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

Makefile +23 -2
Index: mm1-2.6.8.1/Makefile
===================================================================
@@ -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 $@;						\
scripts/mksysmap +25 -3
Index: mm1-2.6.8.1/scripts/mksysmap
===================================================================
@@ -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
 
#32 lore raw
Quoted 10 lines · Andrew Morton
Quoted 4 lines

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.

Quoted 2 lines

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

#33 lore raw
In reply to Andrew Morton
Quoted 3 lines

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
arch/i386/kernel/apic.c +2 -1
Index: 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();
 }
 
#34 lore raw
Quoted 9 lines · Nathan Lynch

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

arch/i386/kernel/apic.c line 1143

Quoted 7 lines
arch/i386/kernel/apic.c +2 -1
@@ -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?

#35 lore raw
In reply to Andrew Morton
Quoted 7 lines · Andrew Morton

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

#36 lore raw
Quoted 1 line · Andrew Morton
Quoted 1 line

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

Quoted 2 lines · William Lee Irwin III

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

#37 lore raw

ldchk -> arch/arm/Makefile? [Was: 2.6.8.1-mm1]

In reply to Andrew Morton

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