Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1235400
| From | Oleg Nesterov <oleg@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 02/11] x86/mm/hotplug: Remove pgd_list use from the memory hotplug code |
| Date | 2015-09-29 19:00 +0200 |
| Message-ID | <qe6pX-3RG-5@gated-at.bofh.it> (permalink) |
| References | <qbpfr-5Ff-1@gated-at.bofh.it> <qbpfs-5Ff-23@gated-at.bofh.it> <qbzRw-3UF-19@gated-at.bofh.it> <qbQIG-33j-19@gated-at.bofh.it> <qdYLM-1nH-13@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 09/29, Ingo Molnar wrote:
>
> * Oleg Nesterov <oleg@redhat.com> wrote:
>
> > struct task_struct *next_task_with_mm(struct task_struct *p)
> > {
> > struct task_struct *t;
> >
> > p = p->group_leader;
> > while ((p = next_task(p)) != &init_task) {
> > if (p->flags & PF_KTHREAD)
> > continue;
> >
> > t = find_lock_task_mm(p);
> > if (t)
> > return t;
> > }
> >
> > return NULL;
> > }
> >
> > #define for_each_task_lock_mm(p)
> > for (p = &init_task; (p = next_task_with_mm(p)); task_unlock(p))
> >
> >
> > So that you can do
> >
> > for_each_task_lock_mm(p) {
> > do_something_with(p->mm);
> >
> > if (some_condition()) {
> > // UNFORTUNATELY you can't just do "break"
> > task_unlock(p);
> > break;
> > }
> > }
> >
> > do you think it makes sense?
>
> Sure, I'm inclined to use the above code from you.
>
> > In fact it can't be simpler, we can move task_unlock() into next_task_with_mm(),
> > it can check ->mm != NULL or p != init_task.
>
> s/can't/can ?
yes, sorry,
> But even with that I'm not sure I can parse your suggestion. Got some (pseudo) code
> perhaps?
I meant
struct task_struct *next_task_lock_mm(struct task_struct *p)
{
struct task_struct *t;
if (p) {
task_unlock(p);
p = p->group_leader;
} else {
p = &init_task;
}
while ((p = next_task(p)) != &init_task) {
if (p->flags & PF_KTHREAD)
continue;
t = find_lock_task_mm(p);
if (t)
return t;
}
return NULL;
}
#define for_each_task_lock_mm(p)
for (p = NULL; (p = next_task_lock_mm(p)); )
Oleg.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: [PATCH 02/11] x86/mm/hotplug: Remove pgd_list use from the memory hotplug code Linus Torvalds <torvalds@linux-foundation.org> - 2015-09-22 19:50 +0200
Re: [PATCH 02/11] x86/mm/hotplug: Remove pgd_list use from the memory hotplug code Oleg Nesterov <oleg@redhat.com> - 2015-09-23 13:50 +0200
Re: [PATCH 02/11] x86/mm/hotplug: Remove pgd_list use from the memory hotplug code Ingo Molnar <mingo@kernel.org> - 2015-09-29 10:50 +0200
Re: [PATCH 02/11] x86/mm/hotplug: Remove pgd_list use from the memory hotplug code Oleg Nesterov <oleg@redhat.com> - 2015-09-29 19:00 +0200
csiph-web