From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBCDC36CE02 for ; Thu, 2 Apr 2026 06:14:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775110455; cv=none; b=n6ZykmuP3c1KBXLtw6cuBLPnmcuMQlzaxO6Y/b7bEEewt8w7sTiohD5IPfV200tjxtMq3gA2iTCJV+LHQ2VhZzSSJ+8RMhvGeqob+WwAnDvhJuL2ZKq1ilmsC+Hb/oA+HBX1uRtI6AmpQkZ34is7vh7CW+lwo40v83amW/vUX+g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775110455; c=relaxed/simple; bh=eGAHFe2bKfCcNTLk+l+4aUK1cw0F/aE7mS9+v9nez6U=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rWlsBBvTpWlmjfV2eikqEJxSZHU9DnemV7UUCil82k/MxJY74KQMgow9IC9YxmKyhtY0q1SqCMe8KMGk45qstx1XtKh3PpkRANcfq6TsktZAJohac4891MPSHzzwsbeVk2iGSStbdkO3L+e7COiA9bStUlUumgvxWT/qu3EUhRk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ImQtEA+k; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ImQtEA+k" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-488895ad947so5018905e9.3 for ; Wed, 01 Apr 2026 23:14:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775110452; x=1775715252; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=7XA9auQdQyCrvAgPefJTXScmZp4GU2aYW4S5DL3KDZo=; b=ImQtEA+kdJp5OV7xbQ1jvN56mwA0geYK7xX18Jw17s2QRAp3a4wZOYXlsuv4ilu4fy 9qE+PhNpil6mFtl7E7HHwERmnS9BTje8O2KpM1V9XbLxMm1CbuCLdI0QWZfZVzxM7Cmd nQGR+wroRNhK9hZQQD7v/SepoAZ9HWAWQx/y4QnOVCib4DdJA1yT3qPybiIh6wtbgt1/ p7elyQirrTaVI+l0HR2SjLiQmUR0yyF9g1ZS6rxs/wGCfNxlKbXeEpvr6snhvdYPARGg gX8T/WXVV+XaRIwDsrSX56tsR8WS+L7r7hUleJ0J5w3TI/YvU5XSrHA3pQzL2/kgLHVd yIKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775110452; x=1775715252; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7XA9auQdQyCrvAgPefJTXScmZp4GU2aYW4S5DL3KDZo=; b=eXKOOEYZyMiZUMMFCeHLPmgiOI2r27gfM8RsdDRzpW+XrpqkzvTITKHzXiGj75MKB8 xqhy0j3Zis0rgzSmB0xicqL4Bw3duRJlDw39nJ07+jiG8ADoYb+NNP61p+euytasLQBr bTm1+uLT+dQ3Er7pbm9quJna5D4kwYZpYAd6xwA/cTf1TNA+lrt1z7/5s0XVNYr28MDY hHh3g/dUCDPcolg2rRxvX5t1ZXe6g/NkTTT/2iht1P8zjwn0NiZr2LVgn89RVKBnCNMM dRy5O/4d5Ec5liLiU7XZc/l4kl7JA/fCiauy8/6izbCUTpZwdlAxHq3cRvJts6iVgdB9 YXVw== X-Gm-Message-State: AOJu0Yzgjotp2mWnXROfeAr56Njk5uDO/oxB7pVqcZN33jVxNte9m7J9 j1B8AmE9VO8OsClrXC/+yohnzvmheRQLGykItlKr1IbE2sXpsVXSjRvlu1JaNQqY4Uo= X-Gm-Gg: ATEYQzyB9SIuAivaLnbPFjimMZtdQI/xjfZhMl78ZracZi7pe5bWQJaX/idiGtpMbM1 azTahlmOi/rcBsBw4LX161zhWTEL1IIBg36gbpaRudA68N4mkTWoMtjrE77lXjAELCzcwp/GHQm TL5yxSOQjnGrRICdRurMT2ugUdLuWKs+L6+8oSDVEMcrXHB8T+nUY71R21uEc5pR/JUP5hZDFM6 URb4MHLNLTCffJiJbK+7rD80qXfZ7fBPD+CkSsqYvkNC7GDS8uR87nE9qDcnR6MTn6uA0aWKAJ1 ZhQNZ1DSq1VHZRt8vRQ6Rs9itVuwAup6a+m0yeKGQ4Hro8s6fsOMaOZCjkLOQWM7z86t/rMyU5w KoMPGrRBbiAIYBrGNG3s0i3g7/P47wc9ZHA+ghRzewmgBVMRQnJWYJsZCkYWM0+VdKGEyIkosI5 gqpZSwpBrjC8q2/CmGF3QVB1pgtKgvMzsnBYWmwd6QMmPTNpSFs3aIw8F36c9bxPRABkAEzA1Lg HvI5Oy3TQ0w X-Received: by 2002:a05:600c:8903:b0:485:4533:9c47 with SMTP id 5b1f17b1804b1-48883595155mr80505475e9.22.1775110451858; Wed, 01 Apr 2026 23:14:11 -0700 (PDT) Received: from dohko.chello.ie (188-141-5-72.dynamic.upc.ie. [188.141.5.72]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887c8ee2d3sm61916095e9.32.2026.04.01.23.14.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 23:14:11 -0700 (PDT) From: David Carlier To: David Hildenbrand , Kairui Song , Chris Li , Andrew Morton , Kemeng Shi , Nhat Pham , Baoquan He , Youngjun Park , NeilBrown Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Carlier Subject: [PATCH v4 1/2] mm/page_io: use sio->len for PSWPIN accounting in sio_read_complete() Date: Thu, 2 Apr 2026 07:14:07 +0100 Message-ID: <20260402061408.36119-1-devnexen@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit sio_read_complete() uses sio->pages to account global PSWPIN vm events, but sio->pages tracks the number of bvec entries (folios), not base pages. While large folios cannot currently reach this path (SWP_FS_OPS and SWP_SYNCHRONOUS_IO are mutually exclusive, and mTHP swap-in allocation is gated on SWP_SYNCHRONOUS_IO), the accounting is semantically inconsistent with the per-memcg path which correctly uses folio_nr_pages(). Use sio->len >> PAGE_SHIFT instead, which gives the correct base page count since sio->len is accumulated via folio_size(folio). Signed-off-by: David Carlier --- mm/page_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/page_io.c b/mm/page_io.c index 63b262f4c5a9..1389cd57ca88 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -497,7 +497,7 @@ static void sio_read_complete(struct kiocb *iocb, long ret) folio_mark_uptodate(folio); folio_unlock(folio); } - count_vm_events(PSWPIN, sio->pages); + count_vm_events(PSWPIN, sio->len >> PAGE_SHIFT); } else { for (p = 0; p < sio->pages; p++) { struct folio *folio = page_folio(sio->bvec[p].bv_page); -- 2.53.0