Subject: kern/19347: msync(2) does not implement asynchronous operation
To: None <gnats-bugs@gnats.netbsd.org>
From: None <thorpej@shagadelic.org>
List: netbsd-bugs
Date: 12/10/2002 23:38:52
>Number: 19347
>Category: kern
>Synopsis: msync(2) does not implement asynchronous operation
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Dec 10 23:39:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Jason R Thorpe
>Release: NetBSD 1.6I
>Organization:
Wasabi Systems, Inc.
>Environment:
System: NetBSD yeah-baby.shagadelic.org 1.6I NetBSD 1.6I (YEAH-BABY-XP) #11: Sun Sep 29 17:42:25 PDT 2002 thorpej@yeah-baby.shagadelic.org:/u1/netbsd/src/sys/arch/i386/compile/YEAH-BABY-XP i386
Architecture: i386
Machine: i386
>Description:
The msync(2) system call does not implement async operation,
i.e. MS_SYNC flag not set ... it always performs its operation
synchronously.
This can have a significant negative performance impact on
applications which mmap a file store, and do i/o to the file
store by copy data into the mmap'd regions. Over time a large
pile of dirty pages piles up, causing a long pause when pages
need to be reclaimed or a vnode gets recycled (this is especially
true on large memory systems, where the pagedaemon doens't run
very often). To alleviate this problem, the application may
wish to msync() the mmap'd region it just modified, but doing
so synchronously also has a negative impact on performance.
>How-To-Repeat:
Code inspection.
>Fix:
Not provided.
>Release-Note:
>Audit-Trail:
>Unformatted: