lkml.org 
[lkml]   [2011]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [RFC PATCH 0/3] block: Fix fsync slowness with CFQ cgroups
    Vivek Goyal wrote:
    > This patch series seems to be working for me. I did testing for ext4 only.
    > This series is based on for-3.1/core branch of Jen's block tree.
    > Konstantin, can you please give it a try and see if it fixes your
    > issue.

    It works for me too, for ext3 and ext4, on top 3.0-rc5, after these trivial fixes:

    --- a/block/cfq-iosched.c
    +++ b/block/cfq-iosched.c
    @@ -1511,7 +1519,7 @@ static void cfq_add_rq_rb(struct request *rq)
    * if that happens, put the alias on the dispatch list
    */
    while ((__alias = elv_rb_add(&cfqq->sort_list, rq)) != NULL)
    - cfq_dispatch_insert(cfqd->queue, __alias);
    + cfq_dispatch_insert(cfqd->queue, __alias, false);

    if (!cfq_cfqq_on_rr(cfqq))
    cfq_add_cfqq_rr(cfqd, cfqq);
    @@ -3797,12 +3797,11 @@ cfq_set_depends_on_task(struct request_queue *q, struct task_struct *tsk)
    */
    rcu_read_lock();
    if (task_blkio_cgroup(current) == task_blkio_cgroup(tsk))
    - return;
    - rcu_read_unlock();
    + goto out_unlock_rcu;

    cic = cfq_cic_lookup(cfqd, current->io_context);
    if (!cic)
    - return;
    + goto out_unlock_rcu;

    task_lock(tsk);
    spin_lock_irq(q->queue_lock);
    @@ -3847,6 +3846,8 @@ cfq_set_depends_on_task(struct request_queue *q, struct task_struct *tsk)
    out_unlock:
    spin_unlock_irq(q->queue_lock);
    task_unlock(tsk);
    +out_unlock_rcu:
    + rcu_read_unlock();
    }

    \
     
     \ /
      Last update: 2011-06-28 13:07    [W:0.031 / U:127.780 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site