Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  • Tejun Heo's avatar
    block: exit_io_context() should call elevator_exit_icq_fn() · 621032ad
    Tejun Heo authored
    While updating locking, b2efa052 "block, cfq: unlink
    cfq_io_context's immediately" moved elevator_exit_icq_fn() invocation
    from exit_io_context() to the final ioc put.  While this doesn't cause
    catastrophic failure, it effectively removes task exit notification to
    elevator and cause noticeable IO performance degradation with CFQ.
    
    On task exit, CFQ used to immediately expire the slice if it was being
    used by the exiting task as no more IO would be issued by the task;
    however, after b2efa052, the notification is lost and disk could sit
    idle needlessly, leading to noticeable IO performance degradation for
    certain workloads.
    
    This patch renames ioc_exit_icq() to ioc_destroy_icq(), separates
    elevator_exit_icq_fn() invocation into ioc_exit_icq() and invokes it
    from exit_io_context().  ICQ_EXITED flag is added to avoid invoking
    the callback more than once for the same icq.
    
    Walking icq_list from ioc side and invoking elevator callback requires
    reve...
    621032ad
Forked from BeagleBoard.org / Linux
Source project has a limited visibility.