2003-08-10 03:39:54

by Andrew Morton

[permalink] [raw]
Subject: 2.6.0-test3-mm1


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


. Manfred might have fixed the long-standing task_struct use-after-free
bug which happens occasionally on preemptible kernels.

. This kernel immediately triplefaults when compiled with gcc-2.95.3 and
CONFIG_KGDB. It is due to compiling with "-ggdb" or "-gdwarf-2". When
compiled with "-g" it works OK, but gdb screws that up.

Moral: use a later gcc if you're a kgdb user.

. Lots of fixes for random things, as usual. Keep 'em coming.




Changes since 2.6.0-test2-mm5:


linus.patch

Latest from Linus

-ax8817x-build-fix.patch
-remove-PF_READAHEAD.patch
-floppy-smp-fixes.patch
-dm-1-module-param.patch
-dm-2-blk.patch
-dm-3-use-hex.patch
-dm-4-64-bit-ioctls.patch
-dm-5-missing-include.patch
-dm-6-sector_div.patch
-dm-7-rename-resume.patch
-reiserfs-savelinks-endianness-fix.patch
-reiserfs-enospc-fix.patch
-reiserfs-link-unlink-race-fix.patch
-reiserfs-remount-locking-fix.patch
-mremap-atomicity-fix.patch
-ide-cd-oops-fix.patch
-usercopy-might_sleep-checks.patch
-panic-nmi-watchdog-fix.patch
-ide-capacity-fixes.patch
-export-lookup_create.patch
-free_all_bootmem_core-fix.patch
-x86_64-nmi-watchog-doc-update.patch
-do_setitimer-cleanup.patch
-itimer-rounding-and-resolution-fix.patch
-ext3-aborted-journal-fix.patch
-create-struct-irq_desc.patch
-mtrr-hang-fix.patch
-matroxfb-updates.patch
-k7-mce-fix.patch
-init_page_private.patch

Merged

-kgdb-remove-cpu_callout_map.patch
-kgdb-use-ggdb.patch
-kgdb-ga-docco-fixes.patch
-kgdb-sysrq-g-fix.patch
-kgdb-serial-fix.patch

Folded into kgdb-ga.patch (new release from George Anzinger)

+kgdb-build-fix.patch
+kgdb-spinlock-fix.patch

kgbd touchups.

-cpumask-mips-fix.patch
-cpumask-arith-fix.patch
-cpumask-physid-fix.patch
-cpumask_t-up-build-fix.patch
-cpumask_t-random-fixes.patch
-next_cpu-fix.patch
-cpumask-ppc-fixes.patch
-flush_cpumask-atomicity-fix.patch

Folded into cpumask_t-1.patch

+fadvise-fix.patch

POSIX_FADV_DONTNEED wasn't invalidating the right parts of the file.

+fadvise64-64.patch

