This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC][PATCH][kprobe] enabling booster on the preemptible kernel, take 2


I am not familiar with freeze_processes(), I only view code.
And I write simple program(though buggy) to test:
---------------------------------------
struct task_struct *g, *p;

if (freeze_processes()) {
 goto Thaw;
}
do_each_thread(g, p) {
 if (frozen(p))
  continue;
 printk("%s not stopped\n", p->comm );
} while_each_thread(g, p);
Thaw:
thaw_processes();
------------------------------------
the output is this(except for current thread):
ksoftirqd/0 not stopped
watchdog/0 not stopped
events/0 not stopped
khelper not stopped
kthread not stopped
kblockd/0 not stopped
kacpid not stopped
aio/0 not stopped
xfslogd/0 not stopped
xfsdatad/0 not stopped
kpsmoused not stopped
ipw2100/0 not stopped

it seems that many threads are not frozen even freeze_processes
return 0.

thanks
bibo,mao

"Ingo Molnar" <mingo@redhat.com> wrote:
On Tue, 2006-10-31 at 22:17 +0900, Masami Hiramatsu wrote:
OK, I see.
It seems problematic because the softirqd is PF_NOFREEZE and it
can execute most of functions...
I think we need to find a new way to solve this problem.

could you outline the problem to me? freeze_processes() should be a generic facility to move all kernel processing into a 'known' context of execution. All the PF_NOFREEZE kernel threads are supposed to do periodic calls to try_to_freeze(). They should not (and most of the time they do not) prevent freezing of all state on the system.

am i misunderstanding the problem?

Ingo




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]