Messages in this thread Patch in this message | | | From | Justin TerAvest <> | Subject | [PATCH v2 8/8] cfq: Don't allow preemption across cgroups | Date | Tue, 22 Mar 2011 16:08:55 -0700 |
| |
Previously, a sync queue in can preempt an async queue in another cgroup. This changes that behavior to disallow such preemption.
Signed-off-by: Justin TerAvest <teravest@google.com> --- block/cfq-iosched.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 23caa79..0d0189b 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -3430,6 +3430,9 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq, if (!cfqq) return false; + if (new_cfqq->cfqg != cfqq->cfqg) + return false; + if (cfq_class_idle(new_cfqq)) return false; @@ -3449,9 +3452,6 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq, if (rq_is_sync(rq) && !cfq_cfqq_sync(cfqq)) return true; - if (new_cfqq->cfqg != cfqq->cfqg) - return false; - if (cfq_slice_used(cfqq)) return true; -- 1.7.3.1
| |