Re: 2.4.16 deadlock in kswapd

Andrew Morton (akpm@zip.com.au)
Mon, 17 Dec 2001 09:23:37 -0800


FORT David wrote:
>
> Hi,
> today i was transfering some files between two drives(reiserfs->ext3) and
> suddenly everything locked up. I sys-rqed to show the executed IP and
> every five times i've tryed it was showing the following stack trace:
>
> ...
>
> >>EIP; c0111657 <flush_tlb_others+e7/110> <=====
> Trace; c01117b5 <flush_tlb_page+75/80>
> Trace; c012f052 <swap_out+312/4b0>
> ...

Dodgy hardware, I'm afraid - it looks like a cross-CPU interrupt
was sent but not received. Not uncommon.

> The interesting thing is that i don't have any swap, so i'm really
> interested
> in knowing why kswapd is envolved here.

Look at the swapout code: it calls flush_tlb_page() in preparation
for swapping a page out. It then tries to allocate swap space,
finds there is none and bales out. This can comsume quite a lot
of CPU under some circumstances.

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/