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 0848F18859B for ; Tue, 10 Mar 2026 08:29:04 +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=1773131344; cv=none; b=CclT5CO/eaWMY/hHnVwSpHvlPMFJOLOusj6jzS6IDec4Y96ZWEzXLe6LfDrHLRikRgPa8ZOK2KG3G2gaHpse0Sy3OIaFTscP3T2n0PItA+myVbG+8qJNu0cTgz1vNfkEZqC59V9JnV9LjPSKRSRY92IikRjVu+d8QovkrWtXXaU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773131344; c=relaxed/simple; bh=jn44WTLtYG+SgC+a7oYjEt1tOsUee+27TO5I7hMDu9U=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=HkHGkTgqaEuZaO04IqdPOhzyohZFb5LOWHPjN8IGGN15P2Yq/bHTOPK+9XjuEqUkDOGFhCoiiLOetqdedLH0gQiUtBHryfitc3/tv9ZI8NU4NibAfp7pJjD0j03Ae+Xq+Eb7F4LktKi723yBKBjseg5Uh2MNZG9uDlLwKxrjIdo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BNGIGGAC; 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="BNGIGGAC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC29BC19423; Tue, 10 Mar 2026 08:29:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773131343; bh=jn44WTLtYG+SgC+a7oYjEt1tOsUee+27TO5I7hMDu9U=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=BNGIGGAC8yjM5TcM/V1ZdlfKRUUe3ML0jap7PTIGXdznAaBHpcg5Ju4xNhrpYy2ht ytXwY4DczJTT1rRBFDN+d/PFKN3qITWdJNpkQefTBzzMJaczEi4/IZUZi8ODQKcTtr euHbX6qmPXRU6xiZfPQRnkrXZI2C4bjb22hE7T3kncDdVxQdvF9T7zrTkHByKJT5Iw IYR7R6UCu5jEJMj98CK0v0xp/kVN6YWUcEYQeWgmOwZEcMUYnj/YIuFDTfc9kcIMkQ hwy15UQQ8GGDY32V4HUr1rhHj+lXULh19SdyLkx90SSD5FcjP8XcVaCMNObLH0hqNR ev0fWkGJVucKA== Message-ID: <26d6ebf4-9a4e-416f-bccc-144c80f30ee1@kernel.org> Date: Tue, 10 Mar 2026 09:28:58 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/5] eventpoll: Convert epoll_put_uevent() to scoped user access To: renpanpan , linux-kernel@vger.kernel.org Cc: edumazet@google.com, Dave Hansen , Kuniyuki Iwashima , Linus Torvalds References: <20260310075431.3069438-1-renpanpan@kylinos.cn> Content-Language: fr-FR From: "Christophe Leroy (CS GROUP)" In-Reply-To: <20260310075431.3069438-1-renpanpan@kylinos.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 10/03/2026 à 08:54, renpanpan a écrit : > [Vous ne recevez pas souvent de courriers de renpanpan@kylinos.cn. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ] > > From: Eric Dumazet > > Saves two function calls, and one stac/clac pair. > > stac/clac is rather expensive on older cpus like Zen 2. > > A synthetic network stress test gives a ~1.5% increase of pps > on AMD Zen 2. > > Signed-off-by: Eric Dumazet > Cc: Christophe Leroy > Cc: Dave Hansen > Cc: Kuniyuki Iwashima > Signed-off-by: Linus Torvalds > --- > include/linux/eventpoll.h | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h > index ccb478eb174b..ea9ca0e4172a 100644 > --- a/include/linux/eventpoll.h > +++ b/include/linux/eventpoll.h > @@ -82,11 +82,14 @@ static inline struct epoll_event __user * > epoll_put_uevent(__poll_t revents, __u64 data, > struct epoll_event __user *uevent) > { > - if (__put_user(revents, &uevent->events) || > - __put_user(data, &uevent->data)) > - return NULL; > - > + scoped_user_write_access_size(uevent, sizeof(*uevent), efault) { As already mentionned this could be simplified: scoped_user_write_access(uevent, efault) { > + unsafe_put_user(revents, &uevent->events, efault); > + unsafe_put_user(data, &uevent->data, efault); > + } > return uevent+1; > + > +efault: > + return NULL; > } > #endif > > -- > 2.25.1 >