[RFC][PATCH][kprobe] enabling booster on the preemptible kernel, take 2
bibo mao
bibo.mao@gmail.com
Wed Nov 1 17:01:00 GMT 2006
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
>
>
More information about the Systemtap
mailing list