From owner-cvs-all Tue Sep 25 23:54:53 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 7FDAD37B41F; Tue, 25 Sep 2001 23:54:32 -0700 (PDT) Received: (from dillon@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f8Q6sWF32652; Tue, 25 Sep 2001 23:54:32 -0700 (PDT) (envelope-from dillon) Message-Id: <200109260654.f8Q6sWF32652@freefall.freebsd.org> From: Matt Dillon Date: Tue, 25 Sep 2001 23:54:32 -0700 (PDT) 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 X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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