A 32-bit `len' arg to fadvise() is unsuitable. Create a new syscall which
takes a 64-bit length.

-ia64-percpu-revert.patch

This wasn't needed any more

-ds-09-vicam-usercopy-fix.patch

Alan said this wasn't right.

+x440-fixes.patch

Various simplifications

+ppc-64-bit-stat.patch
+64-bit-dev_t-init_rd-fixes.patch

64-bit dev_t fixes

+o14int.patch
+o14int-div-fix.patch
+o14.1int.patch

CPU scheduler stuff from Con.

-nforce2-acpi-fixes-fix.patch

Folded into nforce2-acpi-fixes.patch

+4g4g-vmlinux-update-got-lost.patch

Restore a lost chunk.

-xfs-use-after-free-fix.patch

This patch isn't right and wasn't supposed to be in test2-mm5.

-as-no-trinary-states.patch

This is broken.

-devfs-pty-slave-fix.patch

Wrong. Mount /dev/pts atthe right time.

-slab-debug-updates.patch

For some reason this patch is causing hangs when starting init with the
4g/4g split enabled. Drop it out for now.

-large-TCQ-fix.patch

nacked by Jens.

+pipe-rofs-fix.patch

Fix the "write to a fifo alters a read-only fs" bug. (Haven't tested it
yet)

+reiserfs-bogus-kunmap-removal.patch

Remove bogus kunmap on a rare path.

+reiserfs-xattr-fix.patch

Unprivileged users must not alter immutable attributes.

+p4-thermal-interrupt-fix.patch

P4 thermal interrupt vector isn't getting set on SMP.

+nbd-race-fixes.patch

NBD fixes

+disable-raid5-readahead.patch

Work around RAID5 data loss problems

+pnp_get_info-oops-fix.patch

Fix oopses reading /proc/net/pnp

+cciss-warning-fix.patch
+vt_ioctl-warning-fixes.patch

Compile warning fixes

+task-refcounting-fix.patch

Might fix the task_struct use-after-free bug.

+zap_other_threads-fix.patch

Fix group leader attach/detach code.

+probe-udf-after-reiserfs.patch

Change rootfs autodetection to try reiserfs before UDF

+nfsd-timestamp-fix.patch

Fix NFS timestamp problems

+input-use-after-free-checks.patch

Debug checks

+ide-scsi-queue-conversion-fix.patch

ide-scsi probable-oops fix.

+bluetooth-deref-fix.patch

Make bluetooth work.

+ikconfig-enable.patch

Config option to enable /proc/ikconfig

+export-video_proc_entry.patch

Symbol export for USB media devices

+trident-spin_unlock-fix.patch

Sound card SMP deadlock fix

+handle-old-dev_t-format.patch

Might fix the boot problems wherein "root=0302" isn't getting parsed.

+firmware-loader-needs-hotplug.patch

Missing config dependency.

+aio-readahead-speedup.patch

Make streaming AIO do readahead nicely.






All 153 patches:


linus.patch

mm.patch
add -mmN to EXTRAVERSION

kgdb-ga.patch
kgdb stub for ia32 (George Anzinger's one)
kgdbL warning fix

kgdb-warning-fix.patch
kgdbL warning fix

kgdb-build-fix.patch

kgdb-spinlock-fix.patch

vmlinux-generation-fix.patch
Fix vmlinux.lds.s generation

cpumask_t-1.patch
cpumask_t: allow more than BITS_PER_LONG CPUs
cpumask_t fix for s390
fix cpumask_t for s390
Fix cpumask changes for x86_64
fix cpumask_t for sparc64
cpumask_t: more gcc workarounds
cpumask_t gcc bug workarounds
cpumask_t: build fix
cpumask: IPS fixups
cpumask: avoid using structs for NR_CPUS<BITS_PER_LONG
cpumask: physid fixes
cpumask_t uniproc build fix
cpumask_t fixes
cpumask: next_cpu fix
flush_cpumask atomicity fix

kgdb-cpumask_t.patch

fadvise-fix.patch
fadvise(POSIX_FADV_DONTNEED) fix

fadvise64-64.patch
sys_fadvise64_64

config_spinline.patch
uninline spinlocks for profiling accuracy.

ppc64-bar-0-fix.patch
Allow PCI BARs that start at 0

ppc64-reloc_hide.patch

ppc64-semaphore-reimplementation.patch
ppc64: use the ia32 semaphore implementation

ppc64-local.patch
ppc64: local.h implementation

ppc64-sched_clock.patch
ppc64: sched_clock()

sym-do-160.patch
make the SYM driver do 160 MB/sec

x86_64-fixes.patch
x86_64 fixes

delay-ksoftirqd-fallback.patch
Try harded in IRQ context before falling back to ksoftirqd

rcu-grace-period.patch
Monitor RCU grace period

intel8x0-cleanup.patch
intel8x0 cleanups

bio-too-big-fix.patch
Fix raid "bio too big" failures

ppa-fix.patch
ppc fix

x440-fixes.patch
From: Matthew Dobson <[email protected]>
Subject: [patch] 16-way x440 breakage

linux-isp-2.patch

linux-isp-2-fix-again.patch
lost feral fix

feral-bounce-fix.patch
Feral driver - highmem issues

feral-bounce-fix-2.patch
Feral driver bouncing fix

list_del-debug.patch
list_del debug check

print-build-options-on-oops.patch
print a few config options on oops

show_task-free-stack-fix.patch
show_task() fix and cleanup

put_task_struct-debug.patch

ia32-mknod64.patch
mknod64 for ia32

ext2-64-bit-special-inodes.patch
ext2: support for 64-bit device nodes

ext3-64-bit-special-inodes.patch
ext3: support for 64-bit device nodes

64-bit-dev_t-kdev_t.patch
64-bit dev_t and kdev_t

64-bit-dev_t-other-archs.patch
enable 64-bit dev_t for other archs

mknod64-64-bit-fix.patch
dev_t: fix mknod for 64-bit archs

ustat64.patch
ustat64

ppc-64-bit-stat.patch
fix ppc stat.h for 64-bit dev_t

64-bit-dev_t-init_rd-fixes.patch
initrd fixes for 64-bit dev_t

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

lockmeter.patch

printk-oops-mangle-fix.patch
disentangle printk's whilst oopsing on SMP

20-odirect_enable.patch

21-odirect_cruft.patch

22-read_proc.patch

23-write_proc.patch

24-commit_proc.patch

25-odirect.patch

nfs-O_DIRECT-always-enabled.patch
Force CONFIG_NFS_DIRECTIO

kjournald-PF_SYNCWRITE.patch

sched-2.6.0-test2-mm2-A3.patch
sched-2.6.0-test2-mm2-A3

ppc-sched_clock.patch

sched-warning-fix.patch

sched-balance-tuning.patch
CPU scheduler balancing fix

sched-no-tsc-on-numa.patch
Subject: Re: Fw: Re: 2.6.0-test2-mm3

o12.2int.patch
O12.2int for interactivity

o12.3.patch
O12.3 for interactivity

o13int.patch
O13int for interactivity

o13.1int.patch
O13.1int

o14int.patch
O14int

o14int-div-fix.patch
o14int 64-bit-divide fix

o14.1int.patch
O14.1int

ext3-block-allocation-cleanup.patch

nfs-revert-backoff.patch
nfs: revert backoff changes

1000HZ-time-accuracy-fix.patch
missing #if for 1000 HZ

signal-race-fix.patch
signal handling race condition causing reboot hangs

vmscan-defer-writepage.patch
vmscan: give dirty referenced pages another pass around the LRU

blacklist-asus-L3800C-dmi.patch
add ASUS l3800P to DMI black list

nforce2-acpi-fixes.patch
ACPI patch which fixes all my IRQ problems on nforce2

timer-race-fixes.patch
timer race fixes

local-apic-enable-fixes.patch
Local APIC enable fixes

p00001_synaptics-restore-on-close.patch

p00002_psmouse-reset-timeout.patch

p00003_synaptics-multi-button.patch

p00004_synaptics-optional.patch

p00005_synaptics-pass-through.patch

p00006_psmouse-suspend-resume.patch

p00007_synaptics-old-proto.patch

synaptics-mode-set.patch
Synaptics mode setting

keyboard-resend-fix.patch
keyboard resend fix

kobject-paranoia-checks.patch
Driver core and kobject paranoia checks

4g-2.6.0-test2-mm2-A5.patch
4G/4G split patch
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix
4G/4G: remove debug code
4g4g: pmd fix
4g/4g: fixes from Bill
4g4g: fpu emulation fix
4g/4g usercopy atomicity fix

4g4g-vmlinux-update-got-lost.patch

4g4g-do_page_fault-cleanup.patch
4G/4G: remove debug code

4g4g-cleanups.patch

kgdb-4g4g-fix-2.patch

4g4g-config-fix.patch

4g4g-pmd-fix.patch
4g4g: pmd fix

4g4g-wli-fixes.patch
4g/4g: fixes from Bill

4g4g-fpu-fix.patch
4g4g: fpu emulation fix

4g4g-show_registers-fix.patch
4g4g: show_registers() fix

4g4g-pin_page-atomicity-fix.patch
4g/4g usercopy atomicity fix

4g4g-remove-touch_all_pages.patch

ppc-fixes.patch
make mm4 compile on ppc

aic7xxx_old-oops-fix.patch

awe-core.patch
async write errors: report truncate and io errors on async writes
async write errors core: fixes

awe-use-gfp_flags.patch
async write errors: use flags in address space
async write errors: mapping->flags fixes

awe-use-gfp_flags-braino.patch

awe-fix-truncate-errors.patch
async write errors: fix spurious fs truncate errors
async write errors: truncate handling fixes

as-remove-hash-valid-stuff.patch
AS: remove hash valid stuff

random-locking-fixes.patch
random: SMP locking

random-accounting-and-sleeping-fixes.patch
random: accounting and sleeping fixes

rt-tasks-special-vm-treatment.patch
real-time enhanced page allocator and throttling

rt-tasks-special-vm-treatment-2.patch

xfs-uptodate-page-fix.patch
fix buffer layer error at fs/buffer.c:2800 when unlinking XFS files

standalone-elevator-noop.patch
standalone elevator noop

pipe-rofs-fix.patch
pipe.c: don't write to readonly filesystems

reiserfs-bogus-kunmap-removal.patch
reiserfs: remove unneeded kunmap

reiserfs-xattr-fix.patch
reiserfs: Fix handling of some extended inode attributes

p4-thermal-interrupt-fix.patch
Setup P4 thermal interrupt vector on UP

nbd-race-fixes.patch
nbd: fix send/receive/shutdown/disconnect races

disable-raid5-readahead.patch
raid5: disable readahead

pnp_get_info-oops-fix.patch
/proc/net/pnp oops fix

cciss-warning-fix.patch
cciss warning fix

vt_ioctl-warning-fixes.patch
vt_ioctl warning fixes

task-refcounting-fix.patch
fix task struct refcount bug

zap_other_threads-fix.patch
zap_other_threads() detaches thread group leader

probe-udf-after-reiserfs.patch
probe UDF after reiserfs

nfsd-timestamp-fix.patch
Fix protocol bugs with NFS and nanoseconds

input-use-after-free-checks.patch
input layer debug checks

ide-scsi-queue-conversion-fix.patch
fix ide-scsi for ide_drive_t->queue change

bluetooth-deref-fix.patch
BUG fix for drivers/bluetooth/hci_usb.c

ikconfig-enable.patch
enable the ikconfig stuff in config

export-video_proc_entry.patch
export video_proc_entry()to modules

trident-spin_unlock-fix.patch
fix trident.c missing unlock

handle-old-dev_t-format.patch
handle old-style "root=" arguments

firmware-loader-needs-hotplug.patch
firmware loader requires hotplug

aio-mm-refcounting-fix.patch
fix /proc mm_struct refcounting bug

aio-01-retry.patch
AIO: Core retry infrastructure

io_submit_one-EINVAL-fix.patch
Fix aio process hang on EINVAL

aio-02-lockpage_wq.patch
AIO: Async page wait

aio-03-fs_read.patch
AIO: Filesystem aio read

aio-04-buffer_wq.patch
AIO: Async buffer wait

aio-05-fs_write.patch
AIO: Filesystem aio write

aio-05-fs_write-fix.patch

aio-06-bread_wq.patch
AIO: Async block read

aio-06-bread_wq-fix.patch

aio-07-ext2getblk_wq.patch
AIO: Async get block for ext2

O_SYNC-speedup-2.patch
speed up O_SYNC writes

aio-09-o_sync.patch
aio O_SYNC

aio-10-BUG-fix.patch
AIO: fix a BUG

aio-11-workqueue-flush.patch
AIO: flush workqueues before destroying ioctx'es

aio-12-readahead.patch
AIO: readahead fixes

aio-dio-no-readahead.patch
aio O_DIRECT no readahead

lock_buffer_wq-fix.patch
lock_buffer_wq fix

unuse_mm-locked.patch
AIO: hold the context lock across unuse_mm

aio-take-task_lock.patch
From: Suparna Bhattacharya <[email protected]>
Subject: Re: 2.5.72-mm1 - Under heavy testing with AIO,.. vmstat seems to blow the kernel

aio-O_SYNC-fix.patch
Unify o_sync changes for aio and regular writes

aio-readahead-rework.patch
Unified page range readahead for aio and regular reads

aio-readahead-speedup.patch
Readahead issues and AIO read speedup




2003-08-10 09:08:58

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

Gabor MICSKO <[email protected]> wrote:
>
> drivers/media/video/videodev.c:398: error: `video_proc_entry' undeclared
> here (not in a function)

