| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Wed, 24 May 2017 10:15:41 +0200 |
| Subject: [PATCH 30/32] sched: Provide is_percpu_thread() helper |
| |
| Provide a helper function for checking whether current task is a per cpu |
| thread. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> |
| Acked-by: Ingo Molnar <mingo@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Sebastian Siewior <bigeasy@linutronix.de> |
| Cc: Steven Rostedt <rostedt@goodmis.org> |
| Link: http://lkml.kernel.org/r/20170524081549.541649540@linutronix.de |
| --- |
| include/linux/sched.h | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/include/linux/sched.h |
| +++ b/include/linux/sched.h |
| @@ -1258,6 +1258,16 @@ extern struct pid *cad_pid; |
| #define tsk_used_math(p) ((p)->flags & PF_USED_MATH) |
| #define used_math() tsk_used_math(current) |
| |
| +static inline bool is_percpu_thread(void) |
| +{ |
| +#ifdef CONFIG_SMP |
| + return (current->flags & PF_NO_SETAFFINITY) && |
| + (current->nr_cpus_allowed == 1); |
| +#else |
| + return true; |
| +#endif |
| +} |
| + |
| /* Per-process atomic flags. */ |
| #define PFA_NO_NEW_PRIVS 0 /* May not gain new privileges. */ |
| #define PFA_SPREAD_PAGE 1 /* Spread page cache over cpuset */ |