-
Notifications
You must be signed in to change notification settings - Fork 0
/
readahead.html
192 lines (141 loc) · 5.08 KB
/
readahead.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed Jan 29 11:25:40 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
h1 { text-align: center }
</style>
<title>READAHEAD</title>
</head>
<body>
<h1 align="center">READAHEAD</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUE">RETURN VALUE</a><br>
<a href="#ERRORS">ERRORS</a><br>
<a href="#VERSIONS">VERSIONS</a><br>
<a href="#CONFORMING TO">CONFORMING TO</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#COLOPHON">COLOPHON</a><br>
<hr>
<h2>NAME
<a name="NAME"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">readahead -
initiate file readahead into page cache</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>#define
_GNU_SOURCE</b> /* See feature_test_macros(7) */ <b><br>
#include <fcntl.h></b></p>
<p style="margin-left:11%; margin-top: 1em"><b>ssize_t
readahead(int</b> <i>fd</i><b>, off64_t</b>
<i>offset</i><b>, size_t</b> <i>count</i><b>);</b></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>readahead</b>()
initiates readahead on a file so that subsequent reads from
that file will be satisfied from the cache, and not block on
disk I/O (assuming the readahead was initiated early enough
and that other activity on the system did not in the
meantime flush pages from the cache).</p>
<p style="margin-left:11%; margin-top: 1em">The <i>fd</i>
argument is a file descriptor identifying the file which is
to be read. The <i>offset</i> argument specifies the
starting point from which data is to be read and
<i>count</i> specifies the number of bytes to be read. I/O
is performed in whole pages, so that <i>offset</i> is
effectively rounded down to a page boundary and bytes are
read up to the next page boundary greater than or equal to
<i>(offset+count)</i>. <b>readahead</b>() does not read
beyond the end of the file. The file offset of the open file
description referred to by the file descriptor <i>fd</i> is
left unchanged.</p>
<h2>RETURN VALUE
<a name="RETURN VALUE"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">On success,
<b>readahead</b>() returns 0; on failure, -1 is returned,
with <i>errno</i> set to indicate the cause of the
error.</p>
<h2>ERRORS
<a name="ERRORS"></a>
</h2>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p style="margin-top: 1em"><b>EBADF</b></p></td>
<td width="2%"></td>
<td width="78%">
<p style="margin-top: 1em"><i>fd</i> is not a valid file
descriptor or is not open for reading.</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="9%">
<p><b>EINVAL</b></p></td>
<td width="2%"></td>
<td width="78%">
<p><i>fd</i> does not refer to a file type to which
<b>readahead</b>() can be applied.</p></td></tr>
</table>
<h2>VERSIONS
<a name="VERSIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">The
<b>readahead</b>() system call appeared in Linux 2.4.13;
glibc support has been provided since version 2.3.</p>
<h2>CONFORMING TO
<a name="CONFORMING TO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">The
<b>readahead</b>() system call is Linux-specific, and its
use should be avoided in portable applications.</p>
<h2>NOTES
<a name="NOTES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">On some 32-bit
architectures, the calling signature for this system call
differs, for the reasons described in <b>syscall</b>(2).</p>
<h2>BUGS
<a name="BUGS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>readahead</b>()
attempts to schedule the reads in the background and return
immediately. However, it may block while it reads the
filesystem metadata needed to locate the requested blocks.
This occurs frequently with ext[234] on large files using
indirect blocks instead of extents, giving the appearance
that the call blocks until the requested data has been
read.</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>lseek</b>(2),
<b>madvise</b>(2), <b>mmap</b>(2), <b>posix_fadvise</b>(2),
<b>read</b>(2)</p>
<h2>COLOPHON
<a name="COLOPHON"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">This page is
part of release 5.02 of the Linux <i>man-pages</i> project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.</p>
<hr>
</body>
</html>