• Y
    delayacct: clear right task's flag after blkio completes · 3d1c7fd9
    Yafang Shao 提交于
    When I was implementing a latency analyzer tool by using task->delays
    and other things, I found an issue in delayacct.  The issue is it should
    clear the target's flag instead of current's in delayacct_blkio_end().
    
    When I git blame delayacct, I found there're some similar issues we have
    fixed in delayacct_blkio_end().
    
     - Commit c96f5471 ("delayacct: Account blkio completion on the
       correct task") fixed the issue that it should account blkio
       completion on the target task instead of current.
    
     - Commit b512719f ("delayacct: fix crash in delayacct_blkio_end()
       after delayacct init failure") fixed the issue that it should check
       target task's delays instead of current task'.
    
    It seems that delayacct_blkio_{begin, end} are error prone.
    
    So I introduce a new paratmeter - the target task 'p' - to these
    helpers.  After that change, the callsite will specifilly set the right
    task, which should make it less error prone.
    
    Link: https://lkml.kernel.org/r/20210414083720.24083-1-laoar.shao@gmail.comSigned-off-by: NYafang Shao <laoar.shao@gmail.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Josh Snyder <joshs@netflix.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    3d1c7fd9
delayacct.h 5.3 KB