When a process exits, it might spend a lot of time in close_files() closing thousand of files. This is bad for latency, and in some cases can trigger 'BUG: soft lockup detected on CPU#0!' Call Trace: {softlockup_tick+250} {update_process_times+87} {smp_local_timer_interrupt+35} {smp_apic_timer_interrupt+65} {apic_timer_interrupt+98} {sock_destroy_inode+0} {tcp_send_fin+207} {tcp_send_fin+116} {tcp_close+698} {inet_release+87} {sock_release+25} {sock_close+53} {__fput+88} {filp_close+93} {put_files_struct+110} {do_exit+650} {__dequeue_signal+478} {do_group_exit+200} {get_signal_to_deliver+1178} {sysret_signal+28} {do_signal+129} {dput+35} {sys_accept+443} {add_wait_queue+28} {__up_write+33} {sysret_signal+28} {ptregscall_common+103} This patch makes sure a cond_resched() call is done every 32 (or 64) files closed. This also helps reducing number of files waiting in RCU queues for final freeing as call_rcu() might have called force_quiescent_state() Signed-off-by: Eric Dumazet