From patchwork Thu Jun 6 12:04:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 10979413 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6B90514C0 for ; Thu, 6 Jun 2019 12:04:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5AE14282E8 for ; Thu, 6 Jun 2019 12:04:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4F1112890A; Thu, 6 Jun 2019 12:04:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C37A282E8 for ; Thu, 6 Jun 2019 12:04:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 462786B026D; Thu, 6 Jun 2019 08:04:28 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 414666B026E; Thu, 6 Jun 2019 08:04:28 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DCDC6B026F; Thu, 6 Jun 2019 08:04:28 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by kanga.kvack.org (Postfix) with ESMTP id C43746B026D for ; Thu, 6 Jun 2019 08:04:27 -0400 (EDT) Received: by mail-lf1-f72.google.com with SMTP id v188so297970lfa.20 for ; Thu, 06 Jun 2019 05:04:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references; bh=tSlWixv8IsvTJaR5wWju6+N+gv5t7ksDAwbc0pe3EIc=; b=JzrNLkAzoEZPkzAnYzlI0vgPuLVjYfniMNXSJtrYWkSz8EwYFr2/x8nY57MhrHX/oF 9e1XV8FU9Z0iUzGmf5mkb5zUHaqKTKICSZXQR76KPQVqRMFMowN6DTL6oULQFcMmap8K Sp8BR/CyKtmrzkbl8YCVa8lWJAUaL8TwpOHUVkDHD3jVvHBDrWWNGupIwoY9ZD9gfjIb wyonhLwTBxsmS4wJGsPA2xxAfcemJJBWXpgkG0Got2gSvIzT5Aqy8ouQ7ZQujo8u7MyX AJ3DJr/s7rkyN7z84lX0LajeVG8Id/l/tED2VP8H9HiLhxxzgAZBCQRc1J0fow6rhBBF WS1A== X-Gm-Message-State: APjAAAXp/3vXvXL1aZXk5PPsMiXv0rGz9d2O914Tmjk/KdGSqzHXfZK0 qLUEMMpBIbblHI7dPiqcBzjX+qWOl/Nn6TDSQGt4/J9zUqYLwWEVOZOlGjmu4OMQVUlF9x5CocQ ITN1tjuLceuH3JFuMQ06G4Q909i9h/USaL1z7v+9Uf9li16PMbfF1qV43siTnp7kJMA== X-Received: by 2002:ac2:494f:: with SMTP id o15mr8732561lfi.84.1559822667215; Thu, 06 Jun 2019 05:04:27 -0700 (PDT) X-Received: by 2002:ac2:494f:: with SMTP id o15mr8732480lfi.84.1559822665210; Thu, 06 Jun 2019 05:04:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559822665; cv=none; d=google.com; s=arc-20160816; b=zZKKCiIsE/J9uo62nJcf0iiNiDLJJPwAimmkD5QV0F0sQz3oaCFXJa0Q55wFEuvPG7 nLv993ZFZYy0O9lYvontGMdVDRf2y9fyXndPyAi+Td3c2fSZgf2RQJDkklOuS/5G74R5 jfymkZQisl1d6mwj1BABjijsn+bfrrUs1KLbhSiMcA7d4eekouUfJW9OepCa+xCX9gYf cIcud7eXG3M8Y060pKH3QudVKaWnv1GyZC7svmpY7/+Ww23vC/9ViKrcokJ9gYHgWZrK lZT7OOUNCTWLarQ/8GVgU3TfhyYDgrh21ina+A6hb9GeGWMlfot4faN6GNGmY4m127w8 dwdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=tSlWixv8IsvTJaR5wWju6+N+gv5t7ksDAwbc0pe3EIc=; b=td4rUSJE21pZn+/PcrfMpimt9F44z9pukG0Jw4PB4fDAYVPZMapFszGBBz8wmQPjuK VMzwOVwjypfKFU1ibMsbVm+IjJpnB9vRxUXWTDlVj9kf3NVOJ6btrq9Fd89z8d45nuak aehXmjVLz1zOIaFUoMkKLFYprkUeOPoN+9a3lAfXJZRQfmchIEqK+GoEl+64haoNsq9V gYmkdACR0uwCWSInw/avsxLBUCVQrXbam1nrFiK3nIRcKFQX0mVDRw6iQKz/wDCIY7Vq newz0BXPhZwMakWwisVTq3XpXhlLBQVdvN9T0UaI8ipt5pDDHrqNa7sxVZvDYTEOWtJq Ls1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="uo/bYAEC"; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id d19sor478354lfb.33.2019.06.06.05.04.25 for (Google Transport Security); Thu, 06 Jun 2019 05:04:25 -0700 (PDT) Received-SPF: pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="uo/bYAEC"; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=tSlWixv8IsvTJaR5wWju6+N+gv5t7ksDAwbc0pe3EIc=; b=uo/bYAECP+lJOkvdd6HNBObFeZirBPefZcLHVmO1hypQ59nvutuCoABltauglPwvqa Nl9KAZ7lpc9I/siL6djGDZXANHMdr/hKUY/0Wtg/8CJ6v8s2ua96EB7/Ikx8BpgkMRcR 1jzop2g7p82ZamqXdZKiYANa/XXHS0nJjeDElbOWzEtc3N52euhAjcvranvQX/oAAk9L m4SYC1H8gLNFh3Q5RuggzpduF2YQEMkl2h/662SUCqsVXxe6igui3vy2e2qnFYHSgxnf hDt2ULRisUPRhEc3GJtppLb3TNtnV8M1pHwhjCBxQ34MVVip0v8j03p1jqCCL8gtmYI7 6Ygg== X-Google-Smtp-Source: APXvYqxBXnv+S0Y5hu8OhQxFX3OJWWZVDxpvO95/4636pF8ZSPX2vsTgwse7qghOIBiFu/zcfM79qg== X-Received: by 2002:ac2:5446:: with SMTP id d6mr23078445lfn.138.1559822664793; Thu, 06 Jun 2019 05:04:24 -0700 (PDT) Received: from pc636.lan (h5ef52e31.seluork.dyn.perspektivbredband.net. [94.245.46.49]) by smtp.gmail.com with ESMTPSA id l18sm309036lja.94.2019.06.06.05.04.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jun 2019 05:04:23 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Roman Gushchin , Uladzislau Rezki , Hillf Danton , Michal Hocko , Matthew Wilcox , Oleksiy Avramchenko , Steven Rostedt Subject: [PATCH v5 1/4] mm/vmalloc.c: remove "node" argument Date: Thu, 6 Jun 2019 14:04:08 +0200 Message-Id: <20190606120411.8298-2-urezki@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190606120411.8298-1-urezki@gmail.com> References: <20190606120411.8298-1-urezki@gmail.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Remove unused argument from the __alloc_vmap_area() function. Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Andrew Morton Reviewed-by: Roman Gushchin --- mm/vmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index bed6a065f73a..6e5e3e39c05e 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -986,7 +986,7 @@ adjust_va_to_fit_type(struct vmap_area *va, */ static __always_inline unsigned long __alloc_vmap_area(unsigned long size, unsigned long align, - unsigned long vstart, unsigned long vend, int node) + unsigned long vstart, unsigned long vend) { unsigned long nva_start_addr; struct vmap_area *va; @@ -1063,7 +1063,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, * If an allocation fails, the "vend" address is * returned. Therefore trigger the overflow path. */ - addr = __alloc_vmap_area(size, align, vstart, vend, node); + addr = __alloc_vmap_area(size, align, vstart, vend); if (unlikely(addr == vend)) goto overflow; From patchwork Thu Jun 6 12:04:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 10979415 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E552514E5 for ; Thu, 6 Jun 2019 12:04:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D518E26E40 for ; Thu, 6 Jun 2019 12:04:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C910D282E8; Thu, 6 Jun 2019 12:04:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E23E26E40 for ; Thu, 6 Jun 2019 12:04:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8ABE56B026E; Thu, 6 Jun 2019 08:04:29 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7E3D26B026F; Thu, 6 Jun 2019 08:04:29 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AD3E6B0270; Thu, 6 Jun 2019 08:04:29 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) by kanga.kvack.org (Postfix) with ESMTP id 019ED6B026E for ; Thu, 6 Jun 2019 08:04:29 -0400 (EDT) Received: by mail-lj1-f198.google.com with SMTP id j22so472133ljb.16 for ; Thu, 06 Jun 2019 05:04:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references; bh=hN8heN14KFn36Tgwt34d71f18AP1pByemdqgy1yfTBg=; b=jCqRha3YsIgzpTtzpi37SRD+AenuQqQQ1R2yGNQ/1gfLDgtwh57ZRWw7kmejCKAupq lLYqytfg0BxNJftdUaD00p5Ct5Mg6UqdjRaD0i2W4IIQC07sPG7YT/nunmOTMIOJuN7q 6Jit3d8a/EqzRJ8l9PqnpFfsqCpGs5SpjNmosaCGaHUIXMaxeicqNziWefw/9yS98kQT 2BKdbNoLQ4hnvhMPvHh/Tw0Hjdgs0mom+6JiQr78CRIMGe8Vwr64bYgH9iUihdj2duNa W+CrpzgrGv006ZwCJ86+vseB6IwiFVb8wnINAfnsuL7PzAqnimbOZM550HRzwZ5hq9bi sB5A== X-Gm-Message-State: APjAAAXnqXj8PJGWvWm+WWA0xhh7MT9sGnLvRu37AD/E4IRnQD/IUki4 aitlv8/iCOgooKofy3gPs2iznMreCrB2vhKf+hw/MynS1RUGmwGHeFW9zSjm6tPJXkhFagrcyPl bwiB+TiS02Clr8KZVZl00PZsOBp+6njBMS+9WVeVDhnmtYMaV0W5u6OBnPxD6dvEd6Q== X-Received: by 2002:ac2:5601:: with SMTP id v1mr10401698lfd.106.1559822668308; Thu, 06 Jun 2019 05:04:28 -0700 (PDT) X-Received: by 2002:ac2:5601:: with SMTP id v1mr10401627lfd.106.1559822666630; Thu, 06 Jun 2019 05:04:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559822666; cv=none; d=google.com; s=arc-20160816; b=1E9XbTtv+ty5a/lcicxoX9R79iTjE+5pKylDAo/yJrx4IdWAHOmqtWceKbRRsArUTo 8TjZ3W55Z49amX1G9BhpVilNlvezTpU3wQF2b+ji3pPB7fq6uIRRQBKKFX+pmLrAo8q5 mvLg/+s1sRgBmCbZ1JWR3NvOVISXqL9OD6L513hfl4SDdkQ1DuxTiXz5QGqz5BG5HSnC PiB2miwvu8zVVbKiqNxqdU7IMWlgqlLYylLCcoEY9OStrdGJiaXTZ00u0496SALvVWa1 WIT4oFx38DqMsI7RkqRG2/BKUrcjS+EKC/YLncNDlkD9mRcVCzFXjb3fM6ztXt7wTx7k gtnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hN8heN14KFn36Tgwt34d71f18AP1pByemdqgy1yfTBg=; b=q7NFZxh+uwY1kRNhV4LkOpScuyAFh4oeJ+jkaTXcVBcnmsGHbAR9bRhxwaOzd4ovcI iOqXYqFsSeuBDUmW5sV6WnCK+pWFnje5w5lw1EXYp2wHdcpXBfoRpfxhnyuKz4kLzBKg GjkgO1sPMttT87y7nwtO/ujHZ/8V1Mhf8IRPQX4EXTmeN+FJWxFLjEWgTCk+432+w50X REvXJTWTQuR8tGs3PcJoiTrzh8nwOFWZ5YZ/LF78X+9uVH1fus0k9ZbsFd8c7tFEwcwT 6qI/Fi6xInx0pHwf3DwGR10dtoCioV5V48zstWvOrfJkv+0r07h6HpiTqRaZFXx9o0bB AICg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=T5b2OqFI; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id m16sor484487lfl.13.2019.06.06.05.04.26 for (Google Transport Security); Thu, 06 Jun 2019 05:04:26 -0700 (PDT) Received-SPF: pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=T5b2OqFI; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hN8heN14KFn36Tgwt34d71f18AP1pByemdqgy1yfTBg=; b=T5b2OqFIpl41X+/6NaixgUwQTGpSJfO1m0jBd5QXTE0YkoSPKPXiky7VarPASKQgWX o6Upa/hE3INXKbEj1fMvcMdk0GvEY71Fs2nUfIXgQvCAlrbRpXTBIjxzMjjKBppJG1Uu bplmyhvq1eHATiv/2OiK16rYHiJGrJ+ijZ9cSvVpAY8tl5tq1zyqrmp7pG5uuVaMKP5e oBoErgUxhfssbxAPxS2WIJLx31Rgdg96dAxQGrRJxuEUegLjjzP7yiuOIosfPUBsxVaG BhK6pj5UDQxqFPAT9em7cxUrwjVX1QFluP7vEwDj6hAow5a7sKD/toAPMvi7SmFSbsjq 9HJg== X-Google-Smtp-Source: APXvYqy1buXzU5yUn0yD/K/JRsaa9SXDIeUnKlReC5c7bTWt/TGtheP4yVLgFB6dWRfIGwDjLzFd+Q== X-Received: by 2002:ac2:4d1c:: with SMTP id r28mr8928103lfi.159.1559822666084; Thu, 06 Jun 2019 05:04:26 -0700 (PDT) Received: from pc636.lan (h5ef52e31.seluork.dyn.perspektivbredband.net. [94.245.46.49]) by smtp.gmail.com with ESMTPSA id l18sm309036lja.94.2019.06.06.05.04.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jun 2019 05:04:25 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Roman Gushchin , Uladzislau Rezki , Hillf Danton , Michal Hocko , Matthew Wilcox , Oleksiy Avramchenko , Steven Rostedt Subject: [PATCH v5 2/4] mm/vmalloc.c: preload a CPU with one object for split purpose Date: Thu, 6 Jun 2019 14:04:09 +0200 Message-Id: <20190606120411.8298-3-urezki@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190606120411.8298-1-urezki@gmail.com> References: <20190606120411.8298-1-urezki@gmail.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Refactor the NE_FIT_TYPE split case when it comes to an allocation of one extra object. We need it in order to build a remaining space. The preload is done per CPU in non-atomic context with GFP_KERNEL flags. More permissive parameters can be beneficial for systems which are suffer from high memory pressure or low memory condition. For example on my KVM system(4xCPUs, no swap, 256MB RAM) i can simulate the failure of page allocation with GFP_NOWAIT flags. Using "stress-ng" tool and starting N workers spinning on fork() and exit(), i can trigger below trace: [ 179.815161] stress-ng-fork: page allocation failure: order:0, mode:0x40800(GFP_NOWAIT|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0 [ 179.815168] CPU: 0 PID: 12612 Comm: stress-ng-fork Not tainted 5.2.0-rc3+ #1003 [ 179.815170] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 179.815171] Call Trace: [ 179.815178] dump_stack+0x5c/0x7b [ 179.815182] warn_alloc+0x108/0x190 [ 179.815187] __alloc_pages_slowpath+0xdc7/0xdf0 [ 179.815191] __alloc_pages_nodemask+0x2de/0x330 [ 179.815194] cache_grow_begin+0x77/0x420 [ 179.815197] fallback_alloc+0x161/0x200 [ 179.815200] kmem_cache_alloc+0x1c9/0x570 [ 179.815202] alloc_vmap_area+0x32c/0x990 [ 179.815206] __get_vm_area_node+0xb0/0x170 [ 179.815208] __vmalloc_node_range+0x6d/0x230 [ 179.815211] ? _do_fork+0xce/0x3d0 [ 179.815213] copy_process.part.46+0x850/0x1b90 [ 179.815215] ? _do_fork+0xce/0x3d0 [ 179.815219] _do_fork+0xce/0x3d0 [ 179.815226] ? __do_page_fault+0x2bf/0x4e0 [ 179.815229] do_syscall_64+0x55/0x130 [ 179.815231] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 179.815234] RIP: 0033:0x7fedec4c738b ... [ 179.815237] RSP: 002b:00007ffda469d730 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 [ 179.815239] RAX: ffffffffffffffda RBX: 00007ffda469d730 RCX: 00007fedec4c738b [ 179.815240] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 [ 179.815241] RBP: 00007ffda469d780 R08: 00007fededd6e300 R09: 00007ffda47f50a0 [ 179.815242] R10: 00007fededd6e5d0 R11: 0000000000000246 R12: 0000000000000000 [ 179.815243] R13: 0000000000000020 R14: 0000000000000000 R15: 0000000000000000 [ 179.815245] Mem-Info: [ 179.815249] active_anon:12686 inactive_anon:14760 isolated_anon:0 active_file:502 inactive_file:61 isolated_file:70 unevictable:2 dirty:0 writeback:0 unstable:0 slab_reclaimable:2380 slab_unreclaimable:7520 mapped:15069 shmem:14813 pagetables:10833 bounce:0 free:1922 free_pcp:229 free_cma:0 Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 6e5e3e39c05e..fcda966589a6 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -365,6 +365,13 @@ static LIST_HEAD(free_vmap_area_list); */ static struct rb_root free_vmap_area_root = RB_ROOT; +/* + * Preload a CPU with one object for "no edge" split case. The + * aim is to get rid of allocations from the atomic context, thus + * to use more permissive allocation masks. + */ +static DEFINE_PER_CPU(struct vmap_area *, ne_fit_preload_node); + static __always_inline unsigned long va_size(struct vmap_area *va) { @@ -951,9 +958,24 @@ adjust_va_to_fit_type(struct vmap_area *va, * L V NVA V R * |---|-------|---| */ - lva = kmem_cache_alloc(vmap_area_cachep, GFP_NOWAIT); - if (unlikely(!lva)) - return -1; + lva = __this_cpu_xchg(ne_fit_preload_node, NULL); + if (unlikely(!lva)) { + /* + * For percpu allocator we do not do any pre-allocation + * and leave it as it is. The reason is it most likely + * never ends up with NE_FIT_TYPE splitting. In case of + * percpu allocations offsets and sizes are aligned to + * fixed align request, i.e. RE_FIT_TYPE and FL_FIT_TYPE + * are its main fitting cases. + * + * There are a few exceptions though, as an example it is + * a first allocation (early boot up) when we have "one" + * big free space that has to be split. + */ + lva = kmem_cache_alloc(vmap_area_cachep, GFP_NOWAIT); + if (!lva) + return -1; + } /* * Build the remainder. @@ -1032,7 +1054,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, unsigned long vstart, unsigned long vend, int node, gfp_t gfp_mask) { - struct vmap_area *va; + struct vmap_area *va, *pva; unsigned long addr; int purged = 0; @@ -1057,7 +1079,32 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, kmemleak_scan_area(&va->rb_node, SIZE_MAX, gfp_mask & GFP_RECLAIM_MASK); retry: + /* + * Preload this CPU with one extra vmap_area object to ensure + * that we have it available when fit type of free area is + * NE_FIT_TYPE. + * + * The preload is done in non-atomic context, thus it allows us + * to use more permissive allocation masks to be more stable under + * low memory condition and high memory pressure. + * + * Even if it fails we do not really care about that. Just proceed + * as it is. "overflow" path will refill the cache we allocate from. + */ + preempt_disable(); + if (!__this_cpu_read(ne_fit_preload_node)) { + preempt_enable(); + pva = kmem_cache_alloc_node(vmap_area_cachep, GFP_KERNEL, node); + preempt_disable(); + + if (__this_cpu_cmpxchg(ne_fit_preload_node, NULL, pva)) { + if (pva) + kmem_cache_free(vmap_area_cachep, pva); + } + } + spin_lock(&vmap_area_lock); + preempt_enable(); /* * If an allocation fails, the "vend" address is From patchwork Thu Jun 6 12:04:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 10979417 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96C0D14C0 for ; Thu, 6 Jun 2019 12:04:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 86DBC28913 for ; Thu, 6 Jun 2019 12:04:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7B8CB28906; Thu, 6 Jun 2019 12:04:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E43322890A for ; Thu, 6 Jun 2019 12:04:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 303596B026F; Thu, 6 Jun 2019 08:04:30 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 2B6F16B0270; Thu, 6 Jun 2019 08:04:30 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1596D6B0271; Thu, 6 Jun 2019 08:04:30 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-lj1-f198.google.com (mail-lj1-f198.google.com [209.85.208.198]) by kanga.kvack.org (Postfix) with ESMTP id 9389E6B0270 for ; Thu, 6 Jun 2019 08:04:29 -0400 (EDT) Received: by mail-lj1-f198.google.com with SMTP id a2so473459ljd.19 for ; Thu, 06 Jun 2019 05:04:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references; bh=MRxFMmBYeOcfOROJA3F+SVmsyybL0BND7saL3kxCMEU=; b=tmCyx3TT1zYjOJ+J+USs1ibfGqZAyB7DSZZKutn8Me3Vb9ty9jlih0cvQ+api4yMrz qOUeGFNOqKNorHNIZu2hrrFZxepq5BBkeZD+s+zt9Vv7WSItHq1aqYlfXeJ73D8WrbJu /QPwvqHAbh3Kgn+Tj8D7t5PciD1ZrfkmLceY6HcnIoEi7HnT1O1TWAsGo0HFM6lGGW9A lRoxfymJLjXH0HVUCyfaURIEkdzB45a0nrHDY64Mau0wFU8FZVaGQbLS0J6V8Tq1F84J 88yKfvWLtiIYpUdDE2KcqSZund/qtfLFmgPwmAA4MUMQb1HsIFzyfflGnMCxysWy5v8g AAGw== X-Gm-Message-State: APjAAAXGAbCSOrZy5yNToamwN80b8kxsllwGL+cHR984sN5v81JwtUJE EL75D8QdBiSSGeay19UiF5R7ggm6YLG2YrqZ4OPiuYjvTNyiNFdUwaVkNMcRLtTR14oVeNQiqAF s+CGydT15X54JtXR6RyMs3pypW5VINSmnOyZb9RJyXnZQbHdbeV60Xg3qhf/kuEMKog== X-Received: by 2002:ac2:46f9:: with SMTP id q25mr25352127lfo.181.1559822669014; Thu, 06 Jun 2019 05:04:29 -0700 (PDT) X-Received: by 2002:ac2:46f9:: with SMTP id q25mr25352050lfo.181.1559822667630; Thu, 06 Jun 2019 05:04:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559822667; cv=none; d=google.com; s=arc-20160816; b=XgFq4X0QJtduN/Ls1+ZSpISRTdZNU/tfmAxgU5hubfyTdCgajkXg1t7r5kW3om6eyw rvO6ICASKJ7dqPSONU2o5CZXzs7ATpp27/Hh/kCTv8o6C0Pup+xrqF+F0J/G1hLnV04w /3dgd+pEw9u10HQBlCJO+6Dsamia8PQtH0wo7KHFdj7qjVZ87b3b8FjVXKf5MQPto0pl C8cY0HgPFLB47vATILMa3DLfR44GY9p3klvLZvXYhf/fqHBzs8zbuYUTB7dcsuqGRmNW qsnsbB4AtlI41DpJXJm/D2veMfNgXulBkV5bnVChtbHZAdVxnP/zMJhsfFrMIJ6WO1fj Omdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=MRxFMmBYeOcfOROJA3F+SVmsyybL0BND7saL3kxCMEU=; b=hZALtTKpGImg4OH4/zpDuCuOo3+nqUou5CpUuwanm/pcNPJzBNb/+IOdJdBNzRw20O NM3KM9nYsTtVqGUq/xE/rNvzB9Hs/1H58IlAJtYhSL6U40PX8j7rFOB6yQM3dRwpF3AX pUbKAQTTa5RYBfwxhKZHhXsjFl3H3fE7lWjWYPBgU2HzACfHqCZ/9PwnwGFwsS7fBex9 Ks8Hpi2g8AkYGx7R26jjo9f9hLKFHiF6nNpoL2wd/umo86ZLPTxPjebJ7iesSxZXaTPQ yv/KzQ1j5Dou+O5e7mBLxr67B7KuD3ZOJpxi8luDqBP9Tf4QRbUncRGsb/zNEReMKi7W 8+oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HZ7EcqzL; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b19sor480911lfj.71.2019.06.06.05.04.27 for (Google Transport Security); Thu, 06 Jun 2019 05:04:27 -0700 (PDT) Received-SPF: pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HZ7EcqzL; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MRxFMmBYeOcfOROJA3F+SVmsyybL0BND7saL3kxCMEU=; b=HZ7EcqzL4NXZJzoiyoS9j++T2BZmiWFS/5supBxv2WREp5utcc2p1e588OOZ5xSNFt lOdr/giv7KKtNLnKC0lm93kxocNgZ6XAP7DOLCF6mw1MZCuSBGNwv+lGqsWRRda4xk2B EvYkslYRyZ0dtuqmylqJRfav/pe9jVzRphHERGN+/D85P2QG4lQx6HVGNWKKMEIV4pG8 wDe9lmHq0DBwRfRSlwnVXTWpasBqCshZ595Ti0/Z8Rz+v9ZfpzjqB5EQOvo0DdWAPayH YFh83gtmcnRu7LvFejwYzB+0YOPnwHJqq/zuLz/OZhSR/Z+s3+b8MURxt4oM+YIOcDqB l/Lw== X-Google-Smtp-Source: APXvYqyz5hDWDD6CLYMB1TnL2eHwqeiB8HW9gZoViWH7Xm7CCUACGnDGlIz+Y+5hFioLnk2Y+Xroag== X-Received: by 2002:ac2:41d7:: with SMTP id d23mr20251558lfi.118.1559822667190; Thu, 06 Jun 2019 05:04:27 -0700 (PDT) Received: from pc636.lan (h5ef52e31.seluork.dyn.perspektivbredband.net. [94.245.46.49]) by smtp.gmail.com with ESMTPSA id l18sm309036lja.94.2019.06.06.05.04.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jun 2019 05:04:26 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Roman Gushchin , Uladzislau Rezki , Hillf Danton , Michal Hocko , Matthew Wilcox , Oleksiy Avramchenko , Steven Rostedt Subject: [PATCH v5 3/4] mm/vmalloc.c: get rid of one single unlink_va() when merge Date: Thu, 6 Jun 2019 14:04:10 +0200 Message-Id: <20190606120411.8298-4-urezki@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190606120411.8298-1-urezki@gmail.com> References: <20190606120411.8298-1-urezki@gmail.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP It does not make sense to try to "unlink" the node that is definitely not linked with a list nor tree. On the first merge step VA just points to the previously disconnected busy area. On the second step, check if the node has been merged and do "unlink" if so, because now it points to an object that must be linked. Signed-off-by: Uladzislau Rezki (Sony) Acked-by: Hillf Danton Reviewed-by: Roman Gushchin --- mm/vmalloc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index fcda966589a6..a4bdf5fc3512 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -719,9 +719,6 @@ merge_or_add_vmap_area(struct vmap_area *va, /* Check and update the tree if needed. */ augment_tree_propagate_from(sibling); - /* Remove this VA, it has been merged. */ - unlink_va(va, root); - /* Free vmap_area object. */ kmem_cache_free(vmap_area_cachep, va); @@ -746,12 +743,11 @@ merge_or_add_vmap_area(struct vmap_area *va, /* Check and update the tree if needed. */ augment_tree_propagate_from(sibling); - /* Remove this VA, it has been merged. */ - unlink_va(va, root); + if (merged) + unlink_va(va, root); /* Free vmap_area object. */ kmem_cache_free(vmap_area_cachep, va); - return; } } From patchwork Thu Jun 6 12:04:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 10979419 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EA3D31515 for ; Thu, 6 Jun 2019 12:04:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D8F76280FC for ; Thu, 6 Jun 2019 12:04:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CDA5728913; Thu, 6 Jun 2019 12:04:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6258C28904 for ; Thu, 6 Jun 2019 12:04:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 770086B0270; Thu, 6 Jun 2019 08:04:31 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 723636B0272; Thu, 6 Jun 2019 08:04:31 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 54CE66B0273; Thu, 6 Jun 2019 08:04:31 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-lj1-f200.google.com (mail-lj1-f200.google.com [209.85.208.200]) by kanga.kvack.org (Postfix) with ESMTP id DC9016B0270 for ; Thu, 6 Jun 2019 08:04:30 -0400 (EDT) Received: by mail-lj1-f200.google.com with SMTP id l10so471034ljj.18 for ; Thu, 06 Jun 2019 05:04:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references; bh=XWWrktLRhmH5onjl7ijfGHY6CQGMEsILV3xHR3Mmnn8=; b=r1ZFiScx/7v2qyMP+rbsjFnEYDvNhnK9UpU46UW3v4br5FreTaTe1m+RK9cb8y/Nmj 1ul+HDoPiOC+iwCj/n7oEoUvJQVlqycMzVK3K+slvyyxhdfjW3ky6Axpa57aMOf4pJpD pH8jxBZq8UtzhoIZ0g8Z11FPRW3QZDBgCLhtQ9J8DcqQ6x/GgG8vTAwP1dloDB7uA9qG bzTgwXH8RD2YQw7Yqn0eJWxWQfVOCcXAJ7im8q3Bh9ssEzLUtlarJIybGYfsWTUDj3FS dLF7w1+UVV21vExhejdsfV9h9m8wkCfF2kuyLVseEvKZb0jfhDkYcD20SCsUuBP2lImz J5OQ== X-Gm-Message-State: APjAAAUR4ZGUhK0lhTO5g2mYe9ddFnsaAY9ltU+R5kqNFiupIKjCoEX3 kWLgOQVCnwjxe/P1qDaEspcQSvqy0X5aWXT3UeJn7lQHJemIxKD8Qe+3cLrDE3YPD64fb597Ahq GyGbqNbm+Vy12UQGSLOuYl+hxfrdhS34Ak3D7fg518W+9ToJe2Qn9E5ZMa5Ka9hqzoQ== X-Received: by 2002:a2e:1510:: with SMTP id s16mr15830274ljd.19.1559822670288; Thu, 06 Jun 2019 05:04:30 -0700 (PDT) X-Received: by 2002:a2e:1510:: with SMTP id s16mr15830187ljd.19.1559822668897; Thu, 06 Jun 2019 05:04:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559822668; cv=none; d=google.com; s=arc-20160816; b=ObKOuGsq13cakYgpOyHVk51NXkKLwJwE//rP+it54S6PQA7QOe4aG+e9SgMJXXmngc 9rM4SkgaylRtEPGRuu4PcFr8NU/XP/aWVJXQF+gxfOCpVhzO50fveGSCrN3w/jiamh6y zpJyamYDZvxvVfOCyWh6d8TJoeCl/4UTdoPSUnNaVoDb40slLLQb1884B/A1rz4NszUL FhbbKovPXXYqOvU2p9svT+AjPpX/DlVGpXR/MEfS4dacTE5M3D7SkSU5PPeu4EpBbJqj EIfNv6truxKv7UoAMr/MscA9a+pmeYo7KjK9v7K/2kaJQ3LOh3Nte1USFrnHo35wiGdJ wr/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=XWWrktLRhmH5onjl7ijfGHY6CQGMEsILV3xHR3Mmnn8=; b=zd8gtsMjZf6Fmfsujx14Ze6yCWwj0ieqXJypwVKVdpnkQRdmJRT9AKDR58qkcsrl3e 7/l1ZZXTHxeU944p6AZKduSYa+vHhtj6RaatCcklU9mBhPapP+/0d1pfJd3mBLIfZFmL pOAhDLrLcslaD6HrmC/+hDDSO3dpNbfUPqESoOwuEvQ5v1zhBBJKuuFCiQdEYp7iZsoY LzVEcFiuCHObVYn6PMzvTPi2UTLOY2+aVh9fFjXJDHEbxagbVx1fMnX5rxLPwyt9GvfH Az6iEv/j2uH8Sju22hyLIZDkOFw9gs5j3FtDY2R2pJZtr+x7Xop9Ptx/BUL/7TRzKu9a btIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bQT4WuDl; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id v12sor483111lfg.41.2019.06.06.05.04.28 for (Google Transport Security); Thu, 06 Jun 2019 05:04:28 -0700 (PDT) Received-SPF: pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bQT4WuDl; spf=pass (google.com: domain of urezki@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XWWrktLRhmH5onjl7ijfGHY6CQGMEsILV3xHR3Mmnn8=; b=bQT4WuDlx82yqPLzBi5aH828d7S/PWpupBCEa50SzGE4GRNiWoaeUegTs9DH/63Db+ 3Aaceh4MKlRNKmnSBRcbq4N5pjyoQjI0cNRy1dlxpn0LT5QTI5rBrfNOYURNJY9SqBct C5fdXevDbg8BmUSSzYcbWvuqKqxSCMXcAjmfm7gAoDLiOogur2nPbI0mhUaI8A/PyAJE e8g1GhnyMYhcDPjxxzFXahQssbL/mtsQWUtHFzUr3xm01uFdPsjuxXi2PS81JPyeL1ez 5Ux8SmXB2+DrXu2KWm5NNzyiDOu2tMnVCZgIaZL6GHhIex3BFzixO59045Go+8FTuI0m wB2A== X-Google-Smtp-Source: APXvYqwmXYlkVxNNMJGX5neeMTOxEpgrpeKu/vrN2TjjhK9CMP3mWnApcrZQjx9lDDGfsysi0/QCkg== X-Received: by 2002:a19:9156:: with SMTP id y22mr9854544lfj.43.1559822668509; Thu, 06 Jun 2019 05:04:28 -0700 (PDT) Received: from pc636.lan (h5ef52e31.seluork.dyn.perspektivbredband.net. [94.245.46.49]) by smtp.gmail.com with ESMTPSA id l18sm309036lja.94.2019.06.06.05.04.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 06 Jun 2019 05:04:27 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Roman Gushchin , Uladzislau Rezki , Hillf Danton , Michal Hocko , Matthew Wilcox , Oleksiy Avramchenko , Steven Rostedt Subject: [PATCH v5 4/4] mm/vmalloc.c: switch to WARN_ON() and move it under unlink_va() Date: Thu, 6 Jun 2019 14:04:11 +0200 Message-Id: <20190606120411.8298-5-urezki@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190606120411.8298-1-urezki@gmail.com> References: <20190606120411.8298-1-urezki@gmail.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Trigger a warning if an object that is about to be freed is detached. We used to have a BUG_ON(), but even though it is considered as faulty behaviour that is not a good reason to break a system. Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index a4bdf5fc3512..899a250e4eb6 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -534,20 +534,17 @@ link_va(struct vmap_area *va, struct rb_root *root, static __always_inline void unlink_va(struct vmap_area *va, struct rb_root *root) { - /* - * During merging a VA node can be empty, therefore - * not linked with the tree nor list. Just check it. - */ - if (!RB_EMPTY_NODE(&va->rb_node)) { - if (root == &free_vmap_area_root) - rb_erase_augmented(&va->rb_node, - root, &free_vmap_area_rb_augment_cb); - else - rb_erase(&va->rb_node, root); + if (WARN_ON(RB_EMPTY_NODE(&va->rb_node))) + return; - list_del(&va->list); - RB_CLEAR_NODE(&va->rb_node); - } + if (root == &free_vmap_area_root) + rb_erase_augmented(&va->rb_node, + root, &free_vmap_area_rb_augment_cb); + else + rb_erase(&va->rb_node, root); + + list_del(&va->list); + RB_CLEAR_NODE(&va->rb_node); } #if DEBUG_AUGMENT_PROPAGATE_CHECK @@ -1162,8 +1159,6 @@ EXPORT_SYMBOL_GPL(unregister_vmap_purge_notifier); static void __free_vmap_area(struct vmap_area *va) { - BUG_ON(RB_EMPTY_NODE(&va->rb_node)); - /* * Remove from the busy tree/list. */