Re: floppy.c soft lockup

Mark Hounschell
2007-06-01T19:52:57Z

Oleg Nesterov wrote:
> On 06/01, Mark Hounschell wrote:
>> Oleg Nesterov wrote:
>>> Could you apply the trivial patch below, and change the i/o thread to do
>>>
>>> prctl(1234); // hangs ???
>>> printf(something);
>>> ioctl(Q->DevSpec1, FDSETPRM, &medprm); // this hangs
>>>
>>> to see if prctl() hangs or not? This way we can narrow the problem.
>>> (of course, you can just kill the above ioctl() if this is possible).
>>>
>>> Thanks!
>>>
>>> Oleg.
>>>
>>> --- OLD/kernel/sys.c~ 2007-04-03 13:05:02.000000000 +0400
>>> +++ OLD/kernel/sys.c 2007-06-01 18:56:22.000000000 +0400
>>> @@ -2147,6 +2147,11 @@ asmlinkage long sys_prctl(int option, un
>>> {
>>> long error;
>>>
>>> + if (option == 1234) {
>>> + flush_scheduled_work();
>>> + return 0;
>>> + }
>>> +
>>> error = security_task_prctl(option, arg2, arg3, arg4, arg5);
>>> if (error)
>>> return error;
>>>
>>> -
>>
>> Ok the prctl never returned. I just replaced the ioctl with it and added
>> a printf before and after. I only get the one before. The thread is hung
>> at this point just as if I'd done the ioctl?
>
> Thanks. So we can rule out floppy.c. flush_scheduled_work/flush_workqueue
> is broken by this RT application. Imho, this is not the kernel problem.
>
> Now I am very sure that the initial suspect was correct: cpu starvation.
> I can cook a debug patch to be 100% sure tomorrow, which kernel version is
> most convenient to you?
>

2.6.22-rc3 is fine thanks.

Regards
Mark