Re: Mainline kernel crashes, was Re: RFC: remove set_fs for m68k

Michael Schmitz
2021-09-10T00:04:50Z

Hi Finn,

On 10/09/21 10:51, Finn Thain wrote:
> On Wed, 8 Sep 2021, Michael Schmitz wrote:
>
>>
>> In a related case, I've managed to swap my 'resume_userspace' format
>> error for a nice 'illegal instruction' format error apparently caused by
>> an invalid function pointer in __handle_irq_event_percpu(), just by
>> disabling all interrupts upon entering the auto_inthandler and
>> user_inthandler exception handlers. This bug is quite readily reproduced
>> by running your kernel_coverage.sh script in a loop (panics on the first
>> stress test on the second pass):
>>
>> Stress run 2
>> Logging to stress-ng-20210908-0838.log
>> ./kernel-coverage.sh: line 272: lcov: command not found
>> running --fork 1 --fork-vm -t 60 --timestamp --no-rand-seed --times
>> stress-ng: 08:40:08.70 info: [1914] setting to a 60 second run per stressor
>> stress-ng: 08:40:08.82 info: [1914] dispatching hogs: 1 fork
>> packet_write_wait: Connection to 10.1.1.4 port 22: Broken pipe
>>
>> Why disabling interrupts during interrupt processing would make matters
>> worse doesn't make any sense to me...
>>
>
> Are you able to reproduce that with a stock mainline build?

I still need to try that. The kernel panic went away when adding
additional local_irq_save()/local_irq_restore() in do_IRQ(), which
should done have nothing except slightly increase code size. Now trying
to find out whether interrupts are reenabled any time during interrupt
processing ...

Cheers,

Michael