[Click] [PATCH 2/2] Task: Kill process_pending dead lock
Eddie Kohler
kohler at cs.ucla.edu
Mon Sep 15 21:14:01 EDT 2008
I suspect that the huge config problem is something else -- like the
machine running out of memory.
The key stress test would, I think, involve multithreaded Click under
load, with configuration swapping.
Thanks!!
Eddie
Roman Chertov wrote:
> Eddie,
> Would this be a problem if in kernel mode a large config was dumped
> into a write handler via proclikefs? Maybe Jelena's crashes were caused
> by that.
> I can conduct a few stress tests. What are the key requirements for
> the test to see if the new changes work or not?
>
> Roman
>
> Eddie Kohler wrote:
>> Joonwoo,
>>
>> > I took look into this lock up issue and I think I found something.
>> >
>> > RoutherThread::driver() calls run_tasks() with locked tasks.
>> > But after calling run_tasks(), current processor can be changed since
>> > schedule() might be called (eg. ScheduleLinux element)
>> > So I think that's problem. How do you think?
>>
>> I totally agree that this could be a problem.
>>
>> It looks like EXCLUSIVE handlers never really worked before. :(
>>
>> So my current analysis is this. It is not appropriate for a thread to
>> call blocking functions and/or schedule() when that thread has
>> prevented preemption via get_cpu(). My prior patches prevented
>> preemption.
>>
>> The solution is to separate "locking the task list" from "blocking
>> task execution." Clickfs, when executing an exclusive handler,
>> "blocks task execution." A thread that wants to examine the task list
>> "locks" the list.
>>
>> This commit:
>> http://www.read.cs.ucla.edu/gitweb?p=click;a=commit;h=ede0c6b0a1cface05e8d8e2e3496ee7fcd5ee143
>>
>> introduces separate APIs for locking the list and blocking task
>> execution. Exclusive handlers block task execution, but do not lock
>> the task list. I believe that task execution, in this patch, does not
>> prevent preemption. I believe the locking works out too. User-level
>> multithreading tests appear OK.
>>
>> Any willing stresstesters? Pretty please? :)
>>
>> Eddie
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>
>
More information about the click
mailing list