Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp800769yba; Sat, 4 May 2019 13:14:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqwx5jtHEMPMtx1t0tWyK63RNiw7FZPX0VyBc6o9dHowW2au+JjnYlrxz3VcD10DDrgdcKwN X-Received: by 2002:a63:5608:: with SMTP id k8mr1708417pgb.393.1557000853880; Sat, 04 May 2019 13:14:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557000853; cv=none; d=google.com; s=arc-20160816; b=mVggh21eaEfI0Wddvs7VTQSDR/GRyj9honnM2He5KWSXl6Mwb3fPSJA8icE8p9f4ao c/JN2vZ/Y9zm1s0CNtlwxRSYPOE9kaahB5CN3RpOrkl+EZD9SUP/TTpw5NbP78uIviHh lMkI1j28Ow9X9el++sT/4f7w/KBFXqp/3eK7KT3UkufzY7NR/vPwHaHqfhnJTjxUO7/C 1rIq15E1VLbgLBHWpqUOOs1c3gIWNXYe+ESKkXHFXDnzuYq9xfqzVThS3NkLemrywlbX /8eiRKdMnf7obIKnQC937eF1cpqAiMGMU4dUCJTlU4oEA8Tt7JFOfgrqt/AWjV/Jrm2U X+6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=gj/yuGQs2NzUkZmqPY17o2QhTDN0kFaU7SFZqHnYJbI=; b=tV6UDuY2I3uYpcpL7TbfGXL0uIUI1xjBRMxC67l8Zdtuey/BKjUZ7+n8EqKV+1SQ1f fEqg2a9stH4tWG6lvjRKn3yCrw+K28BKtDJmD8K+vcG+fM4bCyhqyfnrBUjI//OWBUR8 L279N65oiEtBtTI4ZzMao6QtPhlgN2dP4PfLHjzDp2OMCy9x2vBZsiw7KhGMSqy3XxHq YWJPVap4vme5Hjlt/2OubWmZtiz293UMlxPrHVU8m1J3tFjDA9G8EGckN6EHDsBZy46S GFGp3tKjoepAh1hF7fsk7MBrIFDVn9f1m92+YxOhqtFKJuHvmV8xT9NRgUKCcSHVImEp TI9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=APmfL13e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j19si8187849pfe.124.2019.05.04.13.13.25; Sat, 04 May 2019 13:14:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=APmfL13e; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727914AbfEDSk1 (ORCPT + 99 others); Sat, 4 May 2019 14:40:27 -0400 Received: from mail-lj1-f196.google.com ([209.85.208.196]:45258 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727366AbfEDSif (ORCPT ); Sat, 4 May 2019 14:38:35 -0400 Received: by mail-lj1-f196.google.com with SMTP id w12so7811823ljh.12 for ; Sat, 04 May 2019 11:38:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gj/yuGQs2NzUkZmqPY17o2QhTDN0kFaU7SFZqHnYJbI=; b=APmfL13e6+WIsIRju2Lorrwk8f++NLt92PVKF0smDJQlmVOCBxYtsUuMNoZi+tmrsl KwWHIx4oiG7mbBVhLV6oNx4TNOD3majLdjDO8MbTkAYweT5x2ZGt0c/wWHJEJDz5+xN3 CZ7WD0Y7UVxxOlPso2UxB5TkE84g2zt6qY6PgdGWuIEWdWfUQsed1aAWP04rU4Cz4uVh WyTscCDhm4kf90uBTP3XLY4leeXXsxNAhf6tpDiwVV4DuS8C02d6QeqIFT0vORyJuSoq 2JN1+HBuNFJjKMo5sdWT3B7Xls8MVrUK71k5i9SIFu8kc+SH92pFgD6Id70HjXT53+q0 93rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gj/yuGQs2NzUkZmqPY17o2QhTDN0kFaU7SFZqHnYJbI=; b=MfnAMwzyELik+z6tgow32+/V9xGRrn7MTjF5BmfoNLHEkSA76bNYvHz94SkfjTTgLG lzm6Lto2JTXGox8cqjnGJo8accAEfTlD38XLu3iJBrNV8W6PFkarWCjuQ589ZMIoyn06 G+E9/3VNzflgamy8fSdglBTZ9sbyuoNQDDainDJBnZb5uXjJO78l0Yw0q0W47a71bLq4 mrV8OQ+uqoCz61XZz2STIj9CLiuVFRxDLEg6j1p00NO5E7xpjiN72Jd53m7mf/D58OBG vX6p8AqWaKl9dO+gbTJmh8SwiqmxHcnnRQIm88mYMKirt7iYvnzj5pQ3ackD+gRUjWDt hnAA== X-Gm-Message-State: APjAAAUHm7a5oYyytFq6M+pBlJt2gUKlkZgnPeGnf7/i17YKvyWRou0q 8RzO2aqpfgoWzzSwYMhTECEOS5S3i9T0NA== X-Received: by 2002:a2e:9ac8:: with SMTP id p8mr7976733ljj.79.1556995113962; Sat, 04 May 2019 11:38:33 -0700 (PDT) Received: from skyninja.webspeed.dk (2-111-91-225-cable.dk.customer.tdc.net. [2.111.91.225]) by smtp.gmail.com with ESMTPSA id q21sm1050260lfa.84.2019.05.04.11.38.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 04 May 2019 11:38:33 -0700 (PDT) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Konopko , =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 08/26] lightnvm: pblk: cleanly fail when there is not enough memory Date: Sat, 4 May 2019 20:37:53 +0200 Message-Id: <20190504183811.18725-9-mb@lightnvm.io> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190504183811.18725-1-mb@lightnvm.io> References: <20190504183811.18725-1-mb@lightnvm.io> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Igor Konopko L2P table can be huge in many cases, since it typically requires 1GB of DRAM for 1TB of drive. When there is not enough memory available, OOM killer turns on and kills random processes, which can be very annoying for users. This patch changes the flag for L2P table allocation on order to handle this situation in more user friendly way. GFP_KERNEL and __GPF_HIGHMEM are default flags used in parameterless vmalloc() calls, so they are also keeped in that patch. Additionally __GFP_NOWARN flag is added in order to hide very long dmesg warn in case of the allocation failures. The most important flag introduced in that patch is __GFP_RETRY_MAYFAIL, which would cause allocator to try use free memory and if not available to drop caches, but not to run OOM killer. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 81e8ed4d31ea..e0df3de1ce83 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c @@ -164,9 +164,14 @@ static int pblk_l2p_init(struct pblk *pblk, bool factory_init) int ret = 0; map_size = pblk_trans_map_size(pblk); - pblk->trans_map = vmalloc(map_size); - if (!pblk->trans_map) + pblk->trans_map = __vmalloc(map_size, GFP_KERNEL | __GFP_NOWARN + | __GFP_RETRY_MAYFAIL | __GFP_HIGHMEM, + PAGE_KERNEL); + if (!pblk->trans_map) { + pblk_err(pblk, "failed to allocate L2P (need %zu of memory)\n", + map_size); return -ENOMEM; + } pblk_ppa_set_empty(&ppa); -- 2.19.1