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 A9BEFC2D0CD for ; Sat, 17 May 2025 16:21:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB3D46B0082; Sat, 17 May 2025 12:20:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E629F6B0083; Sat, 17 May 2025 12:20:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D505E6B0085; Sat, 17 May 2025 12:20:57 -0400 (EDT) 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 B774A6B0082 for ; Sat, 17 May 2025 12:20:57 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1D056120B5B for ; Sat, 17 May 2025 16:20:59 +0000 (UTC) X-FDA: 83452913838.17.F668306 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf26.hostedemail.com (Postfix) with ESMTP id B01AC140010 for ; Sat, 17 May 2025 16:20:57 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FHiwGbKR; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747498857; a=rsa-sha256; cv=none; b=GWaz1hPgKI/y7AtiszNsb2YcnRHlhHxqGvGmpIyHaFBybvNM6UfvfcAm2IS4hDu10wuYgZ sQglLC7M2G0sK0TPNp35r8gJdpHj6ZWAot2OcWOCx9wKceJ9MKx0qBrD9j13mFaNGWbobn 4R04TY+CUuxtlmAFycQBi7XfSa6hycQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=FHiwGbKR; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747498857; 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:dkim-signature; bh=DCwi9/JdoOHpVI19CaNovpTIdE1WCBdK3JHHcgVSSSI=; b=ZzqqK5Z7bDaASajXHWau4n3bouz1YgckntJMVBRamx+M1iP3wNtUtc0OLJ5CEs0GcrtPFg DIKLLwib7/6tYIB9kZfU4nNSQO6Ymcd2Wpf5b2hkyxQOxsnTxbyzE2a+dZSsAmTL+eJt9D gKz2198eB7vve1dIU9NOAHI/dT7Gcpo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id C0C2C61127; Sat, 17 May 2025 16:20:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD3ECC4CEE3; Sat, 17 May 2025 16:20:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747498855; bh=GHDZJ1uuaBxwqH16gslmLd0P/tpgd2EgjPAEvjkwuAQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FHiwGbKRX1aEb1keMr1efkCOl0cX+2+d9G34DoywXf9R2wPoNRlTUPAjaS70phMyg 5jcmLR0m2ivEwDLF28P3tWipqbKMG78FU0MYI+UazujlrbMJvMQHjo3r7FRYIgWLj+ Y+RfvkuSJWSItjedaw/XP6oGEf/gM61GfuRRBB+igfRlYLd6XuLzoGSCUsM8uElApG us3RKLty01MAlJIWH82UANfVOBPNALmr3OrYlVLTv73BxiARYPE/xYKPoIRPhwAmJF OAJZsUF0kIfI76BtepqHRc3FQ1q0YdrzF0iRTy+e80BZ1PBGXUiEAFJaVeFAr9qS84 p6D4xfyLOSvyw== From: SeongJae Park To: Lorenzo Stoakes Cc: SeongJae Park , David Hildenbrand , Usama Arif , Andrew Morton , linux-mm@kvack.org, hannes@cmpxchg.org, shakeel.butt@linux.dev, riel@surriel.com, ziy@nvidia.com, laoar.shao@gmail.com, baolin.wang@linux.alibaba.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kernel-team@meta.com Subject: Is number of process_madvise()-able ranges limited to 8? (was Re: [PATCH 1/6] prctl: introduce PR_THP_POLICY_DEFAULT_HUGE for the process) Date: Sat, 17 May 2025 09:20:48 -0700 Message-Id: <20250517162048.36347-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B01AC140010 X-Rspam-User: X-Stat-Signature: ym7y3m5xybjrb9uirk8cgqo3dt18jn71 X-HE-Tag: 1747498857-178009 X-HE-Meta: U2FsdGVkX198oY7dKwHX1LNE4h5JrtZBZJFYIzx4GYV0Saq/zxTV/jRISBeCVY+jybMyW1GNdAZYZby8Yj5vBcnhUPVPt0FI4liS7wzlR24W5JWFyJ2PwQQXV+8Z5/0BFEoIuwsLg6NAbhdiHBOgPudxr+DsMbJXxjhTNQciJGJ+zNqUkCe5mh04BR82LmSpfZ+O0jqXBP396/xSGYgghQBSftExLdGamd0RrLc3INOfEYeHHuPEmSiubsFoXmjY+WcrpvyDm17jfvwJ21WGrrpbHtEZDDHBaS81CtJQvqj7+3F8Ms9bwulxH3LWTCV+T9zNMCGQK83dfn8xJMGwMrIAo78/kRCYmIG+GBlPibLrWDLp4vGFbTzUXUVSUMZCfE3kdvZKBwerGkgucRaQzx0s8Ji8NmV7ddfxZHY1hHJ8hYN1ZrPPWxQpqnJlK376xh+Zj6yTU0NYsShA8yDrOnSh3mGSNttoLl+0g53ShoPEMgfNdO0HKiFNnOSg9dCQn+0u+klD0vA1VFXip/dwZ1TJ1dYIm42Tev0/sNGZj1K2uYFxL4sRdZKU3WvC7WnI4xR1+6vmwqG6JqSM5NgTdMFUyRCuuX6iK52E8pR1rHrq9PVC4vcGW1OJCbEoi54as/pigrTlTWQBC3qeWdzqv0a5GxNE7TyE7mRQ25+CgcPYbmg4S1u7pwW/l4Vr35maJvTF6SI4EqiFTwgQUnx+xkQmV2CudApbIHkCisEihlnMhEX9W+Mw+Z86I+twX0+DpfUW+NjYo58NmMJ6NhljOM7CG5eAWuoWZXw/cr80xtzGq3wZEdhq+DmAk5YyCw7PHeToUvie9znQbm3W0EQk2QhQdqIkrN31Nau25IB2DS0h0oHjYQFWLDPzuMDyf0fZryB7Eug3ip9/cII+AwlTsFFDxrHd9PQt+/H+u0gW3vh6jEVo5uKPP4SMubI0/kxzL4ASy43MsF4Pso5vvGy Rfv90P3Y pMyCsRoQUnw+P61X0Yjz/btX6quWftvzXK27PNP1A0tY0f3Qff/4aoQHBSjA8SZMxtZzPuMQbid0TzvdI/5wbc+NkQXDMAxug3TTeVLliZAsWXTM8HR67eg9A4w== 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: Hi Lorenzo, On Fri, 16 May 2025 13:57:18 +0100 Lorenzo Stoakes wrote: [...] > Right now madvise() has limited utility because: [...] > - While you can perform multiple operations at once via process_madvise(), > even to the current process (after my changes to extend it), it's limited > to a single advice over 8 ranges. I'm bit confused by the last part, since I'm understanding your point as 'vlen' parameter of process_madvise() is limited to 8, but my test code below succeeds with 'vlen' parameter value 512. Could you please enlighten me? Attaching my test code below. You could simply run it as below. gcc test.c && ./a.out ==== Attachment 0 (test.c) ==== #define _GNU_SOURCE #include #include #include #include #include #include #define SZ_PAGE (4096) #define NR_PAGES (512) #define MMAP_SZ (SZ_PAGE * NR_PAGES) int main(void) { char *buf; unsigned int i; int ret; pid_t pid = getpid(); int pidfd = syscall(SYS_pidfd_open, pid, 0); struct iovec *vec; buf = mmap(NULL, MMAP_SZ, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); if (buf == MAP_FAILED) { printf("mmap fail\n"); return -1; } for (i = 0; i < MMAP_SZ; i++) buf[i] = 123; vec = malloc(sizeof(*vec) * NR_PAGES); for (i = 0; i < NR_PAGES; i++) { vec[i].iov_base = &buf[i * SZ_PAGE]; vec[i].iov_len = SZ_PAGE; } ret = syscall(SYS_process_madvise, pidfd, vec, NR_PAGES, MADV_DONTNEED, 0); if (ret != MMAP_SZ) { printf("process_madvise fail\n"); return -1; } ret = munmap(buf, MMAP_SZ); if (ret) { printf("munmap failed\n"); return -1; } close(pidfd); printf("good\n"); return 0; }