lkml.org 
[lkml]   [2020]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 068/125] s390/cio: add cond_resched() in the slow_eval_known_fn() loop
    Date
    From: Vineeth Vijayan <vneethv@linux.ibm.com>

    [ Upstream commit 0b8eb2ee9da1e8c9b8082f404f3948aa82a057b2 ]

    The scanning through subchannels during the time of an event could
    take significant amount of time in case of platforms with lots of
    known subchannels. This might result in higher scheduling latencies
    for other tasks especially on systems with a single CPU. Add
    cond_resched() call, as the loop in slow_eval_known_fn() can be
    executed for a longer duration.

    Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/s390/cio/css.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
    index df09ed53ab459..825a8f2703b4f 100644
    --- a/drivers/s390/cio/css.c
    +++ b/drivers/s390/cio/css.c
    @@ -615,6 +615,11 @@ static int slow_eval_known_fn(struct subchannel *sch, void *data)
    rc = css_evaluate_known_subchannel(sch, 1);
    if (rc == -EAGAIN)
    css_schedule_eval(sch->schid);
    + /*
    + * The loop might take long time for platforms with lots of
    + * known devices. Allow scheduling here.
    + */
    + cond_resched();
    }
    return 0;
    }
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-09-01 18:39    [W:4.132 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site