From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DBE21BBBE8; Tue, 2 Jul 2024 15:01:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719932501; cv=none; b=n0nr6lXgjtUEhOTmWFvx4u8ktOvEupkNYnouFkmMNE251lkFEf74sjZtwGMnexUB/IAkjtnaE7DwDcktEu+gcrBGZgCyxap0w2OP8CfGljcdOaDUW533kE9m3uQkNvuaL8Eq/kRdWkeRYApe9Pu0sT+H+DRqfIBg8QEVMG/B0Rk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719932501; c=relaxed/simple; bh=XRv0Jj0wSf/Xw/UCNj6I2liywlijdK3noFOcZeRx+GY=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=C7BYt11I40pH6n+HAAQgV2JTkfXVLkfhFAl83YH5vfOu+4Xu1OkSXZooczR8Jb5ZwmGwiHv8oLfm6plpWmWTkCNRbUkob8QZskm0w75RQTdXUV/nsE6vX/JFS9cSEul/h3XlTMeXjJIiUcgGxFqafnFsf9tMT88LegYn1mUdgxw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y1l+sF5v; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Y1l+sF5v" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 760F1C116B1; Tue, 2 Jul 2024 15:01:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1719932501; bh=XRv0Jj0wSf/Xw/UCNj6I2liywlijdK3noFOcZeRx+GY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Y1l+sF5vaK3pY9zYDbbnpP0vQfqx+XNhuWj653YSKFbYdBXNOV/ftO16gbdQoazqL LUWf2KzfSkHw0T87dMjo/Em+x6Q9iDx0Nrz8+jvKyuAjR2se+kuwWl4QjKPb//Jona Jxk0LfBVnFfuAOkE5W97K2Cz5tDY6k5DxY3Bu4I4pSXZVFMn5+TrpKB1SY+JRpxtWu QngxJdUryQcvrXp1HlL16YO5zqgyfjL/nvLP80wGTDyDw0UfM8w6iOX0pW2WvWu4tT NYGazDLXb4T6j5KifSlY0ytv3nJC4qyzUUUlx0gie8hQPGqIrb1z2wmXoQ8wZt0/Dh HkvtAcgP6igaw== Message-ID: Date: Tue, 2 Jul 2024 09:01:37 -0600 Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v15 11/14] net: add SO_DEVMEM_DONTNEED setsockopt to release RX frags Content-Language: en-US To: Mina Almasry , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, sparclinux@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-arch@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Donald Hunter , Jonathan Corbet , Richard Henderson , Ivan Kokshaysky , Matt Turner , Thomas Bogendoerfer , "James E.J. Bottomley" , Helge Deller , Andreas Larsson , Jesper Dangaard Brouer , Ilias Apalodimas , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Arnd Bergmann , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Steffen Klassert , Herbert Xu , Willem de Bruijn , Shuah Khan , Sumit Semwal , =?UTF-8?Q?Christian_K=C3=B6nig?= , Bagas Sanjaya , Christoph Hellwig , Nikolay Aleksandrov , Pavel Begunkov , David Wei , Jason Gunthorpe , Yunsheng Lin , Shailend Chand , Harshitha Ramamurthy , Shakeel Butt , Jeroen de Borst , Praveen Kaligineedi , Willem de Bruijn , Kaiyuan Zhang References: <20240628003253.1694510-1-almasrymina@google.com> <20240628003253.1694510-12-almasrymina@google.com> From: David Ahern In-Reply-To: <20240628003253.1694510-12-almasrymina@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/27/24 6:32 PM, Mina Almasry wrote: > @@ -1049,6 +1050,62 @@ static int sock_reserve_memory(struct sock *sk, int bytes) > return 0; > } > > +#ifdef CONFIG_PAGE_POOL > +static noinline_for_stack int > +sock_devmem_dontneed(struct sock *sk, sockptr_t optval, unsigned int optlen) > +{ > + unsigned int num_tokens, i, j, k, netmem_num = 0; > + struct dmabuf_token *tokens; > + netmem_ref netmems[16]; > + int ret = 0; > + > + if (sk->sk_type != SOCK_STREAM || sk->sk_protocol != IPPROTO_TCP) > + return -EBADF; > + > + if (optlen % sizeof(struct dmabuf_token) || > + optlen > sizeof(*tokens) * 128) > + return -EINVAL; > + > + tokens = kvmalloc_array(128, sizeof(*tokens), GFP_KERNEL); The '128' should be a named macro with a comment on why that value.