103 lines
3.3 KiB
Groff
103 lines
3.3 KiB
Groff
|
.\" $NetBSD: sync.2,v 1.17 2009/03/25 06:46:21 wiz Exp $
|
||
|
.\"
|
||
|
.\" Copyright (c) 1980, 1991, 1993
|
||
|
.\" The Regents of the University of California. All rights reserved.
|
||
|
.\"
|
||
|
.\" Redistribution and use in source and binary forms, with or without
|
||
|
.\" modification, are permitted provided that the following conditions
|
||
|
.\" are met:
|
||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||
|
.\" notice, this list of conditions and the following disclaimer.
|
||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||
|
.\" documentation and/or other materials provided with the distribution.
|
||
|
.\" 3. Neither the name of the University nor the names of its contributors
|
||
|
.\" may be used to endorse or promote products derived from this software
|
||
|
.\" without specific prior written permission.
|
||
|
.\"
|
||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
.\" SUCH DAMAGE.
|
||
|
.\"
|
||
|
.\" @(#)sync.2 8.1 (Berkeley) 6/4/93
|
||
|
.\"
|
||
|
.Dd March 25, 2009
|
||
|
.Dt SYNC 2
|
||
|
.Os
|
||
|
.Sh NAME
|
||
|
.Nm sync
|
||
|
.Nd "synchronize disk block in-core status with that on disk"
|
||
|
.Sh LIBRARY
|
||
|
.Lb libc
|
||
|
.Sh SYNOPSIS
|
||
|
.In unistd.h
|
||
|
.Ft void
|
||
|
.Fn sync void
|
||
|
.Sh DESCRIPTION
|
||
|
The
|
||
|
.Fn sync
|
||
|
function forces a write of dirty (modified) buffers
|
||
|
in the block buffer cache out
|
||
|
to disk.
|
||
|
The kernel keeps this information in core to reduce
|
||
|
the number of disk I/O transfers required by the system.
|
||
|
As information in the cache is lost after a system crash,
|
||
|
kernel thread
|
||
|
.Nm ioflush
|
||
|
ensures that dirty buffers are synced to disk
|
||
|
eventually.
|
||
|
By default, a dirty buffer is synced after 30 seconds,
|
||
|
but some filesystems exploit
|
||
|
.Nm ioflush
|
||
|
features to sync directory data and metadata faster
|
||
|
(after 15 and 10 seconds, respectively).
|
||
|
.Pp
|
||
|
The function
|
||
|
.Xr fsync 2
|
||
|
may be used to synchronize individual file descriptor
|
||
|
attributes.
|
||
|
.Sh CAUTIONS
|
||
|
Many modern disks contain write-back caches.
|
||
|
In theory
|
||
|
.Fn sync
|
||
|
flushes these.
|
||
|
In practice there are many possible ways for this mechanism to go
|
||
|
astray.
|
||
|
It is prudent (where possible) to allow a few seconds after syncing
|
||
|
for everything to settle before e.g. turning off the power.
|
||
|
.Pp
|
||
|
It may also be desirable to use
|
||
|
.Xr dkctl 8
|
||
|
or
|
||
|
.Xr scsictl 8
|
||
|
to disable the write-back cache entirely.
|
||
|
.Sh SEE ALSO
|
||
|
.Xr fsync 2 ,
|
||
|
.Xr dkctl 8 ,
|
||
|
.Xr scsictl 8 ,
|
||
|
.Xr sync 8
|
||
|
.Sh HISTORY
|
||
|
A
|
||
|
.Fn sync
|
||
|
function call appeared in
|
||
|
.At v6 .
|
||
|
.Pp
|
||
|
Historically,
|
||
|
.Fn sync
|
||
|
would schedule buffers for writing but not actually wait for the
|
||
|
writes to finish.
|
||
|
It was necessary to issue a second or sometimes a third call to ensure
|
||
|
that all buffers had in fact been written out.
|
||
|
In
|
||
|
.Nx ,
|
||
|
.Fn sync
|
||
|
does not return until all buffers have been written.
|