Just delete that line.

2003-08-10 08:59:51

by Gabor MICSKO

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

Hi!

compile error in drivers/media/video/videodev.c

drivers/media/video/videodev.c:398: error: `video_proc_entry' undeclared
here (not in a function)
drivers/media/video/videodev.c:398: error: initializer element is not
constant
drivers/media/video/videodev.c:398: error: (near initialization for
`__ksymtab_video_proc_entry.value')
make[3]: *** [drivers/media/video/videodev.o] Error 1
make[2]: *** [drivers/media/video] Error 2
make[1]: *** [drivers/media] Error 2
make: *** [drivers] Error 2

2.6.0-test3 is fine with the same .config


.config attached



--
Windows not found
(C)heers, (P)arty or (D)ance?
-----------------------------------
Micsk? G?bor
Compaq Accredited Platform Specialist, System Engineer (APS, ASE)
Szint?zis Computer Rendszerh?z Rt.
H-9021 Gy?r, Tihanyi ?rp?d ?t 2.
Tel: +36-96-502-216
Fax: +36-96-318-658
E-mail: [email protected]
Web: http://www.hup.hu/


Attachments:
.config (25.88 kB)

2003-08-10 17:41:56

by Thomas Schlichter

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

Hi,

> kgdb-ga.patch
> kgdb stub for ia32 (George Anzinger's one)
> kgdbL warning fix

that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL nor
KGDB is enabled. The attached patch changes this to enable DEBUG_INFO by
default only if KGDB is enabled.

Please apply...

Best regards
Thomas Schlichter


Attachments:
(No filename) (328.00 B)
fix_debug_info.diff (243.00 B)
Download all attachments
Subject: Re: 2.6.0-test3-mm1

Andrew,

Em Dom, 2003-08-10 ?s 00:39, Andrew Morton escreveu:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test3/2.6.0-test3-mm1

I'm getting this warning with gcc-3.3.1:

drivers/char/keyboard.c: In function `k_fn':
drivers/char/keyboard.c:665: warning: comparison is always true due
to limited range of data type

gcc seems right, because the ``value'' variable only go to
255 and the size of ``func_table'' in my system is 256.

Even if gcc transforms unsigned char to a higher in this case, its
not solve the problem, because the value in ``value'' will use only
8 bits (this is made by the K_VAL() macro).

thanks,

PS: I'm getting this with 2.6.0-test3 too.

--
Luiz Fernando N. Capitulino

<[email protected]>
<http://www.telecentros.sp.gov.br>

2003-08-11 14:36:17

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

--Andrew Morton <[email protected]> wrote (on Saturday, August 09, 2003 20:39:43 -0700):

> . This kernel immediately triplefaults when compiled with gcc-2.95.3 and
> CONFIG_KGDB. It is due to compiling with "-ggdb" or "-gdwarf-2". When
> compiled with "-g" it works OK, but gdb screws that up.
>
> Moral: use a later gcc if you're a kgdb user.

Well, on the upside, 2.95.4 (Debian Woody) seems to work fine, so you don't
have to drown yourself in the pit of slow treacle. However, after printing
"kgdb <20030806.1101.35> : port =3f8, IRQ=4, divisor =1", it spews out
garbage to the serial console (looks like 8-bit data or something).
I didn't enable it on the cmd line, just compiled it in ... does that
trigger it for you?

-----

Degredation on kernbench is still there:

Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
Elapsed System User CPU
2.6.0-test3 45.97 115.83 571.93 1494.50
2.6.0-test3-mm1 46.43 122.78 571.87 1496.00

Quite a bit of extra sys time. I thought the suspected part of the sched
changes got backed out, but maybe I'm just not following it ...

------

4/4 split is still being wierd for me (same pattern as before). I think
it's just the rc script crapping out which causes the hostname not to
get set, or the rootfs to get remounted r/w.

M.

2003-08-11 15:12:22

by Con Kolivas

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Tue, 12 Aug 2003 00:35, Martin J. Bligh wrote:
> Degredation on kernbench is still there:
>
> Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
> Elapsed System User CPU
> 2.6.0-test3 45.97 115.83 571.93 1494.50
> 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
>
> Quite a bit of extra sys time. I thought the suspected part of the sched
> changes got backed out, but maybe I'm just not following it ...

It was plus and minus. I've improved my hacks, but the A3 patch nanosecond
timing will add extra overhead/locking. I'm not sure how you can compare
these to the last ones you posted:

Elapsed System User CPU
2.6.0-test2 46.05 115.20 571.75 1491.25
2.6.0-test2-con 46.98 121.02 583.55 1498.75
2.6.0-test2-mm1 46.95 121.18 582.00 1497.50

I'll take a stab in the dark and say the nanosecond timing is a big part now.
Backing out all the O*int patches in broken-out of 2.6.0-test3-mm1 should
help identify that.

I have an idea on how to trim the nanosecond overhead as well. The sched clock
should be called if the timing is less than say two jiffies only. That will
mean it will be called far less frequently.

Con

2003-08-11 18:05:48

by William Lee Irwin III

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Mon, Aug 11, 2003 at 07:35:31AM -0700, Martin J. Bligh wrote:
> Degredation on kernbench is still there:
> Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
> Elapsed System User CPU
> 2.6.0-test3 45.97 115.83 571.93 1494.50
> 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
> Quite a bit of extra sys time. I thought the suspected part of the sched
> changes got backed out, but maybe I'm just not following it ...

Is this with or without the unit conversion fix for the load balancer?

It will be load balancing extra-aggressively without the fix.


-- wli

2003-08-11 18:57:46

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

> On Mon, Aug 11, 2003 at 07:35:31AM -0700, Martin J. Bligh wrote:
>> Degredation on kernbench is still there:
>> Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
>> Elapsed System User CPU
>> 2.6.0-test3 45.97 115.83 571.93 1494.50
>> 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
>> Quite a bit of extra sys time. I thought the suspected part of the sched
>> changes got backed out, but maybe I'm just not following it ...
>
> Is this with or without the unit conversion fix for the load balancer?
>
> It will be load balancing extra-aggressively without the fix.

This is virgin ... can you point me back to the fix you mention?
I missed that one.

M.

2003-08-11 18:55:54

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

"Martin J. Bligh" <[email protected]> wrote:
>
> Degredation on kernbench is still there:
>
> Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
> Elapsed System User CPU
> 2.6.0-test3 45.97 115.83 571.93 1494.50
> 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
>
> Quite a bit of extra sys time.

Increased system is a surprise. Profiles would be interesting, thanks.

2003-08-11 20:13:47

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1



--On Monday, August 11, 2003 11:39:43 -0700 Andrew Morton <[email protected]> wrote:

> "Martin J. Bligh" <[email protected]> wrote:
>>
>> Degredation on kernbench is still there:
>>
>> Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
>> Elapsed System User CPU
>> 2.6.0-test3 45.97 115.83 571.93 1494.50
>> 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
>>
>> Quite a bit of extra sys time.
>
> Increased system is a surprise. Profiles would be interesting, thanks.
>

Buggered if I know what Letext is doing there ???

6577 3.9% total
1157 0.0% Letext
937 0.0% direct_strnlen_user
748 440.0% filp_close
722 21.2% __copy_from_user_ll
610 2.6% page_remove_rmap
492 487.1% file_ra_state_init
452 12.4% find_get_page
405 7.6% __copy_to_user_ll
402 28.6% schedule
386 0.0% kpmd_ctor
348 4.4% __d_lookup
310 16.6% atomic_dec_and_lock
300 174.4% may_open
274 16.3% buffered_rmqueue
225 1.6% do_anonymous_page
206 30.9% __wake_up
193 12.3% kmem_cache_free
124 0.0% direct_strncpy_from_user
119 6.5% path_lookup
...
-112 -100.0% strncpy_from_user
-117 -1.8% page_add_rmap
-149 -0.3% default_idle
-161 -100.0% .text.lock.dcache
-207 -100.0% .text.lock.filemap
-277 -78.5% dentry_open
-297 -65.6% do_page_cache_readahead
-347 -100.0% pgd_ctor
-375 -100.0% .text.lock.file_table
-867 -100.0% strnlen_user

2003-08-11 21:50:29

by Con Kolivas

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Tue, 12 Aug 2003 04:05, William Lee Irwin III wrote:
> On Mon, Aug 11, 2003 at 07:35:31AM -0700, Martin J. Bligh wrote:
> > Degredation on kernbench is still there:
> > Kernbench: (make -j N vmlinux, where N = 16 x num_cpus)
> > Elapsed System User CPU
> > 2.6.0-test3 45.97 115.83 571.93 1494.50
> > 2.6.0-test3-mm1 46.43 122.78 571.87 1496.00
> > Quite a bit of extra sys time. I thought the suspected part of the sched
> > changes got backed out, but maybe I'm just not following it ...
>
> Is this with or without the unit conversion fix for the load balancer?
>
> It will be load balancing extra-aggressively without the fix.

Yes, test3-mm1 includes load balancing fix you suggested in an akpm modified
form.

Con

2003-08-11 22:15:24

by William Lee Irwin III

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Mon, Aug 11, 2003 at 01:17:04PM -0700, Martin J. Bligh wrote:
> Buggered if I know what Letext is doing there ???
> 6577 3.9% total
> 1157 0.0% Letext
> 937 0.0% direct_strnlen_user
> 748 440.0% filp_close
> 722 21.2% __copy_from_user_ll
> 610 2.6% page_remove_rmap
> 492 487.1% file_ra_state_init
> 452 12.4% find_get_page
> 405 7.6% __copy_to_user_ll
> 402 28.6% schedule
> 386 0.0% kpmd_ctor
> 348 4.4% __d_lookup
> 310 16.6% atomic_dec_and_lock
> 300 174.4% may_open

You can figure out what it is by reading addresses directly out of
/proc/profile that would correspond to it (i.e. modifying readprofile)
and correlating it with an area of text in a disassembled kernel.

kpmd_ctor() is unusual; how many runs does this profile represent?
Does it represent the first run? Ideally, all your kernel pmd's should
be cached. If it's not the first run, then logged slab cache statistics
would be interesting to determine whether this is still the case even
while effective cacheing is going on or whether slab cache reaping is
blowing these things away (i.e. either ineffective cacheing is happening
or for some reason cacheing them isn't good enough).

Of course, it would probably be better to deal with first-order effects
first. On that note, how many profile hits total? How many runs is this
summed together from? Which run is this (numerically in the order you
ran them) if the profiles are from only one run?


-- wli

2003-08-11 22:18:44

by William Lee Irwin III

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Tue, 12 Aug 2003 04:05, William Lee Irwin III wrote:
>> Is this with or without the unit conversion fix for the load balancer?
>> It will be load balancing extra-aggressively without the fix.

On Tue, Aug 12, 2003 at 07:55:54AM +1000, Con Kolivas wrote:
> Yes, test3-mm1 includes load balancing fix you suggested in an akpm modified
> form.

Scratch that theory; I guess we're waiting to find out what Letext is.


-- wli

2003-08-11 22:47:39

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

> On Mon, Aug 11, 2003 at 01:17:04PM -0700, Martin J. Bligh wrote:
>> Buggered if I know what Letext is doing there ???
>> 6577 3.9% total
>> 1157 0.0% Letext
>> 937 0.0% direct_strnlen_user
>> 748 440.0% filp_close
>> 722 21.2% __copy_from_user_ll
>> 610 2.6% page_remove_rmap
>> 492 487.1% file_ra_state_init
>> 452 12.4% find_get_page
>> 405 7.6% __copy_to_user_ll
>> 402 28.6% schedule
>> 386 0.0% kpmd_ctor
>> 348 4.4% __d_lookup
>> 310 16.6% atomic_dec_and_lock
>> 300 174.4% may_open
>
> You can figure out what it is by reading addresses directly out of
> /proc/profile that would correspond to it (i.e. modifying readprofile)
> and correlating it with an area of text in a disassembled kernel.

Was more interested in which patch screwed up the profiling really ...
I suspect someone knows already ;-)

> kpmd_ctor() is unusual; how many runs does this profile represent?
> Does it represent the first run? Ideally, all your kernel pmd's should
> be cached. If it's not the first run, then logged slab cache statistics
> would be interesting to determine whether this is still the case even
> while effective cacheing is going on or whether slab cache reaping is
> blowing these things away (i.e. either ineffective cacheing is happening
> or for some reason cacheing them isn't good enough).

It's the average of 5 runs, after an initial warmup run which is discarded.

> Of course, it would probably be better to deal with first-order effects
> first. On that note, how many profile hits total? How many runs is this
> summed together from? Which run is this (numerically in the order you
> ran them) if the profiles are from only one run?

See above.

M.

2003-08-11 22:58:28

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

>> On Mon, Aug 11, 2003 at 01:17:04PM -0700, Martin J. Bligh wrote:
>>> Buggered if I know what Letext is doing there ???
>>> 6577 3.9% total
>>> 1157 0.0% Letext
>>> 937 0.0% direct_strnlen_user
>>> 748 440.0% filp_close
>>> 722 21.2% __copy_from_user_ll
>>> 610 2.6% page_remove_rmap
>>> 492 487.1% file_ra_state_init
>>> 452 12.4% find_get_page
>>> 405 7.6% __copy_to_user_ll
>>> 402 28.6% schedule
>>> 386 0.0% kpmd_ctor
>>> 348 4.4% __d_lookup
>>> 310 16.6% atomic_dec_and_lock
>>> 300 174.4% may_open
>>
>> You can figure out what it is by reading addresses directly out of
>> /proc/profile that would correspond to it (i.e. modifying readprofile)
>> and correlating it with an area of text in a disassembled kernel.
>
> Was more interested in which patch screwed up the profiling really ...
> I suspect someone knows already ;-)

Looks to me like all the .text.lock.foo stuff got dumped under Letext
actually .... oops. Sometime between test2-mm1 and test2-mm3, I think?

M.

2003-08-11 23:38:32

by William Lee Irwin III

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

> On Mon, Aug 11, 2003 at 01:17:04PM -0700, Martin J. Bligh wrote:
>> kpmd_ctor() is unusual; how many runs does this profile represent?
>> Does it represent the first run? Ideally, all your kernel pmd's should
>> be cached. If it's not the first run, then logged slab cache statistics
>> would be interesting to determine whether this is still the case even
>> while effective cacheing is going on or whether slab cache reaping is
>> blowing these things away (i.e. either ineffective cacheing is happening
>> or for some reason cacheing them isn't good enough).

On Mon, Aug 11, 2003 at 03:50:29PM -0700, Martin J. Bligh wrote:
> It's the average of 5 runs, after an initial warmup run which is discarded.


Okay, logging /proc/slabinfo and /proc/meminfo at various points
throughout the run would be helpful here.


-- wli

2003-08-13 19:22:17

by George Anzinger

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

Thomas Schlichter wrote:
> Hi,
>
>
>>kgdb-ga.patch
>> kgdb stub for ia32 (George Anzinger's one)
>> kgdbL warning fix
>
>
> that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL nor
> KGDB is enabled. The attached patch changes this to enable DEBUG_INFO by
> default only if KGDB is enabled.

Looks good to me, but.... just what does this turn on? Its been a
long time and me thinks a wee comment here would help me remember next
time.

-g

>
> Please apply...
>
> Best regards
> Thomas Schlichter
>
>
> ------------------------------------------------------------------------
>
> --- linux-2.6.0-test3-mm1/arch/i386/Kconfig.orig Sun Aug 10 14:25:13 2003
> +++ linux-2.6.0-test3-mm1/arch/i386/Kconfig Sun Aug 10 14:25:56 2003
> @@ -1462,6 +1462,7 @@
>
> config DEBUG_INFO
> bool
> + depends on KGDB
> default y
>
> config KGDB_MORE

--
George Anzinger [email protected]
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml

2003-08-13 20:18:34

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Mon, Aug 11, 2003 at 11:26:36AM -0700, George Anzinger wrote:
> >that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL
> >nor KGDB is enabled. The attached patch changes this to enable DEBUG_INFO
> >by default only if KGDB is enabled.
>
> Looks good to me, but.... just what does this turn on? Its been a
> long time and me thinks a wee comment here would help me remember next
> time.

DEBUG_INFO add "-g" to CFLAGS.
Main reason to introduce this was that many architectures always use
"-g", so a config option seemed more appropriate.
I do not agree that this should be dependent on KGDB.
To my knowledge -g is useful also without using kgdb.

Sam

2003-08-13 20:55:08

by Martin J. Bligh

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

--On Wednesday, August 13, 2003 22:18:29 +0200 Sam Ravnborg <[email protected]> wrote:

> On Mon, Aug 11, 2003 at 11:26:36AM -0700, George Anzinger wrote:
>> > that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL
>> > nor KGDB is enabled. The attached patch changes this to enable DEBUG_INFO
>> > by default only if KGDB is enabled.
>>
>> Looks good to me, but.... just what does this turn on? Its been a
>> long time and me thinks a wee comment here would help me remember next
>> time.
>
> DEBUG_INFO add "-g" to CFLAGS.
> Main reason to introduce this was that many architectures always use
> "-g", so a config option seemed more appropriate.
> I do not agree that this should be dependent on KGDB.
> To my knowledge -g is useful also without using kgdb.

I have this in my tree (from Dave Hansen). Slightly twisted, but there's
no better way I can see. Goes on top of the kgdb patch.

M.

diff -purN -X /home/mbligh/.diff.exclude 520-queuestat/Makefile 550-config_debug/Makefile
--- 520-queuestat/Makefile 2003-07-28 18:30:57.000000000 -0700
+++ 550-config_debug/Makefile 2003-07-28 19:02:06.000000000 -0700
@@ -308,7 +308,7 @@ ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif

-ifdef CONFIG_X86_REMOTE_DEBUG
+ifdef CONFIG_DEBUG_SYMBOLS
CFLAGS += -g
endif

diff -purN -X /home/mbligh/.diff.exclude 520-queuestat/arch/i386/Kconfig 550-config_debug/arch/i386/Kconfig
--- 520-queuestat/arch/i386/Kconfig 2003-07-28 18:59:00.000000000 -0700
+++ 550-config_debug/arch/i386/Kconfig 2003-07-28 19:02:06.000000000 -0700
@@ -1350,6 +1350,14 @@ config DEBUG_KERNEL
Say Y here if you are developing drivers or trying to debug and
identify kernel problems.

+config DEBUG_SYMBOLS_PROMPT
+ bool "Get debug symbols (turns on -g)"
+ depends on DEBUG_KERNEL
+
+config DEBUG_SYMBOLS
+ bool
+ depends on DEBUG_SYMBOLS_PROMPT || X86_REMOTE_DEBUG
+
config DEBUG_STACKOVERFLOW
bool "Check for stack overflows"
depends on DEBUG_KERNEL

2003-08-13 22:49:24

by Thomas Schlichter

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1

On Wednesday 13 August 2003 22:18, Sam Ravnborg wrote:
> On Mon, Aug 11, 2003 at 11:26:36AM -0700, George Anzinger wrote:
> > >that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL
> > >nor KGDB is enabled. The attached patch changes this to enable
> > > DEBUG_INFO by default only if KGDB is enabled.
> >
> > Looks good to me, but.... just what does this turn on? Its been a
> > long time and me thinks a wee comment here would help me remember next
> > time.
>
> DEBUG_INFO add "-g" to CFLAGS.
> Main reason to introduce this was that many architectures always use
> "-g", so a config option seemed more appropriate.
> I do not agree that this should be dependent on KGDB.
> To my knowledge -g is useful also without using kgdb.

Yes, one can enable or disable DEBUG_INFO as soon as DEBUG_KERNEL is selected,
this does not depend on KGDB.

With the patch DEBUG_INFO is enabled by default only if KGDB is selected, but
even if KGDB is not selected you still may enable it by hand.

The problem was that DEBUG_INFO was enabled even if it was not reachable
because DEBUG_KERNEL was not selected....

Thomas

2003-08-14 08:18:53

by George Anzinger

[permalink] [raw]
Subject: Re: 2.6.0-test3-mm1 and the -g thing.

Sam Ravnborg wrote:
> On Mon, Aug 11, 2003 at 11:26:36AM -0700, George Anzinger wrote:
>
>>>that patch sets DEBUG_INFO to y by default, even if whether DEBUG_KERNEL
>>>nor KGDB is enabled. The attached patch changes this to enable DEBUG_INFO
>>>by default only if KGDB is enabled.
>>
>>Looks good to me, but.... just what does this turn on? Its been a
>>long time and me thinks a wee comment here would help me remember next
>>time.
>
>
> DEBUG_INFO add "-g" to CFLAGS.
> Main reason to introduce this was that many architectures always use
> "-g", so a config option seemed more appropriate.
> I do not agree that this should be dependent on KGDB.
> To my knowledge -g is useful also without using kgdb.

Yes, I see.

But we have this problem you see:

--- linux-2.6.0-test2-org/arch/i386/Makefile 2003-07-31
13:06:52.000000000 -0700
+++ linux/arch/i386/Makefile 2003-08-06 13:09:39.000000000 -0700
@@ -84,6 +84,9 @@
# default subarch .h files
mflags-y += -Iinclude/asm-i386/mach-default

+mflags-$(CONFIG_KGDB) += -gdwarf-2
+mflags-$(CONFIG_KGDB_MORE) += $(shell echo $(CONFIG_KGDB_OPTIONS) |
sed -e 's/"//g')
+

So the -g gets set as well as -gdwarf-2. And note that the -gdwarf-2
gets set for asm code also (interesting problem there in that the line
number info is for the .s file and not the .S and the .s is a tmp file
to boot). But back to the -g and kgdb. I am thinking the thing to do
is to force DEBUG_INFO off if KGDB is on, thus using what ever we
finally decide should be after the -g.

Andrew started with -gstabs then -g, then -ggdb which I am sure is the
same as -gdwarf-2 (the kernel files are exactly the same size with
either -ggdb or -gdwarf-2) and now, I think, he is back to -g.

I want to use -gdwarf-2 since it a) clearly states what we want, and
b) the new gdb uses the dwarf2 call frames and thus avoids the "bt"
confusion caused by gdb not recognizing the function entry sequence
generated by the newer compilers (I use gcc 3.2.1). I also expect to
have dwarf call frames for the asm code some time soon, which will
allow us to "bt" over interrupt and trap frames.
--
George Anzinger [email protected]
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml