Commit 04dc6e71a28d4815bf9431efcafc107bb0ad2792
Committed by
Jens Axboe
1 parent
4d00aa47e2
Exists in
master
and in
7 other branches
cfq-iosched: use the default seek distance when there aren't enough seek samples
If the cfq io context doesn't have enough samples yet to provide a mean seek distance, then use the default threshold we have for seeky IO instead of defaulting to 0. Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Showing 1 changed file with 6 additions and 5 deletions Side-by-side Diff
block/cfq-iosched.c
... | ... | @@ -947,14 +947,18 @@ |
947 | 947 | return cfqd->last_position - rq->sector; |
948 | 948 | } |
949 | 949 | |
950 | +#define CIC_SEEK_THR 8 * 1024 | |
951 | +#define CIC_SEEKY(cic) ((cic)->seek_mean > CIC_SEEK_THR) | |
952 | + | |
950 | 953 | static inline int cfq_rq_close(struct cfq_data *cfqd, struct request *rq) |
951 | 954 | { |
952 | 955 | struct cfq_io_context *cic = cfqd->active_cic; |
956 | + sector_t sdist = cic->seek_mean; | |
953 | 957 | |
954 | 958 | if (!sample_valid(cic->seek_samples)) |
955 | - return 0; | |
959 | + sdist = CIC_SEEK_THR; | |
956 | 960 | |
957 | - return cfq_dist_from_last(cfqd, rq) <= cic->seek_mean; | |
961 | + return cfq_dist_from_last(cfqd, rq) <= sdist; | |
958 | 962 | } |
959 | 963 | |
960 | 964 | static struct cfq_queue *cfqq_close(struct cfq_data *cfqd, |
... | ... | @@ -1038,9 +1042,6 @@ |
1038 | 1042 | cfq_mark_cfqq_coop(cfqq); |
1039 | 1043 | return cfqq; |
1040 | 1044 | } |
1041 | - | |
1042 | - | |
1043 | -#define CIC_SEEKY(cic) ((cic)->seek_mean > (8 * 1024)) | |
1044 | 1045 | |
1045 | 1046 | static void cfq_arm_slice_timer(struct cfq_data *cfqd) |
1046 | 1047 | { |