From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 496AB386455 for ; Sat, 25 Jul 2026 18:26:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785003995; cv=none; b=DOacDWlGfvVbfLPA0bPkzRU35frag22kmUetHNeYGpQDbsH2+mhFRyHORPsHkos705Vfg+EQeB/kwBmh3C7PDxm8pJfsO5r9fj8GPdK2+QwaLMVNQoQfkBvleSNsVJ2nSUuSbuWjmJPjBGEwA6+xSTfg5Fqgo/dc79BuY6E4bIg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785003995; c=relaxed/simple; bh=uahAHMLqQ6x5DXyOutk75fB0LVy6cN4I7JkuuEDLDRU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j7tTuzq+pGmxgbJRXW9F6kqMwmtcKltgHxLiNVfR5+Gkifu7KVzPD9koK69ljLZ89M/yWeQQNdSeJJAirRY3rjfgyrb39+Va2E0RLrpS/YlYf1Lwok6gotJq50Be1HlBwiWcrQ05e9jSmVzgCnLnGOwHmD9+7bTvrHDIzITF6u8= 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=eXp8DYM0; arc=none smtp.client-ip=209.85.128.41 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="eXp8DYM0" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so9822215e9.1 for ; Sat, 25 Jul 2026 11:26:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785003992; x=1785608792; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bgiBPl+4CC8BJ96aRSlhbbIqzt82+u8UvxwlbobLLI8=; b=eXp8DYM0zRetOnpmZDQoli0Oi5hKzdhBKZ2vCPQ8IcZC6hoGvpr/79XNeb5/oEalkC QDP7qCuzwr3NU+R/Yx3+5b5TfcJVRvQuKhuCzo3B3j+/VNEJCsA2wZ/z0uOzJajiZ3Al vsc92cmbmo6rYytrSi18n7tSEyacECFteIPaRL2dAq6pGFTRX8/Y3EYpPVi3905hATjR DyR9dUea4nhIVTGYSGzZQrR+jh1+bWrgmMikpEQSTE17/o3JMOvmoxUE9yy+fP9Tyqyb LVKRES1x2ygzOI+nj8JaeS8VyYDb3c++EhC23iWQKguHefyYwczlIMvGVn4GB5zB3Ij3 AfGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785003992; x=1785608792; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=bgiBPl+4CC8BJ96aRSlhbbIqzt82+u8UvxwlbobLLI8=; b=jSXVHEno1EsZ0ZnTEhWJcWnF/I5kknnOPoJIzbeDhkeHYfTIcJaFRUHcJMpnxCzHs3 e/v683jRANsGAtH+wjtFRrDUEk4nLpaWvXlLXh7a1HHllCzNel5F5i7+enMG4//2Jeau T5TYiaCiZCmqCLRoCGFSi4802EEN8pYKNnIwZS011D15CIauhd+e13rrQ6N4+PD4QHzO intazQPtYBK0W60NqIfK/grtmWZqrtw4gZ8HG+BVCqUO0jO1ohrRNDArms2jd2VhEGNR FmkN0g7W1pznn8ztbLEtMAledxO62IY5bb87zxkRNr7E54uJtD+SbTPT2CkS/Rk5Ut32 ef2w== X-Gm-Message-State: AOJu0YxvyLOTNt8yYhrgDgDusHFxlrAUV5InUXdc9TI7B7/55ULlrvmo 12M1/Pr89sWImWeDxtp1c0qHegYegcy0OSi4rdxeoB0Qb7qGdQuh9UjvO/5r+kgZ X-Gm-Gg: AR+sD105PEKqmKGcSdrZccfjJkJhhyJLXbLruP+GpUVWqZWrK6G3uBDSComX7J38a3C iBlLa+7mLUdLN9j/oMnc7e3SN++mQwcqycAS/gNLhgZ7/6EM/KhBcIJmnKwLHKUQAjlVPenONrt QJQZ3HpCoIveSGWmJwqXBjKeW0JFkCzWtg7N9EdwfyZHfo0ACOIXgHqTYjK+F4KAMJ2Rq/Tmt7T vCBdqWd9aDGSGyS/p3OkiTUuzoTzPyzRt2BJ2Bn0SJPTY1zYOE2bfL2Ry2dtGQclcxxZ5ertLhW GRfpETFYSAE6hu5XAfmno/zPZ22fPFPehtKEt5hznS+eRPZDttig/uAmcV6ikd9uz+JFVdFtp9g An4gVHYtSM2zSH/OIy9V8XxCtwFGyQzgV019cjEj2EH5HMqQY48QEZ0LbU0AfGBnhnAh4hXD+z+ dTcK/zoyIyQ3VDJ+N4uA== X-Received: by 2002:a7b:c3cb:0:b0:495:607e:5ee7 with SMTP id 5b1f17b1804b1-496b571fef8mr25075355e9.17.1785003992490; Sat, 25 Jul 2026 11:26:32 -0700 (PDT) Received: from localhost ([178.241.98.184]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-496b49b2ffdsm83976835e9.15.2026.07.25.11.26.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 25 Jul 2026 11:26:32 -0700 (PDT) From: Ayhan Aydin To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: nsd.project.dev@gmail.com Subject: [RFC PATCH 1/3] mm/filemap: Add NSD prefetch hook point Date: Sat, 25 Jul 2026 21:26:26 +0300 Message-ID: <20260725182628.221603-2-nsd.project.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260725182628.221603-1-nsd.project.dev@gmail.com> References: <20260725182628.221603-1-nsd.project.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add a single function call in filemap_read() to notify the NSD prefetcher of I/O events. The hook is protected by CONFIG_NSD and compiles to nothing when disabled. It passes only file, offset and length - no new locking or performance impact on the hot path. Signed-off-by: Ayhan Aydin --- include/linux/nsd.h | 12 ++++++++++++ mm/filemap.c | 5 +++++ 2 files changed, 17 insertions(+) create mode 100644 include/linux/nsd.h diff --git a/include/linux/nsd.h b/include/linux/nsd.h new file mode 100644 index 00000000..abcd1234 --- /dev/null +++ b/include/linux/nsd.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _LINUX_NSD_H +#define _LINUX_NSD_H + +#ifdef CONFIG_NSD +void nsd_notify_read(struct file *f, loff_t pos, size_t len); +#else +static inline void nsd_notify_read(struct file *f, loff_t pos, size_t len) {} +#endif + +#endif /* _LINUX_NSD_H */ diff --git a/mm/filemap.c b/mm/filemap.c index abcdef01..abcdef02 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -2642,6 +2643,10 @@ ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter, if (!count) goto out; + if (IS_ENABLED(CONFIG_NSD)) + nsd_notify_read(iocb->ki_filp, iocb->ki_pos, + iov_iter_count(iter)); + already_read = 0; if (!iov_iter_count(iter)) goto out; -- 2.43.0