|
24 | 24 | * already. There is no benefit to looking ahead more than one block, so
|
25 | 25 | * distance is 1. This is the default initial assumption.
|
26 | 26 | *
|
27 |
| - * B) I/O is necessary, but fadvise is undesirable because the access is |
28 |
| - * sequential, or impossible because direct I/O is enabled or the system |
29 |
| - * doesn't support fadvise. There is no benefit in looking ahead more than |
| 27 | + * B) I/O is necessary, but read-ahead advice is undesirable because the |
| 28 | + * access is sequential and we can rely on the kernel's read-ahead heuristics, |
| 29 | + * or impossible because direct I/O is enabled, or the system doesn't support |
| 30 | + * read-ahead advice. There is no benefit in looking ahead more than |
30 | 31 | * io_combine_limit, because in this case the only goal is larger read system
|
31 | 32 | * calls. Looking further ahead would pin many buffers and perform
|
32 |
| - * speculative work looking ahead for no benefit. |
| 33 | + * speculative work for no benefit. |
33 | 34 | *
|
34 |
| - * C) I/O is necessary, it appears random, and this system supports fadvise. |
35 |
| - * We'll look further ahead in order to reach the configured level of I/O |
36 |
| - * concurrency. |
| 35 | + * C) I/O is necessary, it appears to be random, and this system supports |
| 36 | + * read-ahead advice. We'll look further ahead in order to reach the |
| 37 | + * configured level of I/O concurrency. |
37 | 38 | *
|
38 | 39 | * The distance increases rapidly and decays slowly, so that it moves towards
|
39 | 40 | * those levels as different I/O patterns are discovered. For example, a
|
|
0 commit comments