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: