iscsi_trx encounters memory allocation failure

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

 



Hi,

I have got a problem while doing sequential writing on the iscsi target, seeing bellow dmesg  from target machine for details. 

[26014.217904] iscsi_trx: page allocation failure: order:4, mode:0x240c0c0
[26014.224486] CPU: 1 PID: 1453 Comm: iscsi_trx Not tainted 4.4.58-20170908.kylin.5.2kp.server.YUN++ #8
[26014.233571] Hardware name: FT2000plus (DT)
[26014.237645] Call trace:
[26014.240083] [<ffff800000089dd8>] dump_backtrace+0x0/0x188
[26014.245453] [<ffff800000089f84>] show_stack+0x24/0x30
[26014.250480] [<ffff800000425604>] dump_stack+0x98/0xbc
[26014.255507] [<ffff8000001cb368>] warn_alloc_failed+0xe0/0x128
[26014.261223] [<ffff8000001ceec0>] __alloc_pages_nodemask+0xae8/0xca8
[26014.267458] [<ffff80000021a434>] alloc_pages_current+0xa4/0x148
[26014.273347] [<ffff8000001cce3c>] alloc_kmem_pages+0x2c/0xa8
[26014.278891] [<ffff8000001ec128>] kmalloc_order+0x28/0x70
[26014.284174] [<ffff8000001ec1ac>] kmalloc_order_trace+0x3c/0xf0
[26014.289977] [<ffff8000002236e4>] __kmalloc+0x254/0x278
[26014.295137] [<ffff7ffffc6133a8>] iscsi_target_rx_thread+0x478/0xd10 [iscsi_target_mod]
[26014.303015] [<ffff8000000dfbfc>] kthread+0xe4/0xf8
[26014.307781] [<ffff800000085410>] ret_from_fork+0x10/0x40
[26014.313092] Mem-Info:
[26014.315385] active_anon:4303 inactive_anon:6071 isolated_anon:0
                active_file:5038567 inactive_file:8027121 isolated_file:0
                unevictable:1733 dirty:9201 writeback:0 unstable:0
                slab_reclaimable:622450 slab_unreclaimable:17769
                mapped:7474 shmem:4291 pagetables:323 bounce:0
                free:78029 free_pcp:21 free_cma:0

The target backstore is based on a file object. After about 24H testing I can catch above problem and the problem can be reproduced after reboot and  another 24H testing. If I use  block object as the backstore, then the problem gets disappeared.  I looked to source code and found a strong-related commit to this problem that is 95cadace("target/file: Update hw_max_sectors based on current block_size").  This patch increased FD_MAX_SECTORS from 1MB to 8MB , as a result iscsi_target_rx_thread always use order=4(seeing dmesg printout) to allocate memory which could easily drain high order memory after long time writing test.   So can we consider to take a middle value for this macro? 

Thanks.��.n��������+%������w��{.n����j�����{ay�ʇڙ���f���h������_�(�階�ݢj"��������G����?���&��




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux