Re: BUG: scheduling while atomic 3.10.7 in ZRAM Swap

From: Mitch Harder
Date: Wed Sep 11 2013 - 19:08:16 EST


On Tue, Aug 20, 2013 at 9:51 AM, Mitch Harder
<mitch.harder@xxxxxxxxxxxxxxxx> wrote:
> On Sun, Aug 18, 2013 at 11:44 PM, Minchan Kim <minchan@xxxxxxxxxx> wrote:
>> Hello,
>>
>> On Mon, Aug 19, 2013 at 12:13:02PM +0800, Michael wang wrote:
>>> Hi, Mitch
>>>
>>> On 08/17/2013 10:01 PM, Mitch Harder wrote:
>>> > I'm encountering a BUG while using a ZRAM Swap device.
>>> >
>>> > The call trace seems to involve the changes recently added to 3.10.6
>>> > by the patch:
>>> > zram: use zram->lock to protect zram_free_page() in swap free notify path
>>> >
>>> > The hardware is a x86 single CPU AMD Athlon XP system with 1GB RAM.
>>> >
>>> > I'm implementing a 352MB ZRAM swap device, and also have 1GB swap
>>> > space on the hard disk.
>>>
>>> IMHO, it was caused by that swap_entry_free() was invoked with page
>>> spin-locked, thus zram_slot_free_notify() should not use rw-lock which
>>> may goto sleep.
>>>
>>> CC folks related.
>>
>> Thanks for Ccing me, Michael,
>>
>> Mitch, It's known problem and it should be fixed by [1] in recent linux-next.
>>
>> [1] a0c516cbfc, zram: don't grab mutex in zram_slot_free_noity
>>
>> Thanks for the report!
>>
>
> Thanks.
>
> If I apply the zram patches from linux-next, the problem seems to be resolved.

Is it planned to send the patch: "zram: don't grab mutex in
zram_slot_free_noity" to stable?

I noticed that 3.10.11 still doesn't have this patch.

Right now, I'm manually applying 4 zram patches to my 3.10.11 kernel
(although I had to rework them to apply cleanly):

zram: Add auto loading of module if user opens /dev/zram.
zram: prevent data loss in error cases of function zram_bvec_write()
zram: fix invalid memory access
zram: don't grab mutex in zram_slot_free_noity

I knew I'd get errors if I didn't rework the "zram: Add auto loading
of module if user opens /dev/zram" patch to apply to 3.10. The other
three patches seemed to address important issues also, based on their
git commit description.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/