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 BEFABC3ABBC for ; Tue, 6 May 2025 07:58:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5BF76B008A; Tue, 6 May 2025 03:58:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CE7DD6B0089; Tue, 6 May 2025 03:58:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE8D86B0092; Tue, 6 May 2025 03:58:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 813D66B0089 for ; Tue, 6 May 2025 03:58:04 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id B7A981A1E6B for ; Tue, 6 May 2025 07:58:05 +0000 (UTC) X-FDA: 83411729730.04.F8CB1EA Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf27.hostedemail.com (Postfix) with ESMTP id 9954C40009 for ; Tue, 6 May 2025 07:58:03 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=JwdCMBaZ; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf27.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.54 as permitted sender) smtp.mailfrom=linus.walleij@linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746518283; a=rsa-sha256; cv=none; b=QKK0FWcTf8btC3klQX2zoLjnJcvFUM4LAEJzXfzrE7ExgIa8tGhqHm9ekIBMRVSW/f4d8L yEsqa0LojUxEs9Dkc5aN2x6CDTJ+CBQdpc/fKT3jHS0fsBDZX1XxbTzS7LcpW1f1e797sH 5pmXRhjufIVewhXx90uPZvEqgLBiI5M= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=JwdCMBaZ; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf27.hostedemail.com: domain of linus.walleij@linaro.org designates 209.85.167.54 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=1746518283; 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=dQ6HGHa/Dd3Xr2emllWrxAozEOp852ucGIuI9oOkU0o=; b=B2QsjszqCJetmXsaOmx0Ur0Q9FFUmJuXzZZYptIcgC9RYzXMH9MFzagDJyn04QjXu1G9LE 0DqJ5lC3WdKoC0cvjoig/QHn6rfot19q4tDHAnsAqk8MpQPYtoN1HmB7Nr6NFNigg+InwG 66ovRUKksnz8cxK3LZdm/SEi8BqKaYE= Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5499d2134e8so6282538e87.0 for ; Tue, 06 May 2025 00:58:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1746518281; x=1747123081; 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=dQ6HGHa/Dd3Xr2emllWrxAozEOp852ucGIuI9oOkU0o=; b=JwdCMBaZ5/4D2V5js8uHa08RuCsXgL3gs7rZ5PeukBp3b+ivhaeGAuxF/ZDejZSM9k TuTnouyr8eqeYoHC0jwmV+BX2pdgAtngl7Bc9Z6d9D42NUyu1m+3i4djqgxcL9hwIT0l Li31nX5Ff/f3scYdIT7NCAryewREpclQpX8lr6l8/1HwANYIE1Dbb4DuSMl6LDESCzzL FY1HynQuvn3S3LgRzex68LihN9QJ4FWKHZONR5jll26h3U+dKBAHR3jxgVxQcjzjBzZB gP+issLJbErNM6VItktRO8GHHCxvZ88OVSg3PRvJ7p0CLfe0CX7F5MPPOIrUL8mOA2EO DK+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746518281; x=1747123081; 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=dQ6HGHa/Dd3Xr2emllWrxAozEOp852ucGIuI9oOkU0o=; b=ujrfGgVUdZX6AmqBxrO4cDaWp25XUT5jSRaTRLF+5MyhAw2LPYGU5OR8UmoKy5MVvI Qca3GoPBVIy7r0tpNsySvFjGkj8Xs8aYnS7o9QeRWTi+Nrs3ZNa7WaO/xRBKVj+zi0NK KxS9NW/0AtAaQWul48ySDf1lH1ABVSfQelZYxh+UN4D/2I3N3ZGuNrz2KFmyyLbegAwj aT4e1NZawA6hjFhLRpw3D0nv0ulrHt89S/N8DZ+JRr1fTgwQyLZRsdgpAL7jRbRDTG1R a4nX9t5mqV8UKHU2oAKRA8Ok5BoJ9s3dmVOBzQD+RkyhQNs38HEqtrhdBz/iL6HKcerj IWcw== X-Forwarded-Encrypted: i=1; AJvYcCU2zMHMIHOwGB4/dgrRUCxb/1YxGqrGZx/UVCYduz4gYPoGT4Kwf9Uqgeie11hdTmFqyLToHptuFw==@kvack.org X-Gm-Message-State: AOJu0YwqtoxbFjFiDNptVTehY/0iwNN8pcizR6onfIXG3/LRqcUyPAx7 zk9nqnxDTgKEky3o60Lu0V1A8LeRUmj4sAaZOX2YuJFtSYogCjiRRPVhSYwd/l5oEzzposwzhAm / X-Gm-Gg: ASbGncuvZNnqwc+2VRp21xxCWq4Ro+0mPpM4oDtrall5Sjj7dqlHG9LoPUBrzLtBq/l u8jKnLTyL2b5npOMf/Mg6uNQiy9CbYoeeckmKjf4Ohlc7tMk4DCfeW+Zt/lJsZcMCMgmBcC7heF hWMG3sv2vVtP+lzt08xLPXeoPN6v/pISoBJgxHeB0/h8O/Wl5TT/CccKQFuF+avkc1+Iaz1W0gf T0YcZbmifjXOF2xAVxxnsf1W0HYlC0P1ASvbyuCwJIqLYs5EWOS43rH3wwQfDl2i0Zly81ukBEp JNW9L+viUYtLSHuw6AO7Hs5x8R8k2T/16PmWYz2hbknnPIm8p+E= X-Google-Smtp-Source: AGHT+IGwbCy0ozKF9Fj2/28eslMoeYjy6Py/GSQJU1k3YRidg/wWfHzA/jyK+dZwD7Eri0EJluNDlQ== X-Received: by 2002:a05:6512:1251:b0:549:8e5e:9d8e with SMTP id 2adb3069b0e04-54fb49d9500mr594425e87.0.1746518281526; Tue, 06 May 2025 00:58:01 -0700 (PDT) Received: from [192.168.1.140] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ea94ee0efsm1990757e87.158.2025.05.06.00.58.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 00:58:00 -0700 (PDT) From: Linus Walleij Date: Tue, 06 May 2025 09:57:56 +0200 Subject: [PATCH 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: <20250506-fork-fixes-v1-4-bd35b63f0f1b@linaro.org> References: <20250506-fork-fixes-v1-0-bd35b63f0f1b@linaro.org> In-Reply-To: <20250506-fork-fixes-v1-0-bd35b63f0f1b@linaro.org> To: Andrew Morton , linux-mm@kvack.org, Pasha Tatashin Cc: Linus Walleij X-Mailer: b4 0.14.2 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 9954C40009 X-Stat-Signature: zxfwqmrigwwuapean6hwt9ji3rjymwg7 X-Rspam-User: X-HE-Tag: 1746518283-456524 X-HE-Meta: U2FsdGVkX19OxBf5H4myk8e5sHc3/3E/Z71j4iCdPH1L3H1YYEGukiTqwtmkKirq2cmJCUFETtN+0tUrlgq0hN3jFVb0JL+4F1IOB5+flWAF7Vw+tyPT4Ucy10cUO43kpufdNl8zERQCh2cxGttfi7nNQm2qcaKw0XY6Ti5vI6yRlWOwk8sKAYgml8WpIRubezQvtqRQ+Gggw7fIzJAkurdVRBt+w3NImp7Az5iooTSad42ALVKA8VXGogvTRDhNwMeyYTNyRjFu2oZJ4k1sbzo1ey4NNXcCJkMoe3vBQpdqXJbQQSUzITmVj0leQhyPRjw27LZjcaETKvk86bPG78STBQUKyH7iCPlRD/kIRmli0eDkPdQnHPOYsMR7zMYbzK5OfXvPo0Er+VhpCgenEQj9Boi5usahoWijIzE+B/4l3SNmZ6YiVa9MzyLLK/Qz8cpTFiQpPZBSwMIfqrJI/DHNcE3NODUi2xDueUDUejpAiBWMIAFRASwzhKZFIJLxU83hWI/vX9e109Bms/yIZuHqSCMGaVXt+tyBpJRsJdbKYwgtjvEGAM3ExB6kBnrg69d6fmTRjw0ya2vOiRuUdWBtq1gPQCNKuX4uzTYxsN8paoGJhvWJ0cnXLIWbTR0+kEWmdzw/6onpyCyz7wIOxiik+MugfFeH6dRJ4pBNMjRiZkU4BXzCYt94dvhHdMiL/iZtszlD+W4qKpRZnbC2J15os/1FAYSgViL0xFW3UV1f8M3hiUOMrKufG5PR4BFqtC0NzYh/4lBSNZUv21kwkQDZUTAgv06JnK9u1vOVm96sXCTF4mDuCQXqbXTLgSc4eqd+qAZlb4nIXpycvGvCkHTg8jVMU6c4DuaiTtHyrggaJoGPuHdEBhq/NmSwBhHdh1hl5mj34QiIlogRrVTKXHlPNk32IGqiHfUZyOEzB2s/c0ze2/Iyi5TAPDE/xx87W8wB0YJ3PBiFj5UKsFL OENaaViU lGZYgHMB1hgmH6MVwdk34AfeRpVr6qwGa//IgqCoT9LjW6pI7gTnOvpzx15y0nTNYQmzVVjV+6dJiCkqddp+k1w/IO/3U7sKDhigOqip8wwN6fJnmoO+6k4vcNIYrKdcbxVXji+Y3F74akYMx62gniLdidqzzVb/psRtGuVd1VQJFPlw5Cqpr/r89gJU7F4nRNkjN9yz67UFsg+axqu+GbNpbhYOxA1J5zuFE3i8J5V5EEjxr5wGjLSgemGSLrPyitmqSttE+JG2w6bfQMSxb5ZoTHq/4QrSMMeTw73As5hz6FbcXSs3myaDtS24uVjE7lc9fwk9XF+0flcG2zg4kP4ZYVaP8iWttuhShrgx3lewWhWnY9IS4PLJqCs+MduxI8KxeNbOUIEDynlZQ36OfWSVxH+GSbczcgY6h 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 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 02943c14ee3b932db11cd9292051fdf5ce381a38..2350ba55db2a5f5675f810d7214252dd8a1fae98 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -278,6 +278,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); @@ -286,11 +291,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