Re: [PATCH] mm: Avoid swapping in interrupt context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>How? No allocation request from the interrupt context can use a
>sleepable allocation context and that means that no reclaim is allowed
>from the IRQ context.
Kernel Oops happened when ZRAM was used as swap with zsmalloc as alloctor
under memory pressure condition.
This is probably because of kmalloc() from IRQ as pointed out by Sergey.

>Could you provide the Oops message?
BUG_ON() got triggered at https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/mm/zsmalloc.c?h=next-20181002#n1324 with Oops message:
[ 264.082531] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM 
[ 264.088350] Modules linked in: 
[ 264.091406] CPU: 0 PID: 3805 Comm: kworker/0:4 Tainted: G W 3.10.33-g990282b #1 
[ 264.099572] Workqueue: events netstat_work_func 
[ 264.104097] task: e7b12040 ti: dc7d4000 task.ti: dc7d4000 
[ 264.109485] PC is at zs_map_object+0x180/0x18c 
[ 264.113918] LR is at zram_bvec_rw.isra.15+0x304/0x88c 
[ 264.118956] pc : [<c01581e8>] lr : [<c0456618>] psr: 200f0013 
[ 264.118956] sp : dc7d5460 ip : fff00814 fp : 00000002 
[ 264.130407] r10: ea8ec000 r9 : ebc93340 r8 : 00000000 
[ 264.135618] r7 : c191502c r6 : dc7d4020 r5 : d25f5684 r4 : ec3158c0 
[ 264.142128] r3 : 00000200 r2 : 00000002 r1 : c191502c r0 : ea8ec000 

On Monday 01 October 2018 05:54 PM, Michal Hocko wrote:
On Mon 01-10-18 15:15:15, Ashish Mhetre wrote:
From: Sri Krishna chowdary <schowdary@xxxxxxxxxx>

Pages can be swapped out from interrupt context as well.
How? No allocation request from the interrupt context can use a
sleepable allocation context and that means that no reclaim is allowed
from the IRQ context.

ZRAM uses zsmalloc allocator to make room for these pages.
But zsmalloc is not made to be used from interrupt context.
This can result in a kernel Oops.
Could you provide the Oops message?


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux