| .. | .. |
|---|
| 37 | 37 | int cpu; /* cpu we're on */ |
|---|
| 38 | 38 | int preempt_count; /* 0 => preemptable, |
|---|
| 39 | 39 | <0 => BUG */ |
|---|
| 40 | + int preempt_lazy_count; /* 0 => preemptable, |
|---|
| 41 | + <0 => BUG */ |
|---|
| 40 | 42 | unsigned long local_flags; /* private flags for thread */ |
|---|
| 41 | 43 | #ifdef CONFIG_LIVEPATCH |
|---|
| 42 | 44 | unsigned long *livepatch_sp; |
|---|
| .. | .. |
|---|
| 81 | 83 | #define TIF_SIGPENDING 1 /* signal pending */ |
|---|
| 82 | 84 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ |
|---|
| 83 | 85 | #define TIF_FSCHECK 3 /* Check FS is USER_DS on return */ |
|---|
| 84 | | -#define TIF_32BIT 4 /* 32 bit binary */ |
|---|
| 85 | 86 | #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */ |
|---|
| 86 | 87 | #define TIF_PATCH_PENDING 6 /* pending live patching update */ |
|---|
| 87 | 88 | #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ |
|---|
| 88 | 89 | #define TIF_SINGLESTEP 8 /* singlestepping active */ |
|---|
| 89 | 90 | #define TIF_NOHZ 9 /* in adaptive nohz mode */ |
|---|
| 90 | 91 | #define TIF_SECCOMP 10 /* secure computing */ |
|---|
| 91 | | -#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */ |
|---|
| 92 | | -#define TIF_NOERROR 12 /* Force successful syscall return */ |
|---|
| 92 | + |
|---|
| 93 | +#define TIF_NEED_RESCHED_LAZY 11 /* lazy rescheduling necessary */ |
|---|
| 94 | +#define TIF_SYSCALL_TRACEPOINT 12 /* syscall tracepoint instrumentation */ |
|---|
| 95 | + |
|---|
| 93 | 96 | #define TIF_NOTIFY_RESUME 13 /* callback before returning to user */ |
|---|
| 94 | 97 | #define TIF_UPROBE 14 /* breakpointed or single-stepping */ |
|---|
| 95 | | -#define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */ |
|---|
| 96 | 98 | #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation |
|---|
| 97 | 99 | for stack store? */ |
|---|
| 98 | 100 | #define TIF_MEMDIE 17 /* is terminating due to OOM killer */ |
|---|
| .. | .. |
|---|
| 100 | 102 | #define TIF_ELF2ABI 18 /* function descriptors must die! */ |
|---|
| 101 | 103 | #endif |
|---|
| 102 | 104 | #define TIF_POLLING_NRFLAG 19 /* true if poll_idle() is polling TIF_NEED_RESCHED */ |
|---|
| 105 | +#define TIF_32BIT 20 /* 32 bit binary */ |
|---|
| 106 | +#define TIF_RESTOREALL 21 /* Restore all regs (implies NOERROR) */ |
|---|
| 107 | +#define TIF_NOERROR 22 /* Force successful syscall return */ |
|---|
| 108 | + |
|---|
| 103 | 109 | |
|---|
| 104 | 110 | /* as above, but as bit values */ |
|---|
| 105 | 111 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
|---|
| .. | .. |
|---|
| 119 | 125 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) |
|---|
| 120 | 126 | #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE) |
|---|
| 121 | 127 | #define _TIF_NOHZ (1<<TIF_NOHZ) |
|---|
| 128 | +#define _TIF_NEED_RESCHED_LAZY (1<<TIF_NEED_RESCHED_LAZY) |
|---|
| 122 | 129 | #define _TIF_FSCHECK (1<<TIF_FSCHECK) |
|---|
| 123 | 130 | #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ |
|---|
| 124 | 131 | _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \ |
|---|
| .. | .. |
|---|
| 127 | 134 | #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ |
|---|
| 128 | 135 | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ |
|---|
| 129 | 136 | _TIF_RESTORE_TM | _TIF_PATCH_PENDING | \ |
|---|
| 130 | | - _TIF_FSCHECK) |
|---|
| 137 | + _TIF_FSCHECK | _TIF_NEED_RESCHED_LAZY) |
|---|
| 131 | 138 | #define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR) |
|---|
| 139 | +#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY) |
|---|
| 132 | 140 | |
|---|
| 133 | 141 | /* Bits in local_flags */ |
|---|
| 134 | 142 | /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */ |
|---|