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 8413BC3ABC0 for ; Wed, 7 May 2025 12:46:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB0F36B0092; Wed, 7 May 2025 08:46:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A27B66B0095; Wed, 7 May 2025 08:46:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A2C56B0093; Wed, 7 May 2025 08:46:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 69F406B008C for ; Wed, 7 May 2025 08:46:38 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C33E7C1EDA for ; Wed, 7 May 2025 12:46:39 +0000 (UTC) X-FDA: 83416085718.06.B335E1C Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by imf30.hostedemail.com (Postfix) with ESMTP id BBAC680005 for ; Wed, 7 May 2025 12:46:37 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=l9iMiGGH; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf30.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.45 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746621997; a=rsa-sha256; cv=none; b=0LwpqFIk3iKFg0/fHT9BDddTCJgVhidrjwHAHQ/gm/s4PYhTjU2S0cJLj16Db7/JgZZS+h qv4JZBg0IvkERS7SQOZ+CGfSYlsTDSS9f8ssTLn0tZ4ctZtQRxCmgSrrFSooiqgBZTEaDi BtmygUAtjBMZdhBEBlnbOrMgeqJ5v/Y= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=l9iMiGGH; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf30.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.45 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746621997; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=zAdQJDK1+LfyFXFLiX4nWiwRzYZKmjYl6KcP3eITcO0=; b=edI4w2WTL0TSb1ac2KfZvzatMKyUw9YLPjnY/ZO/kQR9FubmxYDmQeRWtEChIp+jWnDWzt IXYokscYvFMNLWYg9RjKdqNVaVPm2IuFMVLb/BIRKUIu1ufhhIr7gotiG4NrcAKnqgXlHO A1T41emMxhJfvI+LWgyVEm0mpq/gtqo= Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5499659e669so8154124e87.3 for ; Wed, 07 May 2025 05:46:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746621996; x=1747226796; darn=kvack.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=zAdQJDK1+LfyFXFLiX4nWiwRzYZKmjYl6KcP3eITcO0=; b=l9iMiGGHpLSoM72X9H42TCLATpB5vIMAPkxElDLJ1ZlOHmCf86sFQ2jrFzSuXEDJU9 t9HOGT87UiVgwdIcoFMHSqt/OOIqrl3bVZJ2wfS0gvyHxus7efez3RsE29rSZzU8SRFS uPUzCbX9nAyEX19fbzvzk64TfixwXkbZwDgLHUya95Al9LgSq9BH9fORhz9hER2bCI+E IyzBCCLp1kFAbGOMtrJkUJDAWOUB4Bz/stqsW0nQvTsASskQGipVdFmD8RUP/K4DXd/5 GO2KUo8CTOk4+YG4a41y3Jhn3za7d9gnbgoZc/Qr2gRrjdOIBUWuTf6ClufYr9h8/wm7 Hqww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746621996; x=1747226796; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zAdQJDK1+LfyFXFLiX4nWiwRzYZKmjYl6KcP3eITcO0=; b=EaC0R9pP6mGyvWPJvQOE5rdTYYAah2Q6ykW2HE1XW2cst/7qxV8SfVOXjDvpJ9QuNi IUHCptFJBdFASL3vNwazTsSEtRmmevdQyS4uMyjLdj1wVX/JzoOBG34+uqK/la3ehKyV 3Yvr1ZkEJwHGOuNrXY+rgkqJ43cLZo9VaxWPdyR/1yamNf1o8WtSGxqLsHW8NgHCN+F9 NiQjKdjwn4zkANKb2qel0hkdAEGsMPLz4NOyEo34+P6pzA0Vec4372o6lePKPEEOQe7U 4wajSxTgvp2ZRRy8WoMw0t0jmgA0tlT/CrdPeZUSXcbAXKBtt3x26/e5T2lly1Ydx5Ql VQwg== X-Forwarded-Encrypted: i=1; AJvYcCX6FK8qKoM4PfxtMj8vf3gvKk+2DRbk4kojHijNYKVv7DWOgNASzm+2aMn42ZlSQl+XF1ZrorVdSQ==@kvack.org X-Gm-Message-State: AOJu0Yx8WGQ18LJABkm2W9j2yQKLMmM5m/uJJIlsvlvYDyVR/Ss0la4G mr1kLa+HLJpsCFXRU4u//f2pbGdAMrowXbZmv61fXUlIFZZkeMSosy9vncsss0pCb13HJZWIg/O e X-Gm-Gg: ASbGnctsVVmXwX0GE6EJJm3v7bRCGN/vuW374XekLnY8bKHg91qAJciZ/+wlL9SjoIY fJn+q5UyFWMC5T5dgF8UN4c0dvuzEYB+6kkyP8+79vtA7uPefwz/7070uJzChS3qBgi7mrrxsDf LxsmSY0Ckii1zg63YOOSXvTdh+jgklBUsxKeVmaVbW6FBSJsXSbkg2XMy4k/GFJOlebaXQQ+hQe jl0DqpNALnLT6khvvl4iihiLfJxHkFGppV5aLGcrzncqSSLyioqo2qJvJzjRgQySiWvVCZoJ21U n6czAf+RKHw4EX3zGRvVz7ovSApnCimU5c/vm+6MFPksemmQ5Ik= X-Google-Smtp-Source: AGHT+IEnih2tJg8EfdzGu1CWnq85D2SSPwNpa9vMCW2q336wRaljllATkC38oNwca2Fhi9o5BvRWNw== X-Received: by 2002:a19:6a09:0:b0:549:8d67:c48b with SMTP id 2adb3069b0e04-54fb95fc22cmr781396e87.20.1746621995847; Wed, 07 May 2025 05:46:35 -0700 (PDT) Received: from [192.168.1.140] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ea94bedd4sm2323003e87.55.2025.05.07.05.46.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 May 2025 05:46:34 -0700 (PDT) From: Linus Walleij Date: Wed, 07 May 2025 14:46:30 +0200 Subject: [PATCH v2 4/5] fork: check charging success before zeroing stack MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250507-fork-fixes-v2-4-82ab1e42cde3@linaro.org> References: <20250507-fork-fixes-v2-0-82ab1e42cde3@linaro.org> In-Reply-To: <20250507-fork-fixes-v2-0-82ab1e42cde3@linaro.org> To: Andrew Morton , linux-mm@kvack.org, Pasha Tatashin Cc: Linus Walleij X-Mailer: b4 0.14.2 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: BBAC680005 X-Stat-Signature: xpnnxnw9zguwetwghgfh4bu1wmk48b8x X-Rspam-User: X-HE-Tag: 1746621997-913040 X-HE-Meta: U2FsdGVkX19eEqF0k+vrPN5g/kzStzlsqPksLGxZUMT4h6QgJBgb217APO0DRhpRZT7lyO7FiytUaOW6sdG7kq7+ewWa/QqnWuIAJ44QA7+wJggxlgIF2POuwfObLzmmPS/tDWdFy5TleQITtGZB9ud1kn4KLHGfT6NgMv7f/NkJJxhVFNNHPbRfSTNBDfEa1ZILCygkD9xsqcUwU1tuuvpLlF2moABlNfaV8u0FhHFXsdUvuQnE1H9VX4kThlj09TmnNuzUX2ZAlEUEE1fGJR8ja1BMmrA/G3s2pFAJBzxpMI7rObmf+N8ItAEuBy+3Wgb6mDmRjPzG3Cb0Uyub1autPNVeeUjfmooznxe84cNlH7Fyle3s54lYbcnbibBs7ZB4ZnLu30HUkmej4wYAdWiulbNzPs3ufyQY2P7zU5S881MF63Js9BB0ja1P1dB2uGpSX6Oq4WSdlrijff3gbJA0e7rKBzUtb6bWKmODWUgSXsUM+WverdLBIMqPCiUQiQ+6coAQwUWyLo1KP3syyS6pCloWedQaUds9eSBNQeZK82irpEb0SnNFVUp7Yew0MBf+1VzKW3Iw+EpS9cUYQw3shCkzHX8LwlegZTnyU4id8D3Mf7fOZ7zfBRRUlwDwY2E7Q+ApG9zPg+u+iFtb/KAzryTNLP3i0kj2W2jlnGqCPU4uKThq9H3FQgr/Bm2Wzz0/wN2S8h92y1H77eSUnUhCx8e2FomG/rEw4qRsTEk221gS3rcYnOmDwvae8xcxvfE+dg+AjFcRM0poB3NSzzm1YOomkm1gQFzwjQL5L1EqFVzlKofU4116TKzvRvtvg1TeT9pvjgYJujn4Kqxe5ZMzgz3K7NDZagKic+D3pjjtelV09TYgpPzk368F2RltzkhlKE6nfrhzRKjwaQDUebyS/SsUE6cWlWqPuAGX5g6Twb+Q+KC45N1IKhp8ll7LQBJ3U6P2KyZ+uS0FVJm yAgUQzUz X2KDJ1iGm0G/9AmvbNHrRLqoqofRxRgHwD2TJUEryDoKnPbQCE1TMRTpfGktyJUBUTJztb7jRoiFcFuLDgMNbdCAGTCPwiS5kyo6PbcI0cqe1u4Pu+dOnqgrDNsedia6xnZAva4WTP2Ter0drPupD2187pOqCEzzOrZL24H6TK6hL7D485rVN0oFiPGJXvwvV1Pe+t+bvtGul5XGqrGavu5x9DeKDS8oAjQF4K/Dnf92VNLJxDY/DcAxG16Lmy3H808FNrNKgEXQa+m/I4sgSOg+42WfTB1VW+GGQWeQCOUxDKGe2uulfJScVCR1UhlVyWYxISpIFs3laVvK0fyKV7L9Un68VhHd9AW6W9mRAL5cPNEHPCVxPyF16XiiWC3wpN8NgoPwRluZdBSgiUxIyd527QObcfNFMrzB0 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: From: Pasha Tatashin No need to do zero cached stack if memcg charge fails, so move the charging attempt before the memset operation. Signed-off-by: Pasha Tatashin Link: https://lore.kernel.org/20240311164638.2015063-6-pasha.tatashin@soleen.com [linus.walleij@linaro.org: Rebased] Signed-off-by: Linus Walleij --- kernel/fork.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index c60a0ec61a421324e3733b506d99531c5965cbc6..6ac4674fdf04081fbcbf1eb99167a4c990a58506 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -279,6 +279,11 @@ static int alloc_thread_stack_node(struct task_struct *tsk, int node) if (!vm_area) continue; + if (memcg_charge_kernel_stack(vm_area)) { + vfree(vm_area->addr); + return -ENOMEM; + } + /* Reset stack metadata. */ kasan_unpoison_range(vm_area->addr, THREAD_SIZE); @@ -287,11 +292,6 @@ static int alloc_thread_stack_node(struct task_struct *tsk, int node) /* Clear stale pointers from reused stack. */ memset(stack, 0, THREAD_SIZE); - if (memcg_charge_kernel_stack(vm_area)) { - vfree(vm_area->addr); - return -ENOMEM; - } - tsk->stack_vm_area = vm_area; tsk->stack = stack; return 0; -- 2.49.0