Kyle Fortin
bfcc62ed70
scsi: libiscsi: use kvzalloc for iscsi_pool_init
iscsiadm session login can fail with the following error:
iscsiadm: Could not login to [iface: default, target: iqn.1986-03.com...
iscsiadm: initiator reported error (9 - internal error)
When /etc/iscsi/iscsid.conf sets node.session.cmds_max = 4096, it
results in 64K-sized kmallocs per session. A system under fragmented
slab pressure may not have any 64K objects available and fail iscsiadm
session login. Even though memory objects of a smaller size are
available, the large order allocation ends up failing.
The kernel prints a warning and does dump_stack, like below:
iscsid: page allocation failure: order:4, mode:0xc0d0
CPU: 0 PID: 2456 Comm: iscsid Not tainted 4.1.12-61.1.28.el6uek.x86_64 #2
Call Trace:
[<ffffffff816c6e40>] dump_stack+0x63/0x83
[<ffffffff8118e58a>] warn_alloc_failed+0xea/0x140
[<ffffffff81191df9>] __alloc_pages_slowpath+0x409/0x760
[<ffffffff81192401>] __alloc_pages_nodemask+0x2b1/0x2d0
[<ffffffffa048f6c0>] ? dev_attr_host_ipaddress+0x20/0xffffffffffffc722
[<ffffffff811dc38f>] alloc_pages_current+0xaf/0x170
[<ffffffff81192581>] alloc_kmem_pages+0x31/0xd0
[<ffffffffa048f600>] ? iscsi_transport_group+0x20/0xffffffffffffc7e2
[<ffffffff811ad738>] kmalloc_order+0x18/0x50
[<ffffffff811ad7a4>] kmalloc_order_trace+0x34/0xe0
[<ffffffff8146ee30>] ? transport_remove_classdev+0x70/0x70
[<ffffffff811e843d>] __kmalloc+0x27d/0x2a0
[<ffffffff810c8cbd>] ? complete_all+0x4d/0x60
[<ffffffffa04af299>] iscsi_pool_init+0x69/0x160 [libiscsi]
[<ffffffff81465d90>] ? device_initialize+0xb0/0xd0
[<ffffffffa04af510>] iscsi_session_setup+0x180/0x2f4 [libiscsi]
[<ffffffffa04c5a60>] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
[<ffffffffa04c531f>] iscsi_sw_tcp_session_create+0xcf/0x150 [iscsi_tcp]
[<ffffffffa04c5a60>] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
[<ffffffffa048a633>] iscsi_if_create_session+0x33/0xd0
[<ffffffffa04c5a60>] ? iscsi_max_lun+0x20/0xfffffffffffffa9e [iscsi_tcp]
[<ffffffffa048abd8>] iscsi_if_recv_msg+0x508/0x8c0 [scsi_transport_iscsi]
[<ffffffff811922eb>] ? __alloc_pages_nodemask+0x19b/0x2d0
[<ffffffff811e6d69>] ? __kmalloc_node_track_caller+0x209/0x2c0
[<ffffffffa048b00c>] iscsi_if_rx+0x7c/0x200 [scsi_transport_iscsi]
[<ffffffff81623dc6>] netlink_unicast+0x126/0x1c0
[<ffffffff8162468c>] netlink_sendmsg+0x36c/0x400
[<ffffffff815d2fed>] sock_sendmsg+0x4d/0x60
[<ffffffff815d596a>] ___sys_sendmsg+0x30a/0x330
[<ffffffff811bc72c>] ? handle_pte_fault+0x20c/0x230
[<ffffffff811bc90c>] ? __handle_mm_fault+0x1bc/0x330
[<ffffffff811bcb32>] ? handle_mm_fault+0xb2/0x1a0
[<ffffffff815d5b99>] __sys_sendmsg+0x49/0x90
[<ffffffff815d5bf9>] SyS_sendmsg+0x19/0x20
[<ffffffff816cbb2e>] system_call_fastpath+0x12/0x71
Use kvzalloc for iscsi_pool in iscsi_pool_init.
Signed-off-by: Kyle Fortin <kyle.fortin@oracle.com>
Tested-by: Kyle Fortin <kyle.fortin@oracle.com>
Reviewed-by: Joseph Slember <joe.slember@oracle.com>
Reviewed-by: Lance Hartmann <lance.hartmann@oracle.com>
Acked-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-06-12 20:48:04 -04:00
..
2017-06-12 20:48:00 -04:00
2017-04-19 22:17:23 -04:00
2017-04-21 10:34:29 -04:00
2016-12-24 11:46:01 -08:00
2016-11-08 17:29:48 -05:00
2017-03-30 11:37:16 -04:00
2017-04-21 10:11:34 -04:00
2017-05-24 15:14:42 -04:00
2017-03-02 08:42:29 +01:00
2017-05-18 21:37:27 -04:00
2017-06-02 14:59:19 -04:00
2017-05-08 22:09:21 -04:00
2017-05-23 21:53:15 -04:00
2017-05-04 12:19:44 -07:00
2017-04-25 13:00:59 -04:00
2017-03-23 09:57:23 -04:00
2017-04-21 10:34:29 -04:00
2017-04-18 21:50:29 -04:00
2017-05-15 20:20:03 -07:00
2017-05-08 17:15:13 -07:00
2017-05-16 21:08:42 -04:00
2017-05-04 12:19:44 -07:00
2017-06-11 11:21:08 -07:00
2017-05-08 17:15:14 -07:00
2017-05-08 17:15:13 -07:00
2017-04-21 10:34:29 -04:00
2017-05-04 19:15:35 -07:00
2015-05-31 18:06:28 -07:00
2017-04-21 10:34:29 -04:00
2017-05-08 22:07:48 -04:00
2017-05-23 22:16:43 -04:00
2017-05-31 22:49:06 -04:00
2017-04-26 18:34:34 -04:00
2017-06-12 20:48:04 -04:00
2017-05-04 12:19:44 -07:00
2016-09-14 13:19:29 -04:00
2017-05-18 21:29:21 -04:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-12-24 11:46:01 -08:00
2016-12-14 15:25:12 -05:00
2016-07-13 22:33:23 -04:00
2016-07-13 22:33:23 -04:00
2015-08-07 15:03:42 +02:00
2014-10-20 16:21:33 +02:00
2014-10-20 16:21:33 +02:00
2017-04-04 19:39:39 -04:00
2017-04-20 12:02:32 +01:00
2017-04-20 12:02:32 +01:00
2015-04-09 18:08:31 -07:00
2015-05-31 18:06:28 -07:00
2015-05-31 18:06:28 -07:00
2015-04-17 10:13:56 -07:00
2017-01-31 21:39:22 -05:00
2015-11-25 22:08:55 -05:00
2015-11-25 22:08:52 -05:00
2017-04-21 10:31:33 -04:00
2017-04-21 10:31:33 -04:00
2014-10-20 16:21:33 +02:00
2015-04-14 09:50:27 -07:00
2016-08-16 00:49:32 -04:00
2015-02-02 09:57:46 -08:00
2016-11-16 20:43:50 -05:00
2017-01-05 00:21:12 -05:00
2016-05-10 22:01:07 -04:00
2014-11-24 14:45:27 +01:00
2015-11-09 17:11:57 -08:00
2014-11-24 16:13:16 +01:00
2016-02-23 21:27:02 -05:00
2015-11-09 16:32:14 -08:00
2017-04-20 12:02:32 +01:00
2016-02-25 21:16:49 -05:00
2017-04-20 12:02:32 +01:00
2017-01-27 15:08:35 -07:00
2017-06-12 20:48:00 -04:00
2017-06-12 20:48:01 -04:00
2017-06-12 20:48:01 -04:00
2016-12-24 11:46:01 -08:00
2015-08-12 13:14:57 -07:00
2016-02-25 21:10:53 -05:00
2015-11-20 11:39:03 -05:00
2017-05-04 12:19:44 -07:00
2017-03-23 12:04:05 -04:00
2016-11-08 17:29:57 -05:00
2016-12-24 11:46:01 -08:00
2016-05-16 11:14:29 -04:00
2017-05-08 17:15:15 -07:00
2016-01-27 20:36:10 +08:00
2014-10-20 16:21:33 +02:00
2017-03-15 13:37:18 -04:00
2016-01-27 20:36:10 +08:00
2017-06-12 20:48:04 -04:00
2016-02-05 16:29:28 -06:00
2017-05-04 12:19:44 -07:00
2017-01-31 21:38:35 -05:00
2017-04-26 15:09:04 -06:00
2016-12-24 11:46:01 -08:00
2016-02-05 16:29:28 -06:00
2014-10-20 16:21:33 +02:00
2017-04-24 18:16:49 -04:00
2014-11-24 14:45:27 +01:00
2015-05-31 18:06:28 -07:00
2017-01-31 21:38:58 -05:00
2017-01-31 21:37:44 -05:00
2015-05-31 18:06:28 -07:00
2017-04-20 12:16:10 -06:00
2017-05-08 22:16:45 -04:00
2017-04-24 18:11:22 -04:00
2016-02-23 21:27:02 -05:00
2015-05-31 18:06:28 -07:00
2016-04-30 09:25:26 -07:00
2017-04-20 12:02:32 +01:00
2016-03-01 20:06:49 -05:00
2016-11-28 15:51:31 -05:00
2017-02-22 19:33:00 -05:00
2017-05-31 22:58:25 -04:00
2017-04-26 15:09:04 -06:00
2017-04-26 15:09:04 -06:00
2016-12-07 18:13:52 -05:00
2017-02-22 18:41:42 -05:00
2017-05-04 12:19:44 -07:00
2017-02-22 19:35:24 -05:00
2017-05-18 21:44:49 -04:00
2015-02-04 08:00:24 -08:00
2014-11-12 11:16:05 +01:00
2017-04-13 13:58:20 -04:00
2016-02-19 10:52:45 -05:00
2017-05-04 12:19:44 -07:00
2016-12-24 11:46:01 -08:00
2016-03-14 21:05:04 -04:00
2016-10-11 18:02:09 -04:00
2016-12-14 15:51:17 -05:00
2016-04-11 16:57:09 -04:00
2017-04-19 19:13:52 -04:00
2017-03-27 22:03:33 -04:00
2017-05-04 12:19:44 -07:00
2017-02-23 16:57:19 -05:00
2017-02-06 19:10:41 -05:00
2017-05-08 21:36:06 -04:00
2014-11-12 11:15:54 +01:00
2016-09-15 09:51:14 -04:00
2017-05-04 12:19:44 -07:00
2017-05-16 21:07:24 -04:00
2017-05-04 12:19:44 -07:00
2016-04-11 16:57:09 -04:00
2017-04-06 12:48:05 -04:00
2017-05-11 23:14:36 -04:00
2017-03-15 19:27:46 -04:00
2016-02-23 21:27:02 -05:00
2017-03-15 19:27:46 -04:00
2017-02-23 16:57:19 -05:00
2017-04-07 17:07:14 -04:00
2014-11-12 11:15:57 +01:00
2017-04-20 12:16:10 -06:00
2015-11-18 11:59:09 -05:00
2017-04-26 18:32:29 -04:00
2017-05-04 12:19:44 -07:00
2017-02-21 11:51:42 -08:00
2015-08-10 23:07:05 -04:00
2014-10-20 16:21:33 +02:00
2015-05-31 18:06:28 -07:00
2017-05-10 11:33:08 -07:00
2017-03-06 22:27:33 -05:00
2017-01-11 22:31:03 -05:00
2015-02-02 09:57:46 -08:00
2016-09-01 17:52:01 -07:00
2015-05-31 18:06:28 -07:00
2017-05-02 11:14:53 +02:00
2017-03-15 19:27:46 -04:00