Date: Tue, 25 Sep 2001 23:54:32 -0700 (PDT) From: Matt Dillon <dillon@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern imgact_aout.c imgact_elf.c kern_subr.c vfs_vnops.c src/sys/sys uio.h Message-ID: <200109260654.f8Q6sWF32652@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
dillon 2001/09/25 23:54:32 PDT
Modified files:
sys/kern imgact_aout.c imgact_elf.c kern_subr.c
vfs_vnops.c
sys/sys uio.h
Log:
Make uio_yield() a global. Call uio_yield() between chunks
in vn_rdwr_inchunks(), allowing other processes to gain an exclusive
lock on the vnode. Specifically: directory scanning, to avoid a race to the
root directory, and multiple child processes coring simultaniously so they
can figure out that some other core'ing child has an exclusive adv lock and
just exit instead.
This completely fixes performance problems when large programs core. You
can have hundreds of copies (forked children) of the same binary core all
at once and not notice.
MFC after: 3 days
Revision Changes Path
1.73 +3 -3 src/sys/kern/imgact_aout.c
1.106 +3 -3 src/sys/kern/imgact_elf.c
1.48 +2 -4 src/sys/kern/kern_subr.c
1.121 +5 -2 src/sys/kern/vfs_vnops.c
1.15 +2 -1 src/sys/sys/uio.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109260654.f8Q6sWF32652>
