The patch titled Subject: fs/: remove caller signal_pending branch predictions has been added to the -mm tree. Its filename is fs-remove-caller-signal_pending-branch-predictions.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/fs-remove-caller-signal_pending-branch-predictions.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/fs-remove-caller-signal_pending-branch-predictions.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Davidlohr Bueso <dave@xxxxxxxxxxxx> Subject: fs/: remove caller signal_pending branch predictions This is already done for us internally by the signal machinery. Link: http://lkml.kernel.org/r/20181116002713.8474-7-dave@xxxxxxxxxxxx Signed-off-by: Davidlohr Bueso <dave@xxxxxxxxxxxx> Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/fs/afs/fs_probe.c~fs-remove-caller-signal_pending-branch-predictions +++ a/fs/afs/fs_probe.c @@ -238,7 +238,7 @@ int afs_wait_for_fs_probes(struct afs_se } } - if (!still_probing || unlikely(signal_pending(current))) + if (!still_probing || signal_pending(current)) goto stop; schedule(); } --- a/fs/afs/vl_probe.c~fs-remove-caller-signal_pending-branch-predictions +++ a/fs/afs/vl_probe.c @@ -239,7 +239,7 @@ int afs_wait_for_vl_probes(struct afs_vl } } - if (!still_probing || unlikely(signal_pending(current))) + if (!still_probing || signal_pending(current)) goto stop; schedule(); } --- a/fs/buffer.c~fs-remove-caller-signal_pending-branch-predictions +++ a/fs/buffer.c @@ -2397,7 +2397,7 @@ static int cont_expand_zero(struct file balance_dirty_pages_ratelimited(mapping); - if (unlikely(fatal_signal_pending(current))) { + if (fatal_signal_pending(current))) { err = -EINTR; goto out; } --- a/fs/exec.c~fs-remove-caller-signal_pending-branch-predictions +++ a/fs/exec.c @@ -1088,7 +1088,7 @@ static int de_thread(struct task_struct __set_current_state(TASK_KILLABLE); spin_unlock_irq(lock); freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) + if (__fatal_signal_pending(tsk)) goto killed; spin_lock_irq(lock); } @@ -1116,7 +1116,7 @@ static int de_thread(struct task_struct write_unlock_irq(&tasklist_lock); cgroup_threadgroup_change_end(tsk); freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) + if (__fatal_signal_pending(tsk)) goto killed; } --- a/fs/orangefs/orangefs-bufmap.c~fs-remove-caller-signal_pending-branch-predictions +++ a/fs/orangefs/orangefs-bufmap.c @@ -105,7 +105,7 @@ static int wait_for_free(struct slot_map left = t; else left = t + (left - n); - if (unlikely(signal_pending(current))) + if (signal_pending(current)) left = -EINTR; } while (left > 0); _ Patches currently in -mm which might be from dave@xxxxxxxxxxxx are fs-epoll-remove-max_nests-argument-from-ep_call_nested.patch fs-epoll-simplify-ep_send_events_proc-ready-list-loop.patch fs-epoll-drop-ovflist-branch-prediction.patch fs-epoll-robustify-ep-mtx-held-checks.patch fs-epoll-reduce-the-scope-of-wq-lock-in-epoll_wait.patch fs-epoll-reduce-the-scope-of-wq-lock-in-epoll_wait-fix.patch fs-epoll-avoid-barrier-after-an-epoll_wait2-timeout.patch fs-epoll-avoid-barrier-after-an-epoll_wait2-timeout-fix.patch fs-epoll-rename-check_events-label-to-send_events.patch fs-epoll-deal-with-wait_queue-only-once.patch locking-mutex-remove-caller-signal_pending-branch-predictions.patch kernel-sched-remove-caller-signal_pending-branch-predictions.patch arch-arc-remove-caller-signal_pending_branch-predictions.patch mm-remove-caller-signal_pending-branch-predictions.patch fs-remove-caller-signal_pending-branch-predictions.patch