From patchwork Mon Aug 12 16:06:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 171092 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp3025826ily; Mon, 12 Aug 2019 09:06:49 -0700 (PDT) X-Google-Smtp-Source: APXvYqw0KAtAC2ARfwXR6An5jgjmduA/GdvUyXjZ+vsjvsBBihaIMkkiqdpLKnOI16BN7OPalYhH X-Received: by 2002:a63:4823:: with SMTP id v35mr30884833pga.138.1565626008987; Mon, 12 Aug 2019 09:06:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565626008; cv=none; d=google.com; s=arc-20160816; b=GJ9oN2LOnhjczRYW03v9j1D9gbTNWSGpn1UVNxFpNvwE/emIzTWfRmg5nNvSoYRU1x hx9qwf/Uxux55Lakvf5rrRpSfbT8ffQ3jMt2uVR9KBRY/pETEvGIE/4U6U+gUoaLEDM3 edvrP2lTXcNWC/nYlXraUHzNRBDzbVgUcxS4MH1TA2sWjGWPE5pOjFR8eZSg4eqJcSYv 4K5JuqK8yzwtZrtID1plKay8AqCBWEJMj0kVvpsJPtfoHwfGq6jTsaamwTtO96x3Okh9 35mNJvNHCcLStJKOsVy8MLbBq/fOSJVPwR5u2kdpYFkygGcJr7YobGokcR7SY+MdnXI6 cMNw== 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 :message-id:date:subject:cc:to:from; bh=vYb8JrCn55P2ypWfGLRRokLeaPBz7Wc/DJumPl3Sdhs=; b=y1/W49SbWEVMcs808f7YJKDz8SRQmYtIGwe4smrr4E8tz3TBNBIczOIBM0hBivINqs +QjCtk2sltcO6po1PgCERbSjgsqK1Vmti74V7Sazj2umqv6LCRRWlOrtMXz+BUVtG7qh NqAJpZu+ndb/LvcZxYayywXQE264Im1ceoGkZEDgwJ0YXyBbui9NPYRTSe+9T+nNJ+hf ZDlvOx7gWq7breuZty+MR6m+FFwOPwOJ331kuaS/J0ljF7oqO8r5FhbCm7KFrK1NQ3Ln 5q/Yeptad639I6jwjmGxz+fIU7fdIxw/yLTvhWD+lz1TRlfeJ21OLXQIT57vqKUDTDxv XPlg== ARC-Authentication-Results: i=1; mx.google.com; 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 go23si861922plb.316.2019.08.12.09.06.48; Mon, 12 Aug 2019 09:06:48 -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; 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 S1726663AbfHLQGr (ORCPT + 28 others); Mon, 12 Aug 2019 12:06:47 -0400 Received: from foss.arm.com ([217.140.110.172]:52290 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725923AbfHLQGr (ORCPT ); Mon, 12 Aug 2019 12:06:47 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ED1F515A2; Mon, 12 Aug 2019 09:06:46 -0700 (PDT) Received: from arrakis.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DDF7B3F718; Mon, 12 Aug 2019 09:06:45 -0700 (PDT) From: Catalin Marinas To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Andrew Morton , Michal Hocko , Matthew Wilcox , Qian Cai Subject: [PATCH v3 0/3] mm: kmemleak: Use a memory pool for kmemleak object allocations Date: Mon, 12 Aug 2019 17:06:39 +0100 Message-Id: <20190812160642.52134-1-catalin.marinas@arm.com> X-Mailer: git-send-email 2.23.0.rc0 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Following the discussions on v2 of this patch(set) [1], this series takes slightly different approach: - it implements its own simple memory pool that does not rely on the slab allocator - drops the early log buffer logic entirely since it can now allocate metadata from the memory pool directly before kmemleak is fully initialised - CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE option is renamed to CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE - moves the kmemleak_init() call earlier (mm_init()) - to avoid a separate memory pool for struct scan_area, it makes the tool robust when such allocations fail as scan areas are rather an optimisation [1] http://lkml.kernel.org/r/20190727132334.9184-1-catalin.marinas@arm.com Catalin Marinas (3): mm: kmemleak: Make the tool tolerant to struct scan_area allocation failures mm: kmemleak: Simple memory allocation pool for kmemleak objects mm: kmemleak: Use the memory pool for early allocations init/main.c | 2 +- lib/Kconfig.debug | 11 +- mm/kmemleak.c | 325 ++++++++++++---------------------------------- 3 files changed, 91 insertions(+), 247 deletions(-)