Messages in this thread | | | Date | Thu, 11 Jun 2015 06:28:28 +0200 (CEST) | From | Jiri Kosina <> | Subject | Re: [RFC PATCH 09/18] kthread: Make it easier to correctly sleep in iterant kthreads |
| |
On Wed, 10 Jun 2015, Steven Rostedt wrote:
> > Right, and I had not considered that, but it turns out the hung_task > > detector checks p->state == TASK_UNINTERRUPTIBLE, so TASK_IDLE is indeed > > safe from that. > > Also, I would assume that TASK_IDLE only makes sense for kernel > threads, I wonder if we should add an assertion in schedule that > triggers if a task is scheduling with TASK_IDLE and is not a kernel > thread (has its own mm?)
For the sake of completnes -- testing for !task_struct->mm is not a correct test to find out whether given entity is a kernel thread; kernel threads are free to temporarily adopt user struct mm via use_mm() (usually for handling AIO on behalf of a particular struct mm).
The correct check is to look at PF_KTHREAD flag in task_struct->flags.
-- Jiri Kosina SUSE Labs
| |