From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82B6AC4167B for ; Sat, 2 Dec 2023 07:51:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 07D156B04D5; Sat, 2 Dec 2023 02:51:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 02E436B04D6; Sat, 2 Dec 2023 02:51:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E5EF16B04D7; Sat, 2 Dec 2023 02:51:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D31856B04D5 for ; Sat, 2 Dec 2023 02:51:16 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9FBFDA00FB for ; Sat, 2 Dec 2023 07:51:16 +0000 (UTC) X-FDA: 81521107752.06.DE29AFD Received: from mail78-58.sinamail.sina.com.cn (mail78-58.sinamail.sina.com.cn [219.142.78.58]) by imf16.hostedemail.com (Postfix) with ESMTP id 44D4718001F for ; Sat, 2 Dec 2023 07:51:12 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of hdanton@sina.com designates 219.142.78.58 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701503475; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pkzoVFUlpp+ayp2Xpm3HM9574UlhFvTPYwlcfmtH+BM=; b=O4shTqNzLTMKhXiug9j/AIfnhELWxcZl+k94J/+DMb3T7ltxAjSan21KY9srlsDdaxxZin IiX/HuF4AR6LlEUrNBOSuQcnPkXMhp42spEn99XweSojEvX/vclD2HRdNzLcY9PPz6URvc hGot2vqSZju4c87wPwiaPN36BT2TKpQ= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of hdanton@sina.com designates 219.142.78.58 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701503475; a=rsa-sha256; cv=none; b=KNdNAX/FujcGWs1cBKiggrenEgjDHTlB2oleEu2KSox5soL+3wEWydYaoCki8Uy60WqsJE 1v6uaBrx0OJJtwwxmhQtuToQ0Z4BIT1tEPjJc1b6BxK7GmDLqpHGVI6Mg2Bs9Hkju4j0yn TTWB+0mjOkAuRm57XSgDaDJVXvRONKs= X-SMAIL-HELO: localhost.localdomain Received: from unknown (HELO localhost.localdomain)([113.88.51.160]) by sina.com (172.16.235.25) with ESMTP id 656AE1E90000681B; Sat, 2 Dec 2023 15:51:07 +0800 (CST) X-Sender: hdanton@sina.com X-Auth-ID: hdanton@sina.com X-SMAIL-MID: 89209634210640 X-SMAIL-UIID: 726661E2160F4BB582ECDFF424043496-20231202-155107-1 From: Hillf Danton To: Catalin Marinas Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Waiman Long , Andrew Morton Subject: Re: [PATCH] kmemleak: Avoid RCU stalls when freeing metadata for per-CPU pointers Date: Sat, 2 Dec 2023 15:50:55 +0800 Message-Id: <20231202075055.1142-1-hdanton@sina.com> In-Reply-To: <20231201190829.825856-1-catalin.marinas@arm.com> References: <20231201190829.825856-1-catalin.marinas@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: q8ugj1ubeid6gsiqpi1trsd7db5hb6cu X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 44D4718001F X-HE-Tag: 1701503472-800278 X-HE-Meta: U2FsdGVkX19Mz6Wdw8hcwNX0pQqpw7oRkvy5K+DT/CWvHgjQaG4E37wfDqyyqKSOjYW6w3VStH1Qs+TAguL/BwCGwvMCJlz5zJGFXGGfPFS7h7yhV91SOnAclHUYqCB0tMb6mBUA+zIBAITYykdx2nLtf1ELQd3eaI5pEveA5JumU1UuU98+yM4IKfOcQMtsPuySiZCDTjkALB9TXiqyxqsvsebEUxNZRPwJ/JMlVk6EKBD7BHKN9prWArG80Rglqj9DQmNbleUe7vdsM0hzCym+48FFu7G7l6ZfNLXtZHr4ubMyCIq+J/vq/F6QJ/aF3isM0S9d6T3oQQPabtOI9Ef4LtzMrk/n4zxTlZZ2G0sucan+G+pcNTptEyEdpMTBkUQQpVL0/NuHAjmG5brupTT+jp18NSd0GRLUhzoHGfueLshWj+/Pt8YnAqV+cN7qx2f1XLV36YPg+GVXLnhG0k77tUayH/bhwqrB25tifuvljroHnV/rzFPThXWwbtFwZ4GfZh1xPPASfyQ/nme9/TulGhfJD0mdQq7MUI9176/y9LZA/oOod8IwQ+kLsBIo9nPXWSmmnbMYYhLY1ykL7ZsPV2dTrWF3wNCxPoNTWML+wOBNZbBF6AbK6zH/mqDs4rAN3B30K0JpikT8SiinVsasiKeEC4Ma8IwwEGR//MpQGrAPKHyMIC+ZxdTrhjkniBG+bB8nmLX3a+SBlr309RNmBW1/ZMdZwf9S2LmAReq5XQCwnflUENfSRdBLTCCA4EW0c1kyT9iLymO57jMX3X36HxeaTezYmXt0SJ8Xw1/XbPLfxSczi2F2q3n3kbF9bGTFsnhL4SGyiZuFZ0oq+aE/ZIQnoSpmkrBhgN9uB43bjmyp5+XzlbS+XeMPYYdEacCzIEZQcAeahrHI4npdkJGSG+vkhvkeUpWfkNDPm/L4O0NKQx3wYJQiiFXILo/qv7adv1SIsCQ9MItKray yzym1qX9 SIk7CRqBGnPNQ44/yC3pIm1yogFLxmXo13cHTZvUckm19jvSLdT68O+P4Fy8prET3h8n25b7GZhIwZPeMBTtKae0eytNcergFQTl2L61RsOprLuKKpH6TkyzlX0q76WiNA6H+EbR4YXWgFjU= 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: List-Subscribe: List-Unsubscribe: On Fri, 1 Dec 2023 19:08:29 +0000 Catalin Marinas > @@ -1472,14 +1474,27 @@ static void scan_object(struct kmemleak_object *object) > /* already freed object */ > goto out; > > - obj_ptr = object->flags & OBJECT_PHYS ? > - __va((phys_addr_t)object->pointer) : > - (void *)object->pointer; > + if (object->flags & OBJECT_PERCPU) { > + unsigned int cpu; > > - if (hlist_empty(&object->area_list) || > + for_each_possible_cpu(cpu) { > + void *start = per_cpu_ptr((void __percpu *)object->pointer, cpu); > + void *end = start + object->size; > + > + scan_block(start, end, object); > + > + raw_spin_unlock_irqrestore(&object->lock, flags); > + cond_resched(); > + raw_spin_lock_irqsave(&object->lock, flags); Nit, spin_lock/unlock can be collapsed into need_resched(). if (need_resched()) { raw_spin_unlock_irqrestore(&object->lock, flags); cond_resched(); raw_spin_lock_irqsave(&object->lock, flags); } > + if (!(object->flags & OBJECT_ALLOCATED)) > + break; > + } > + } else if (hlist_empty(&object->area_list) ||