.. | .. |
---|
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 */ |
---|