From nobody Sun Jan 25 16:16:43 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dzcHc26Thz6PkmN for ; Sun, 25 Jan 2026 16:16:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dzcHb4crsz3M21 for ; Sun, 25 Jan 2026 16:16:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769357803; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TuaVMOFkwVaEjnfnfsWb9gfGaTtdR0SW3kCWzM2osEY=; b=J6pEovrnWYWScE2UltNj5Ke97OtmtGtex90HNUjsgDWvmz5159QR2Bb9RAI5HwGDSsA6V0 rehtEiOXAu8JazIva7ElLLdWeTqa8QD96g2gteKDBWBdQC/Dtt3BycO/SiK4n/6G13/k4G caB7o+X/93uQfbJRZAhOw4Ljv3P22SmEos+BCa8kBd8aIBlJK4Kqk5198/OjKAKQk2n5ov R7Qkls9sV7/3xUqaoEFCh45Jc9RdXWGgovWwXGBd9+UjEKf5Ny4ODmH74Rh8VYb56TIagu J2yAwma0JgCZLFP0mZMl6eNGU8zwZDIGr9b0x1vbssrxShJat9nXXmBZF0lSeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769357803; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TuaVMOFkwVaEjnfnfsWb9gfGaTtdR0SW3kCWzM2osEY=; b=E5GSWnhCDIdc+9ScGB/mDFM3geEPPLBirVts/18FpfgSSIyxVcyV+P+4lhbgPmUMOCAdvo VvicLcqbotR0HFPZblX1b0OXQq16X8uE7ib8Rr5HRX4OlXO1xyACyeKtmLdy9LyPwTXmmR xt9Mah1Z0I923rqJcPrH9OUnI4RN3oHctXegjaji1M0HWZmWTIhoLTNIomdZYB9Bm/y3KW T85xio0huilvNRUNRpFQrZrLjOpoNBUXugUQlThmxfyFYFcMWHSDR1Or+2m5vvgWUUMaM/ ggodL9S+HjOQXY1AGUq4nZ109o/Q+EAw6oFzvndHLkNFzyLXrLLAtXjig+ghDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769357803; a=rsa-sha256; cv=none; b=yT+ARf9c/zkVIY6Iko988vAb+1/kMeO46R3lZYfH1RAKUsg4GoeDZe23CsLeH6v0hbkxUo Or4nn7DR7slEungHZJEqSBLoMuvhMtqVCYnXemdZslaET788m6a+uikUG1IuxKiaY6DyTs fejyg/288FWa2QdTzDfNZM+b0jl1facl8AdjvVQOCcrqJRN0tROcNnEX+IFtce7jSjSXi5 WA6/1vWnKuMDL0VUEw3Uer4siNS+3Xn74NyB4QGc34mp2emjtV1k0biCGkaGHrC86dg5HP fczW0kWkv9YAokKb8qzAk6FJf7O3GdfyjXUF9taZgHsLQFUMrtBUxKQFk+immQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dzcHb48xNzjMK for ; Sun, 25 Jan 2026 16:16:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36325 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 25 Jan 2026 16:16:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jean-=?utf-8?Q?S=C3=A9bast?==?utf-8?Q?ien P=C3=A9?=dron Subject: git: 28d6ffe37cf9 - main - eventfd: Add eventfd_signal() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dumbbell X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 28d6ffe37cf928c5b13e0aa34c39c4414a0f09e4 Auto-Submitted: auto-generated Date: Sun, 25 Jan 2026 16:16:43 +0000 Message-Id: <697641eb.36325.3b066301@gitrepo.freebsd.org> The branch main has been updated by dumbbell: URL: https://cgit.FreeBSD.org/src/commit/?id=28d6ffe37cf928c5b13e0aa34c39c4414a0f09e4 commit 28d6ffe37cf928c5b13e0aa34c39c4414a0f09e4 Author: Jean-Sébastien Pédron AuthorDate: 2025-05-26 17:36:49 +0000 Commit: Jean-Sébastien Pédron CommitDate: 2026-01-25 16:04:44 +0000 eventfd: Add eventfd_signal() The `eventfd_signal()` function is the equivalent to a write to an eventfd file descriptor: it bumps the internal counter and wakes up processes waiting for it. `eventfd_signal()` is meant to be used by kernel drivers. DRM drivers will call it through linuxkpi. Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50850 --- sys/kern/sys_eventfd.c | 25 ++++++++++++++++++++++--- sys/sys/eventfd.h | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/sys/kern/sys_eventfd.c b/sys/kern/sys_eventfd.c index 433bcb57b2b3..47f1fcc316ec 100644 --- a/sys/kern/sys_eventfd.c +++ b/sys/kern/sys_eventfd.c @@ -157,6 +157,27 @@ eventfd_put(struct eventfd *efd) free(efd, M_EVENTFD); } +static void +eventfd_wakeup(struct eventfd *efd) +{ + KNOTE_LOCKED(&efd->efd_sel.si_note, 0); + selwakeup(&efd->efd_sel); + wakeup(&efd->efd_count); +} + +void +eventfd_signal(struct eventfd *efd) +{ + mtx_lock(&efd->efd_lock); + + if (efd->efd_count < UINT64_MAX) + efd->efd_count++; + + eventfd_wakeup(efd); + + mtx_unlock(&efd->efd_lock); +} + static int eventfd_close(struct file *fp, struct thread *td) { @@ -244,9 +265,7 @@ retry: if (error == 0) { MPASS(UINT64_MAX - efd->efd_count > count); efd->efd_count += count; - KNOTE_LOCKED(&efd->efd_sel.si_note, 0); - selwakeup(&efd->efd_sel); - wakeup(&efd->efd_count); + eventfd_wakeup(efd); } mtx_unlock(&efd->efd_lock); diff --git a/sys/sys/eventfd.h b/sys/sys/eventfd.h index 1f36dbecb92d..1b390feed48e 100644 --- a/sys/sys/eventfd.h +++ b/sys/sys/eventfd.h @@ -44,6 +44,7 @@ int eventfd_create_file(struct thread *td, struct file *fp, uint32_t initval, int flags); struct eventfd *eventfd_get(struct file *fp); void eventfd_put(struct eventfd *efd); +void eventfd_signal(struct eventfd *efd); #else