From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Brauner Subject: [PATCH 0/2] eventfd: simplify signal helpers Date: Thu, 13 Jul 2023 12:05:36 +0200 Message-ID: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242764; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; h=From:Subject:Date:To:Cc:From; b=fMIucUY7GArhLgcLDCFIQxCyAzXRgRPE8TkbNnY5GyU1HBPhbd5464W8Yg6jjQ1lL m6CWFlXeaqd10iV8ptWkOllE56aJPowyXSs5WiPty1Qsblb5rDh7+XYZZkXkukuQUD 2oiaMlw7C0sww3ot9gyUkCaU1j297MtNOoU25HevXc+ptbrPhHq2Zk21bLHu2o2olV KM6Bl/kUQtYvAIUPH+MSd/KGQP+HX58eb57Amnb444A4mU/RQ41PTUTV2bTgUUDM37 0Ncnb1LvDeYFhV3bcDM22YynZx1G+N6CQHl4PYcq4tdmwsqnstpRPCpNQMucQad6SH v0+dq9gbDJkNg== X-Developer-Signature: v=1; a=openpgp-sha256; l=276; i=brauner@kernel.org; h=from:subject:message-id; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1PLoVi0NYRvYnj1752/FbjTRLb2F5/eK1jjLMP8OeoE g8DNjlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIlwrGT4n2l3WEWjd0VXqt6ih11Ns1 YfjrROvjc3V73IYWbr0apscUaGq6+my1lGuQtz2O564OagKGE5qVEnsLx/a9H1rIRnpwXZAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Sender: owner-linux-aio@kvack.org List-ID: Content-Type: text/plain; charset="us-ascii" To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Hey everyone, This simplifies the eventfd_signal() and eventfd_signal_mask() helpers by removing the count argument which is effectively unused. --- --- base-commit: 6be357f00aad4189130147fdc6f568cf776a4909 change-id: 20230713-vfs-eventfd-signal-0b0d167ad6ec -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Brauner Subject: [PATCH 1/2] eventfd: simplify eventfd_signal() Date: Thu, 13 Jul 2023 12:05:37 +0200 Message-ID: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242778; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/zVc+cx75jKrxPbnuju/atRsSVw8F0+lAKbEjGTw5GhMxtAmrwPy79ak+r+1ROcu IcQPyzLxGgawBBz8z8Y70v1491RsilNJTaUYxVhDVgFriZayfH8ZUfbtrhQJWLhPAH vpiBrVgRovIAIDW4KmWRfWlcJyQ9sLHY83qZhGLawBGVUmbV6BRizMJKmSIghOE/RJ YoU1DReRNExPVarbQdAYe5K1tgKCRDDRI0aDEOqPSGreY5fFjI+n/NextbBZcWkJO+ YDuiwIyJr6f+iGBS5caIbzXKnzeTSW15obZChr2oWIcmbifwKnBdNTVSGk0jqubn8w AyTVc+P60Arxg== In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> X-Developer-Signature: v=1; a=openpgp-sha256; l=23311; i=brauner@kernel.org; h=from:subject:message-id; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1N7Tzqtc8rKeaufBVx2qNr7M9C5NOKM4TWHndLF8yO8 hJ8ZdpSyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAEzkkDAjQ/Pk6ii/0+tYpaI/M26VY1 dozLZ4pFl5XfYkw2P7N38/hzP8Zn0/RcaQlUGn88TUwusronoeZx3LmbPvgfvfVff+tm9/zgMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Sender: owner-linux-aio@kvack.org List-ID: Content-Type: text/plain; charset="us-ascii" To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Ever since the evenfd type was introduced back in 2007 in commit e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() function only ever passed 1 as a value for @n. There's no point in keeping that additional argument. Signed-off-by: Christian Brauner --- arch/x86/kvm/hyperv.c | 2 +- arch/x86/kvm/xen.c | 2 +- drivers/accel/habanalabs/common/device.c | 2 +- drivers/fpga/dfl.c | 2 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/misc/ocxl/file.c | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 2 +- drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- drivers/s390/crypto/vfio_ap_ops.c | 2 +- drivers/usb/gadget/function/f_fs.c | 4 ++-- drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- drivers/vhost/vdpa.c | 4 ++-- drivers/vhost/vhost.c | 10 +++++----- drivers/vhost/vhost.h | 2 +- drivers/virt/acrn/ioeventfd.c | 2 +- fs/aio.c | 2 +- fs/eventfd.c | 9 +++------ include/linux/eventfd.h | 4 ++-- mm/memcontrol.c | 10 +++++----- mm/vmpressure.c | 2 +- samples/vfio-mdev/mtty.c | 4 ++-- virt/kvm/eventfd.c | 4 ++-- 28 files changed, 56 insertions(+), 59 deletions(-) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index b28fd020066f..2f4bd74b482c 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h if (!eventfd) return HV_STATUS_INVALID_PORT_ID; - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); return HV_STATUS_SUCCESS; } diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 40edf4d1974c..a7b62bafd57b 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) if (ret < 0 && ret != -ENOTCONN) return false; } else { - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); + eventfd_signal(evtchnfd->deliver.eventfd.ctx); } *r = 0; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index b97339d1f7c6..30357b371d61 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 notifier_event->events_mask |= event_mask; if (notifier_event->eventfd) - eventfd_signal(notifier_event->eventfd, 1); + eventfd_signal(notifier_event->eventfd); mutex_unlock(¬ifier_event->lock); } diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index dd7a783d53b5..e73f88050f08 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 68eca023bbc6..3d9e09c2add4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) return -EFAULT; return 0; } diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index db5fb196c728..ad50487790ff 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, list_for_each_entry_rcu(item, fd_list, xa_list) { if (item->eventfd) - eventfd_signal(item->eventfd, 1); + eventfd_signal(item->eventfd); else deliver_event(item, data); } diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 6e63f060e4cc..51766db296ab 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) { struct eventfd_ctx *ev_ctx = private; - eventfd_signal(ev_ctx, 1); + eventfd_signal(ev_ctx); return IRQ_HANDLED; } diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c index d3f3a611f95b..38c176cf6295 100644 --- a/drivers/s390/cio/vfio_ccw_chp.c +++ b/drivers/s390/cio/vfio_ccw_chp.c @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, /* Notify the guest if more CRWs are on our queue */ if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); return ret; } diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 43601816ea4e..bfb35cfce1ef 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) - eventfd_signal(private->io_trigger, 1); + eventfd_signal(private->io_trigger); } void vfio_ccw_crw_todo(struct work_struct *work) @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) private = container_of(work, struct vfio_ccw_private, crw_work); if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); } /* diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c index 5b53b94f13c7..3df231f6feda 100644 --- a/drivers/s390/cio/vfio_ccw_ops.c +++ b/drivers/s390/cio/vfio_ccw_ops.c @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, case VFIO_IRQ_SET_DATA_NONE: { if (*ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_BOOL: @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, return -EFAULT; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_EVENTFD: @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(private->req_trigger, 1); + eventfd_signal(private->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request channel registered, blocked until released by user\n"); diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b441745b0418..feb88526ac9d 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(matrix_mdev->req_trigger, 1); + eventfd_signal(matrix_mdev->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request registered, blocked until released by user\n"); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index f41a385a5c42..ceb1aad0c5df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) io_data->kiocb->ki_complete(io_data->kiocb, ret); if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) - eventfd_signal(io_data->ffs->ffs_eventfd, 1); + eventfd_signal(io_data->ffs->ffs_eventfd); if (io_data->read) kfree(io_data->to_free); @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, ffs->ev.types[ffs->ev.count++] = type; wake_up_locked(&ffs->ev.waitq); if (ffs->ffs_eventfd) - eventfd_signal(ffs->ffs_eventfd, 1); + eventfd_signal(ffs->ffs_eventfd); } static void ffs_event_add(struct ffs_data *ffs, diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index dc38ed21319d..99b901a9e638 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) goto unlock; if (vq->kickfd) - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); else vq->kicked = true; unlock: @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, eventfd_ctx_put(vq->kickfd); vq->kickfd = ctx; if (vq->ready && vq->kicked && vq->kickfd) { - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); vq->kicked = false; } spin_unlock(&vq->kick_lock); @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) spin_lock_irq(&vq->irq_lock); if (vq->ready && vq->cb.trigger) { - eventfd_signal(vq->cb.trigger, 1); + eventfd_signal(vq->cb.trigger); signal = true; } spin_unlock_irq(&vq->irq_lock); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index c51229fccbd6..d62fbfff20b8 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) { struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; - eventfd_signal(mc_irq->trigger, 1); + eventfd_signal(mc_irq->trigger); return IRQ_HANDLED; } diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 20d7b69ea6ff..01c8e31db23b 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) */ down_write(&vdev->memory_lock); if (vdev->pm_wake_eventfd_ctx) { - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); + eventfd_signal(vdev->pm_wake_eventfd_ctx); __vfio_pci_runtime_pm_exit(vdev); } up_write(&vdev->memory_lock); @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) pci_notice_ratelimited(pdev, "Relaying device request to user (#%u)\n", count); - eventfd_signal(vdev->req_trigger, 1); + eventfd_signal(vdev->req_trigger); } else if (count == 0) { pci_warn(pdev, "No device request channel registered, blocked until released by user\n"); @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, mutex_lock(&vdev->igate); if (vdev->err_trigger) - eventfd_signal(vdev->err_trigger, 1); + eventfd_signal(vdev->err_trigger); mutex_unlock(&vdev->igate); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index cbb4bcbfbf83..237beac83809 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) ctx = vfio_irq_ctx_get(vdev, 0); if (WARN_ON_ONCE(!ctx)) return; - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, if (!ctx) continue; if (flags & VFIO_IRQ_SET_DATA_NONE) { - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t *bools = data; if (bools[i - start]) - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } return 0; @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, if (flags & VFIO_IRQ_SET_DATA_NONE) { if (*ctx) { if (count) { - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); } else { eventfd_ctx_put(*ctx); *ctx = NULL; @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, trigger = *(uint8_t *)data; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c index 665197caed89..61a1bfb68ac7 100644 --- a/drivers/vfio/platform/vfio_platform_irq.c +++ b/drivers/vfio/platform/vfio_platform_irq.c @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return ret; } @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return IRQ_HANDLED; } diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index b43e8680eee8..722894a0f124 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; if (call_ctx) - eventfd_signal(call_ctx, 1); + eventfd_signal(call_ctx); return IRQ_HANDLED; } @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) - eventfd_signal(config_ctx, 1); + eventfd_signal(config_ctx); return IRQ_HANDLED; } diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index c71d573f1c94..bee50f153c8e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, len -= l; if (!len) { if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); return 0; } } @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof vq->used->flags); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof *vhost_avail_event(vq)); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, log_used(vq, offsetof(struct vring_used, idx), sizeof vq->used->idx); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return r; } @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) { /* Signal the Guest tell them we used something up. */ if (vq->call_ctx.ctx && vhost_notify(dev, vq)) - eventfd_signal(vq->call_ctx.ctx, 1); + eventfd_signal(vq->call_ctx.ctx); } EXPORT_SYMBOL_GPL(vhost_signal); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index f60d5f7bef94..9e942fcda5c3 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, #define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ - eventfd_signal((vq)->error_ctx, 1);\ + eventfd_signal((vq)->error_ctx);\ } while (0) enum { diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c index ac4037e9f947..4e845c6ca0b5 100644 --- a/drivers/virt/acrn/ioeventfd.c +++ b/drivers/virt/acrn/ioeventfd.c @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, mutex_lock(&client->vm->ioeventfds_lock); p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); if (p) - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); mutex_unlock(&client->vm->ioeventfds_lock); return 0; diff --git a/fs/aio.c b/fs/aio.c index 77e33619de40..96cf97b19077 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) * from IRQ context. */ if (iocb->ki_eventfd) - eventfd_signal(iocb->ki_eventfd, 1); + eventfd_signal(iocb->ki_eventfd); /* * We have to order our ring_info tail store above and test diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..dc9e01053235 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) /** * eventfd_signal - Adds @n to the eventfd counter. * @ctx: [in] Pointer to the eventfd context. - * @n: [in] Value of the counter to be added to the eventfd internal counter. - * The value cannot be negative. * * This function is supposed to be called by the kernel in paths that do not * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX * value, and we signal this as overflow condition by returning a EPOLLERR * to poll(2). * - * Returns the amount by which the counter was incremented. This will be less - * than @n if the counter has overflowed. + * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +__u64 eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, n, 0); + return eventfd_signal_mask(ctx, 1, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b9d83652c097..562089431551 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); +__u64 eventfd_signal(struct eventfd_ctx *ctx); __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +static inline int eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..891550f575a1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* i = current_threshold + 1 */ i++; @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* Update current_threshold */ t->current_threshold = i - 1; @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) spin_lock(&memcg_oom_lock); list_for_each_entry(ev, &memcg->oom_notify, list) - eventfd_signal(ev->eventfd, 1); + eventfd_signal(ev->eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, /* already in OOM ? */ if (memcg->under_oom) - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) event->unregister_event(memcg, event->eventfd); /* Notify userspace the event is going away. */ - eventfd_signal(event->eventfd, 1); + eventfd_signal(event->eventfd); eventfd_ctx_put(event->eventfd); kfree(event); diff --git a/mm/vmpressure.c b/mm/vmpressure.c index b52644771cc4..ba4cdef37e42 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, continue; if (level < ev->level) continue; - eventfd_signal(ev->efd, 1); + eventfd_signal(ev->efd); ret = true; } mutex_unlock(&vmpr->events_lock); diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index a60801fb8660..5edcf8d738de 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) } if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) - ret = eventfd_signal(mdev_state->msi_evtfd, 1); + ret = eventfd_signal(mdev_state->msi_evtfd); else - ret = eventfd_signal(mdev_state->intx_evtfd, 1); + ret = eventfd_signal(mdev_state->intx_evtfd); #if defined(DEBUG_INTR) pr_info("Intx triggered\n"); diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..c0e230f4c3e9 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, srcu_read_lock_held(&resampler->kvm->irq_srcu)) - eventfd_signal(irqfd->resamplefd, 1); + eventfd_signal(irqfd->resamplefd); } /* @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, if (!ioeventfd_in_range(p, addr, len, val)) return -EOPNOTSUPP; - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); return 0; } -- 2.34.1 -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Brauner Subject: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Date: Thu, 13 Jul 2023 12:05:38 +0200 Message-ID: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242793; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j+ukf52dvZ+nUEPwpL9/EYruyhEbJbg7d1yjKDMcd3GOYxX7RclutpFcH5UUHlkpI fnIEho3ycJz28JfRAPfizI9cf3F0lqh4jC9ZF+UZUl5JTb6HfdwpWlIJ9bsmZ0DsOQ PAjBHJokUk/yF6GqX5PHCHsaDKT13j+MVST75N+zeiC2em3PJTUKrCtRR1KKmsmMCX MYnQq0YQbswQU++9LLW3pgHXNsdqcZtbb04btB9J/lGIIF9SRPTFcmVmql2ih2n6bH BAMadKjZaQhxN2qUstf+rs137LSKZ/kMx1juo/8V60a80JJWvq1eqYcfgXe/BuR2sH +vKmJxA1p+x+A== In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> X-Developer-Signature: v=1; a=openpgp-sha256; l=4338; i=brauner@kernel.org; h=from:subject:message-id; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1NbdfmkaWaxQvZah7/MWs/ufCrO2q82U2T1DIWDSy0u LwzX6ChhYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZiIshkjww4t2ytlzT8ElQsqm7Su/N b3T10XyfCvYZ2XvvOJclnpCIbvvh+/WjLaTozOzj3stenvds+qri//VkTNPGGwWHTi+Uc8AA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Sender: owner-linux-aio@kvack.org List-ID: Content-Type: text/plain; charset="us-ascii" To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason The eventfd_signal_mask() helper was introduced for io_uring and similar to eventfd_signal() it always passed 1 for @n. So don't bother with that argument at all. Signed-off-by: Christian Brauner --- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- fs/eventfd.c | 9 +++++---- include/linux/eventfd.h | 9 ++++----- io_uring/io_uring.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 3d9e09c2add4..31aff6f733d4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) + if (vgpu->msi_trigger && !eventfd_signal(vgpu->msi_trigger)) return -EFAULT; return 0; } diff --git a/fs/eventfd.c b/fs/eventfd.c index dc9e01053235..077be5da72bd 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -43,9 +43,10 @@ struct eventfd_ctx { int id; }; -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) { unsigned long flags; + __u64 n = 1; /* * Deadlock or stack overflow issues can happen if we recurse here @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); - return n; + return n == 1; } /** @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) * * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx) +bool eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, 1, 0); + return eventfd_signal_mask(ctx, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 562089431551..0155ee25f7c8 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,8 +35,8 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx); -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); +bool eventfd_signal(struct eventfd_ctx *ctx); +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx) +static inline bool eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, - unsigned mask) +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { return -ENOSYS; } diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..a9359ef73935 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -537,7 +537,7 @@ static void io_eventfd_ops(struct rcu_head *rcu) int ops = atomic_xchg(&ev_fd->ops, 0); if (ops & BIT(IO_EVENTFD_OP_SIGNAL_BIT)) - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); /* IO_EVENTFD_OP_FREE_BIT may not be set here depending on callback * ordering in a race but if references are 0 we know we have to free @@ -573,7 +573,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) goto out; if (likely(eventfd_signal_allowed())) { - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); } else { atomic_inc(&ev_fd->refs); if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) -- 2.34.1 -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Krowiak Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() Date: Thu, 13 Jul 2023 09:29:52 -0400 Message-ID: References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=yIjAwsQR1wLZ8Bjld9sxVuIjhZ4yn9i9x6FCVBXNkdI=; b=mm0EKyIJVnP3MW7HMgeWPwA9lkZ5fYaP0kpNzaCk4yxx2VM58hC6JtVLIoP9ptDoDJ+C fUfj7+2LEuSNYhltq92CPGP26EEOV6n3Sx85xqmeyUAqW5PNLEZTTPMA5PwOWF8/66tO g/rmtBjDGpsPOfDxraHV1HDSxx9f92lAOOf8yv0Zd1+QBa4/mgEX9V3tBM+Tjdplnbo2 y33ArriOuXZ5VfosxwUe6DPWU4enV5ZLeqNf/M8GHQnEz2w6GZHa2Fd9ykWbMN7NALNW 3dWRXtqmGGKMzYCYy+HXCd0/fJNSfdU4lXMAhLUOfkBNbvYp1i3h98qZZB3636whGHJQ 0Q== Content-Language: en-US In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Sender: owner-linux-aio@kvack.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Christian Brauner , linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie <> For vfio_ap_ops.c: Reviewed-by: Tony Krowiak On 7/13/23 6:05 AM, Christian Brauner wrote: > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret != -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r = 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 > notifier_event->events_mask |= event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx = private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state = VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private = container_of(work, struct vfio_ccw_private, crw_work); > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request channel registered, blocked until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request registered, blocked until released by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] = type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked = true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd = ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked = false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal = true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) > { > struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n", > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count == 0) { > pci_warn(pdev, > "No device request channel registered, blocked until released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) > ctx = vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools = data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx = NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > > trigger = *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret == IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) > { > struct vfio_platform_irq *irq_ctx = dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) > struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) > struct eventfd_ctx *config_ctx = v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, > len -= l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, > mutex_lock(&client->vm->ioeventfds_lock); > p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal counter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do not > * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLERR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will be less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i = current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold = i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret = true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) > } > > if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) > - ret = eventfd_signal(mdev_state->msi_evtfd, 1); > + ret = eventfd_signal(mdev_state->msi_evtfd); > else > - ret = eventfd_signal(mdev_state->intx_evtfd, 1); > + ret = eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq_srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > -- To unsubscribe, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() Date: Thu, 13 Jul 2023 16:34:43 +0300 Message-ID: References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689255311; bh=C9ZL/aINfzb4DTfI0PDdwKD/w/Hf1nA7/TiEr1Wu8NY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=JyIyhVLGZViyQT1JdXstbg0aQUaEh6m/IPTAOEZbxEKOO67MjexdKjMcwx5iU8lg5 JVap4XCkDuPoBq/CmIlE3XhCm1m6YglNf1xscytAz0JpfHEtJvFiPcJXnKfKuJ2UNm HDAkLTptYBg4inK17KgkWgF89nn/C0R6cPBocri0kFzxm3VCQs14o3HhJrYQT7tzre LVMQfxn5L9MtV/oeO9i6NKyUsUpu6aDwZaaFR8I7ijC7KEYLCZwdICIO0LMYh8ed2d 9UmT3KVSc0mO+63YgAWlcNCTsPvimJfl5ncF0bmtrE5S91To31KPX0cUjckjacDNgl WFjnGKLTAwoqg== In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> List-ID: Content-Type: text/plain; charset="windows-1252" To: Christian Brauner Cc: linux-fsdevel@vger.kernel.org, Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David On Thu, Jul 13, 2023 at 1:06=E2=80=AFPM Christian Brauner wrote: > > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu = *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vc= pu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret !=3D -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r =3D 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/hab= analabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifi= er_event *notifier_event, u64 > notifier_event->events_mask |=3D event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *a= rg) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/= gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu= *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != =3D 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) !=3D 1= ) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/ml= x5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_= list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx =3D private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_= chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_c= cw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_= drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state =3D VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private =3D container_of(work, struct vfio_ccw_private, crw_work)= ; > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_= ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device = *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request channel registered, blocked= until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio= _ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device= *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request registered, blocked until r= eleased by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/func= tion/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *= work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] =3D type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked =3D true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd =3D ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked =3D false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqu= eue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal =3D true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc= /vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num,= void *arg) > { > struct vfio_fsl_mc_irq *mc_irq =3D (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci= _core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device= *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core= _vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n"= , > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count =3D=3D 0) { > pci_warn(pdev, > "No device request channel registered, blocked un= til released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(str= uct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pc= i_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *= unused) > ctx =3D vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg= ) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci= _core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools =3D data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx =3D NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > > trigger =3D *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/pla= tform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int ir= q, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret =3D=3D IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *de= v_id) > { > struct vfio_platform_irq *irq_ctx =3D dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *priv= ate) > struct eventfd_ctx *call_ctx =3D vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private= ) > struct eventfd_ctx *config_ctx =3D v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, str= uct vhost_log *log, > len -=3D l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_vir= tqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_vi= rtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, st= ruct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vho= st_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.= c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_c= lient *client, > mutex_lock(&client->vm->ioeventfds_lock); > p =3D hsm_ioeventfd_match(client->vm, addr, val, size, req->type)= ; > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __= u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal cou= nter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do= not > * allow sleeping. In this function we allow the counter to reach the UL= LONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLE= RR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will b= e less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mas= k); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_en= try_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int= fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i >=3D 0 && unlikely(t->entries[i].threshold > usage); i--= ) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i =3D current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <=3D usage= ); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold =3D i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgro= up *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem= _cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *= work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret =3D true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state= *mdev_state) > } > > if (mdev_state->irq_index =3D=3D VFIO_PCI_MSI_IRQ_INDEX) > - ret =3D eventfd_signal(mdev_state->msi_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->msi_evtfd); > else > - ret =3D eventfd_signal(mdev_state->intx_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_ir= qfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq= _srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_= device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > > -- > 2.34.1 > For habanalabs (device.c): Reviewed-by: Oded Gabbay From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Christopherson Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Date: Thu, 13 Jul 2023 07:33:05 -0700 Message-ID: References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=jacaK9M2p8ae07DYtf3WTwW4sJ88AeR0PMoTM/K8Zom80G9CNsRED8/7OkNACpL4FI vSrK+poAQrpW9b9XXAEX3N+/eJqGG0fl2uSilp/V2zhMmynFGmkNp19rQMAPCUIgro+L 8wZFnIyWuBTpd6inSk0jhwWPq/qOKDhiCmrdy2nICENUOLQPMx4zm5vkc1J+N+jf8F/9 NWijWeXBKP6nhRWfAZooF9dECtwpwP1B06LROVi+ZRGQWEPDlF+8FcWtS7IpVg38LWBC sabPszkfHQCdZSa4qO28HKir4zE3m+cUi5LtAFjCZb9xEKl25slyjVF3CoaXZrvttifT RnQA== In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> List-ID: Content-Transfer-Encoding: 7bit To: Christian Brauner Cc: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Vitaly Kuznetsov , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie On Thu, Jul 13, 2023, Christian Brauner wrote: > diff --git a/fs/eventfd.c b/fs/eventfd.c > index dc9e01053235..077be5da72bd 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -43,9 +43,10 @@ struct eventfd_ctx { > int id; > }; > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > { > unsigned long flags; > + __u64 n = 1; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > - return n; > + return n == 1; > } ... > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > - unsigned mask) > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > return -ENOSYS; This will morph to "true" for what should be an error case. One option would be to have eventfd_signal_mask() return 0/-errno instead of the count, but looking at all the callers, nothing ever actually consumes the result. KVMGT morphs failure into -EFAULT if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) return -EFAULT; but the only caller of that user ignores the return value. if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) & ~GEN8_MASTER_IRQ_CONTROL) inject_virtual_interrupt(vgpu); The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an error but otherwise ignores the result. So why not return nothing? That will simplify eventfd_signal_mask() a wee bit more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { unsigned long flags; /* * Deadlock or stack overflow issues can happen if we recurse here * through waitqueue wakeup handlers. If the caller users potentially * nested waitqueues with custom wakeup handlers, then it should * check eventfd_signal_allowed() before calling this function. If * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ if (WARN_ON_ONCE(current->in_eventfd)) return; spin_lock_irqsave(&ctx->wqh.lock, flags); current->in_eventfd = 1; if (ctx->count < ULLONG_MAX) ctx->count++; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); } You could even go further and unify the real and stub versions of eventfd_signal(). From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Brauner Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Date: Thu, 13 Jul 2023 16:52:34 +0200 Message-ID: <20230713-mahnen-drosseln-fa717117e827@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689259971; bh=R4Hkl4iroQ+C4d3AaFA6aa52uzI7aPnAyTDDN/lwc78=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RS/6gRgqvF3ybwn8Ovqq43iLhI7Yv15SZZP2U5CNn6IhgXHQH9mo4nByA/g4W736R AkMi1WqcMsHhNrtO7dGPqCwKIYlgvLK+7FW5vJj2elL3FTubJgM81//BHDuM8QqyRP Csacjb3yQ3aRtIn7A1i9sInqtS8VRY/O0QwqwwSlh+wJ04gvPtGAbDZaSnmdfd209l vt3KpAe4HIE13hYrO1C7jusvVYug5pHUh1tQDDmm+XtqhW6CbXRqbqDYOCl1W9QxOQ VXNT8IMNIH9hLd1wzLndR4KoVQB79H/FYLq25P8lOlildm0R+bpsuSo9TwClPA0kLV csu2vX1i0ECSg== Content-Disposition: inline In-Reply-To: List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Sean Christopherson Cc: linux-fsdevel@vger.kernel.org, Vitaly Kuznetsov , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie On Thu, Jul 13, 2023 at 07:33:05AM -0700, Sean Christopherson wrote: > On Thu, Jul 13, 2023, Christian Brauner wrote: > > diff --git a/fs/eventfd.c b/fs/eventfd.c > > index dc9e01053235..077be5da72bd 100644 > > --- a/fs/eventfd.c > > +++ b/fs/eventfd.c > > @@ -43,9 +43,10 @@ struct eventfd_ctx { > > int id; > > }; > > > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > > { > > unsigned long flags; > > + __u64 n = 1; > > > > /* > > * Deadlock or stack overflow issues can happen if we recurse here > > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > current->in_eventfd = 0; > > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > > > - return n; > > + return n == 1; > > } > > ... > > > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > > return ERR_PTR(-ENOSYS); > > } > > > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > > { > > return -ENOSYS; > > } > > > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > > - unsigned mask) > > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > > { > > return -ENOSYS; > > This will morph to "true" for what should be an error case. One option would be Ewww, that means it did return -ENOSYS before any of this. > to have eventfd_signal_mask() return 0/-errno instead of the count, but looking > at all the callers, nothing ever actually consumes the result. > > KVMGT morphs failure into -EFAULT > > if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > return -EFAULT; > > but the only caller of that user ignores the return value. > > if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) > & ~GEN8_MASTER_IRQ_CONTROL) > inject_virtual_interrupt(vgpu); > > The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an > error but otherwise ignores the result. > > So why not return nothing? That will simplify eventfd_signal_mask() a wee bit > more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. Yeah, it used to return an int in the non-eventfd and a __u64 in the eventfd case. > > void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > unsigned long flags; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > * through waitqueue wakeup handlers. If the caller users potentially > * nested waitqueues with custom wakeup handlers, then it should > * check eventfd_signal_allowed() before calling this function. If > * it returns false, the eventfd_signal() call should be deferred to a > * safe context. > */ > if (WARN_ON_ONCE(current->in_eventfd)) > return; > > spin_lock_irqsave(&ctx->wqh.lock, flags); > current->in_eventfd = 1; > if (ctx->count < ULLONG_MAX) > ctx->count++; > if (waitqueue_active(&ctx->wqh)) > wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > } > > You could even go further and unify the real and stub versions of eventfd_signal(). The reason I didn't make eventfd_signal_mask() return void was that it was called from eventfd_signal() which did, I didn't realize the caller didn't actually consume the return value. If we can let both return void it gets simpler. Thanks for that. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [PATCH 0/2] eventfd: simplify signal helpers Date: Thu, 13 Jul 2023 11:10:54 -0600 Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=gNfBuFkf0gGu6EVWbDwoyiU8boJV7eRq6L3WSboaHg0RAldYAOV74SvuSMS+x9W+rsPL/m BKOFbjtxsjuIxIyC6zdpsd+oXETnMFGRgtb7c+TCRAtzOQbPlNeRoBjm9fX9rU5uS/IkH4 Utl8POcE6XSSrdOtWXvbguHI7QlEQoE= In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Content-Type: text/plain; charset="us-ascii" To: Christian Brauner Cc: linux-aio@kvack.org, Muchun Song , Tony Krowiak , Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Roman Gushchin , dri-devel@lists.freedesktop.org, Michal Hocko , Heiko Carstens , linux-mm@kvack.org, Kirti Wankhede , Vineeth Vijayan , Diana Craciun , Borislav Petkov , Alexander Gordeev , Fei Li , Xuan Zhuo , Arnd Bergmann , Leon Romanovsky , jaz@semihalf.com, linux-rdma@vger.kernel.org, x86@kernel.org, Halil Pasic , Jason Gunthorpe , Ingo Molnar On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C42BDC001B0 for ; Thu, 13 Jul 2023 12:48:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E147A10E68C; Thu, 13 Jul 2023 12:48:31 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B70910E666; Thu, 13 Jul 2023 10:06:05 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8455C601C6; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6875C433C8; Thu, 13 Jul 2023 10:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242764; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; h=From:Subject:Date:To:Cc:From; b=fMIucUY7GArhLgcLDCFIQxCyAzXRgRPE8TkbNnY5GyU1HBPhbd5464W8Yg6jjQ1lL m6CWFlXeaqd10iV8ptWkOllE56aJPowyXSs5WiPty1Qsblb5rDh7+XYZZkXkukuQUD 2oiaMlw7C0sww3ot9gyUkCaU1j297MtNOoU25HevXc+ptbrPhHq2Zk21bLHu2o2olV KM6Bl/kUQtYvAIUPH+MSd/KGQP+HX58eb57Amnb444A4mU/RQ41PTUTV2bTgUUDM37 0Ncnb1LvDeYFhV3bcDM22YynZx1G+N6CQHl4PYcq4tdmwsqnstpRPCpNQMucQad6SH v0+dq9gbDJkNg== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:36 +0200 Message-Id: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHDMr2QC/x3MwQrCMAyA4VcZORtpN9jAVxEPaZtuAY3SSBHG3 t3o8Tv8/w7GTdjgMuzQuIvJUx3xNEDeSFdGKW4YwziFJU7YqyF31nctaLIq3TGkUOK8UJk5g4e vxlU+/+n15k5kjKmR5u238sP5IZbhOL4kMfO0fwAAAA== To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=276; i=brauner@kernel.org; h=from:subject:message-id; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1PLoVi0NYRvYnj1752/FbjTRLb2F5/eK1jjLMP8OeoE g8DNjlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIlwrGT4n2l3WEWjd0VXqt6ih11Ns1 YfjrROvjc3V73IYWbr0apscUaGq6+my1lGuQtz2O564OagKGE5qVEnsLx/a9H1rIRnpwXZAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Thu, 13 Jul 2023 12:48:29 +0000 Subject: [Intel-gfx] [PATCH 0/2] eventfd: simplify signal helpers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Hey everyone, This simplifies the eventfd_signal() and eventfd_signal_mask() helpers by removing the count argument which is effectively unused. --- --- base-commit: 6be357f00aad4189130147fdc6f568cf776a4909 change-id: 20230713-vfs-eventfd-signal-0b0d167ad6ec 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 84956EB64DD for ; Thu, 13 Jul 2023 12:48:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B8AF10E694; Thu, 13 Jul 2023 12:48:33 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id F205B10E667; Thu, 13 Jul 2023 10:06:35 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0805160AB4; Thu, 13 Jul 2023 10:06:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34C10C433D9; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242793; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j+ukf52dvZ+nUEPwpL9/EYruyhEbJbg7d1yjKDMcd3GOYxX7RclutpFcH5UUHlkpI fnIEho3ycJz28JfRAPfizI9cf3F0lqh4jC9ZF+UZUl5JTb6HfdwpWlIJ9bsmZ0DsOQ PAjBHJokUk/yF6GqX5PHCHsaDKT13j+MVST75N+zeiC2em3PJTUKrCtRR1KKmsmMCX MYnQq0YQbswQU++9LLW3pgHXNsdqcZtbb04btB9J/lGIIF9SRPTFcmVmql2ih2n6bH BAMadKjZaQhxN2qUstf+rs137LSKZ/kMx1juo/8V60a80JJWvq1eqYcfgXe/BuR2sH +vKmJxA1p+x+A== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:38 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=4338; i=brauner@kernel.org; h=from:subject:message-id; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1NbdfmkaWaxQvZah7/MWs/ufCrO2q82U2T1DIWDSy0u LwzX6ChhYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZiIshkjww4t2ytlzT8ElQsqm7Su/N b3T10XyfCvYZ2XvvOJclnpCIbvvh+/WjLaTozOzj3stenvds+qri//VkTNPGGwWHTi+Uc8AA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Thu, 13 Jul 2023 12:48:29 +0000 Subject: [Intel-gfx] [PATCH 2/2] eventfd: simplify eventfd_signal_mask() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" The eventfd_signal_mask() helper was introduced for io_uring and similar to eventfd_signal() it always passed 1 for @n. So don't bother with that argument at all. Signed-off-by: Christian Brauner --- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- fs/eventfd.c | 9 +++++---- include/linux/eventfd.h | 9 ++++----- io_uring/io_uring.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 3d9e09c2add4..31aff6f733d4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) + if (vgpu->msi_trigger && !eventfd_signal(vgpu->msi_trigger)) return -EFAULT; return 0; } diff --git a/fs/eventfd.c b/fs/eventfd.c index dc9e01053235..077be5da72bd 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -43,9 +43,10 @@ struct eventfd_ctx { int id; }; -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) { unsigned long flags; + __u64 n = 1; /* * Deadlock or stack overflow issues can happen if we recurse here @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); - return n; + return n == 1; } /** @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) * * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx) +bool eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, 1, 0); + return eventfd_signal_mask(ctx, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 562089431551..0155ee25f7c8 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,8 +35,8 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx); -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); +bool eventfd_signal(struct eventfd_ctx *ctx); +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx) +static inline bool eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, - unsigned mask) +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { return -ENOSYS; } diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..a9359ef73935 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -537,7 +537,7 @@ static void io_eventfd_ops(struct rcu_head *rcu) int ops = atomic_xchg(&ev_fd->ops, 0); if (ops & BIT(IO_EVENTFD_OP_SIGNAL_BIT)) - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); /* IO_EVENTFD_OP_FREE_BIT may not be set here depending on callback * ordering in a race but if references are 0 we know we have to free @@ -573,7 +573,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) goto out; if (likely(eventfd_signal_allowed())) { - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); } else { atomic_inc(&ev_fd->refs); if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) -- 2.34.1 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 10D4AC001B0 for ; Thu, 13 Jul 2023 12:48:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DBC8510E6A0; Thu, 13 Jul 2023 12:48:45 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1ACFC10E668; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5131860A76; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64E84C43391; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242778; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/zVc+cx75jKrxPbnuju/atRsSVw8F0+lAKbEjGTw5GhMxtAmrwPy79ak+r+1ROcu IcQPyzLxGgawBBz8z8Y70v1491RsilNJTaUYxVhDVgFriZayfH8ZUfbtrhQJWLhPAH vpiBrVgRovIAIDW4KmWRfWlcJyQ9sLHY83qZhGLawBGVUmbV6BRizMJKmSIghOE/RJ YoU1DReRNExPVarbQdAYe5K1tgKCRDDRI0aDEOqPSGreY5fFjI+n/NextbBZcWkJO+ YDuiwIyJr6f+iGBS5caIbzXKnzeTSW15obZChr2oWIcmbifwKnBdNTVSGk0jqubn8w AyTVc+P60Arxg== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:37 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=23311; i=brauner@kernel.org; h=from:subject:message-id; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1N7Tzqtc8rKeaufBVx2qNr7M9C5NOKM4TWHndLF8yO8 hJ8ZdpSyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAEzkkDAjQ/Pk6ii/0+tYpaI/M26VY1 dozLZ4pFl5XfYkw2P7N38/hzP8Zn0/RcaQlUGn88TUwusronoeZx3LmbPvgfvfVff+tm9/zgMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Thu, 13 Jul 2023 12:48:29 +0000 Subject: [Intel-gfx] [PATCH 1/2] eventfd: simplify eventfd_signal() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Ever since the evenfd type was introduced back in 2007 in commit e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() function only ever passed 1 as a value for @n. There's no point in keeping that additional argument. Signed-off-by: Christian Brauner --- arch/x86/kvm/hyperv.c | 2 +- arch/x86/kvm/xen.c | 2 +- drivers/accel/habanalabs/common/device.c | 2 +- drivers/fpga/dfl.c | 2 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/misc/ocxl/file.c | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 2 +- drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- drivers/s390/crypto/vfio_ap_ops.c | 2 +- drivers/usb/gadget/function/f_fs.c | 4 ++-- drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- drivers/vhost/vdpa.c | 4 ++-- drivers/vhost/vhost.c | 10 +++++----- drivers/vhost/vhost.h | 2 +- drivers/virt/acrn/ioeventfd.c | 2 +- fs/aio.c | 2 +- fs/eventfd.c | 9 +++------ include/linux/eventfd.h | 4 ++-- mm/memcontrol.c | 10 +++++----- mm/vmpressure.c | 2 +- samples/vfio-mdev/mtty.c | 4 ++-- virt/kvm/eventfd.c | 4 ++-- 28 files changed, 56 insertions(+), 59 deletions(-) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index b28fd020066f..2f4bd74b482c 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h if (!eventfd) return HV_STATUS_INVALID_PORT_ID; - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); return HV_STATUS_SUCCESS; } diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 40edf4d1974c..a7b62bafd57b 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) if (ret < 0 && ret != -ENOTCONN) return false; } else { - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); + eventfd_signal(evtchnfd->deliver.eventfd.ctx); } *r = 0; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index b97339d1f7c6..30357b371d61 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 notifier_event->events_mask |= event_mask; if (notifier_event->eventfd) - eventfd_signal(notifier_event->eventfd, 1); + eventfd_signal(notifier_event->eventfd); mutex_unlock(¬ifier_event->lock); } diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index dd7a783d53b5..e73f88050f08 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 68eca023bbc6..3d9e09c2add4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) return -EFAULT; return 0; } diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index db5fb196c728..ad50487790ff 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, list_for_each_entry_rcu(item, fd_list, xa_list) { if (item->eventfd) - eventfd_signal(item->eventfd, 1); + eventfd_signal(item->eventfd); else deliver_event(item, data); } diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 6e63f060e4cc..51766db296ab 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) { struct eventfd_ctx *ev_ctx = private; - eventfd_signal(ev_ctx, 1); + eventfd_signal(ev_ctx); return IRQ_HANDLED; } diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c index d3f3a611f95b..38c176cf6295 100644 --- a/drivers/s390/cio/vfio_ccw_chp.c +++ b/drivers/s390/cio/vfio_ccw_chp.c @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, /* Notify the guest if more CRWs are on our queue */ if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); return ret; } diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 43601816ea4e..bfb35cfce1ef 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) - eventfd_signal(private->io_trigger, 1); + eventfd_signal(private->io_trigger); } void vfio_ccw_crw_todo(struct work_struct *work) @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) private = container_of(work, struct vfio_ccw_private, crw_work); if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); } /* diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c index 5b53b94f13c7..3df231f6feda 100644 --- a/drivers/s390/cio/vfio_ccw_ops.c +++ b/drivers/s390/cio/vfio_ccw_ops.c @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, case VFIO_IRQ_SET_DATA_NONE: { if (*ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_BOOL: @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, return -EFAULT; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_EVENTFD: @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(private->req_trigger, 1); + eventfd_signal(private->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request channel registered, blocked until released by user\n"); diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b441745b0418..feb88526ac9d 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(matrix_mdev->req_trigger, 1); + eventfd_signal(matrix_mdev->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request registered, blocked until released by user\n"); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index f41a385a5c42..ceb1aad0c5df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) io_data->kiocb->ki_complete(io_data->kiocb, ret); if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) - eventfd_signal(io_data->ffs->ffs_eventfd, 1); + eventfd_signal(io_data->ffs->ffs_eventfd); if (io_data->read) kfree(io_data->to_free); @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, ffs->ev.types[ffs->ev.count++] = type; wake_up_locked(&ffs->ev.waitq); if (ffs->ffs_eventfd) - eventfd_signal(ffs->ffs_eventfd, 1); + eventfd_signal(ffs->ffs_eventfd); } static void ffs_event_add(struct ffs_data *ffs, diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index dc38ed21319d..99b901a9e638 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) goto unlock; if (vq->kickfd) - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); else vq->kicked = true; unlock: @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, eventfd_ctx_put(vq->kickfd); vq->kickfd = ctx; if (vq->ready && vq->kicked && vq->kickfd) { - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); vq->kicked = false; } spin_unlock(&vq->kick_lock); @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) spin_lock_irq(&vq->irq_lock); if (vq->ready && vq->cb.trigger) { - eventfd_signal(vq->cb.trigger, 1); + eventfd_signal(vq->cb.trigger); signal = true; } spin_unlock_irq(&vq->irq_lock); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index c51229fccbd6..d62fbfff20b8 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) { struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; - eventfd_signal(mc_irq->trigger, 1); + eventfd_signal(mc_irq->trigger); return IRQ_HANDLED; } diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 20d7b69ea6ff..01c8e31db23b 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) */ down_write(&vdev->memory_lock); if (vdev->pm_wake_eventfd_ctx) { - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); + eventfd_signal(vdev->pm_wake_eventfd_ctx); __vfio_pci_runtime_pm_exit(vdev); } up_write(&vdev->memory_lock); @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) pci_notice_ratelimited(pdev, "Relaying device request to user (#%u)\n", count); - eventfd_signal(vdev->req_trigger, 1); + eventfd_signal(vdev->req_trigger); } else if (count == 0) { pci_warn(pdev, "No device request channel registered, blocked until released by user\n"); @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, mutex_lock(&vdev->igate); if (vdev->err_trigger) - eventfd_signal(vdev->err_trigger, 1); + eventfd_signal(vdev->err_trigger); mutex_unlock(&vdev->igate); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index cbb4bcbfbf83..237beac83809 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) ctx = vfio_irq_ctx_get(vdev, 0); if (WARN_ON_ONCE(!ctx)) return; - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, if (!ctx) continue; if (flags & VFIO_IRQ_SET_DATA_NONE) { - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t *bools = data; if (bools[i - start]) - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } return 0; @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, if (flags & VFIO_IRQ_SET_DATA_NONE) { if (*ctx) { if (count) { - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); } else { eventfd_ctx_put(*ctx); *ctx = NULL; @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, trigger = *(uint8_t *)data; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c index 665197caed89..61a1bfb68ac7 100644 --- a/drivers/vfio/platform/vfio_platform_irq.c +++ b/drivers/vfio/platform/vfio_platform_irq.c @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return ret; } @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return IRQ_HANDLED; } diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index b43e8680eee8..722894a0f124 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; if (call_ctx) - eventfd_signal(call_ctx, 1); + eventfd_signal(call_ctx); return IRQ_HANDLED; } @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) - eventfd_signal(config_ctx, 1); + eventfd_signal(config_ctx); return IRQ_HANDLED; } diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index c71d573f1c94..bee50f153c8e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, len -= l; if (!len) { if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); return 0; } } @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof vq->used->flags); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof *vhost_avail_event(vq)); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, log_used(vq, offsetof(struct vring_used, idx), sizeof vq->used->idx); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return r; } @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) { /* Signal the Guest tell them we used something up. */ if (vq->call_ctx.ctx && vhost_notify(dev, vq)) - eventfd_signal(vq->call_ctx.ctx, 1); + eventfd_signal(vq->call_ctx.ctx); } EXPORT_SYMBOL_GPL(vhost_signal); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index f60d5f7bef94..9e942fcda5c3 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, #define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ - eventfd_signal((vq)->error_ctx, 1);\ + eventfd_signal((vq)->error_ctx);\ } while (0) enum { diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c index ac4037e9f947..4e845c6ca0b5 100644 --- a/drivers/virt/acrn/ioeventfd.c +++ b/drivers/virt/acrn/ioeventfd.c @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, mutex_lock(&client->vm->ioeventfds_lock); p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); if (p) - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); mutex_unlock(&client->vm->ioeventfds_lock); return 0; diff --git a/fs/aio.c b/fs/aio.c index 77e33619de40..96cf97b19077 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) * from IRQ context. */ if (iocb->ki_eventfd) - eventfd_signal(iocb->ki_eventfd, 1); + eventfd_signal(iocb->ki_eventfd); /* * We have to order our ring_info tail store above and test diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..dc9e01053235 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) /** * eventfd_signal - Adds @n to the eventfd counter. * @ctx: [in] Pointer to the eventfd context. - * @n: [in] Value of the counter to be added to the eventfd internal counter. - * The value cannot be negative. * * This function is supposed to be called by the kernel in paths that do not * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX * value, and we signal this as overflow condition by returning a EPOLLERR * to poll(2). * - * Returns the amount by which the counter was incremented. This will be less - * than @n if the counter has overflowed. + * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +__u64 eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, n, 0); + return eventfd_signal_mask(ctx, 1, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b9d83652c097..562089431551 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); +__u64 eventfd_signal(struct eventfd_ctx *ctx); __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +static inline int eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..891550f575a1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* i = current_threshold + 1 */ i++; @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* Update current_threshold */ t->current_threshold = i - 1; @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) spin_lock(&memcg_oom_lock); list_for_each_entry(ev, &memcg->oom_notify, list) - eventfd_signal(ev->eventfd, 1); + eventfd_signal(ev->eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, /* already in OOM ? */ if (memcg->under_oom) - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) event->unregister_event(memcg, event->eventfd); /* Notify userspace the event is going away. */ - eventfd_signal(event->eventfd, 1); + eventfd_signal(event->eventfd); eventfd_ctx_put(event->eventfd); kfree(event); diff --git a/mm/vmpressure.c b/mm/vmpressure.c index b52644771cc4..ba4cdef37e42 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, continue; if (level < ev->level) continue; - eventfd_signal(ev->efd, 1); + eventfd_signal(ev->efd); ret = true; } mutex_unlock(&vmpr->events_lock); diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index a60801fb8660..5edcf8d738de 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) } if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) - ret = eventfd_signal(mdev_state->msi_evtfd, 1); + ret = eventfd_signal(mdev_state->msi_evtfd); else - ret = eventfd_signal(mdev_state->intx_evtfd, 1); + ret = eventfd_signal(mdev_state->intx_evtfd); #if defined(DEBUG_INTR) pr_info("Intx triggered\n"); diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..c0e230f4c3e9 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, srcu_read_lock_held(&resampler->kvm->irq_srcu)) - eventfd_signal(irqfd->resamplefd, 1); + eventfd_signal(irqfd->resamplefd); } /* @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, if (!ioeventfd_in_range(p, addr, len, val)) return -EOPNOTSUPP; - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); return 0; } -- 2.34.1 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4DBAAEB64DD for ; Thu, 13 Jul 2023 13:30:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 61D3210E6DB; Thu, 13 Jul 2023 13:30:33 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by gabe.freedesktop.org (Postfix) with ESMTPS id D69D810E6DB; Thu, 13 Jul 2023 13:30:30 +0000 (UTC) Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36DDLrkB004281; Thu, 13 Jul 2023 13:30:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=yIjAwsQR1wLZ8Bjld9sxVuIjhZ4yn9i9x6FCVBXNkdI=; b=mm0EKyIJVnP3MW7HMgeWPwA9lkZ5fYaP0kpNzaCk4yxx2VM58hC6JtVLIoP9ptDoDJ+C fUfj7+2LEuSNYhltq92CPGP26EEOV6n3Sx85xqmeyUAqW5PNLEZTTPMA5PwOWF8/66tO g/rmtBjDGpsPOfDxraHV1HDSxx9f92lAOOf8yv0Zd1+QBa4/mgEX9V3tBM+Tjdplnbo2 y33ArriOuXZ5VfosxwUe6DPWU4enV5ZLeqNf/M8GHQnEz2w6GZHa2Fd9ykWbMN7NALNW 3dWRXtqmGGKMzYCYy+HXCd0/fJNSfdU4lXMAhLUOfkBNbvYp1i3h98qZZB3636whGHJQ 0Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar78m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:02 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36DDMxou009349; Thu, 13 Jul 2023 13:30:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar77b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:01 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 36D743Jx011007; Thu, 13 Jul 2023 13:29:59 GMT Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3rqk4mk1aw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:29:59 +0000 Received: from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com [10.241.53.102]) by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 36DDTwut37028342 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 13 Jul 2023 13:29:58 GMT Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE9DB58056; Thu, 13 Jul 2023 13:29:57 +0000 (GMT) Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED4595803F; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Received: from [9.61.158.95] (unknown [9.61.158.95]) by smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Message-ID: Date: Thu, 13 Jul 2023 09:29:52 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Content-Language: en-US To: Christian Brauner , linux-fsdevel@vger.kernel.org References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Anthony Krowiak In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: va_EebEAOpDsN7qMG95SDcn-5a5Qwe3g X-Proofpoint-GUID: -ewp-fXzNQ4ITFG8EgqR2pY8ktrdWFdo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_05,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130114 Subject: Re: [Intel-gfx] [PATCH 1/2] eventfd: simplify eventfd_signal() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , netdev@vger.kernel.org, Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jason Herne , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" For vfio_ap_ops.c: Reviewed-by: Tony Krowiak On 7/13/23 6:05 AM, Christian Brauner wrote: > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret != -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r = 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 > notifier_event->events_mask |= event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx = private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state = VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private = container_of(work, struct vfio_ccw_private, crw_work); > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request channel registered, blocked until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request registered, blocked until released by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] = type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked = true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd = ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked = false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal = true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) > { > struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n", > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count == 0) { > pci_warn(pdev, > "No device request channel registered, blocked until released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) > ctx = vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools = data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx = NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > > trigger = *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret == IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) > { > struct vfio_platform_irq *irq_ctx = dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) > struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) > struct eventfd_ctx *config_ctx = v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, > len -= l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, > mutex_lock(&client->vm->ioeventfds_lock); > p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal counter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do not > * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLERR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will be less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i = current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold = i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret = true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) > } > > if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) > - ret = eventfd_signal(mdev_state->msi_evtfd, 1); > + ret = eventfd_signal(mdev_state->msi_evtfd); > else > - ret = eventfd_signal(mdev_state->intx_evtfd, 1); > + ret = eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq_srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 635F3EB64DD for ; Thu, 13 Jul 2023 13:35:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DF21010E6E1; Thu, 13 Jul 2023 13:35:35 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D37189316; Thu, 13 Jul 2023 13:35:33 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BE3EC612E6; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EB19C433CA; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689255331; bh=C9ZL/aINfzb4DTfI0PDdwKD/w/Hf1nA7/TiEr1Wu8NY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=ULG29s5b0Oa6BUaRvE4je7ndrfAqtpxxGKG0jbR/MyJnnociEcPTF7D0TR+M1fv6d LQMj8X4vgG172Sl3TiqE8snMj+Qu1lERArY7yIC5+dsqWtGZdih2m9oOSKzHUUDRj5 SUZd9bXbF46iPK7aiZ4Xfsgn5QC+D0oNngsQXVMAMlZPfKBLkZSYdkygtLmJ7uI3bq 6W8z1prSQ04e8EP4uuXQ7sGi+6QV8rc6uOxet8DtxSAPHAGvo0nvxRqgKGWY3al1Jn B/rs07ot3Ug577ZTDhle1hFUb13gMP8cnJn+npH/fSDPqeKRMjSmK+c/GHjZZR8OHF wA2L1In5zK2rw== Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1b8baa836a5so5703895ad.1; Thu, 13 Jul 2023 06:35:31 -0700 (PDT) X-Gm-Message-State: ABy/qLZwOP8ddVexSfB6rWRpD93eNwiCl0+V95VP5Gr08jRZeVU4jzhx yNXjGAOSYPQGwi3aW4M8WDFUoTn9YcedLMGva5I= X-Google-Smtp-Source: APBJJlFgmxFKKMX4o5RoczSZCW4vsZEnViWIJVep1sF3lemBlvWAL/cO6of628K/gm7rbjqMK5O6ldYSkO/4Nrf+UkI= X-Received: by 2002:a25:d091:0:b0:c6e:a2b0:e53c with SMTP id h139-20020a25d091000000b00c6ea2b0e53cmr1438348ybg.62.1689255309970; Thu, 13 Jul 2023 06:35:09 -0700 (PDT) MIME-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Oded Gabbay Date: Thu, 13 Jul 2023 16:34:43 +0300 X-Gmail-Original-Message-ID: Message-ID: To: Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Intel-gfx] [PATCH 1/2] eventfd: simplify eventfd_signal() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Pavel Begunkov , Eric Auger , Sean Christopherson , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, Jul 13, 2023 at 1:06=E2=80=AFPM Christian Brauner wrote: > > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu = *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vc= pu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret !=3D -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r =3D 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/hab= analabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifi= er_event *notifier_event, u64 > notifier_event->events_mask |=3D event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *a= rg) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/= gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu= *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != =3D 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) !=3D 1= ) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/ml= x5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_= list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx =3D private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_= chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_c= cw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_= drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state =3D VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private =3D container_of(work, struct vfio_ccw_private, crw_work)= ; > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_= ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device = *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request channel registered, blocked= until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio= _ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device= *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request registered, blocked until r= eleased by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/func= tion/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *= work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] =3D type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked =3D true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd =3D ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked =3D false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqu= eue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal =3D true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc= /vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num,= void *arg) > { > struct vfio_fsl_mc_irq *mc_irq =3D (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci= _core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device= *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core= _vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n"= , > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count =3D=3D 0) { > pci_warn(pdev, > "No device request channel registered, blocked un= til released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(str= uct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pc= i_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *= unused) > ctx =3D vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg= ) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci= _core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools =3D data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx =3D NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > > trigger =3D *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/pla= tform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int ir= q, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret =3D=3D IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *de= v_id) > { > struct vfio_platform_irq *irq_ctx =3D dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *priv= ate) > struct eventfd_ctx *call_ctx =3D vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private= ) > struct eventfd_ctx *config_ctx =3D v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, str= uct vhost_log *log, > len -=3D l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_vir= tqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_vi= rtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, st= ruct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vho= st_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.= c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_c= lient *client, > mutex_lock(&client->vm->ioeventfds_lock); > p =3D hsm_ioeventfd_match(client->vm, addr, val, size, req->type)= ; > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __= u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal cou= nter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do= not > * allow sleeping. In this function we allow the counter to reach the UL= LONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLE= RR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will b= e less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mas= k); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_en= try_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int= fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i >=3D 0 && unlikely(t->entries[i].threshold > usage); i--= ) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i =3D current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <=3D usage= ); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold =3D i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgro= up *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem= _cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *= work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret =3D true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state= *mdev_state) > } > > if (mdev_state->irq_index =3D=3D VFIO_PCI_MSI_IRQ_INDEX) > - ret =3D eventfd_signal(mdev_state->msi_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->msi_evtfd); > else > - ret =3D eventfd_signal(mdev_state->intx_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_ir= qfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq= _srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_= device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > > -- > 2.34.1 > For habanalabs (device.c): Reviewed-by: Oded Gabbay 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EC883C0015E for ; Thu, 13 Jul 2023 14:33:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 24BF310E0E3; Thu, 13 Jul 2023 14:33:10 +0000 (UTC) Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com [IPv6:2607:f8b0:4864:20::54a]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC6B410E6EB for ; Thu, 13 Jul 2023 14:33:07 +0000 (UTC) Received: by mail-pg1-x54a.google.com with SMTP id 41be03b00d2f7-55b2ab496ecso400663a12.2 for ; Thu, 13 Jul 2023 07:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=jacaK9M2p8ae07DYtf3WTwW4sJ88AeR0PMoTM/K8Zom80G9CNsRED8/7OkNACpL4FI vSrK+poAQrpW9b9XXAEX3N+/eJqGG0fl2uSilp/V2zhMmynFGmkNp19rQMAPCUIgro+L 8wZFnIyWuBTpd6inSk0jhwWPq/qOKDhiCmrdy2nICENUOLQPMx4zm5vkc1J+N+jf8F/9 NWijWeXBKP6nhRWfAZooF9dECtwpwP1B06LROVi+ZRGQWEPDlF+8FcWtS7IpVg38LWBC sabPszkfHQCdZSa4qO28HKir4zE3m+cUi5LtAFjCZb9xEKl25slyjVF3CoaXZrvttifT RnQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=T263ELBL+VMM2b6gyqmHBhFX+Uu/YloW+HIR+GmVtA1wcOok4XIluCRDcnnbTkPV3b ljUIKIzP200f4I/mwnFgUCWBBP+moQqoUJMe59AtZh4O959lpV7zvRQJeTKid0+RmS8K nVjMk7f6p933AJxTi/fMReKlv5FFuCFzd1+rC8F5nfexwL/Jr+q5B9Hdhjm6GWWX2duQ OfE/kz2e5RAumpAGxLUkLkCi7y9FDsDaGWPCA4DSjkreQQQd26pp7pbaFmQrC2RlXlAF Z4cCHu8Stmpn4L6nxjybZ1yjx+93ycqP8Qzy4gU2BSkH8yO4CaDc8sgrR6eveKgSnL8G xAYA== X-Gm-Message-State: ABy/qLamclffbOoV0+jRyLLnM9EtBPK/AQlufj5vbQwOXMz7I7nYyjkX YnrkcvRqspUms+nqVB479UR5gNJrGcs= X-Google-Smtp-Source: APBJJlFAAhWItEMB5PDxlVd4/XD0kDAeGPn5ZZPTnMU3ojU8FDM9Oji9AhkfLIh7rpZuc1o0H3AhYJQLwhY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:b282:b0:1ba:1704:89d1 with SMTP id u2-20020a170902b28200b001ba170489d1mr5846plr.10.1689258786828; Thu, 13 Jul 2023 07:33:06 -0700 (PDT) Date: Thu, 13 Jul 2023 07:33:05 -0700 In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Message-ID: From: Sean Christopherson To: Christian Brauner Content-Type: text/plain; charset="us-ascii" Subject: Re: [Intel-gfx] [PATCH 2/2] eventfd: simplify eventfd_signal_mask() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, Jul 13, 2023, Christian Brauner wrote: > diff --git a/fs/eventfd.c b/fs/eventfd.c > index dc9e01053235..077be5da72bd 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -43,9 +43,10 @@ struct eventfd_ctx { > int id; > }; > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > { > unsigned long flags; > + __u64 n = 1; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > - return n; > + return n == 1; > } ... > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > - unsigned mask) > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > return -ENOSYS; This will morph to "true" for what should be an error case. One option would be to have eventfd_signal_mask() return 0/-errno instead of the count, but looking at all the callers, nothing ever actually consumes the result. KVMGT morphs failure into -EFAULT if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) return -EFAULT; but the only caller of that user ignores the return value. if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) & ~GEN8_MASTER_IRQ_CONTROL) inject_virtual_interrupt(vgpu); The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an error but otherwise ignores the result. So why not return nothing? That will simplify eventfd_signal_mask() a wee bit more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { unsigned long flags; /* * Deadlock or stack overflow issues can happen if we recurse here * through waitqueue wakeup handlers. If the caller users potentially * nested waitqueues with custom wakeup handlers, then it should * check eventfd_signal_allowed() before calling this function. If * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ if (WARN_ON_ONCE(current->in_eventfd)) return; spin_lock_irqsave(&ctx->wqh.lock, flags); current->in_eventfd = 1; if (ctx->count < ULLONG_MAX) ctx->count++; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); } You could even go further and unify the real and stub versions of eventfd_signal(). 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 71742C0015E for ; Thu, 13 Jul 2023 14:52:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0924710E6F3; Thu, 13 Jul 2023 14:52:55 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFAED10E6F3; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 26627615BE; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA899C433C7; Thu, 13 Jul 2023 14:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689259971; bh=R4Hkl4iroQ+C4d3AaFA6aa52uzI7aPnAyTDDN/lwc78=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RS/6gRgqvF3ybwn8Ovqq43iLhI7Yv15SZZP2U5CNn6IhgXHQH9mo4nByA/g4W736R AkMi1WqcMsHhNrtO7dGPqCwKIYlgvLK+7FW5vJj2elL3FTubJgM81//BHDuM8QqyRP Csacjb3yQ3aRtIn7A1i9sInqtS8VRY/O0QwqwwSlh+wJ04gvPtGAbDZaSnmdfd209l vt3KpAe4HIE13hYrO1C7jusvVYug5pHUh1tQDDmm+XtqhW6CbXRqbqDYOCl1W9QxOQ VXNT8IMNIH9hLd1wzLndR4KoVQB79H/FYLq25P8lOlildm0R+bpsuSo9TwClPA0kLV csu2vX1i0ECSg== Date: Thu, 13 Jul 2023 16:52:34 +0200 From: Christian Brauner To: Sean Christopherson Message-ID: <20230713-mahnen-drosseln-fa717117e827@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Subject: Re: [Intel-gfx] [PATCH 2/2] eventfd: simplify eventfd_signal_mask() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, Jul 13, 2023 at 07:33:05AM -0700, Sean Christopherson wrote: > On Thu, Jul 13, 2023, Christian Brauner wrote: > > diff --git a/fs/eventfd.c b/fs/eventfd.c > > index dc9e01053235..077be5da72bd 100644 > > --- a/fs/eventfd.c > > +++ b/fs/eventfd.c > > @@ -43,9 +43,10 @@ struct eventfd_ctx { > > int id; > > }; > > > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > > { > > unsigned long flags; > > + __u64 n = 1; > > > > /* > > * Deadlock or stack overflow issues can happen if we recurse here > > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > current->in_eventfd = 0; > > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > > > - return n; > > + return n == 1; > > } > > ... > > > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > > return ERR_PTR(-ENOSYS); > > } > > > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > > { > > return -ENOSYS; > > } > > > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > > - unsigned mask) > > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > > { > > return -ENOSYS; > > This will morph to "true" for what should be an error case. One option would be Ewww, that means it did return -ENOSYS before any of this. > to have eventfd_signal_mask() return 0/-errno instead of the count, but looking > at all the callers, nothing ever actually consumes the result. > > KVMGT morphs failure into -EFAULT > > if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > return -EFAULT; > > but the only caller of that user ignores the return value. > > if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) > & ~GEN8_MASTER_IRQ_CONTROL) > inject_virtual_interrupt(vgpu); > > The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an > error but otherwise ignores the result. > > So why not return nothing? That will simplify eventfd_signal_mask() a wee bit > more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. Yeah, it used to return an int in the non-eventfd and a __u64 in the eventfd case. > > void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > unsigned long flags; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > * through waitqueue wakeup handlers. If the caller users potentially > * nested waitqueues with custom wakeup handlers, then it should > * check eventfd_signal_allowed() before calling this function. If > * it returns false, the eventfd_signal() call should be deferred to a > * safe context. > */ > if (WARN_ON_ONCE(current->in_eventfd)) > return; > > spin_lock_irqsave(&ctx->wqh.lock, flags); > current->in_eventfd = 1; > if (ctx->count < ULLONG_MAX) > ctx->count++; > if (waitqueue_active(&ctx->wqh)) > wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > } > > You could even go further and unify the real and stub versions of eventfd_signal(). The reason I didn't make eventfd_signal_mask() return void was that it was called from eventfd_signal() which did, I didn't realize the caller didn't actually consume the return value. If we can let both return void it gets simpler. Thanks for that. 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A9CA5C0015E for ; Thu, 13 Jul 2023 16:43:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 47D3310E727; Thu, 13 Jul 2023 16:43:54 +0000 (UTC) Received: from emeril.freedesktop.org (emeril.freedesktop.org [131.252.210.167]) by gabe.freedesktop.org (Postfix) with ESMTP id 8739910E727; Thu, 13 Jul 2023 16:43:52 +0000 (UTC) Received: from emeril.freedesktop.org (localhost [127.0.0.1]) by emeril.freedesktop.org (Postfix) with ESMTP id 7D684AADE4; Thu, 13 Jul 2023 16:43:52 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Patchwork To: "Christian Brauner" Date: Thu, 13 Jul 2023 16:43:52 -0000 Message-ID: <168926663247.14984.6090726864916493580@emeril.freedesktop.org> X-Patchwork-Hint: ignore References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Subject: [Intel-gfx] =?utf-8?b?4pyXIEZpLkNJLkNIRUNLUEFUQ0g6IHdhcm5pbmcg?= =?utf-8?q?for_eventfd=3A_simplify_signal_helpers?= X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: intel-gfx@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" == Series Details == Series: eventfd: simplify signal helpers URL : https://patchwork.freedesktop.org/series/120668/ State : warning == Summary == Error: dim checkpatch failed aae8a1d97489 eventfd: simplify eventfd_signal() -:436: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (16, 32) #436: FILE: drivers/vhost/vhost.h:251: if ((vq)->error_ctx) \ + eventfd_signal((vq)->error_ctx);\ total: 0 errors, 1 warnings, 0 checks, 439 lines checked 6b3c28be92b7 eventfd: simplify eventfd_signal_mask() -:89: WARNING:UNSPECIFIED_INT: Prefer 'unsigned int' to bare use of 'unsigned' #89: FILE: include/linux/eventfd.h:66: +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) total: 0 errors, 1 warnings, 0 checks, 79 lines checked 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 91500C001DD for ; Thu, 13 Jul 2023 16:43:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 15F1710E731; Thu, 13 Jul 2023 16:43:57 +0000 (UTC) Received: from emeril.freedesktop.org (emeril.freedesktop.org [131.252.210.167]) by gabe.freedesktop.org (Postfix) with ESMTP id CFC1210E731; Thu, 13 Jul 2023 16:43:54 +0000 (UTC) Received: from emeril.freedesktop.org (localhost [127.0.0.1]) by emeril.freedesktop.org (Postfix) with ESMTP id C9FF1ACC1F; Thu, 13 Jul 2023 16:43:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Patchwork To: "Christian Brauner" Date: Thu, 13 Jul 2023 16:43:54 -0000 Message-ID: <168926663482.14983.3318025820258270149@emeril.freedesktop.org> X-Patchwork-Hint: ignore References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Subject: [Intel-gfx] =?utf-8?b?4pyXIEZpLkNJLlNQQVJTRTogd2FybmluZyBmb3Ig?= =?utf-8?q?eventfd=3A_simplify_signal_helpers?= X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: intel-gfx@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" == Series Details == Series: eventfd: simplify signal helpers URL : https://patchwork.freedesktop.org/series/120668/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 09A3AC001B0 for ; Thu, 13 Jul 2023 16:57:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4AC3E10E715; Thu, 13 Jul 2023 16:57:45 +0000 (UTC) Received: from emeril.freedesktop.org (emeril.freedesktop.org [131.252.210.167]) by gabe.freedesktop.org (Postfix) with ESMTP id EEBD010E715; Thu, 13 Jul 2023 16:57:42 +0000 (UTC) Received: from emeril.freedesktop.org (localhost [127.0.0.1]) by emeril.freedesktop.org (Postfix) with ESMTP id E5C95A47E9; Thu, 13 Jul 2023 16:57:42 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============5734108251641509853==" MIME-Version: 1.0 From: Patchwork To: "Christian Brauner" Date: Thu, 13 Jul 2023 16:57:42 -0000 Message-ID: <168926746292.14982.6270490385956870467@emeril.freedesktop.org> X-Patchwork-Hint: ignore References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Subject: [Intel-gfx] =?utf-8?b?4pyTIEZpLkNJLkJBVDogc3VjY2VzcyBmb3IgZXZl?= =?utf-8?q?ntfd=3A_simplify_signal_helpers?= X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: intel-gfx@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" --===============5734108251641509853== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit == Series Details == Series: eventfd: simplify signal helpers URL : https://patchwork.freedesktop.org/series/120668/ State : success == Summary == CI Bug Log - changes from CI_DRM_13383 -> Patchwork_120668v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html Participating hosts (42 -> 41) ------------------------------ Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_120668v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_auth@basic-auth: - bat-adlp-11: NOTRUN -> [ABORT][1] ([i915#4423] / [i915#8011]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlp-11/igt@core_auth@basic-auth.html * igt@i915_pm_rpm@basic-pci-d3-state: - fi-cfl-8700k: [PASS][2] -> [FAIL][3] ([i915#7940]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/fi-cfl-8700k/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@i915_pm_rpm@basic-rte: - fi-kbl-x1275: [PASS][4] -> [FAIL][5] ([i915#8843]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/fi-kbl-x1275/igt@i915_pm_rpm@basic-rte.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/fi-kbl-x1275/igt@i915_pm_rpm@basic-rte.html - bat-adlp-9: [PASS][6] -> [ABORT][7] ([i915#7977] / [i915#8668]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-adlp-9/igt@i915_pm_rpm@basic-rte.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlp-9/igt@i915_pm_rpm@basic-rte.html * igt@i915_selftest@live@requests: - bat-mtlp-6: [PASS][8] -> [DMESG-FAIL][9] ([i915#7269]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-mtlp-6/igt@i915_selftest@live@requests.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-mtlp-6/igt@i915_selftest@live@requests.html * igt@i915_selftest@live@reset: - bat-rpls-1: [PASS][10] -> [ABORT][11] ([i915#4983] / [i915#7461] / [i915#8347] / [i915#8384]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-rpls-1/igt@i915_selftest@live@reset.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-rpls-1/igt@i915_selftest@live@reset.html - bat-rpls-2: [PASS][12] -> [ABORT][13] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#8347]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-rpls-2/igt@i915_selftest@live@reset.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-rpls-2/igt@i915_selftest@live@reset.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-adlm-1: NOTRUN -> [SKIP][14] ([i915#7828]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlm-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-adlm-1: NOTRUN -> [SKIP][15] ([i915#1845]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlm-1/igt@kms_pipe_crc_basic@suspend-read-crc.html #### Possible fixes #### * igt@i915_pm_rpm@module-reload: - fi-skl-guc: [FAIL][16] ([i915#7940]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/fi-skl-guc/igt@i915_pm_rpm@module-reload.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/fi-skl-guc/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live@execlists: - fi-kbl-soraka: [INCOMPLETE][18] ([i915#7156] / [i915#7913]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/fi-kbl-soraka/igt@i915_selftest@live@execlists.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/fi-kbl-soraka/igt@i915_selftest@live@execlists.html * igt@i915_selftest@live@gt_mocs: - bat-mtlp-6: [DMESG-FAIL][20] ([i915#7059]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html * igt@i915_selftest@live@migrate: - bat-atsm-1: [DMESG-FAIL][22] ([i915#7699] / [i915#7913]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-atsm-1/igt@i915_selftest@live@migrate.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-atsm-1/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@workarounds: - bat-adlm-1: [INCOMPLETE][24] ([i915#4983] / [i915#7677]) -> [PASS][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-adlm-1/igt@i915_selftest@live@workarounds.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlm-1/igt@i915_selftest@live@workarounds.html #### Warnings #### * igt@i915_module_load@load: - bat-adlp-11: [ABORT][26] ([i915#4423]) -> [DMESG-WARN][27] ([i915#4423]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-adlp-11/igt@i915_module_load@load.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-adlp-11/igt@i915_module_load@load.html * igt@kms_psr@primary_page_flip: - bat-rplp-1: [SKIP][28] ([i915#1072]) -> [ABORT][29] ([i915#8860]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/bat-rplp-1/igt@kms_psr@primary_page_flip.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/bat-rplp-1/igt@kms_psr@primary_page_flip.html [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059 [i915#7156]: https://gitlab.freedesktop.org/drm/intel/issues/7156 [i915#7269]: https://gitlab.freedesktop.org/drm/intel/issues/7269 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7677]: https://gitlab.freedesktop.org/drm/intel/issues/7677 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940 [i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347 [i915#8384]: https://gitlab.freedesktop.org/drm/intel/issues/8384 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#8843]: https://gitlab.freedesktop.org/drm/intel/issues/8843 [i915#8860]: https://gitlab.freedesktop.org/drm/intel/issues/8860 Build changes ------------- * Linux: CI_DRM_13383 -> Patchwork_120668v1 CI-20190529: 20190529 CI_DRM_13383: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7386: 54dc25efaf10d87962f95be9b1d1a8f0f907912b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120668v1: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits bfd70b00ef5b eventfd: simplify eventfd_signal_mask() 01379f104ffe eventfd: simplify eventfd_signal() == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html --===============5734108251641509853== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Project List - Patchwork Patch Details
Series:eventfd: simplify signal helpers
URL:https://patchwork.freedesktop.org/series/120668/
State:success
Details:https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html

CI Bug Log - changes from CI_DRM_13383 -> Patchwork_120668v1

Summary

SUCCESS

No regressions found.

External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html

Participating hosts (42 -> 41)

Missing (1): fi-snb-2520m

Known issues

Here are the changes found in Patchwork_120668v1 that come from known issues:

IGT changes

Issues hit

Possible fixes

Warnings

Build changes

  • Linux: CI_DRM_13383 -> Patchwork_120668v1

CI-20190529: 20190529
CI_DRM_13383: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7386: 54dc25efaf10d87962f95be9b1d1a8f0f907912b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_120668v1: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux

Linux commits

bfd70b00ef5b eventfd: simplify eventfd_signal_mask()
01379f104ffe eventfd: simplify eventfd_signal()

--===============5734108251641509853==-- 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2F9F9C001B0 for ; Thu, 13 Jul 2023 17:11:07 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B69210E74C; Thu, 13 Jul 2023 17:11:03 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8A4A10E737 for ; Thu, 13 Jul 2023 17:11:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=gNfBuFkf0gGu6EVWbDwoyiU8boJV7eRq6L3WSboaHg0RAldYAOV74SvuSMS+x9W+rsPL/m BKOFbjtxsjuIxIyC6zdpsd+oXETnMFGRgtb7c+TCRAtzOQbPlNeRoBjm9fX9rU5uS/IkH4 Utl8POcE6XSSrdOtWXvbguHI7QlEQoE= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-8GBvsTcQPoO8Xwh8VPBgzQ-1; Thu, 13 Jul 2023 13:10:57 -0400 X-MC-Unique: 8GBvsTcQPoO8Xwh8VPBgzQ-1 Received: by mail-il1-f200.google.com with SMTP id e9e14a558f8ab-345c1f3dcc8so4533645ab.3 for ; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689268257; x=1691860257; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=iT3hfdCEwH/MsTFQJEflhWjJ7BRjCNZbSuxM8RLb0bNn8CGRweFesjAfQ8zlycH4Jm vZT1dIeshsVbv675FbYzKYBqOEtCt4m7wrFXRL3CmtemSFHFvpqux3sPxXRVrhCXoBXP YQafrhjaZGYs2ZsdAcIWMbgKaSGUedfc6snSFO1pxY8g2BqZvIR5XPLJYMsntGysYtnL m7zdncCl6MerOOtvoKnjmDra+2tmrmlW/yLLOMENzhtnpqYD3R3fKj06Iq0l9rpn89Rp k9hAXkCw8Zlh/19jSPNXBbZnHeutmH2E/CNrfsUIqLog+jtLWIraHL2Azjf+mjDAO0Jv 2K3g== X-Gm-Message-State: ABy/qLbPACjE+gaxgykh0LcwjjhsHjFWAOFu5iLzE9+TT3DVqU8FUFm8 TZg2JxCOS6xuDVXsAisB1XWBUHydJTcKb6ZM3e1UWngW5vMacExcStBenc2YcLdyJF/RhovoKDB i1AGa8DYGAtOKsgD0y6kskkjIq92z X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980593ile.32.1689268257121; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYzBd2cy5+vbqrqBW5hcL0Nlt03XvoKU7EVc2Oqt6qt/39DAJLG7+eJes4a+aimrEVLy/slQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980544ile.32.1689268256865; Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Received: from redhat.com ([38.15.36.239]) by smtp.gmail.com with ESMTPSA id el20-20020a0566384d9400b0042b61a5087csm1948085jab.132.2023.07.13.10.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Date: Thu, 13 Jul 2023 11:10:54 -0600 From: Alex Williamson To: Christian Brauner Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Organization: Red Hat MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Intel-gfx] [PATCH 0/2] eventfd: simplify signal helpers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, Muchun Song , Tony Krowiak , Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Roman Gushchin , dri-devel@lists.freedesktop.org, Michal Hocko , Heiko Carstens , linux-mm@kvack.org, Kirti Wankhede , Vineeth Vijayan , Diana Craciun , Borislav Petkov , Alexander Gordeev , Fei Li , Xuan Zhuo , Arnd Bergmann , Leon Romanovsky , jaz@semihalf.com, linux-rdma@vger.kernel.org, x86@kernel.org, Halil Pasic , Jason Gunthorpe , Ingo Molnar , Moritz Fischer , Frederic Barrat , Xu Yilun , Christian Borntraeger , linux-fpga@vger.kernel.org, Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Vasily Gorbik , linux-s390@vger.kernel.org, Greg Kroah-Hartman , intel-gfx@lists.freedesktop.org, Sean Christopherson , Eric Auger , Rodrigo Vivi , Harald Freudenberger , kvm@vger.kernel.org, Paolo Bonzini , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jens Axboe , netdev@vger.kernel.org, Oded Gabbay , linux-usb@vger.kernel.org, Peter Oberparleiter , linux-kernel@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Shakeel Butt , Vitaly Kuznetsov , David Woodhouse , linuxppc-dev@lists.ozlabs.org, Pavel Begunkov Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B02AAC0015E for ; Thu, 13 Jul 2023 21:43:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 29BDE10E791; Thu, 13 Jul 2023 21:43:30 +0000 (UTC) Received: from emeril.freedesktop.org (emeril.freedesktop.org [131.252.210.167]) by gabe.freedesktop.org (Postfix) with ESMTP id 5741810E02A; Thu, 13 Jul 2023 21:43:28 +0000 (UTC) Received: from emeril.freedesktop.org (localhost [127.0.0.1]) by emeril.freedesktop.org (Postfix) with ESMTP id 4EEB6AA01E; Thu, 13 Jul 2023 21:43:28 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============0538253774230186284==" MIME-Version: 1.0 From: Patchwork To: "Christian Brauner" Date: Thu, 13 Jul 2023 21:43:28 -0000 Message-ID: <168928460828.14985.15215023933288364599@emeril.freedesktop.org> X-Patchwork-Hint: ignore References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Subject: [Intel-gfx] =?utf-8?b?4pyTIEZpLkNJLklHVDogc3VjY2VzcyBmb3IgZXZl?= =?utf-8?q?ntfd=3A_simplify_signal_helpers?= X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: intel-gfx@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" --===============0538253774230186284== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit == Series Details == Series: eventfd: simplify signal helpers URL : https://patchwork.freedesktop.org/series/120668/ State : success == Summary == CI Bug Log - changes from CI_DRM_13383_full -> Patchwork_120668v1_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts New tests --------- New tests have been introduced between CI_DRM_13383_full and Patchwork_120668v1_full: ### New IGT tests (1) ### * igt@kms_invalid_mode@bad-htotal@hdmi-a-2-pipe-d: - Statuses : 1 pass(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in Patchwork_120668v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@drm_fdinfo@busy-hang@bcs0: - shard-dg2: NOTRUN -> [SKIP][1] ([i915#8414]) +9 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@drm_fdinfo@busy-hang@bcs0.html * igt@drm_fdinfo@most-busy-idle-check-all@rcs0: - shard-rkl: [PASS][2] -> [FAIL][3] ([i915#7742]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-7/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-1/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html * igt@gem_basic@multigpu-create-close: - shard-dg2: NOTRUN -> [SKIP][4] ([i915#7697]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_basic@multigpu-create-close.html * igt@gem_caching@writes: - shard-mtlp: NOTRUN -> [SKIP][5] ([i915#4873]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@gem_caching@writes.html * igt@gem_exec_balancer@bonded-sync: - shard-dg2: NOTRUN -> [SKIP][6] ([i915#4771]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_exec_balancer@bonded-sync.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglu: [PASS][7] -> [FAIL][8] ([i915#2842]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-tglu-6/igt@gem_exec_fair@basic-pace-share@rcs0.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-rkl: [PASS][9] -> [FAIL][10] ([i915#2842]) +2 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-6/igt@gem_exec_fair@basic-pace@vecs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-2/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_exec_flush@basic-uc-set-default: - shard-dg2: NOTRUN -> [SKIP][11] ([i915#3539]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_exec_flush@basic-uc-set-default.html * igt@gem_exec_reloc@basic-gtt-read: - shard-dg2: NOTRUN -> [SKIP][12] ([i915#3281]) +1 similar issue [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_exec_reloc@basic-gtt-read.html * igt@gem_exec_schedule@pi-ringfull@ccs0: - shard-mtlp: [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-7/igt@gem_exec_schedule@pi-ringfull@ccs0.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-6/igt@gem_exec_schedule@pi-ringfull@ccs0.html * igt@gem_exec_whisper@basic-contexts-priority-all: - shard-mtlp: [PASS][15] -> [ABORT][16] ([i915#8131]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-5/igt@gem_exec_whisper@basic-contexts-priority-all.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-8/igt@gem_exec_whisper@basic-contexts-priority-all.html * igt@gem_media_vme: - shard-dg2: NOTRUN -> [SKIP][17] ([i915#284]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_media_vme.html * igt@gem_mmap_wc@close: - shard-dg2: NOTRUN -> [SKIP][18] ([i915#4083]) +3 similar issues [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_mmap_wc@close.html * igt@gem_pxp@reject-modify-context-protection-off-1: - shard-dg2: NOTRUN -> [SKIP][19] ([i915#4270]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_pxp@reject-modify-context-protection-off-1.html * igt@gem_userptr_blits@coherency-unsync: - shard-dg2: NOTRUN -> [SKIP][20] ([i915#3297]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_userptr_blits@coherency-unsync.html * igt@gem_userptr_blits@forbidden-operations: - shard-dg2: NOTRUN -> [SKIP][21] ([i915#3282]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_userptr_blits@forbidden-operations.html * igt@gem_userptr_blits@map-fixed-invalidate-overlap: - shard-dg2: NOTRUN -> [SKIP][22] ([i915#3297] / [i915#4880]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html * igt@gen9_exec_parse@unaligned-jump: - shard-dg2: NOTRUN -> [SKIP][23] ([i915#2856]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@gen9_exec_parse@unaligned-jump.html * igt@i915_pm_rpm@cursor-dpms: - shard-tglu: [PASS][24] -> [FAIL][25] ([i915#7940]) +1 similar issue [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-tglu-7/igt@i915_pm_rpm@cursor-dpms.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-tglu-4/igt@i915_pm_rpm@cursor-dpms.html * igt@i915_pm_rpm@modeset-lpsp-stress: - shard-dg2: [PASS][26] -> [SKIP][27] ([i915#1397]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-12/igt@i915_pm_rpm@modeset-lpsp-stress.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-2/igt@i915_pm_rpm@modeset-lpsp-stress.html * igt@i915_pm_rpm@modeset-non-lpsp: - shard-rkl: [PASS][28] -> [SKIP][29] ([i915#1397]) +1 similar issue [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-2/igt@i915_pm_rpm@modeset-non-lpsp.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp.html * igt@i915_selftest@live@gt_mocs: - shard-mtlp: [PASS][30] -> [DMESG-FAIL][31] ([i915#7059]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-2/igt@i915_selftest@live@gt_mocs.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-6/igt@i915_selftest@live@gt_mocs.html * igt@i915_selftest@live@requests: - shard-mtlp: [PASS][32] -> [DMESG-FAIL][33] ([i915#8497]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-2/igt@i915_selftest@live@requests.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-6/igt@i915_selftest@live@requests.html * igt@kms_addfb_basic@tile-pitch-mismatch: - shard-dg2: NOTRUN -> [SKIP][34] ([i915#4212]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_async_flips@crc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [FAIL][35] ([i915#8247]) +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-4/igt@kms_async_flips@crc@pipe-a-hdmi-a-2.html * igt@kms_big_fb@4-tiled-64bpp-rotate-180: - shard-mtlp: [PASS][36] -> [FAIL][37] ([i915#5138]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-1/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-3/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip: - shard-mtlp: [PASS][38] -> [FAIL][39] ([i915#3743]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html * igt@kms_big_fb@y-tiled-8bpp-rotate-180: - shard-dg2: NOTRUN -> [SKIP][40] ([i915#5190]) +1 similar issue [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-180: - shard-dg2: NOTRUN -> [SKIP][41] ([i915#4538] / [i915#5190]) +1 similar issue [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - shard-mtlp: NOTRUN -> [SKIP][42] ([i915#3886] / [i915#6095]) +2 similar issues [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs: - shard-dg2: NOTRUN -> [SKIP][43] ([i915#3689] / [i915#5354]) +8 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs.html * igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_rc_ccs: - shard-mtlp: NOTRUN -> [SKIP][44] ([i915#6095]) +1 similar issue [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_rc_ccs.html * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][45] ([i915#4087]) +3 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-6/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html * igt@kms_chamelium_edid@dp-edid-change-during-suspend: - shard-dg2: NOTRUN -> [SKIP][46] ([i915#7828]) +2 similar issues [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html * igt@kms_chamelium_hpd@vga-hpd-without-ddc: - shard-mtlp: NOTRUN -> [SKIP][47] ([i915#7828]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html * igt@kms_color@deep-color: - shard-rkl: NOTRUN -> [SKIP][48] ([i915#3555]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-2/igt@kms_color@deep-color.html * igt@kms_content_protection@atomic-dpms: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#7118]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-10/igt@kms_content_protection@atomic-dpms.html * igt@kms_cursor_crc@cursor-offscreen-max-size: - shard-dg2: NOTRUN -> [SKIP][50] ([i915#3555]) +1 similar issue [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_cursor_crc@cursor-offscreen-max-size.html * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size: - shard-dg2: NOTRUN -> [SKIP][51] ([fdo#109274] / [i915#5354]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [PASS][52] -> [FAIL][53] ([i915#2346]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_dsc@dsc-basic: - shard-dg2: NOTRUN -> [SKIP][54] ([i915#3555] / [i915#3840]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_dsc@dsc-basic.html * igt@kms_fbcon_fbt@psr-suspend: - shard-dg2: NOTRUN -> [SKIP][55] ([i915#3469]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3: - shard-dg2: [PASS][56] -> [FAIL][57] ([fdo#103375]) +2 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-7/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt: - shard-mtlp: NOTRUN -> [SKIP][58] ([i915#8708]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite: - shard-dg2: NOTRUN -> [SKIP][59] ([i915#3458]) +2 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite: - shard-dg2: NOTRUN -> [SKIP][60] ([i915#5354]) +7 similar issues [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][61] ([i915#8708]) +3 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt: - shard-mtlp: NOTRUN -> [SKIP][62] ([i915#1825]) +3 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html * igt@kms_hdr@bpc-switch-dpms: - shard-dg2: NOTRUN -> [SKIP][63] ([i915#3555] / [i915#8228]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-10/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c: - shard-dg2: NOTRUN -> [SKIP][64] ([fdo#109289]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c.html * igt@kms_plane_scaling@2x-scaler-multi-pipe: - shard-mtlp: NOTRUN -> [SKIP][65] ([i915#3546]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-4/igt@kms_plane_scaling@2x-scaler-multi-pipe.html * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-d-dp-4: - shard-dg2: NOTRUN -> [SKIP][66] ([i915#5176]) +11 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-d-dp-4.html * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][67] ([i915#5176]) +3 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-7/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-1: - shard-snb: NOTRUN -> [SKIP][68] ([fdo#109271]) +19 similar issues [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-snb1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2: - shard-dg2: NOTRUN -> [SKIP][69] ([i915#5235]) +19 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][70] ([i915#5235]) +7 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-1/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-2.html * igt@kms_psr@psr2_dpms: - shard-dg2: NOTRUN -> [SKIP][71] ([i915#1072]) +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@kms_psr@psr2_dpms.html * igt@prime_udl: - shard-dg2: NOTRUN -> [SKIP][72] ([fdo#109291]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@prime_udl.html * igt@tools_test@sysfs_l3_parity: - shard-dg2: NOTRUN -> [SKIP][73] ([i915#4818]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@tools_test@sysfs_l3_parity.html * igt@v3d/v3d_submit_cl@bad-bo: - shard-dg2: NOTRUN -> [SKIP][74] ([i915#2575]) +2 similar issues [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@v3d/v3d_submit_cl@bad-bo.html * igt@vc4/vc4_purgeable_bo@mark-willneed: - shard-dg2: NOTRUN -> [SKIP][75] ([i915#7711]) +1 similar issue [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@vc4/vc4_purgeable_bo@mark-willneed.html #### Possible fixes #### * igt@gem_create@hog-create@smem0: - shard-dg2: [FAIL][76] ([i915#5892] / [i915#8758]) -> [PASS][77] [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-12/igt@gem_create@hog-create@smem0.html [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-2/igt@gem_create@hog-create@smem0.html * igt@gem_exec_fair@basic-none@bcs0: - shard-rkl: [FAIL][78] ([i915#2842]) -> [PASS][79] +1 similar issue [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-7/igt@gem_exec_fair@basic-none@bcs0.html [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-4/igt@gem_exec_fair@basic-none@bcs0.html * igt@gem_exec_whisper@basic-contexts-forked-all: - shard-mtlp: [TIMEOUT][80] ([i915#8628]) -> [PASS][81] [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-3/igt@gem_exec_whisper@basic-contexts-forked-all.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-5/igt@gem_exec_whisper@basic-contexts-forked-all.html * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg2: [TIMEOUT][82] ([i915#5493]) -> [PASS][83] [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-8/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@i915_module_load@reload-with-fault-injection: - shard-dg2: [DMESG-WARN][84] ([i915#7061]) -> [PASS][85] [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-8/igt@i915_module_load@reload-with-fault-injection.html [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-1/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a: - {shard-dg1}: [SKIP][86] ([i915#1937]) -> [PASS][87] [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg1-16/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg1-19/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html * igt@i915_pm_rc6_residency@rc6-idle@vecs0: - {shard-dg1}: [FAIL][88] ([i915#3591]) -> [PASS][89] [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp: - shard-dg2: [SKIP][90] ([i915#1397]) -> [PASS][91] +3 similar issues [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-12/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-2/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@i915_pm_rpm@dpms-non-lpsp: - shard-rkl: [SKIP][92] ([i915#1397]) -> [PASS][93] +2 similar issues [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-7/igt@i915_pm_rpm@dpms-non-lpsp.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-2/igt@i915_pm_rpm@dpms-non-lpsp.html * igt@i915_pm_rpm@gem-execbuf-stress@smem0: - {shard-dg1}: [FAIL][94] ([i915#7940]) -> [PASS][95] [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg1-14/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg1-12/igt@i915_pm_rpm@gem-execbuf-stress@smem0.html * igt@i915_pm_rpm@gem-execbuf@smem0: - shard-tglu: [FAIL][96] ([i915#7940]) -> [PASS][97] [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-tglu-4/igt@i915_pm_rpm@gem-execbuf@smem0.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-tglu-9/igt@i915_pm_rpm@gem-execbuf@smem0.html * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1: - shard-mtlp: [FAIL][98] ([i915#2521]) -> [PASS][99] [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-5/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-8/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip: - shard-mtlp: [FAIL][100] ([i915#3743]) -> [PASS][101] +2 similar issues [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-mtlp: [FAIL][102] ([i915#5138]) -> [PASS][103] +1 similar issue [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-apl: [FAIL][104] ([i915#2346]) -> [PASS][105] [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-apl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][106] ([i915#79]) -> [PASS][107] [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend: - shard-dg2: [FAIL][108] ([fdo#103375]) -> [PASS][109] +1 similar issue [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-5/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html #### Warnings #### * igt@device_reset@unbind-reset-rebind: - shard-dg2: [ABORT][110] ([i915#5507] / [i915#7461] / [i915#8260]) -> [ABORT][111] ([i915#5507] / [i915#8260]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-3/igt@device_reset@unbind-reset-rebind.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-11/igt@device_reset@unbind-reset-rebind.html * igt@i915_suspend@fence-restore-untiled: - shard-snb: [DMESG-FAIL][112] ([fdo#103375]) -> [DMESG-WARN][113] ([i915#8841]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-snb7/igt@i915_suspend@fence-restore-untiled.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-snb6/igt@i915_suspend@fence-restore-untiled.html * igt@kms_content_protection@mei_interface: - shard-dg2: [SKIP][114] ([i915#7118]) -> [SKIP][115] ([i915#7118] / [i915#7162]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-dg2-6/igt@kms_content_protection@mei_interface.html [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-dg2-12/igt@kms_content_protection@mei_interface.html * igt@kms_fbcon_fbt@psr-suspend: - shard-rkl: [SKIP][116] ([fdo#110189] / [i915#3955]) -> [SKIP][117] ([i915#3955]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-2/igt@kms_fbcon_fbt@psr-suspend.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-4/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_force_connector_basic@force-load-detect: - shard-rkl: [SKIP][118] ([fdo#109285] / [i915#4098]) -> [SKIP][119] ([fdo#109285]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-1/igt@kms_force_connector_basic@force-load-detect.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-6/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-rkl: [SKIP][120] ([i915#4070] / [i915#4816]) -> [SKIP][121] ([i915#4816]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13383/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816 [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493 [i915#5507]: https://gitlab.freedesktop.org/drm/intel/issues/5507 [i915#5892]: https://gitlab.freedesktop.org/drm/intel/issues/5892 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059 [i915#7061]: https://gitlab.freedesktop.org/drm/intel/issues/7061 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#7940]: https://gitlab.freedesktop.org/drm/intel/issues/7940 [i915#8131]: https://gitlab.freedesktop.org/drm/intel/issues/8131 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247 [i915#8260]: https://gitlab.freedesktop.org/drm/intel/issues/8260 [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414 [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497 [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502 [i915#8628]: https://gitlab.freedesktop.org/drm/intel/issues/8628 [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708 [i915#8758]: https://gitlab.freedesktop.org/drm/intel/issues/8758 [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841 Build changes ------------- * Linux: CI_DRM_13383 -> Patchwork_120668v1 CI-20190529: 20190529 CI_DRM_13383: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7386: 54dc25efaf10d87962f95be9b1d1a8f0f907912b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_120668v1: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html --===============0538253774230186284== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Project List - Patchwork Patch Details
Series:eventfd: simplify signal helpers
URL:https://patchwork.freedesktop.org/series/120668/
State:success
Details:https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_120668v1/index.html

CI Bug Log - changes from CI_DRM_13383_full -> Patchwork_120668v1_full

Summary

SUCCESS

No regressions found.

Participating hosts (10 -> 10)

No changes in participating hosts

New tests

New tests have been introduced between CI_DRM_13383_full and Patchwork_120668v1_full:

New IGT tests (1)

  • igt@kms_invalid_mode@bad-htotal@hdmi-a-2-pipe-d:
    • Statuses : 1 pass(s)
    • Exec time: [0.0] s

Known issues

Here are the changes found in Patchwork_120668v1_full that come from known issues:

IGT changes

Issues hit

  • igt@drm_fdinfo@busy-hang@bcs0:

  • igt@drm_fdinfo@most-busy-idle-check-all@rcs0:

  • igt@gem_basic@multigpu-create-close:

  • igt@gem_caching@writes:

  • igt@gem_exec_balancer@bonded-sync:

  • igt@gem_exec_fair@basic-pace-share@rcs0:

  • igt@gem_exec_fair@basic-pace@vecs0:

  • igt@gem_exec_flush@basic-uc-set-default:

  • igt@gem_exec_reloc@basic-gtt-read:

  • igt@gem_exec_schedule@pi-ringfull@ccs0:

  • igt@gem_exec_whisper@basic-contexts-priority-all:

  • igt@gem_media_vme:

  • igt@gem_mmap_wc@close:

  • igt@gem_pxp@reject-modify-context-protection-off-1:

  • igt@gem_userptr_blits@coherency-unsync:

  • igt@gem_userptr_blits@forbidden-operations:

  • igt@gem_userptr_blits@map-fixed-invalidate-overlap:

  • igt@gen9_exec_parse@unaligned-jump:

  • igt@i915_pm_rpm@cursor-dpms:

  • igt@i915_pm_rpm@modeset-lpsp-stress:

  • igt@i915_pm_rpm@modeset-non-lpsp:

  • igt@i915_selftest@live@gt_mocs:

  • igt@i915_selftest@live@requests:

  • igt@kms_addfb_basic@tile-pitch-mismatch:

  • igt@kms_async_flips@crc@pipe-a-hdmi-a-2:

  • igt@kms_big_fb@4-tiled-64bpp-rotate-180:

  • igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:

  • igt@kms_big_fb@y-tiled-8bpp-rotate-180:

  • igt@kms_big_fb@yf-tiled-64bpp-rotate-180:

  • igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:

  • igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs:

  • igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_rc_ccs:

  • igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:

  • igt@kms_chamelium_edid@dp-edid-change-during-suspend:

  • igt@kms_chamelium_hpd@vga-hpd-without-ddc:

  • igt@kms_color@deep-color:

  • igt@kms_content_protection@atomic-dpms:

  • igt@kms_cursor_crc@cursor-offscreen-max-size:

  • igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:

  • igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:

  • igt@kms_dsc@dsc-basic:

  • igt@kms_fbcon_fbt@psr-suspend:

  • igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a3:

  • igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt:

  • igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:

  • igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite:

  • igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt:

  • igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt:

  • igt@kms_hdr@bpc-switch-dpms:

  • igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c:

  • igt@kms_plane_scaling@2x-scaler-multi-pipe:

  • igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-d-dp-4:

  • igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-1:

  • igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b-hdmi-a-1:

  • igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-2:

  • igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-2:

  • igt@kms_psr@psr2_dpms:

  • igt@prime_udl:

  • igt@tools_test@sysfs_l3_parity:

  • igt@v3d/v3d_submit_cl@bad-bo:

  • igt@vc4/vc4_purgeable_bo@mark-willneed:

Possible fixes

  • igt@gem_create@hog-create@smem0:

  • igt@gem_exec_fair@basic-none@bcs0:

  • igt@gem_exec_whisper@basic-contexts-forked-all:

  • igt@gem_lmem_swapping@smem-oom@lmem0:

  • igt@i915_module_load@reload-with-fault-injection:

  • igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a:

  • igt@i915_pm_rc6_residency@rc6-idle@vecs0:

  • igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:

  • igt@i915_pm_rpm@dpms-non-lpsp:

  • igt@i915_pm_rpm@gem-execbuf-stress@smem0:

  • igt@i915_pm_rpm@gem-execbuf@smem0:

  • igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1:

  • igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:

  • igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:

  • igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:

  • igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:

  • igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:

Warnings

{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).

Build changes

  • Linux: CI_DRM_13383 -> Patchwork_120668v1

CI-20190529: 20190529
CI_DRM_13383: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7386: 54dc25efaf10d87962f95be9b1d1a8f0f907912b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_120668v1: d08a48cfbc24191eb55119f6931e0b3aad5ca673 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

--===============0538253774230186284==-- 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 245E5C0015E for ; Thu, 13 Jul 2023 10:06:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234591AbjGMKGk (ORCPT ); Thu, 13 Jul 2023 06:06:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234583AbjGMKGT (ORCPT ); Thu, 13 Jul 2023 06:06:19 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16961270F; Thu, 13 Jul 2023 03:06:05 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8BF4A608D5; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6875C433C8; Thu, 13 Jul 2023 10:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242764; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; h=From:Subject:Date:To:Cc:From; b=fMIucUY7GArhLgcLDCFIQxCyAzXRgRPE8TkbNnY5GyU1HBPhbd5464W8Yg6jjQ1lL m6CWFlXeaqd10iV8ptWkOllE56aJPowyXSs5WiPty1Qsblb5rDh7+XYZZkXkukuQUD 2oiaMlw7C0sww3ot9gyUkCaU1j297MtNOoU25HevXc+ptbrPhHq2Zk21bLHu2o2olV KM6Bl/kUQtYvAIUPH+MSd/KGQP+HX58eb57Amnb444A4mU/RQ41PTUTV2bTgUUDM37 0Ncnb1LvDeYFhV3bcDM22YynZx1G+N6CQHl4PYcq4tdmwsqnstpRPCpNQMucQad6SH v0+dq9gbDJkNg== From: Christian Brauner Subject: [PATCH 0/2] eventfd: simplify signal helpers Date: Thu, 13 Jul 2023 12:05:36 +0200 Message-Id: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHDMr2QC/x3MwQrCMAyA4VcZORtpN9jAVxEPaZtuAY3SSBHG3 t3o8Tv8/w7GTdjgMuzQuIvJUx3xNEDeSFdGKW4YwziFJU7YqyF31nctaLIq3TGkUOK8UJk5g4e vxlU+/+n15k5kjKmR5u238sP5IZbhOL4kMfO0fwAAAA== To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Christian Brauner , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=276; i=brauner@kernel.org; h=from:subject:message-id; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1PLoVi0NYRvYnj1752/FbjTRLb2F5/eK1jjLMP8OeoE g8DNjlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIlwrGT4n2l3WEWjd0VXqt6ih11Ns1 YfjrROvjc3V73IYWbr0apscUaGq6+my1lGuQtz2O564OagKGE5qVEnsLx/a9H1rIRnpwXZAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org Hey everyone, This simplifies the eventfd_signal() and eventfd_signal_mask() helpers by removing the count argument which is effectively unused. --- --- base-commit: 6be357f00aad4189130147fdc6f568cf776a4909 change-id: 20230713-vfs-eventfd-signal-0b0d167ad6ec 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82CBBEB64DD for ; Thu, 13 Jul 2023 10:07:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234586AbjGMKHC (ORCPT ); Thu, 13 Jul 2023 06:07:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234246AbjGMKGb (ORCPT ); Thu, 13 Jul 2023 06:06:31 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7F872D51; Thu, 13 Jul 2023 03:06:19 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4E441601C6; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64E84C43391; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242778; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/zVc+cx75jKrxPbnuju/atRsSVw8F0+lAKbEjGTw5GhMxtAmrwPy79ak+r+1ROcu IcQPyzLxGgawBBz8z8Y70v1491RsilNJTaUYxVhDVgFriZayfH8ZUfbtrhQJWLhPAH vpiBrVgRovIAIDW4KmWRfWlcJyQ9sLHY83qZhGLawBGVUmbV6BRizMJKmSIghOE/RJ YoU1DReRNExPVarbQdAYe5K1tgKCRDDRI0aDEOqPSGreY5fFjI+n/NextbBZcWkJO+ YDuiwIyJr6f+iGBS5caIbzXKnzeTSW15obZChr2oWIcmbifwKnBdNTVSGk0jqubn8w AyTVc+P60Arxg== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:37 +0200 Subject: [PATCH 1/2] eventfd: simplify eventfd_signal() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Christian Brauner , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=23311; i=brauner@kernel.org; h=from:subject:message-id; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1N7Tzqtc8rKeaufBVx2qNr7M9C5NOKM4TWHndLF8yO8 hJ8ZdpSyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAEzkkDAjQ/Pk6ii/0+tYpaI/M26VY1 dozLZ4pFl5XfYkw2P7N38/hzP8Zn0/RcaQlUGn88TUwusronoeZx3LmbPvgfvfVff+tm9/zgMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org Ever since the evenfd type was introduced back in 2007 in commit e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() function only ever passed 1 as a value for @n. There's no point in keeping that additional argument. Signed-off-by: Christian Brauner --- arch/x86/kvm/hyperv.c | 2 +- arch/x86/kvm/xen.c | 2 +- drivers/accel/habanalabs/common/device.c | 2 +- drivers/fpga/dfl.c | 2 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/misc/ocxl/file.c | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 2 +- drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- drivers/s390/crypto/vfio_ap_ops.c | 2 +- drivers/usb/gadget/function/f_fs.c | 4 ++-- drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- drivers/vhost/vdpa.c | 4 ++-- drivers/vhost/vhost.c | 10 +++++----- drivers/vhost/vhost.h | 2 +- drivers/virt/acrn/ioeventfd.c | 2 +- fs/aio.c | 2 +- fs/eventfd.c | 9 +++------ include/linux/eventfd.h | 4 ++-- mm/memcontrol.c | 10 +++++----- mm/vmpressure.c | 2 +- samples/vfio-mdev/mtty.c | 4 ++-- virt/kvm/eventfd.c | 4 ++-- 28 files changed, 56 insertions(+), 59 deletions(-) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index b28fd020066f..2f4bd74b482c 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h if (!eventfd) return HV_STATUS_INVALID_PORT_ID; - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); return HV_STATUS_SUCCESS; } diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 40edf4d1974c..a7b62bafd57b 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) if (ret < 0 && ret != -ENOTCONN) return false; } else { - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); + eventfd_signal(evtchnfd->deliver.eventfd.ctx); } *r = 0; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index b97339d1f7c6..30357b371d61 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 notifier_event->events_mask |= event_mask; if (notifier_event->eventfd) - eventfd_signal(notifier_event->eventfd, 1); + eventfd_signal(notifier_event->eventfd); mutex_unlock(¬ifier_event->lock); } diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index dd7a783d53b5..e73f88050f08 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 68eca023bbc6..3d9e09c2add4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) return -EFAULT; return 0; } diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index db5fb196c728..ad50487790ff 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, list_for_each_entry_rcu(item, fd_list, xa_list) { if (item->eventfd) - eventfd_signal(item->eventfd, 1); + eventfd_signal(item->eventfd); else deliver_event(item, data); } diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 6e63f060e4cc..51766db296ab 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) { struct eventfd_ctx *ev_ctx = private; - eventfd_signal(ev_ctx, 1); + eventfd_signal(ev_ctx); return IRQ_HANDLED; } diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c index d3f3a611f95b..38c176cf6295 100644 --- a/drivers/s390/cio/vfio_ccw_chp.c +++ b/drivers/s390/cio/vfio_ccw_chp.c @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, /* Notify the guest if more CRWs are on our queue */ if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); return ret; } diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 43601816ea4e..bfb35cfce1ef 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) - eventfd_signal(private->io_trigger, 1); + eventfd_signal(private->io_trigger); } void vfio_ccw_crw_todo(struct work_struct *work) @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) private = container_of(work, struct vfio_ccw_private, crw_work); if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); } /* diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c index 5b53b94f13c7..3df231f6feda 100644 --- a/drivers/s390/cio/vfio_ccw_ops.c +++ b/drivers/s390/cio/vfio_ccw_ops.c @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, case VFIO_IRQ_SET_DATA_NONE: { if (*ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_BOOL: @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, return -EFAULT; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_EVENTFD: @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(private->req_trigger, 1); + eventfd_signal(private->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request channel registered, blocked until released by user\n"); diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b441745b0418..feb88526ac9d 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(matrix_mdev->req_trigger, 1); + eventfd_signal(matrix_mdev->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request registered, blocked until released by user\n"); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index f41a385a5c42..ceb1aad0c5df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) io_data->kiocb->ki_complete(io_data->kiocb, ret); if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) - eventfd_signal(io_data->ffs->ffs_eventfd, 1); + eventfd_signal(io_data->ffs->ffs_eventfd); if (io_data->read) kfree(io_data->to_free); @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, ffs->ev.types[ffs->ev.count++] = type; wake_up_locked(&ffs->ev.waitq); if (ffs->ffs_eventfd) - eventfd_signal(ffs->ffs_eventfd, 1); + eventfd_signal(ffs->ffs_eventfd); } static void ffs_event_add(struct ffs_data *ffs, diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index dc38ed21319d..99b901a9e638 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) goto unlock; if (vq->kickfd) - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); else vq->kicked = true; unlock: @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, eventfd_ctx_put(vq->kickfd); vq->kickfd = ctx; if (vq->ready && vq->kicked && vq->kickfd) { - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); vq->kicked = false; } spin_unlock(&vq->kick_lock); @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) spin_lock_irq(&vq->irq_lock); if (vq->ready && vq->cb.trigger) { - eventfd_signal(vq->cb.trigger, 1); + eventfd_signal(vq->cb.trigger); signal = true; } spin_unlock_irq(&vq->irq_lock); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index c51229fccbd6..d62fbfff20b8 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) { struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; - eventfd_signal(mc_irq->trigger, 1); + eventfd_signal(mc_irq->trigger); return IRQ_HANDLED; } diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 20d7b69ea6ff..01c8e31db23b 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) */ down_write(&vdev->memory_lock); if (vdev->pm_wake_eventfd_ctx) { - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); + eventfd_signal(vdev->pm_wake_eventfd_ctx); __vfio_pci_runtime_pm_exit(vdev); } up_write(&vdev->memory_lock); @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) pci_notice_ratelimited(pdev, "Relaying device request to user (#%u)\n", count); - eventfd_signal(vdev->req_trigger, 1); + eventfd_signal(vdev->req_trigger); } else if (count == 0) { pci_warn(pdev, "No device request channel registered, blocked until released by user\n"); @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, mutex_lock(&vdev->igate); if (vdev->err_trigger) - eventfd_signal(vdev->err_trigger, 1); + eventfd_signal(vdev->err_trigger); mutex_unlock(&vdev->igate); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index cbb4bcbfbf83..237beac83809 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) ctx = vfio_irq_ctx_get(vdev, 0); if (WARN_ON_ONCE(!ctx)) return; - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, if (!ctx) continue; if (flags & VFIO_IRQ_SET_DATA_NONE) { - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t *bools = data; if (bools[i - start]) - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } return 0; @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, if (flags & VFIO_IRQ_SET_DATA_NONE) { if (*ctx) { if (count) { - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); } else { eventfd_ctx_put(*ctx); *ctx = NULL; @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, trigger = *(uint8_t *)data; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c index 665197caed89..61a1bfb68ac7 100644 --- a/drivers/vfio/platform/vfio_platform_irq.c +++ b/drivers/vfio/platform/vfio_platform_irq.c @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return ret; } @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return IRQ_HANDLED; } diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index b43e8680eee8..722894a0f124 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; if (call_ctx) - eventfd_signal(call_ctx, 1); + eventfd_signal(call_ctx); return IRQ_HANDLED; } @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) - eventfd_signal(config_ctx, 1); + eventfd_signal(config_ctx); return IRQ_HANDLED; } diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index c71d573f1c94..bee50f153c8e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, len -= l; if (!len) { if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); return 0; } } @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof vq->used->flags); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof *vhost_avail_event(vq)); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, log_used(vq, offsetof(struct vring_used, idx), sizeof vq->used->idx); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return r; } @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) { /* Signal the Guest tell them we used something up. */ if (vq->call_ctx.ctx && vhost_notify(dev, vq)) - eventfd_signal(vq->call_ctx.ctx, 1); + eventfd_signal(vq->call_ctx.ctx); } EXPORT_SYMBOL_GPL(vhost_signal); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index f60d5f7bef94..9e942fcda5c3 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, #define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ - eventfd_signal((vq)->error_ctx, 1);\ + eventfd_signal((vq)->error_ctx);\ } while (0) enum { diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c index ac4037e9f947..4e845c6ca0b5 100644 --- a/drivers/virt/acrn/ioeventfd.c +++ b/drivers/virt/acrn/ioeventfd.c @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, mutex_lock(&client->vm->ioeventfds_lock); p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); if (p) - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); mutex_unlock(&client->vm->ioeventfds_lock); return 0; diff --git a/fs/aio.c b/fs/aio.c index 77e33619de40..96cf97b19077 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) * from IRQ context. */ if (iocb->ki_eventfd) - eventfd_signal(iocb->ki_eventfd, 1); + eventfd_signal(iocb->ki_eventfd); /* * We have to order our ring_info tail store above and test diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..dc9e01053235 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) /** * eventfd_signal - Adds @n to the eventfd counter. * @ctx: [in] Pointer to the eventfd context. - * @n: [in] Value of the counter to be added to the eventfd internal counter. - * The value cannot be negative. * * This function is supposed to be called by the kernel in paths that do not * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX * value, and we signal this as overflow condition by returning a EPOLLERR * to poll(2). * - * Returns the amount by which the counter was incremented. This will be less - * than @n if the counter has overflowed. + * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +__u64 eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, n, 0); + return eventfd_signal_mask(ctx, 1, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b9d83652c097..562089431551 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); +__u64 eventfd_signal(struct eventfd_ctx *ctx); __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +static inline int eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..891550f575a1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* i = current_threshold + 1 */ i++; @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* Update current_threshold */ t->current_threshold = i - 1; @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) spin_lock(&memcg_oom_lock); list_for_each_entry(ev, &memcg->oom_notify, list) - eventfd_signal(ev->eventfd, 1); + eventfd_signal(ev->eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, /* already in OOM ? */ if (memcg->under_oom) - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) event->unregister_event(memcg, event->eventfd); /* Notify userspace the event is going away. */ - eventfd_signal(event->eventfd, 1); + eventfd_signal(event->eventfd); eventfd_ctx_put(event->eventfd); kfree(event); diff --git a/mm/vmpressure.c b/mm/vmpressure.c index b52644771cc4..ba4cdef37e42 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, continue; if (level < ev->level) continue; - eventfd_signal(ev->efd, 1); + eventfd_signal(ev->efd); ret = true; } mutex_unlock(&vmpr->events_lock); diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index a60801fb8660..5edcf8d738de 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) } if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) - ret = eventfd_signal(mdev_state->msi_evtfd, 1); + ret = eventfd_signal(mdev_state->msi_evtfd); else - ret = eventfd_signal(mdev_state->intx_evtfd, 1); + ret = eventfd_signal(mdev_state->intx_evtfd); #if defined(DEBUG_INTR) pr_info("Intx triggered\n"); diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..c0e230f4c3e9 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, srcu_read_lock_held(&resampler->kvm->irq_srcu)) - eventfd_signal(irqfd->resamplefd, 1); + eventfd_signal(irqfd->resamplefd); } /* @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, if (!ioeventfd_in_range(p, addr, len, val)) return -EOPNOTSUPP; - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); return 0; } -- 2.34.1 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75507EB64DD for ; Thu, 13 Jul 2023 10:07:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234475AbjGMKHa (ORCPT ); Thu, 13 Jul 2023 06:07:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234623AbjGMKGn (ORCPT ); Thu, 13 Jul 2023 06:06:43 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7DFBE212B; Thu, 13 Jul 2023 03:06:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 04D7760ADC; Thu, 13 Jul 2023 10:06:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34C10C433D9; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242793; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j+ukf52dvZ+nUEPwpL9/EYruyhEbJbg7d1yjKDMcd3GOYxX7RclutpFcH5UUHlkpI fnIEho3ycJz28JfRAPfizI9cf3F0lqh4jC9ZF+UZUl5JTb6HfdwpWlIJ9bsmZ0DsOQ PAjBHJokUk/yF6GqX5PHCHsaDKT13j+MVST75N+zeiC2em3PJTUKrCtRR1KKmsmMCX MYnQq0YQbswQU++9LLW3pgHXNsdqcZtbb04btB9J/lGIIF9SRPTFcmVmql2ih2n6bH BAMadKjZaQhxN2qUstf+rs137LSKZ/kMx1juo/8V60a80JJWvq1eqYcfgXe/BuR2sH +vKmJxA1p+x+A== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:38 +0200 Subject: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Christian Brauner , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=4338; i=brauner@kernel.org; h=from:subject:message-id; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1NbdfmkaWaxQvZah7/MWs/ufCrO2q82U2T1DIWDSy0u LwzX6ChhYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZiIshkjww4t2ytlzT8ElQsqm7Su/N b3T10XyfCvYZ2XvvOJclnpCIbvvh+/WjLaTozOzj3stenvds+qri//VkTNPGGwWHTi+Uc8AA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org The eventfd_signal_mask() helper was introduced for io_uring and similar to eventfd_signal() it always passed 1 for @n. So don't bother with that argument at all. Signed-off-by: Christian Brauner --- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- fs/eventfd.c | 9 +++++---- include/linux/eventfd.h | 9 ++++----- io_uring/io_uring.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 3d9e09c2add4..31aff6f733d4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) + if (vgpu->msi_trigger && !eventfd_signal(vgpu->msi_trigger)) return -EFAULT; return 0; } diff --git a/fs/eventfd.c b/fs/eventfd.c index dc9e01053235..077be5da72bd 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -43,9 +43,10 @@ struct eventfd_ctx { int id; }; -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) { unsigned long flags; + __u64 n = 1; /* * Deadlock or stack overflow issues can happen if we recurse here @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); - return n; + return n == 1; } /** @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) * * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx) +bool eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, 1, 0); + return eventfd_signal_mask(ctx, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 562089431551..0155ee25f7c8 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,8 +35,8 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx); -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); +bool eventfd_signal(struct eventfd_ctx *ctx); +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx) +static inline bool eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, - unsigned mask) +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { return -ENOSYS; } diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..a9359ef73935 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -537,7 +537,7 @@ static void io_eventfd_ops(struct rcu_head *rcu) int ops = atomic_xchg(&ev_fd->ops, 0); if (ops & BIT(IO_EVENTFD_OP_SIGNAL_BIT)) - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); /* IO_EVENTFD_OP_FREE_BIT may not be set here depending on callback * ordering in a race but if references are 0 we know we have to free @@ -573,7 +573,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) goto out; if (likely(eventfd_signal_allowed())) { - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); } else { atomic_inc(&ev_fd->refs); if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) -- 2.34.1 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20ADFEB64DD for ; Thu, 13 Jul 2023 13:30:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234738AbjGMNar (ORCPT ); Thu, 13 Jul 2023 09:30:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234409AbjGMNap (ORCPT ); Thu, 13 Jul 2023 09:30:45 -0400 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12B3EE68; Thu, 13 Jul 2023 06:30:43 -0700 (PDT) Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36DDLrkB004281; Thu, 13 Jul 2023 13:30:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=yIjAwsQR1wLZ8Bjld9sxVuIjhZ4yn9i9x6FCVBXNkdI=; b=mm0EKyIJVnP3MW7HMgeWPwA9lkZ5fYaP0kpNzaCk4yxx2VM58hC6JtVLIoP9ptDoDJ+C fUfj7+2LEuSNYhltq92CPGP26EEOV6n3Sx85xqmeyUAqW5PNLEZTTPMA5PwOWF8/66tO g/rmtBjDGpsPOfDxraHV1HDSxx9f92lAOOf8yv0Zd1+QBa4/mgEX9V3tBM+Tjdplnbo2 y33ArriOuXZ5VfosxwUe6DPWU4enV5ZLeqNf/M8GHQnEz2w6GZHa2Fd9ykWbMN7NALNW 3dWRXtqmGGKMzYCYy+HXCd0/fJNSfdU4lXMAhLUOfkBNbvYp1i3h98qZZB3636whGHJQ 0Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar78m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:02 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36DDMxou009349; Thu, 13 Jul 2023 13:30:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar77b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:01 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 36D743Jx011007; Thu, 13 Jul 2023 13:29:59 GMT Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3rqk4mk1aw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:29:59 +0000 Received: from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com [10.241.53.102]) by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 36DDTwut37028342 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 13 Jul 2023 13:29:58 GMT Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE9DB58056; Thu, 13 Jul 2023 13:29:57 +0000 (GMT) Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED4595803F; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Received: from [9.61.158.95] (unknown [9.61.158.95]) by smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Message-ID: Date: Thu, 13 Jul 2023 09:29:52 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() Content-Language: en-US To: Christian Brauner , linux-fsdevel@vger.kernel.org Cc: Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Anthony Krowiak In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: va_EebEAOpDsN7qMG95SDcn-5a5Qwe3g X-Proofpoint-GUID: -ewp-fXzNQ4ITFG8EgqR2pY8ktrdWFdo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_05,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130114 Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org For vfio_ap_ops.c: Reviewed-by: Tony Krowiak On 7/13/23 6:05 AM, Christian Brauner wrote: > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret != -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r = 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 > notifier_event->events_mask |= event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx = private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state = VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private = container_of(work, struct vfio_ccw_private, crw_work); > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request channel registered, blocked until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request registered, blocked until released by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] = type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked = true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd = ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked = false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal = true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) > { > struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n", > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count == 0) { > pci_warn(pdev, > "No device request channel registered, blocked until released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) > ctx = vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools = data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx = NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > > trigger = *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret == IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) > { > struct vfio_platform_irq *irq_ctx = dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) > struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) > struct eventfd_ctx *config_ctx = v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, > len -= l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, > mutex_lock(&client->vm->ioeventfds_lock); > p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal counter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do not > * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLERR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will be less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i = current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold = i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret = true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) > } > > if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) > - ret = eventfd_signal(mdev_state->msi_evtfd, 1); > + ret = eventfd_signal(mdev_state->msi_evtfd); > else > - ret = eventfd_signal(mdev_state->intx_evtfd, 1); > + ret = eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq_srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95C4BC0015E for ; Thu, 13 Jul 2023 13:35:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234870AbjGMNfQ (ORCPT ); Thu, 13 Jul 2023 09:35:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233726AbjGMNfP (ORCPT ); Thu, 13 Jul 2023 09:35:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AA91C0; Thu, 13 Jul 2023 06:35:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id CA63C6153C; Thu, 13 Jul 2023 13:35:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2AABAC433CB; Thu, 13 Jul 2023 13:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689255311; bh=C9ZL/aINfzb4DTfI0PDdwKD/w/Hf1nA7/TiEr1Wu8NY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=JyIyhVLGZViyQT1JdXstbg0aQUaEh6m/IPTAOEZbxEKOO67MjexdKjMcwx5iU8lg5 JVap4XCkDuPoBq/CmIlE3XhCm1m6YglNf1xscytAz0JpfHEtJvFiPcJXnKfKuJ2UNm HDAkLTptYBg4inK17KgkWgF89nn/C0R6cPBocri0kFzxm3VCQs14o3HhJrYQT7tzre LVMQfxn5L9MtV/oeO9i6NKyUsUpu6aDwZaaFR8I7ijC7KEYLCZwdICIO0LMYh8ed2d 9UmT3KVSc0mO+63YgAWlcNCTsPvimJfl5ncF0bmtrE5S91To31KPX0cUjckjacDNgl WFjnGKLTAwoqg== Received: by mail-yb1-f180.google.com with SMTP id 3f1490d57ef6-bd0a359ca35so644284276.3; Thu, 13 Jul 2023 06:35:11 -0700 (PDT) X-Gm-Message-State: ABy/qLYWRQneCFEK4j8zomQKIcamw95/KSkLmelYSh5A4hlZSFEmgQ48 bDoZI8ZT316Mdx6y+NYfnZ+RDpnYUFV8uKQVbaw= X-Google-Smtp-Source: APBJJlFgmxFKKMX4o5RoczSZCW4vsZEnViWIJVep1sF3lemBlvWAL/cO6of628K/gm7rbjqMK5O6ldYSkO/4Nrf+UkI= X-Received: by 2002:a25:d091:0:b0:c6e:a2b0:e53c with SMTP id h139-20020a25d091000000b00c6ea2b0e53cmr1438348ybg.62.1689255309970; Thu, 13 Jul 2023 06:35:09 -0700 (PDT) MIME-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Oded Gabbay Date: Thu, 13 Jul 2023 16:34:43 +0300 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() To: Christian Brauner Cc: linux-fsdevel@vger.kernel.org, Vitaly Kuznetsov , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org On Thu, Jul 13, 2023 at 1:06=E2=80=AFPM Christian Brauner wrote: > > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu = *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vc= pu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret !=3D -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r =3D 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/hab= analabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifi= er_event *notifier_event, u64 > notifier_event->events_mask |=3D event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *a= rg) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/= gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu= *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != =3D 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) !=3D 1= ) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/ml= x5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_= list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx =3D private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_= chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_c= cw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_= drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state =3D VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private =3D container_of(work, struct vfio_ccw_private, crw_work)= ; > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_= ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device = *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request channel registered, blocked= until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio= _ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device= *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request registered, blocked until r= eleased by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/func= tion/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *= work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] =3D type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked =3D true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd =3D ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked =3D false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqu= eue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal =3D true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc= /vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num,= void *arg) > { > struct vfio_fsl_mc_irq *mc_irq =3D (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci= _core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device= *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core= _vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n"= , > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count =3D=3D 0) { > pci_warn(pdev, > "No device request channel registered, blocked un= til released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(str= uct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pc= i_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *= unused) > ctx =3D vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg= ) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci= _core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools =3D data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx =3D NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > > trigger =3D *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/pla= tform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int ir= q, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret =3D=3D IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *de= v_id) > { > struct vfio_platform_irq *irq_ctx =3D dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *priv= ate) > struct eventfd_ctx *call_ctx =3D vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private= ) > struct eventfd_ctx *config_ctx =3D v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, str= uct vhost_log *log, > len -=3D l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_vir= tqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_vi= rtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, st= ruct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vho= st_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.= c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_c= lient *client, > mutex_lock(&client->vm->ioeventfds_lock); > p =3D hsm_ioeventfd_match(client->vm, addr, val, size, req->type)= ; > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __= u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal cou= nter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do= not > * allow sleeping. In this function we allow the counter to reach the UL= LONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLE= RR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will b= e less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mas= k); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_en= try_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int= fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i >=3D 0 && unlikely(t->entries[i].threshold > usage); i--= ) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i =3D current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <=3D usage= ); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold =3D i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgro= up *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem= _cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *= work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret =3D true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state= *mdev_state) > } > > if (mdev_state->irq_index =3D=3D VFIO_PCI_MSI_IRQ_INDEX) > - ret =3D eventfd_signal(mdev_state->msi_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->msi_evtfd); > else > - ret =3D eventfd_signal(mdev_state->intx_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_ir= qfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq= _srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_= device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > > -- > 2.34.1 > For habanalabs (device.c): Reviewed-by: Oded Gabbay 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31329C001DD for ; Thu, 13 Jul 2023 14:33:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230475AbjGMOdM (ORCPT ); Thu, 13 Jul 2023 10:33:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230346AbjGMOdL (ORCPT ); Thu, 13 Jul 2023 10:33:11 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C376926B8 for ; Thu, 13 Jul 2023 07:33:07 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id 41be03b00d2f7-53b9eb7bda0so410481a12.0 for ; Thu, 13 Jul 2023 07:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=jacaK9M2p8ae07DYtf3WTwW4sJ88AeR0PMoTM/K8Zom80G9CNsRED8/7OkNACpL4FI vSrK+poAQrpW9b9XXAEX3N+/eJqGG0fl2uSilp/V2zhMmynFGmkNp19rQMAPCUIgro+L 8wZFnIyWuBTpd6inSk0jhwWPq/qOKDhiCmrdy2nICENUOLQPMx4zm5vkc1J+N+jf8F/9 NWijWeXBKP6nhRWfAZooF9dECtwpwP1B06LROVi+ZRGQWEPDlF+8FcWtS7IpVg38LWBC sabPszkfHQCdZSa4qO28HKir4zE3m+cUi5LtAFjCZb9xEKl25slyjVF3CoaXZrvttifT RnQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=KDFb5CFjFNTnYJmpeGRBQwRDSsDDT8wKTgZDx3R2fLEzXJ+lv9p+WiDBUxr52RYDTc 95WXCDcdeXOicOaVBjwW52b9Z0yjw+WbLoLkV/mgUuBNgzO62VLzLggbhhPU66QswZm1 hUCg9LW+IDv7LNa7gMux0gz+6Tauyz33TqakzxuPoW4YtnWyaWrqOHEmD2lLRAEgjbbQ EislXtDtM2dP5LiBdmcdsLKCVcl0nSok/rzQmLm1MOlWeWXDHSLA98KbuJdiCuMTTLDi QgA5Y1kVIY61jjbPeB0PsJiLkpNVwzk7lzrEA3wX2iqPpkimmGFaQvmKMlaKFq4GKcYY zTng== X-Gm-Message-State: ABy/qLYrgHdefy8/VHaTUvM7Yk64EGRmsU8hd/dbfdM4e5xQ9qEKlCIZ MbVMByCr91gQmBauhFvY8mujiFZzpTc= X-Google-Smtp-Source: APBJJlFAAhWItEMB5PDxlVd4/XD0kDAeGPn5ZZPTnMU3ojU8FDM9Oji9AhkfLIh7rpZuc1o0H3AhYJQLwhY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:b282:b0:1ba:1704:89d1 with SMTP id u2-20020a170902b28200b001ba170489d1mr5846plr.10.1689258786828; Thu, 13 Jul 2023 07:33:06 -0700 (PDT) Date: Thu, 13 Jul 2023 07:33:05 -0700 In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Message-ID: Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() From: Sean Christopherson To: Christian Brauner Cc: linux-fsdevel@vger.kernel.org, Vitaly Kuznetsov , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org On Thu, Jul 13, 2023, Christian Brauner wrote: > diff --git a/fs/eventfd.c b/fs/eventfd.c > index dc9e01053235..077be5da72bd 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -43,9 +43,10 @@ struct eventfd_ctx { > int id; > }; > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > { > unsigned long flags; > + __u64 n = 1; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > - return n; > + return n == 1; > } ... > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > - unsigned mask) > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > return -ENOSYS; This will morph to "true" for what should be an error case. One option would be to have eventfd_signal_mask() return 0/-errno instead of the count, but looking at all the callers, nothing ever actually consumes the result. KVMGT morphs failure into -EFAULT if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) return -EFAULT; but the only caller of that user ignores the return value. if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) & ~GEN8_MASTER_IRQ_CONTROL) inject_virtual_interrupt(vgpu); The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an error but otherwise ignores the result. So why not return nothing? That will simplify eventfd_signal_mask() a wee bit more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { unsigned long flags; /* * Deadlock or stack overflow issues can happen if we recurse here * through waitqueue wakeup handlers. If the caller users potentially * nested waitqueues with custom wakeup handlers, then it should * check eventfd_signal_allowed() before calling this function. If * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ if (WARN_ON_ONCE(current->in_eventfd)) return; spin_lock_irqsave(&ctx->wqh.lock, flags); current->in_eventfd = 1; if (ctx->count < ULLONG_MAX) ctx->count++; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); } You could even go further and unify the real and stub versions of eventfd_signal(). 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3274C001E0 for ; Thu, 13 Jul 2023 14:52:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230076AbjGMOwz (ORCPT ); Thu, 13 Jul 2023 10:52:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229638AbjGMOwx (ORCPT ); Thu, 13 Jul 2023 10:52:53 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C2EC19A6; Thu, 13 Jul 2023 07:52:52 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 29955616F2; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA899C433C7; Thu, 13 Jul 2023 14:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689259971; bh=R4Hkl4iroQ+C4d3AaFA6aa52uzI7aPnAyTDDN/lwc78=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RS/6gRgqvF3ybwn8Ovqq43iLhI7Yv15SZZP2U5CNn6IhgXHQH9mo4nByA/g4W736R AkMi1WqcMsHhNrtO7dGPqCwKIYlgvLK+7FW5vJj2elL3FTubJgM81//BHDuM8QqyRP Csacjb3yQ3aRtIn7A1i9sInqtS8VRY/O0QwqwwSlh+wJ04gvPtGAbDZaSnmdfd209l vt3KpAe4HIE13hYrO1C7jusvVYug5pHUh1tQDDmm+XtqhW6CbXRqbqDYOCl1W9QxOQ VXNT8IMNIH9hLd1wzLndR4KoVQB79H/FYLq25P8lOlildm0R+bpsuSo9TwClPA0kLV csu2vX1i0ECSg== Date: Thu, 13 Jul 2023 16:52:34 +0200 From: Christian Brauner To: Sean Christopherson Cc: linux-fsdevel@vger.kernel.org, Vitaly Kuznetsov , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, David Woodhouse , Paul Durrant , Oded Gabbay , Wu Hao , Tom Rix , Moritz Fischer , Xu Yilun , Zhenyu Wang , Zhi Wang , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Daniel Vetter , Leon Romanovsky , Jason Gunthorpe , Frederic Barrat , Andrew Donnellan , Arnd Bergmann , Greg Kroah-Hartman , Eric Farman , Matthew Rosato , Halil Pasic , Vineeth Vijayan , Peter Oberparleiter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Tony Krowiak , Jason Herne , Harald Freudenberger , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Diana Craciun , Alex Williamson , Eric Auger , Fei Li , Benjamin LaHaise , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Kirti Wankhede , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fpga@vger.kernel.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-usb@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-aio@kvack.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Jens Axboe , Pavel Begunkov , io-uring@vger.kernel.org Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Message-ID: <20230713-mahnen-drosseln-fa717117e827@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org On Thu, Jul 13, 2023 at 07:33:05AM -0700, Sean Christopherson wrote: > On Thu, Jul 13, 2023, Christian Brauner wrote: > > diff --git a/fs/eventfd.c b/fs/eventfd.c > > index dc9e01053235..077be5da72bd 100644 > > --- a/fs/eventfd.c > > +++ b/fs/eventfd.c > > @@ -43,9 +43,10 @@ struct eventfd_ctx { > > int id; > > }; > > > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > > { > > unsigned long flags; > > + __u64 n = 1; > > > > /* > > * Deadlock or stack overflow issues can happen if we recurse here > > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > current->in_eventfd = 0; > > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > > > - return n; > > + return n == 1; > > } > > ... > > > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > > return ERR_PTR(-ENOSYS); > > } > > > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > > { > > return -ENOSYS; > > } > > > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > > - unsigned mask) > > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > > { > > return -ENOSYS; > > This will morph to "true" for what should be an error case. One option would be Ewww, that means it did return -ENOSYS before any of this. > to have eventfd_signal_mask() return 0/-errno instead of the count, but looking > at all the callers, nothing ever actually consumes the result. > > KVMGT morphs failure into -EFAULT > > if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > return -EFAULT; > > but the only caller of that user ignores the return value. > > if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) > & ~GEN8_MASTER_IRQ_CONTROL) > inject_virtual_interrupt(vgpu); > > The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an > error but otherwise ignores the result. > > So why not return nothing? That will simplify eventfd_signal_mask() a wee bit > more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. Yeah, it used to return an int in the non-eventfd and a __u64 in the eventfd case. > > void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > unsigned long flags; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > * through waitqueue wakeup handlers. If the caller users potentially > * nested waitqueues with custom wakeup handlers, then it should > * check eventfd_signal_allowed() before calling this function. If > * it returns false, the eventfd_signal() call should be deferred to a > * safe context. > */ > if (WARN_ON_ONCE(current->in_eventfd)) > return; > > spin_lock_irqsave(&ctx->wqh.lock, flags); > current->in_eventfd = 1; > if (ctx->count < ULLONG_MAX) > ctx->count++; > if (waitqueue_active(&ctx->wqh)) > wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > } > > You could even go further and unify the real and stub versions of eventfd_signal(). The reason I didn't make eventfd_signal_mask() return void was that it was called from eventfd_signal() which did, I didn't realize the caller didn't actually consume the return value. If we can let both return void it gets simpler. Thanks for that. 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0C237C001E0 for ; Thu, 13 Jul 2023 17:12:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232734AbjGMRMK (ORCPT ); Thu, 13 Jul 2023 13:12:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44410 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231396AbjGMRLv (ORCPT ); Thu, 13 Jul 2023 13:11:51 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 35296273B for ; Thu, 13 Jul 2023 10:10:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=LfQNLsC+9rUN6nDXpJh9bJPEa/8hMG5DCXVRj5Oeyu51TyEWDKOjjpur6/cxrmNuUKHOnC NQHilZNg4i3zUNZ+0IOQUEL++nlNjCe8peXyFt+qqE8ei7mHuRT9rAMypsdQRxj5rm6/Ir hPNvo1AGXWYin1KAvmnITOwpIPtXeow= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-630-ReXK2GMAPhCtgEDNInDuOg-1; Thu, 13 Jul 2023 13:10:57 -0400 X-MC-Unique: ReXK2GMAPhCtgEDNInDuOg-1 Received: by mail-il1-f200.google.com with SMTP id e9e14a558f8ab-345fe8d0a30so4601605ab.0 for ; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689268257; x=1691860257; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=VNILFl3NEpSlrvLOHhQBFAzdElMw3NReHl4mCiA7hTF2/agbeIYGgiJ62g/bHFiYWA Ptzou/TZLWLejGyT6QdEXrsGdwyXwUV75u1dg7tAR6j2D9i9tJy0+CdK/4H5dfHD0fW4 LM6d6xGlInwZBUPRXKRjhxjo5Wh7t9gDiEuyRfCBPT+/V+3tST2KXghZ9MUU+sUCUYGW 95sFO6LsnOi9uO6OGh9HsqAHDpWxVbCkhOmOrcAvAThHlMdQ1E9sE2A7b3FwrTvYzlec sQOsE1MOkdnY25OIAiiNNmlZLpZYKb/9QtgLuB0ox1lJYsft2PY3d7Yx6MDWcsuPgWby /TyQ== X-Gm-Message-State: ABy/qLal2O3sOqr+LdhuKkHginO4HxTBhkfOLitTqE3zyGiPFsKy/ySZ +EUPi8WW6g6KNw95QALDow8BYtHeSXRhG+lNsFXSu8GrORFdTXMgSb81QxlrRMezF74aX4o5afQ 9NzoHSf/F6Phe8HjkGrM= X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980606ile.32.1689268257122; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYzBd2cy5+vbqrqBW5hcL0Nlt03XvoKU7EVc2Oqt6qt/39DAJLG7+eJes4a+aimrEVLy/slQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980544ile.32.1689268256865; Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Received: from redhat.com ([38.15.36.239]) by smtp.gmail.com with ESMTPSA id el20-20020a0566384d9400b0042b61a5087csm1948085jab.132.2023.07.13.10.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Date: Thu, 13 Jul 2023 11:10:54 -0600 From: Alex Williamson To: Christian Brauner Cc: linux-fsdevel@vger.kernel.org, linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun , jaz@semihalf.com Subject: Re: [PATCH 0/2] eventfd: simplify signal helpers Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Organization: Red Hat MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 64D44C001B0 for ; Thu, 13 Jul 2023 23:21:56 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=mm0EKyIJ; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29c26jl1z3c4m for ; Fri, 14 Jul 2023 09:21:54 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=mm0EKyIJ; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=linux.ibm.com (client-ip=148.163.156.1; helo=mx0a-001b2d01.pphosted.com; envelope-from=akrowiak@linux.ibm.com; receiver=lists.ozlabs.org) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1wTm2y1Tz2xFl for ; Thu, 13 Jul 2023 23:30:36 +1000 (AEST) Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36DDLrkB004281; Thu, 13 Jul 2023 13:30:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=yIjAwsQR1wLZ8Bjld9sxVuIjhZ4yn9i9x6FCVBXNkdI=; b=mm0EKyIJVnP3MW7HMgeWPwA9lkZ5fYaP0kpNzaCk4yxx2VM58hC6JtVLIoP9ptDoDJ+C fUfj7+2LEuSNYhltq92CPGP26EEOV6n3Sx85xqmeyUAqW5PNLEZTTPMA5PwOWF8/66tO g/rmtBjDGpsPOfDxraHV1HDSxx9f92lAOOf8yv0Zd1+QBa4/mgEX9V3tBM+Tjdplnbo2 y33ArriOuXZ5VfosxwUe6DPWU4enV5ZLeqNf/M8GHQnEz2w6GZHa2Fd9ykWbMN7NALNW 3dWRXtqmGGKMzYCYy+HXCd0/fJNSfdU4lXMAhLUOfkBNbvYp1i3h98qZZB3636whGHJQ 0Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar78m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:02 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36DDMxou009349; Thu, 13 Jul 2023 13:30:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar77b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:01 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 36D743Jx011007; Thu, 13 Jul 2023 13:29:59 GMT Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3rqk4mk1aw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:29:59 +0000 Received: from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com [10.241.53.102]) by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 36DDTwut37028342 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 13 Jul 2023 13:29:58 GMT Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE9DB58056; Thu, 13 Jul 2023 13:29:57 +0000 (GMT) Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED4595803F; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Received: from [9.61.158.95] (unknown [9.61.158.95]) by smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Message-ID: Date: Thu, 13 Jul 2023 09:29:52 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() Content-Language: en-US To: Christian Brauner , linux-fsdevel@vger.kernel.org References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Anthony Krowiak In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: va_EebEAOpDsN7qMG95SDcn-5a5Qwe3g X-Proofpoint-GUID: -ewp-fXzNQ4ITFG8EgqR2pY8ktrdWFdo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_05,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130114 X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Chris tian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jens Axboe , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Eric Auger , Alex Williamson , Borislav Petkov , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jason Herne , Tvrtko Ursulin , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" For vfio_ap_ops.c: Reviewed-by: Tony Krowiak On 7/13/23 6:05 AM, Christian Brauner wrote: > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret != -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r = 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 > notifier_event->events_mask |= event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx = private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state = VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private = container_of(work, struct vfio_ccw_private, crw_work); > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request channel registered, blocked until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request registered, blocked until released by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] = type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked = true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd = ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked = false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal = true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) > { > struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n", > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count == 0) { > pci_warn(pdev, > "No device request channel registered, blocked until released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) > ctx = vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools = data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx = NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > > trigger = *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret == IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) > { > struct vfio_platform_irq *irq_ctx = dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) > struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) > struct eventfd_ctx *config_ctx = v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, > len -= l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, > mutex_lock(&client->vm->ioeventfds_lock); > p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal counter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do not > * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLERR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will be less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i = current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold = i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret = true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) > } > > if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) > - ret = eventfd_signal(mdev_state->msi_evtfd, 1); > + ret = eventfd_signal(mdev_state->msi_evtfd); > else > - ret = eventfd_signal(mdev_state->intx_evtfd, 1); > + ret = eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq_srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8649DC001B0 for ; Thu, 13 Jul 2023 23:25:18 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=CPKHXx1r; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=CPKHXx1r; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29gx0xkpz3cWY for ; Fri, 14 Jul 2023 09:25:17 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=CPKHXx1r; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=CPKHXx1r; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=redhat.com (client-ip=170.10.129.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=alex.williamson@redhat.com; receiver=lists.ozlabs.org) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R21Tx4M3lz30MD for ; Fri, 14 Jul 2023 03:16:04 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268559; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=CPKHXx1rq6+eQbsOiRlcOohGB8CccUP7bFQBd8hu5IOOkvJQpghj//RbDexgvwl8XtgSF+ 4RasvlckLzH2vBYdZaKhMrrwrSdfq57r0gJnxjfIFr/ukeao+ciqF1BtHu4AlVsH4Gw92+ 1HkUzbDoGHfIFtnsNTFutoHJTIZBdPs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268559; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=CPKHXx1rq6+eQbsOiRlcOohGB8CccUP7bFQBd8hu5IOOkvJQpghj//RbDexgvwl8XtgSF+ 4RasvlckLzH2vBYdZaKhMrrwrSdfq57r0gJnxjfIFr/ukeao+ciqF1BtHu4AlVsH4Gw92+ 1HkUzbDoGHfIFtnsNTFutoHJTIZBdPs= Received: from mail-il1-f197.google.com (mail-il1-f197.google.com [209.85.166.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-609-FsxwchpKME-mzrUM0-LKBw-1; Thu, 13 Jul 2023 13:15:58 -0400 X-MC-Unique: FsxwchpKME-mzrUM0-LKBw-1 Received: by mail-il1-f197.google.com with SMTP id e9e14a558f8ab-345c1f3dcc8so4533665ab.3 for ; Thu, 13 Jul 2023 10:15:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689268257; x=1691860257; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=ASsFMlwLXPnfFRcyYeyTQIN0RAGvTbQ7D3M8VsI78DDC9Fwatp7jADm+jrdjrOExIk WfhFKWASvF0RXb7uV33KGeZbBOs4UrGP8pOOYccDiFaaRKJLul4GFkdNBjXqXikV4rgb CCATQlxRVVnpvMk5TZWRXs7B9/gSRuUji/RZ/xs/kIIIjsGjyc2WalSoyN385D0h3avr TpplNAPbwYu/z4ge+FF4tGSpLdLFgmwQyuzjHQcBjyzypdXkGcPLCv/VKDQbaPyWKNFS CUCS6yV6fGRxvQW5wQ0e8tCqTUyJuNPeEFD7ixe06X2iCvFZ9+A2GQzosDnHiyXwRmhU GcEQ== X-Gm-Message-State: ABy/qLY4diVrp9Z1g3KeoizR7IOy4B8YWd7D620RM6P7q96rBM//0BJk ktlhAZ93itH863KmSS4bPlEWniiP3ZuFEnyXFkliFoGOYS/h7nysu0HlpLfvJ4DVw30zpEwYjhZ +stzKRoEUlzHqH1VFiKhnmTEVkQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980630ile.32.1689268257164; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYzBd2cy5+vbqrqBW5hcL0Nlt03XvoKU7EVc2Oqt6qt/39DAJLG7+eJes4a+aimrEVLy/slQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980544ile.32.1689268256865; Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Received: from redhat.com ([38.15.36.239]) by smtp.gmail.com with ESMTPSA id el20-20020a0566384d9400b0042b61a5087csm1948085jab.132.2023.07.13.10.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Date: Thu, 13 Jul 2023 11:10:54 -0600 From: Alex Williamson To: Christian Brauner Subject: Re: [PATCH 0/2] eventfd: simplify signal helpers Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Organization: Red Hat MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, Muchun Song , Tony Krowiak , Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Roman Gushchin , Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, Michal Hocko , Heiko Carstens , linux-mm@kvack.org, Kirti Wankhede , Vineeth Vijayan , Diana Craciun , Borislav Petkov , Alexander Gordeev , Fei Li , Xuan Zhuo , Arnd Bergmann , Leon Romanovsky , jaz@semihalf.com, linux-rdma@vger.kernel.org, x86@kernel.org, Halil Pasic , Jason Gunthorpe , Ingo Molnar , Moritz Fischer , Frederic Barrat , Xu Yilun , Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Vasily Gorbik , linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org, Sean Christopherson , Eric Auger , Rodrigo Vivi , Harald Freudenberger , kvm@vger.kernel.org, Paolo Bonzini , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jens Axboe , Tvrtko Ursulin , netdev@vger.kernel.org, Oded Gabbay , linux-usb@vger.kernel.org, Peter Ob erparleiter , linux-kernel@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Shakeel Butt , Vitaly Kuznetsov , David Woodhouse , linuxppc-dev@lists.ozlabs.org, Pavel Begunkov Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C38C3C001DF for ; Thu, 13 Jul 2023 23:18:08 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=fMIucUY7; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29Wg3JdNz3c8Q for ; Fri, 14 Jul 2023 09:18:07 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=fMIucUY7; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=2604:1380:4641:c500::1; helo=dfw.source.kernel.org; envelope-from=brauner@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1qxs1ldKz3c0X for ; Thu, 13 Jul 2023 20:06:09 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8455C601C6; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6875C433C8; Thu, 13 Jul 2023 10:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242764; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; h=From:Subject:Date:To:Cc:From; b=fMIucUY7GArhLgcLDCFIQxCyAzXRgRPE8TkbNnY5GyU1HBPhbd5464W8Yg6jjQ1lL m6CWFlXeaqd10iV8ptWkOllE56aJPowyXSs5WiPty1Qsblb5rDh7+XYZZkXkukuQUD 2oiaMlw7C0sww3ot9gyUkCaU1j297MtNOoU25HevXc+ptbrPhHq2Zk21bLHu2o2olV KM6Bl/kUQtYvAIUPH+MSd/KGQP+HX58eb57Amnb444A4mU/RQ41PTUTV2bTgUUDM37 0Ncnb1LvDeYFhV3bcDM22YynZx1G+N6CQHl4PYcq4tdmwsqnstpRPCpNQMucQad6SH v0+dq9gbDJkNg== From: Christian Brauner Subject: [PATCH 0/2] eventfd: simplify signal helpers Date: Thu, 13 Jul 2023 12:05:36 +0200 Message-Id: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHDMr2QC/x3MwQrCMAyA4VcZORtpN9jAVxEPaZtuAY3SSBHG3 t3o8Tv8/w7GTdjgMuzQuIvJUx3xNEDeSFdGKW4YwziFJU7YqyF31nctaLIq3TGkUOK8UJk5g4e vxlU+/+n15k5kjKmR5u238sP5IZbhOL4kMfO0fwAAAA== To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=276; i=brauner@kernel.org; h=from:subject:message-id; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1PLoVi0NYRvYnj1752/FbjTRLb2F5/eK1jjLMP8OeoE g8DNjlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIlwrGT4n2l3WEWjd0VXqt6ih11Ns1 YfjrROvjc3V73IYWbr0apscUaGq6+my1lGuQtz2O564OagKGE5qVEnsLx/a9H1rIRnpwXZAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Eric Auger , Alex Williamson , Borislav Petkov , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Ch ristian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Hey everyone, This simplifies the eventfd_signal() and eventfd_signal_mask() helpers by removing the count argument which is effectively unused. --- --- base-commit: 6be357f00aad4189130147fdc6f568cf776a4909 change-id: 20230713-vfs-eventfd-signal-0b0d167ad6ec 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6C218C001B0 for ; Thu, 13 Jul 2023 23:18:58 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=G/zVc+cx; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29Xd0dQsz3cGS for ; Fri, 14 Jul 2023 09:18:57 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=G/zVc+cx; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=2604:1380:4641:c500::1; helo=dfw.source.kernel.org; envelope-from=brauner@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1qy523JSz3byP for ; Thu, 13 Jul 2023 20:06:21 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5131860A76; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64E84C43391; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242778; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/zVc+cx75jKrxPbnuju/atRsSVw8F0+lAKbEjGTw5GhMxtAmrwPy79ak+r+1ROcu IcQPyzLxGgawBBz8z8Y70v1491RsilNJTaUYxVhDVgFriZayfH8ZUfbtrhQJWLhPAH vpiBrVgRovIAIDW4KmWRfWlcJyQ9sLHY83qZhGLawBGVUmbV6BRizMJKmSIghOE/RJ YoU1DReRNExPVarbQdAYe5K1tgKCRDDRI0aDEOqPSGreY5fFjI+n/NextbBZcWkJO+ YDuiwIyJr6f+iGBS5caIbzXKnzeTSW15obZChr2oWIcmbifwKnBdNTVSGk0jqubn8w AyTVc+P60Arxg== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:37 +0200 Subject: [PATCH 1/2] eventfd: simplify eventfd_signal() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=23311; i=brauner@kernel.org; h=from:subject:message-id; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1N7Tzqtc8rKeaufBVx2qNr7M9C5NOKM4TWHndLF8yO8 hJ8ZdpSyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAEzkkDAjQ/Pk6ii/0+tYpaI/M26VY1 dozLZ4pFl5XfYkw2P7N38/hzP8Zn0/RcaQlUGn88TUwusronoeZx3LmbPvgfvfVff+tm9/zgMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Eric Auger , Alex Williamson , Borislav Petkov , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Ch ristian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Ever since the evenfd type was introduced back in 2007 in commit e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() function only ever passed 1 as a value for @n. There's no point in keeping that additional argument. Signed-off-by: Christian Brauner --- arch/x86/kvm/hyperv.c | 2 +- arch/x86/kvm/xen.c | 2 +- drivers/accel/habanalabs/common/device.c | 2 +- drivers/fpga/dfl.c | 2 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/misc/ocxl/file.c | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 2 +- drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- drivers/s390/crypto/vfio_ap_ops.c | 2 +- drivers/usb/gadget/function/f_fs.c | 4 ++-- drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- drivers/vhost/vdpa.c | 4 ++-- drivers/vhost/vhost.c | 10 +++++----- drivers/vhost/vhost.h | 2 +- drivers/virt/acrn/ioeventfd.c | 2 +- fs/aio.c | 2 +- fs/eventfd.c | 9 +++------ include/linux/eventfd.h | 4 ++-- mm/memcontrol.c | 10 +++++----- mm/vmpressure.c | 2 +- samples/vfio-mdev/mtty.c | 4 ++-- virt/kvm/eventfd.c | 4 ++-- 28 files changed, 56 insertions(+), 59 deletions(-) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index b28fd020066f..2f4bd74b482c 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h if (!eventfd) return HV_STATUS_INVALID_PORT_ID; - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); return HV_STATUS_SUCCESS; } diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 40edf4d1974c..a7b62bafd57b 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) if (ret < 0 && ret != -ENOTCONN) return false; } else { - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); + eventfd_signal(evtchnfd->deliver.eventfd.ctx); } *r = 0; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index b97339d1f7c6..30357b371d61 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 notifier_event->events_mask |= event_mask; if (notifier_event->eventfd) - eventfd_signal(notifier_event->eventfd, 1); + eventfd_signal(notifier_event->eventfd); mutex_unlock(¬ifier_event->lock); } diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index dd7a783d53b5..e73f88050f08 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 68eca023bbc6..3d9e09c2add4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) return -EFAULT; return 0; } diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index db5fb196c728..ad50487790ff 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, list_for_each_entry_rcu(item, fd_list, xa_list) { if (item->eventfd) - eventfd_signal(item->eventfd, 1); + eventfd_signal(item->eventfd); else deliver_event(item, data); } diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 6e63f060e4cc..51766db296ab 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) { struct eventfd_ctx *ev_ctx = private; - eventfd_signal(ev_ctx, 1); + eventfd_signal(ev_ctx); return IRQ_HANDLED; } diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c index d3f3a611f95b..38c176cf6295 100644 --- a/drivers/s390/cio/vfio_ccw_chp.c +++ b/drivers/s390/cio/vfio_ccw_chp.c @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, /* Notify the guest if more CRWs are on our queue */ if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); return ret; } diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 43601816ea4e..bfb35cfce1ef 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) - eventfd_signal(private->io_trigger, 1); + eventfd_signal(private->io_trigger); } void vfio_ccw_crw_todo(struct work_struct *work) @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) private = container_of(work, struct vfio_ccw_private, crw_work); if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); } /* diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c index 5b53b94f13c7..3df231f6feda 100644 --- a/drivers/s390/cio/vfio_ccw_ops.c +++ b/drivers/s390/cio/vfio_ccw_ops.c @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, case VFIO_IRQ_SET_DATA_NONE: { if (*ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_BOOL: @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, return -EFAULT; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_EVENTFD: @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(private->req_trigger, 1); + eventfd_signal(private->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request channel registered, blocked until released by user\n"); diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b441745b0418..feb88526ac9d 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(matrix_mdev->req_trigger, 1); + eventfd_signal(matrix_mdev->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request registered, blocked until released by user\n"); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index f41a385a5c42..ceb1aad0c5df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) io_data->kiocb->ki_complete(io_data->kiocb, ret); if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) - eventfd_signal(io_data->ffs->ffs_eventfd, 1); + eventfd_signal(io_data->ffs->ffs_eventfd); if (io_data->read) kfree(io_data->to_free); @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, ffs->ev.types[ffs->ev.count++] = type; wake_up_locked(&ffs->ev.waitq); if (ffs->ffs_eventfd) - eventfd_signal(ffs->ffs_eventfd, 1); + eventfd_signal(ffs->ffs_eventfd); } static void ffs_event_add(struct ffs_data *ffs, diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index dc38ed21319d..99b901a9e638 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) goto unlock; if (vq->kickfd) - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); else vq->kicked = true; unlock: @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, eventfd_ctx_put(vq->kickfd); vq->kickfd = ctx; if (vq->ready && vq->kicked && vq->kickfd) { - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); vq->kicked = false; } spin_unlock(&vq->kick_lock); @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) spin_lock_irq(&vq->irq_lock); if (vq->ready && vq->cb.trigger) { - eventfd_signal(vq->cb.trigger, 1); + eventfd_signal(vq->cb.trigger); signal = true; } spin_unlock_irq(&vq->irq_lock); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index c51229fccbd6..d62fbfff20b8 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) { struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; - eventfd_signal(mc_irq->trigger, 1); + eventfd_signal(mc_irq->trigger); return IRQ_HANDLED; } diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 20d7b69ea6ff..01c8e31db23b 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) */ down_write(&vdev->memory_lock); if (vdev->pm_wake_eventfd_ctx) { - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); + eventfd_signal(vdev->pm_wake_eventfd_ctx); __vfio_pci_runtime_pm_exit(vdev); } up_write(&vdev->memory_lock); @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) pci_notice_ratelimited(pdev, "Relaying device request to user (#%u)\n", count); - eventfd_signal(vdev->req_trigger, 1); + eventfd_signal(vdev->req_trigger); } else if (count == 0) { pci_warn(pdev, "No device request channel registered, blocked until released by user\n"); @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, mutex_lock(&vdev->igate); if (vdev->err_trigger) - eventfd_signal(vdev->err_trigger, 1); + eventfd_signal(vdev->err_trigger); mutex_unlock(&vdev->igate); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index cbb4bcbfbf83..237beac83809 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) ctx = vfio_irq_ctx_get(vdev, 0); if (WARN_ON_ONCE(!ctx)) return; - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, if (!ctx) continue; if (flags & VFIO_IRQ_SET_DATA_NONE) { - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t *bools = data; if (bools[i - start]) - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } return 0; @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, if (flags & VFIO_IRQ_SET_DATA_NONE) { if (*ctx) { if (count) { - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); } else { eventfd_ctx_put(*ctx); *ctx = NULL; @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, trigger = *(uint8_t *)data; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c index 665197caed89..61a1bfb68ac7 100644 --- a/drivers/vfio/platform/vfio_platform_irq.c +++ b/drivers/vfio/platform/vfio_platform_irq.c @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return ret; } @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return IRQ_HANDLED; } diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index b43e8680eee8..722894a0f124 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; if (call_ctx) - eventfd_signal(call_ctx, 1); + eventfd_signal(call_ctx); return IRQ_HANDLED; } @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) - eventfd_signal(config_ctx, 1); + eventfd_signal(config_ctx); return IRQ_HANDLED; } diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index c71d573f1c94..bee50f153c8e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, len -= l; if (!len) { if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); return 0; } } @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof vq->used->flags); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof *vhost_avail_event(vq)); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, log_used(vq, offsetof(struct vring_used, idx), sizeof vq->used->idx); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return r; } @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) { /* Signal the Guest tell them we used something up. */ if (vq->call_ctx.ctx && vhost_notify(dev, vq)) - eventfd_signal(vq->call_ctx.ctx, 1); + eventfd_signal(vq->call_ctx.ctx); } EXPORT_SYMBOL_GPL(vhost_signal); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index f60d5f7bef94..9e942fcda5c3 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, #define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ - eventfd_signal((vq)->error_ctx, 1);\ + eventfd_signal((vq)->error_ctx);\ } while (0) enum { diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c index ac4037e9f947..4e845c6ca0b5 100644 --- a/drivers/virt/acrn/ioeventfd.c +++ b/drivers/virt/acrn/ioeventfd.c @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, mutex_lock(&client->vm->ioeventfds_lock); p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); if (p) - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); mutex_unlock(&client->vm->ioeventfds_lock); return 0; diff --git a/fs/aio.c b/fs/aio.c index 77e33619de40..96cf97b19077 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) * from IRQ context. */ if (iocb->ki_eventfd) - eventfd_signal(iocb->ki_eventfd, 1); + eventfd_signal(iocb->ki_eventfd); /* * We have to order our ring_info tail store above and test diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..dc9e01053235 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) /** * eventfd_signal - Adds @n to the eventfd counter. * @ctx: [in] Pointer to the eventfd context. - * @n: [in] Value of the counter to be added to the eventfd internal counter. - * The value cannot be negative. * * This function is supposed to be called by the kernel in paths that do not * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX * value, and we signal this as overflow condition by returning a EPOLLERR * to poll(2). * - * Returns the amount by which the counter was incremented. This will be less - * than @n if the counter has overflowed. + * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +__u64 eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, n, 0); + return eventfd_signal_mask(ctx, 1, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b9d83652c097..562089431551 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); +__u64 eventfd_signal(struct eventfd_ctx *ctx); __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +static inline int eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..891550f575a1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* i = current_threshold + 1 */ i++; @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* Update current_threshold */ t->current_threshold = i - 1; @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) spin_lock(&memcg_oom_lock); list_for_each_entry(ev, &memcg->oom_notify, list) - eventfd_signal(ev->eventfd, 1); + eventfd_signal(ev->eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, /* already in OOM ? */ if (memcg->under_oom) - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) event->unregister_event(memcg, event->eventfd); /* Notify userspace the event is going away. */ - eventfd_signal(event->eventfd, 1); + eventfd_signal(event->eventfd); eventfd_ctx_put(event->eventfd); kfree(event); diff --git a/mm/vmpressure.c b/mm/vmpressure.c index b52644771cc4..ba4cdef37e42 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, continue; if (level < ev->level) continue; - eventfd_signal(ev->efd, 1); + eventfd_signal(ev->efd); ret = true; } mutex_unlock(&vmpr->events_lock); diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index a60801fb8660..5edcf8d738de 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) } if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) - ret = eventfd_signal(mdev_state->msi_evtfd, 1); + ret = eventfd_signal(mdev_state->msi_evtfd); else - ret = eventfd_signal(mdev_state->intx_evtfd, 1); + ret = eventfd_signal(mdev_state->intx_evtfd); #if defined(DEBUG_INTR) pr_info("Intx triggered\n"); diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..c0e230f4c3e9 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, srcu_read_lock_held(&resampler->kvm->irq_srcu)) - eventfd_signal(irqfd->resamplefd, 1); + eventfd_signal(irqfd->resamplefd); } /* @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, if (!ioeventfd_in_range(p, addr, len, val)) return -EOPNOTSUPP; - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); return 0; } -- 2.34.1 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 50426C001B0 for ; Thu, 13 Jul 2023 23:19:48 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=j+ukf52d; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29YZ6s2Nz3cRv for ; Fri, 14 Jul 2023 09:19:46 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=j+ukf52d; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=139.178.84.217; helo=dfw.source.kernel.org; envelope-from=brauner@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1qyN2qCBz3c1H for ; Thu, 13 Jul 2023 20:06:36 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0805160AB4; Thu, 13 Jul 2023 10:06:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34C10C433D9; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242793; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j+ukf52dvZ+nUEPwpL9/EYruyhEbJbg7d1yjKDMcd3GOYxX7RclutpFcH5UUHlkpI fnIEho3ycJz28JfRAPfizI9cf3F0lqh4jC9ZF+UZUl5JTb6HfdwpWlIJ9bsmZ0DsOQ PAjBHJokUk/yF6GqX5PHCHsaDKT13j+MVST75N+zeiC2em3PJTUKrCtRR1KKmsmMCX MYnQq0YQbswQU++9LLW3pgHXNsdqcZtbb04btB9J/lGIIF9SRPTFcmVmql2ih2n6bH BAMadKjZaQhxN2qUstf+rs137LSKZ/kMx1juo/8V60a80JJWvq1eqYcfgXe/BuR2sH +vKmJxA1p+x+A== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:38 +0200 Subject: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=4338; i=brauner@kernel.org; h=from:subject:message-id; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1NbdfmkaWaxQvZah7/MWs/ufCrO2q82U2T1DIWDSy0u LwzX6ChhYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZiIshkjww4t2ytlzT8ElQsqm7Su/N b3T10XyfCvYZ2XvvOJclnpCIbvvh+/WjLaTozOzj3stenvds+qri//VkTNPGGwWHTi+Uc8AA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Eric Auger , Alex Williamson , Borislav Petkov , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Ch ristian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" The eventfd_signal_mask() helper was introduced for io_uring and similar to eventfd_signal() it always passed 1 for @n. So don't bother with that argument at all. Signed-off-by: Christian Brauner --- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- fs/eventfd.c | 9 +++++---- include/linux/eventfd.h | 9 ++++----- io_uring/io_uring.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 3d9e09c2add4..31aff6f733d4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) + if (vgpu->msi_trigger && !eventfd_signal(vgpu->msi_trigger)) return -EFAULT; return 0; } diff --git a/fs/eventfd.c b/fs/eventfd.c index dc9e01053235..077be5da72bd 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -43,9 +43,10 @@ struct eventfd_ctx { int id; }; -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) { unsigned long flags; + __u64 n = 1; /* * Deadlock or stack overflow issues can happen if we recurse here @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); - return n; + return n == 1; } /** @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) * * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx) +bool eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, 1, 0); + return eventfd_signal_mask(ctx, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 562089431551..0155ee25f7c8 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,8 +35,8 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx); -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); +bool eventfd_signal(struct eventfd_ctx *ctx); +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx) +static inline bool eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, - unsigned mask) +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { return -ENOSYS; } diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..a9359ef73935 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -537,7 +537,7 @@ static void io_eventfd_ops(struct rcu_head *rcu) int ops = atomic_xchg(&ev_fd->ops, 0); if (ops & BIT(IO_EVENTFD_OP_SIGNAL_BIT)) - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); /* IO_EVENTFD_OP_FREE_BIT may not be set here depending on callback * ordering in a race but if references are 0 we know we have to free @@ -573,7 +573,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) goto out; if (likely(eventfd_signal_allowed())) { - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); } else { atomic_inc(&ev_fd->refs); if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) -- 2.34.1 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 35A02C001B0 for ; Thu, 13 Jul 2023 23:22:47 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=ULG29s5b; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29d169Bkz3cYn for ; Fri, 14 Jul 2023 09:22:45 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=ULG29s5b; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=2604:1380:4641:c500::1; helo=dfw.source.kernel.org; envelope-from=ogabbay@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1wbX2BvYz300N for ; Thu, 13 Jul 2023 23:35:36 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A074D612ED for ; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C2F6C433C9 for ; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689255331; bh=C9ZL/aINfzb4DTfI0PDdwKD/w/Hf1nA7/TiEr1Wu8NY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=ULG29s5b0Oa6BUaRvE4je7ndrfAqtpxxGKG0jbR/MyJnnociEcPTF7D0TR+M1fv6d LQMj8X4vgG172Sl3TiqE8snMj+Qu1lERArY7yIC5+dsqWtGZdih2m9oOSKzHUUDRj5 SUZd9bXbF46iPK7aiZ4Xfsgn5QC+D0oNngsQXVMAMlZPfKBLkZSYdkygtLmJ7uI3bq 6W8z1prSQ04e8EP4uuXQ7sGi+6QV8rc6uOxet8DtxSAPHAGvo0nvxRqgKGWY3al1Jn B/rs07ot3Ug577ZTDhle1hFUb13gMP8cnJn+npH/fSDPqeKRMjSmK+c/GHjZZR8OHF wA2L1In5zK2rw== Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-6686c74183cso753385b3a.1 for ; Thu, 13 Jul 2023 06:35:31 -0700 (PDT) X-Gm-Message-State: ABy/qLbITgphPj2vA2sMCnJeM772z0z2GZqr83UsHNDaozfd7LGFHpsR FdcvyaXtIk+E0zgtDfSsHJDNeY5XkjvUMFkdnro= X-Google-Smtp-Source: APBJJlFgmxFKKMX4o5RoczSZCW4vsZEnViWIJVep1sF3lemBlvWAL/cO6of628K/gm7rbjqMK5O6ldYSkO/4Nrf+UkI= X-Received: by 2002:a25:d091:0:b0:c6e:a2b0:e53c with SMTP id h139-20020a25d091000000b00c6ea2b0e53cmr1438348ybg.62.1689255309970; Thu, 13 Jul 2023 06:35:09 -0700 (PDT) MIME-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Oded Gabbay Date: Thu, 13 Jul 2023 16:34:43 +0300 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() To: Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Frederic Barrat , Alex Williamson , Moritz Fischer , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Sean Christopherson , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Greg Kroah-Hartman , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Thu, Jul 13, 2023 at 1:06=E2=80=AFPM Christian Brauner wrote: > > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu = *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vc= pu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret !=3D -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r =3D 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/hab= analabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifi= er_event *notifier_event, u64 > notifier_event->events_mask |=3D event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *a= rg) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/= gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu= *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != =3D 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) !=3D 1= ) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/ml= x5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_= list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx =3D private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_= chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_c= cw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_= drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state =3D VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private =3D container_of(work, struct vfio_ccw_private, crw_work)= ; > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_= ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device = *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request channel registered, blocked= until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio= _ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device= *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request registered, blocked until r= eleased by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/func= tion/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *= work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] =3D type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked =3D true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd =3D ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked =3D false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqu= eue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal =3D true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc= /vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num,= void *arg) > { > struct vfio_fsl_mc_irq *mc_irq =3D (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci= _core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device= *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core= _vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n"= , > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count =3D=3D 0) { > pci_warn(pdev, > "No device request channel registered, blocked un= til released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(str= uct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pc= i_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *= unused) > ctx =3D vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg= ) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci= _core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools =3D data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx =3D NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > > trigger =3D *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/pla= tform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int ir= q, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret =3D=3D IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *de= v_id) > { > struct vfio_platform_irq *irq_ctx =3D dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *priv= ate) > struct eventfd_ctx *call_ctx =3D vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private= ) > struct eventfd_ctx *config_ctx =3D v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, str= uct vhost_log *log, > len -=3D l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_vir= tqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_vi= rtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, st= ruct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vho= st_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.= c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_c= lient *client, > mutex_lock(&client->vm->ioeventfds_lock); > p =3D hsm_ioeventfd_match(client->vm, addr, val, size, req->type)= ; > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __= u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal cou= nter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do= not > * allow sleeping. In this function we allow the counter to reach the UL= LONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLE= RR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will b= e less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mas= k); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_en= try_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int= fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i >=3D 0 && unlikely(t->entries[i].threshold > usage); i--= ) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i =3D current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <=3D usage= ); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold =3D i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgro= up *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem= _cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *= work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret =3D true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state= *mdev_state) > } > > if (mdev_state->irq_index =3D=3D VFIO_PCI_MSI_IRQ_INDEX) > - ret =3D eventfd_signal(mdev_state->msi_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->msi_evtfd); > else > - ret =3D eventfd_signal(mdev_state->intx_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_ir= qfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq= _srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_= device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > > -- > 2.34.1 > For habanalabs (device.c): Reviewed-by: Oded Gabbay 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7580FC001B0 for ; Thu, 13 Jul 2023 23:23:37 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20221208 header.b=jacaK9M2; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29f00pLTz3cm7 for ; Fri, 14 Jul 2023 09:23:36 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20221208 header.b=jacaK9M2; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=flex--seanjc.bounces.google.com (client-ip=2607:f8b0:4864:20::54a; helo=mail-pg1-x54a.google.com; envelope-from=3iguwzaykdcutfbokdhpphmf.dpnmjovyqqd-efwmjtut.pambct.psh@flex--seanjc.bounces.google.com; receiver=lists.ozlabs.org) Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com [IPv6:2607:f8b0:4864:20::54a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1xt218vjz30P3 for ; Fri, 14 Jul 2023 00:33:12 +1000 (AEST) Received: by mail-pg1-x54a.google.com with SMTP id 41be03b00d2f7-55c072efe78so396749a12.3 for ; Thu, 13 Jul 2023 07:33:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=jacaK9M2p8ae07DYtf3WTwW4sJ88AeR0PMoTM/K8Zom80G9CNsRED8/7OkNACpL4FI vSrK+poAQrpW9b9XXAEX3N+/eJqGG0fl2uSilp/V2zhMmynFGmkNp19rQMAPCUIgro+L 8wZFnIyWuBTpd6inSk0jhwWPq/qOKDhiCmrdy2nICENUOLQPMx4zm5vkc1J+N+jf8F/9 NWijWeXBKP6nhRWfAZooF9dECtwpwP1B06LROVi+ZRGQWEPDlF+8FcWtS7IpVg38LWBC sabPszkfHQCdZSa4qO28HKir4zE3m+cUi5LtAFjCZb9xEKl25slyjVF3CoaXZrvttifT RnQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=QRu8Xm4rD4FyKOEU5DHi9xfAn3H0Fi13EgSBya0EDW5dowzNlaNzXxAd1OpkVmLa6h fkBXqplOUTvEzkR5Ab1Ikoc05DfKT48hcoaToKyO2Ke40iEEJtsxiGO9weCOJVFvr6TE sW74Su4pHe2oq+RxhrGxGCBGQaHW6ngZJ2clMzmqro5vcAEHcL4dns9WPnD3wlc8aYX9 D+3wwmbyNb9lT/IafwRjUxBqTtS+VF7WlETpQ9Q7J+OLI0da/2WEPq8PImDYTKZY8Hrx BN/ZOU9Obwrfi3Z8ChHgZNHtceewHPAxt8pI2KBOJd+ltDth7sCvEs6bCBknzln8ZBfX YEzg== X-Gm-Message-State: ABy/qLb9tO9Fciqs6TG0akSKuV5TdpinctODZBqgdaUzRZMX6oZnv4sr 6cWrSdWtc8L7ZsYwYkTHhkmWyvIPfqA= X-Google-Smtp-Source: APBJJlFAAhWItEMB5PDxlVd4/XD0kDAeGPn5ZZPTnMU3ojU8FDM9Oji9AhkfLIh7rpZuc1o0H3AhYJQLwhY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:b282:b0:1ba:1704:89d1 with SMTP id u2-20020a170902b28200b001ba170489d1mr5846plr.10.1689258786828; Thu, 13 Jul 2023 07:33:06 -0700 (PDT) Date: Thu, 13 Jul 2023 07:33:05 -0700 In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Message-ID: Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() From: Sean Christopherson To: Christian Brauner Content-Type: text/plain; charset="us-ascii" X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Frederic Barrat , Alex Williamson , Moritz Fischer , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Thu, Jul 13, 2023, Christian Brauner wrote: > diff --git a/fs/eventfd.c b/fs/eventfd.c > index dc9e01053235..077be5da72bd 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -43,9 +43,10 @@ struct eventfd_ctx { > int id; > }; > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > { > unsigned long flags; > + __u64 n = 1; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > - return n; > + return n == 1; > } ... > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > - unsigned mask) > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > return -ENOSYS; This will morph to "true" for what should be an error case. One option would be to have eventfd_signal_mask() return 0/-errno instead of the count, but looking at all the callers, nothing ever actually consumes the result. KVMGT morphs failure into -EFAULT if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) return -EFAULT; but the only caller of that user ignores the return value. if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) & ~GEN8_MASTER_IRQ_CONTROL) inject_virtual_interrupt(vgpu); The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an error but otherwise ignores the result. So why not return nothing? That will simplify eventfd_signal_mask() a wee bit more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { unsigned long flags; /* * Deadlock or stack overflow issues can happen if we recurse here * through waitqueue wakeup handlers. If the caller users potentially * nested waitqueues with custom wakeup handlers, then it should * check eventfd_signal_allowed() before calling this function. If * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ if (WARN_ON_ONCE(current->in_eventfd)) return; spin_lock_irqsave(&ctx->wqh.lock, flags); current->in_eventfd = 1; if (ctx->count < ULLONG_MAX) ctx->count++; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); } You could even go further and unify the real and stub versions of eventfd_signal(). 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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E5D25C001B0 for ; Thu, 13 Jul 2023 23:24:27 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=RS/6gRgq; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4R29fy3zq3z3cNF for ; Fri, 14 Jul 2023 09:24:26 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=RS/6gRgq; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=139.178.84.217; helo=dfw.source.kernel.org; envelope-from=brauner@kernel.org; receiver=lists.ozlabs.org) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4R1yJk6ry4z3bWr for ; Fri, 14 Jul 2023 00:52:54 +1000 (AEST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 26627615BE; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA899C433C7; Thu, 13 Jul 2023 14:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689259971; bh=R4Hkl4iroQ+C4d3AaFA6aa52uzI7aPnAyTDDN/lwc78=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RS/6gRgqvF3ybwn8Ovqq43iLhI7Yv15SZZP2U5CNn6IhgXHQH9mo4nByA/g4W736R AkMi1WqcMsHhNrtO7dGPqCwKIYlgvLK+7FW5vJj2elL3FTubJgM81//BHDuM8QqyRP Csacjb3yQ3aRtIn7A1i9sInqtS8VRY/O0QwqwwSlh+wJ04gvPtGAbDZaSnmdfd209l vt3KpAe4HIE13hYrO1C7jusvVYug5pHUh1tQDDmm+XtqhW6CbXRqbqDYOCl1W9QxOQ VXNT8IMNIH9hLd1wzLndR4KoVQB79H/FYLq25P8lOlildm0R+bpsuSo9TwClPA0kLV csu2vX1i0ECSg== Date: Thu, 13 Jul 2023 16:52:34 +0200 From: Christian Brauner To: Sean Christopherson Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Message-ID: <20230713-mahnen-drosseln-fa717117e827@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Mailman-Approved-At: Fri, 14 Jul 2023 09:17:19 +1000 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Joonas Lahtinen , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , netdev@vger.kernel.org, Alexander Gordeev , David Airlie , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gf x@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Zhenyu Wang , Frederic Barrat , Alex Williamson , Moritz Fischer , Jani Nikula , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Daniel Vetter , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Thu, Jul 13, 2023 at 07:33:05AM -0700, Sean Christopherson wrote: > On Thu, Jul 13, 2023, Christian Brauner wrote: > > diff --git a/fs/eventfd.c b/fs/eventfd.c > > index dc9e01053235..077be5da72bd 100644 > > --- a/fs/eventfd.c > > +++ b/fs/eventfd.c > > @@ -43,9 +43,10 @@ struct eventfd_ctx { > > int id; > > }; > > > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > > { > > unsigned long flags; > > + __u64 n = 1; > > > > /* > > * Deadlock or stack overflow issues can happen if we recurse here > > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > current->in_eventfd = 0; > > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > > > - return n; > > + return n == 1; > > } > > ... > > > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > > return ERR_PTR(-ENOSYS); > > } > > > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > > { > > return -ENOSYS; > > } > > > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > > - unsigned mask) > > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > > { > > return -ENOSYS; > > This will morph to "true" for what should be an error case. One option would be Ewww, that means it did return -ENOSYS before any of this. > to have eventfd_signal_mask() return 0/-errno instead of the count, but looking > at all the callers, nothing ever actually consumes the result. > > KVMGT morphs failure into -EFAULT > > if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > return -EFAULT; > > but the only caller of that user ignores the return value. > > if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) > & ~GEN8_MASTER_IRQ_CONTROL) > inject_virtual_interrupt(vgpu); > > The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an > error but otherwise ignores the result. > > So why not return nothing? That will simplify eventfd_signal_mask() a wee bit > more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. Yeah, it used to return an int in the non-eventfd and a __u64 in the eventfd case. > > void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > unsigned long flags; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > * through waitqueue wakeup handlers. If the caller users potentially > * nested waitqueues with custom wakeup handlers, then it should > * check eventfd_signal_allowed() before calling this function. If > * it returns false, the eventfd_signal() call should be deferred to a > * safe context. > */ > if (WARN_ON_ONCE(current->in_eventfd)) > return; > > spin_lock_irqsave(&ctx->wqh.lock, flags); > current->in_eventfd = 1; > if (ctx->count < ULLONG_MAX) > ctx->count++; > if (waitqueue_active(&ctx->wqh)) > wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > } > > You could even go further and unify the real and stub versions of eventfd_signal(). The reason I didn't make eventfd_signal_mask() return void was that it was called from eventfd_signal() which did, I didn't realize the caller didn't actually consume the return value. If we can let both return void it gets simpler. Thanks for that. 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 smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4829EC001DE for ; Thu, 13 Jul 2023 17:11:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id BD6E34178B; Thu, 13 Jul 2023 17:11:14 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org BD6E34178B Authentication-Results: smtp2.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=OrTg0Gxe X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DsJb1qIByczB; Thu, 13 Jul 2023 17:11:14 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id 3F8E741783; Thu, 13 Jul 2023 17:11:13 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 3F8E741783 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 15CCAC0071; Thu, 13 Jul 2023 17:11:13 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 910CBC0032 for ; Thu, 13 Jul 2023 17:11:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 57E444032A for ; Thu, 13 Jul 2023 17:11:11 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 57E444032A X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GIknmZXg-mo5 for ; Thu, 13 Jul 2023 17:11:08 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org F00F74179D Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id F00F74179D for ; Thu, 13 Jul 2023 17:11:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=OrTg0Gxep8b1FgfWpj+u322nyJltbbewHDrG0FvwJ4pg/O18xeMmBh6/wJ1AssXXLzXbnK XiTGgZSylvIhDgAhgvuqezQaJRHIGtGV1Jfqlniar1piTq8hMQEaWeNzDkRYdsD/0Oa+an 7dopCH3esn84pQzpXjfRkvhv55LhNNI= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-620-4V8WEtSMMFyPe-esFMXUHg-1; Thu, 13 Jul 2023 13:10:59 -0400 X-MC-Unique: 4V8WEtSMMFyPe-esFMXUHg-1 Received: by mail-il1-f200.google.com with SMTP id e9e14a558f8ab-345c1f3dcc8so4533625ab.3 for ; Thu, 13 Jul 2023 10:10:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689268257; x=1691860257; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=evWkebXF1d8yq/gWMNz3qu/EIoi8rQ+M8wMEx/5kxpJFqLXmfYTE8MstBnkic5EZWX CcfXWoUpys2F39a9OlRK9mlGT19DIAVbW2Sqk/n2SNllWjVn2PhS5wpsFGTYiU4JHy99 OS1YcO2BWrj9THSoPH6qejAYrv8e97Mymjwwg8V9med9XDVLV+YayBxIY28/n6fzhELJ L2+4RsOMriOWuAEXHah6AQ3rn6wOUp5LW0+z+0M5SNKFYj1EVLJgO6lZgYPL/9N8Ar9T AdvbIRVM2vILVBOPy5sCDyhKF5U/mVlMDxz8ZiZmgVz41mmuJ6l2dKBPxsc4FfodI4tp p38g== X-Gm-Message-State: ABy/qLY7B6PJ+X/h9yn1YZUwuhrF3MEUuL11VZnR0eaRQhIrAw7S5WTf O0kbZ1f09+yMpYiOJaaehpx3DTEb/+7BsbAI8UWJqI0PQxj/tFxH+8+caRw5by8PbL3ytoUfoO/ UoB2O/lLy8KOgzg4wWe2D5rcT8toHOb5gkIe06gHVVg== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980599ile.32.1689268257121; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYzBd2cy5+vbqrqBW5hcL0Nlt03XvoKU7EVc2Oqt6qt/39DAJLG7+eJes4a+aimrEVLy/slQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980544ile.32.1689268256865; Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Received: from redhat.com ([38.15.36.239]) by smtp.gmail.com with ESMTPSA id el20-20020a0566384d9400b0042b61a5087csm1948085jab.132.2023.07.13.10.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Date: Thu, 13 Jul 2023 11:10:54 -0600 From: Alex Williamson To: Christian Brauner Subject: Re: [PATCH 0/2] eventfd: simplify signal helpers Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Organization: Red Hat MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: linux-aio@kvack.org, Muchun Song , Tony Krowiak , Matthew Rosato , Paul Durrant , Tom Rix , Roman Gushchin , Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, Michal Hocko , Heiko Carstens , linux-mm@kvack.org, Kirti Wankhede , Vineeth Vijayan , Diana Craciun , Borislav Petkov , Alexander Gordeev , Fei Li , Xuan Zhuo , Arnd Bergmann , Leon Romanovsky , jaz@semihalf.com, linux-rdma@vger.kernel.org, x86@kernel.org, Halil Pasic , Jason Gunthorpe , Ingo Molnar , Moritz Fischer , Frederic Barrat , Xu Yilun , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Vasily Gorbik , linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org, Sean Christopherson , Eric Auger , Rodrigo Vivi , Harald Freudenberger , kvm@vger.kernel.org, Paolo Bonzini , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jens Axboe , Tvrtko Ursulin , netdev@vger.kernel.org, Oded Gabbay , linux-usb@vger.kernel.org, Peter Oberparleiter , linux-kernel@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Shakeel Butt , David Woodhouse , linuxppc-dev@lists.ozlabs.org, Pavel Begunkov X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ED80BC0015E for ; Thu, 13 Jul 2023 10:06:07 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2A24F10E666; Thu, 13 Jul 2023 10:06:07 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B70910E666; Thu, 13 Jul 2023 10:06:05 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8455C601C6; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C6875C433C8; Thu, 13 Jul 2023 10:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242764; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; h=From:Subject:Date:To:Cc:From; b=fMIucUY7GArhLgcLDCFIQxCyAzXRgRPE8TkbNnY5GyU1HBPhbd5464W8Yg6jjQ1lL m6CWFlXeaqd10iV8ptWkOllE56aJPowyXSs5WiPty1Qsblb5rDh7+XYZZkXkukuQUD 2oiaMlw7C0sww3ot9gyUkCaU1j297MtNOoU25HevXc+ptbrPhHq2Zk21bLHu2o2olV KM6Bl/kUQtYvAIUPH+MSd/KGQP+HX58eb57Amnb444A4mU/RQ41PTUTV2bTgUUDM37 0Ncnb1LvDeYFhV3bcDM22YynZx1G+N6CQHl4PYcq4tdmwsqnstpRPCpNQMucQad6SH v0+dq9gbDJkNg== From: Christian Brauner Subject: [PATCH 0/2] eventfd: simplify signal helpers Date: Thu, 13 Jul 2023 12:05:36 +0200 Message-Id: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHDMr2QC/x3MwQrCMAyA4VcZORtpN9jAVxEPaZtuAY3SSBHG3 t3o8Tv8/w7GTdjgMuzQuIvJUx3xNEDeSFdGKW4YwziFJU7YqyF31nctaLIq3TGkUOK8UJk5g4e vxlU+/+n15k5kjKmR5u238sP5IZbhOL4kMfO0fwAAAA== To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=276; i=brauner@kernel.org; h=from:subject:message-id; bh=uxBF/65cfGgFc9NUZsYBWMo4c7yjkoqCGF6QeEUJdAY=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1PLoVi0NYRvYnj1752/FbjTRLb2F5/eK1jjLMP8OeoE g8DNjlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIlwrGT4n2l3WEWjd0VXqt6ih11Ns1 YfjrROvjc3V73IYWbr0apscUaGq6+my1lGuQtz2O564OagKGE5qVEnsLx/a9H1rIRnpwXZAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Alex Williamson , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hey everyone, This simplifies the eventfd_signal() and eventfd_signal_mask() helpers by removing the count argument which is effectively unused. --- --- base-commit: 6be357f00aad4189130147fdc6f568cf776a4909 change-id: 20230713-vfs-eventfd-signal-0b0d167ad6ec 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 08584EB64DD for ; Thu, 13 Jul 2023 10:06:22 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CE4810E66A; Thu, 13 Jul 2023 10:06:22 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1ACFC10E668; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5131860A76; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64E84C43391; Thu, 13 Jul 2023 10:06:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242778; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=G/zVc+cx75jKrxPbnuju/atRsSVw8F0+lAKbEjGTw5GhMxtAmrwPy79ak+r+1ROcu IcQPyzLxGgawBBz8z8Y70v1491RsilNJTaUYxVhDVgFriZayfH8ZUfbtrhQJWLhPAH vpiBrVgRovIAIDW4KmWRfWlcJyQ9sLHY83qZhGLawBGVUmbV6BRizMJKmSIghOE/RJ YoU1DReRNExPVarbQdAYe5K1tgKCRDDRI0aDEOqPSGreY5fFjI+n/NextbBZcWkJO+ YDuiwIyJr6f+iGBS5caIbzXKnzeTSW15obZChr2oWIcmbifwKnBdNTVSGk0jqubn8w AyTVc+P60Arxg== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:37 +0200 Subject: [PATCH 1/2] eventfd: simplify eventfd_signal() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=23311; i=brauner@kernel.org; h=from:subject:message-id; bh=dkkB/YXvGqhTLGLpkwv65DMDnv+sA8ALU7K2PTdtqVs=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1N7Tzqtc8rKeaufBVx2qNr7M9C5NOKM4TWHndLF8yO8 hJ8ZdpSyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAEzkkDAjQ/Pk6ii/0+tYpaI/M26VY1 dozLZ4pFl5XfYkw2P7N38/hzP8Zn0/RcaQlUGn88TUwusronoeZx3LmbPvgfvfVff+tm9/zgMA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Alex Williamson , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Ever since the evenfd type was introduced back in 2007 in commit e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() function only ever passed 1 as a value for @n. There's no point in keeping that additional argument. Signed-off-by: Christian Brauner --- arch/x86/kvm/hyperv.c | 2 +- arch/x86/kvm/xen.c | 2 +- drivers/accel/habanalabs/common/device.c | 2 +- drivers/fpga/dfl.c | 2 +- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 2 +- drivers/misc/ocxl/file.c | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 2 +- drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- drivers/s390/crypto/vfio_ap_ops.c | 2 +- drivers/usb/gadget/function/f_fs.c | 4 ++-- drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +++--- drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- drivers/vhost/vdpa.c | 4 ++-- drivers/vhost/vhost.c | 10 +++++----- drivers/vhost/vhost.h | 2 +- drivers/virt/acrn/ioeventfd.c | 2 +- fs/aio.c | 2 +- fs/eventfd.c | 9 +++------ include/linux/eventfd.h | 4 ++-- mm/memcontrol.c | 10 +++++----- mm/vmpressure.c | 2 +- samples/vfio-mdev/mtty.c | 4 ++-- virt/kvm/eventfd.c | 4 ++-- 28 files changed, 56 insertions(+), 59 deletions(-) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index b28fd020066f..2f4bd74b482c 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h if (!eventfd) return HV_STATUS_INVALID_PORT_ID; - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); return HV_STATUS_SUCCESS; } diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 40edf4d1974c..a7b62bafd57b 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) if (ret < 0 && ret != -ENOTCONN) return false; } else { - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); + eventfd_signal(evtchnfd->deliver.eventfd.ctx); } *r = 0; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index b97339d1f7c6..30357b371d61 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 notifier_event->events_mask |= event_mask; if (notifier_event->eventfd) - eventfd_signal(notifier_event->eventfd, 1); + eventfd_signal(notifier_event->eventfd); mutex_unlock(¬ifier_event->lock); } diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index dd7a783d53b5..e73f88050f08 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 68eca023bbc6..3d9e09c2add4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) return -EFAULT; return 0; } diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index db5fb196c728..ad50487790ff 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, list_for_each_entry_rcu(item, fd_list, xa_list) { if (item->eventfd) - eventfd_signal(item->eventfd, 1); + eventfd_signal(item->eventfd); else deliver_event(item, data); } diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 6e63f060e4cc..51766db296ab 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) { struct eventfd_ctx *ev_ctx = private; - eventfd_signal(ev_ctx, 1); + eventfd_signal(ev_ctx); return IRQ_HANDLED; } diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c index d3f3a611f95b..38c176cf6295 100644 --- a/drivers/s390/cio/vfio_ccw_chp.c +++ b/drivers/s390/cio/vfio_ccw_chp.c @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, /* Notify the guest if more CRWs are on our queue */ if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); return ret; } diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c index 43601816ea4e..bfb35cfce1ef 100644 --- a/drivers/s390/cio/vfio_ccw_drv.c +++ b/drivers/s390/cio/vfio_ccw_drv.c @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) - eventfd_signal(private->io_trigger, 1); + eventfd_signal(private->io_trigger); } void vfio_ccw_crw_todo(struct work_struct *work) @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) private = container_of(work, struct vfio_ccw_private, crw_work); if (!list_empty(&private->crw) && private->crw_trigger) - eventfd_signal(private->crw_trigger, 1); + eventfd_signal(private->crw_trigger); } /* diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c index 5b53b94f13c7..3df231f6feda 100644 --- a/drivers/s390/cio/vfio_ccw_ops.c +++ b/drivers/s390/cio/vfio_ccw_ops.c @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, case VFIO_IRQ_SET_DATA_NONE: { if (*ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_BOOL: @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, return -EFAULT; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } case VFIO_IRQ_SET_DATA_EVENTFD: @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(private->req_trigger, 1); + eventfd_signal(private->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request channel registered, blocked until released by user\n"); diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b441745b0418..feb88526ac9d 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) "Relaying device request to user (#%u)\n", count); - eventfd_signal(matrix_mdev->req_trigger, 1); + eventfd_signal(matrix_mdev->req_trigger); } else if (count == 0) { dev_notice(dev, "No device request registered, blocked until released by user\n"); diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index f41a385a5c42..ceb1aad0c5df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) io_data->kiocb->ki_complete(io_data->kiocb, ret); if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) - eventfd_signal(io_data->ffs->ffs_eventfd, 1); + eventfd_signal(io_data->ffs->ffs_eventfd); if (io_data->read) kfree(io_data->to_free); @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, ffs->ev.types[ffs->ev.count++] = type; wake_up_locked(&ffs->ev.waitq); if (ffs->ffs_eventfd) - eventfd_signal(ffs->ffs_eventfd, 1); + eventfd_signal(ffs->ffs_eventfd); } static void ffs_event_add(struct ffs_data *ffs, diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index dc38ed21319d..99b901a9e638 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) goto unlock; if (vq->kickfd) - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); else vq->kicked = true; unlock: @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, eventfd_ctx_put(vq->kickfd); vq->kickfd = ctx; if (vq->ready && vq->kicked && vq->kickfd) { - eventfd_signal(vq->kickfd, 1); + eventfd_signal(vq->kickfd); vq->kicked = false; } spin_unlock(&vq->kick_lock); @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) spin_lock_irq(&vq->irq_lock); if (vq->ready && vq->cb.trigger) { - eventfd_signal(vq->cb.trigger, 1); + eventfd_signal(vq->cb.trigger); signal = true; } spin_unlock_irq(&vq->irq_lock); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index c51229fccbd6..d62fbfff20b8 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) { struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; - eventfd_signal(mc_irq->trigger, 1); + eventfd_signal(mc_irq->trigger); return IRQ_HANDLED; } diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 20d7b69ea6ff..01c8e31db23b 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) */ down_write(&vdev->memory_lock); if (vdev->pm_wake_eventfd_ctx) { - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); + eventfd_signal(vdev->pm_wake_eventfd_ctx); __vfio_pci_runtime_pm_exit(vdev); } up_write(&vdev->memory_lock); @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) pci_notice_ratelimited(pdev, "Relaying device request to user (#%u)\n", count); - eventfd_signal(vdev->req_trigger, 1); + eventfd_signal(vdev->req_trigger); } else if (count == 0) { pci_warn(pdev, "No device request channel registered, blocked until released by user\n"); @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, mutex_lock(&vdev->igate); if (vdev->err_trigger) - eventfd_signal(vdev->err_trigger, 1); + eventfd_signal(vdev->err_trigger); mutex_unlock(&vdev->igate); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index cbb4bcbfbf83..237beac83809 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) ctx = vfio_irq_ctx_get(vdev, 0); if (WARN_ON_ONCE(!ctx)) return; - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) { struct eventfd_ctx *trigger = arg; - eventfd_signal(trigger, 1); + eventfd_signal(trigger); return IRQ_HANDLED; } @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, if (!ctx) continue; if (flags & VFIO_IRQ_SET_DATA_NONE) { - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { uint8_t *bools = data; if (bools[i - start]) - eventfd_signal(ctx->trigger, 1); + eventfd_signal(ctx->trigger); } } return 0; @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, if (flags & VFIO_IRQ_SET_DATA_NONE) { if (*ctx) { if (count) { - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); } else { eventfd_ctx_put(*ctx); *ctx = NULL; @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, trigger = *(uint8_t *)data; if (trigger && *ctx) - eventfd_signal(*ctx, 1); + eventfd_signal(*ctx); return 0; } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c index 665197caed89..61a1bfb68ac7 100644 --- a/drivers/vfio/platform/vfio_platform_irq.c +++ b/drivers/vfio/platform/vfio_platform_irq.c @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) spin_unlock_irqrestore(&irq_ctx->lock, flags); if (ret == IRQ_HANDLED) - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return ret; } @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) { struct vfio_platform_irq *irq_ctx = dev_id; - eventfd_signal(irq_ctx->trigger, 1); + eventfd_signal(irq_ctx->trigger); return IRQ_HANDLED; } diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index b43e8680eee8..722894a0f124 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; if (call_ctx) - eventfd_signal(call_ctx, 1); + eventfd_signal(call_ctx); return IRQ_HANDLED; } @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) - eventfd_signal(config_ctx, 1); + eventfd_signal(config_ctx); return IRQ_HANDLED; } diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index c71d573f1c94..bee50f153c8e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, len -= l; if (!len) { if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); return 0; } } @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof vq->used->flags); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) log_used(vq, (used - (void __user *)vq->used), sizeof *vhost_avail_event(vq)); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return 0; } @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, log_used(vq, offsetof(struct vring_used, idx), sizeof vq->used->idx); if (vq->log_ctx) - eventfd_signal(vq->log_ctx, 1); + eventfd_signal(vq->log_ctx); } return r; } @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) { /* Signal the Guest tell them we used something up. */ if (vq->call_ctx.ctx && vhost_notify(dev, vq)) - eventfd_signal(vq->call_ctx.ctx, 1); + eventfd_signal(vq->call_ctx.ctx); } EXPORT_SYMBOL_GPL(vhost_signal); diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index f60d5f7bef94..9e942fcda5c3 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, #define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ - eventfd_signal((vq)->error_ctx, 1);\ + eventfd_signal((vq)->error_ctx);\ } while (0) enum { diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c index ac4037e9f947..4e845c6ca0b5 100644 --- a/drivers/virt/acrn/ioeventfd.c +++ b/drivers/virt/acrn/ioeventfd.c @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, mutex_lock(&client->vm->ioeventfds_lock); p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); if (p) - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); mutex_unlock(&client->vm->ioeventfds_lock); return 0; diff --git a/fs/aio.c b/fs/aio.c index 77e33619de40..96cf97b19077 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) * from IRQ context. */ if (iocb->ki_eventfd) - eventfd_signal(iocb->ki_eventfd, 1); + eventfd_signal(iocb->ki_eventfd); /* * We have to order our ring_info tail store above and test diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..dc9e01053235 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) /** * eventfd_signal - Adds @n to the eventfd counter. * @ctx: [in] Pointer to the eventfd context. - * @n: [in] Value of the counter to be added to the eventfd internal counter. - * The value cannot be negative. * * This function is supposed to be called by the kernel in paths that do not * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX * value, and we signal this as overflow condition by returning a EPOLLERR * to poll(2). * - * Returns the amount by which the counter was incremented. This will be less - * than @n if the counter has overflowed. + * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +__u64 eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, n, 0); + return eventfd_signal_mask(ctx, 1, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index b9d83652c097..562089431551 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); +__u64 eventfd_signal(struct eventfd_ctx *ctx); __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) +static inline int eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index e8ca4bdcb03c..891550f575a1 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* i = current_threshold + 1 */ i++; @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) * only one element of the array here. */ for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) - eventfd_signal(t->entries[i].eventfd, 1); + eventfd_signal(t->entries[i].eventfd); /* Update current_threshold */ t->current_threshold = i - 1; @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) spin_lock(&memcg_oom_lock); list_for_each_entry(ev, &memcg->oom_notify, list) - eventfd_signal(ev->eventfd, 1); + eventfd_signal(ev->eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, /* already in OOM ? */ if (memcg->under_oom) - eventfd_signal(eventfd, 1); + eventfd_signal(eventfd); spin_unlock(&memcg_oom_lock); return 0; @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) event->unregister_event(memcg, event->eventfd); /* Notify userspace the event is going away. */ - eventfd_signal(event->eventfd, 1); + eventfd_signal(event->eventfd); eventfd_ctx_put(event->eventfd); kfree(event); diff --git a/mm/vmpressure.c b/mm/vmpressure.c index b52644771cc4..ba4cdef37e42 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, continue; if (level < ev->level) continue; - eventfd_signal(ev->efd, 1); + eventfd_signal(ev->efd); ret = true; } mutex_unlock(&vmpr->events_lock); diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index a60801fb8660..5edcf8d738de 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) } if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) - ret = eventfd_signal(mdev_state->msi_evtfd, 1); + ret = eventfd_signal(mdev_state->msi_evtfd); else - ret = eventfd_signal(mdev_state->intx_evtfd, 1); + ret = eventfd_signal(mdev_state->intx_evtfd); #if defined(DEBUG_INTR) pr_info("Intx triggered\n"); diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 89912a17f5d5..c0e230f4c3e9 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, srcu_read_lock_held(&resampler->kvm->irq_srcu)) - eventfd_signal(irqfd->resamplefd, 1); + eventfd_signal(irqfd->resamplefd); } /* @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, if (!ioeventfd_in_range(p, addr, len, val)) return -EOPNOTSUPP; - eventfd_signal(p->eventfd, 1); + eventfd_signal(p->eventfd); return 0; } -- 2.34.1 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E8603EB64DD for ; Thu, 13 Jul 2023 10:06:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42E5510E667; Thu, 13 Jul 2023 10:06:37 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id F205B10E667; Thu, 13 Jul 2023 10:06:35 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0805160AB4; Thu, 13 Jul 2023 10:06:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34C10C433D9; Thu, 13 Jul 2023 10:06:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689242793; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=j+ukf52dvZ+nUEPwpL9/EYruyhEbJbg7d1yjKDMcd3GOYxX7RclutpFcH5UUHlkpI fnIEho3ycJz28JfRAPfizI9cf3F0lqh4jC9ZF+UZUl5JTb6HfdwpWlIJ9bsmZ0DsOQ PAjBHJokUk/yF6GqX5PHCHsaDKT13j+MVST75N+zeiC2em3PJTUKrCtRR1KKmsmMCX MYnQq0YQbswQU++9LLW3pgHXNsdqcZtbb04btB9J/lGIIF9SRPTFcmVmql2ih2n6bH BAMadKjZaQhxN2qUstf+rs137LSKZ/kMx1juo/8V60a80JJWvq1eqYcfgXe/BuR2sH +vKmJxA1p+x+A== From: Christian Brauner Date: Thu, 13 Jul 2023 12:05:38 +0200 Subject: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> To: linux-fsdevel@vger.kernel.org X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=4338; i=brauner@kernel.org; h=from:subject:message-id; bh=+Df4cQ3XZPwLfFxJgIqPrDY4l9UAdwCjr9DGoW3/ojk=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaSsP1NbdfmkaWaxQvZah7/MWs/ufCrO2q82U2T1DIWDSy0u LwzX6ChhYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZiIshkjww4t2ytlzT8ElQsqm7Su/N b3T10XyfCvYZ2XvvOJclnpCIbvvh+/WjLaTozOzj3stenvds+qri//VkTNPGGwWHTi+Uc8AA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Alex Williamson , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Christian Brauner , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The eventfd_signal_mask() helper was introduced for io_uring and similar to eventfd_signal() it always passed 1 for @n. So don't bother with that argument at all. Signed-off-by: Christian Brauner --- drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- fs/eventfd.c | 9 +++++---- include/linux/eventfd.h | 9 ++++----- io_uring/io_uring.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c index 3d9e09c2add4..31aff6f733d4 100644 --- a/drivers/gpu/drm/i915/gvt/interrupt.c +++ b/drivers/gpu/drm/i915/gvt/interrupt.c @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) */ if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) return -ESRCH; - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) + if (vgpu->msi_trigger && !eventfd_signal(vgpu->msi_trigger)) return -EFAULT; return 0; } diff --git a/fs/eventfd.c b/fs/eventfd.c index dc9e01053235..077be5da72bd 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -43,9 +43,10 @@ struct eventfd_ctx { int id; }; -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) { unsigned long flags; + __u64 n = 1; /* * Deadlock or stack overflow issues can happen if we recurse here @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); - return n; + return n == 1; } /** @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) * * Returns the amount by which the counter was incremented. */ -__u64 eventfd_signal(struct eventfd_ctx *ctx) +bool eventfd_signal(struct eventfd_ctx *ctx) { - return eventfd_signal_mask(ctx, 1, 0); + return eventfd_signal_mask(ctx, 0); } EXPORT_SYMBOL_GPL(eventfd_signal); diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 562089431551..0155ee25f7c8 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h @@ -35,8 +35,8 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); struct file *eventfd_fget(int fd); struct eventfd_ctx *eventfd_ctx_fdget(int fd); struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); -__u64 eventfd_signal(struct eventfd_ctx *ctx); -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); +bool eventfd_signal(struct eventfd_ctx *ctx); +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask); int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, __u64 *cnt); void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx) +static inline bool eventfd_signal(struct eventfd_ctx *ctx) { return -ENOSYS; } -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, - unsigned mask) +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { return -ENOSYS; } diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..a9359ef73935 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -537,7 +537,7 @@ static void io_eventfd_ops(struct rcu_head *rcu) int ops = atomic_xchg(&ev_fd->ops, 0); if (ops & BIT(IO_EVENTFD_OP_SIGNAL_BIT)) - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); /* IO_EVENTFD_OP_FREE_BIT may not be set here depending on callback * ordering in a race but if references are 0 we know we have to free @@ -573,7 +573,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) goto out; if (likely(eventfd_signal_allowed())) { - eventfd_signal_mask(ev_fd->cq_ev_fd, 1, EPOLL_URING_WAKE); + eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE); } else { atomic_inc(&ev_fd->refs); if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) -- 2.34.1 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 86647C001DF for ; Thu, 13 Jul 2023 13:30:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E469510E6DC; Thu, 13 Jul 2023 13:30:33 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by gabe.freedesktop.org (Postfix) with ESMTPS id D69D810E6DB; Thu, 13 Jul 2023 13:30:30 +0000 (UTC) Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36DDLrkB004281; Thu, 13 Jul 2023 13:30:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=yIjAwsQR1wLZ8Bjld9sxVuIjhZ4yn9i9x6FCVBXNkdI=; b=mm0EKyIJVnP3MW7HMgeWPwA9lkZ5fYaP0kpNzaCk4yxx2VM58hC6JtVLIoP9ptDoDJ+C fUfj7+2LEuSNYhltq92CPGP26EEOV6n3Sx85xqmeyUAqW5PNLEZTTPMA5PwOWF8/66tO g/rmtBjDGpsPOfDxraHV1HDSxx9f92lAOOf8yv0Zd1+QBa4/mgEX9V3tBM+Tjdplnbo2 y33ArriOuXZ5VfosxwUe6DPWU4enV5ZLeqNf/M8GHQnEz2w6GZHa2Fd9ykWbMN7NALNW 3dWRXtqmGGKMzYCYy+HXCd0/fJNSfdU4lXMAhLUOfkBNbvYp1i3h98qZZB3636whGHJQ 0Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar78m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:02 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 36DDMxou009349; Thu, 13 Jul 2023 13:30:01 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rtj3ar77b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:30:01 +0000 Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 36D743Jx011007; Thu, 13 Jul 2023 13:29:59 GMT Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3rqk4mk1aw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Jul 2023 13:29:59 +0000 Received: from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com [10.241.53.102]) by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 36DDTwut37028342 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 13 Jul 2023 13:29:58 GMT Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE9DB58056; Thu, 13 Jul 2023 13:29:57 +0000 (GMT) Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED4595803F; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Received: from [9.61.158.95] (unknown [9.61.158.95]) by smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 13 Jul 2023 13:29:52 +0000 (GMT) Message-ID: Date: Thu, 13 Jul 2023 09:29:52 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() Content-Language: en-US To: Christian Brauner , linux-fsdevel@vger.kernel.org References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Anthony Krowiak In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: va_EebEAOpDsN7qMG95SDcn-5a5Qwe3g X-Proofpoint-GUID: -ewp-fXzNQ4ITFG8EgqR2pY8ktrdWFdo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-13_05,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 clxscore=1011 lowpriorityscore=0 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307130114 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , netdev@vger.kernel.org, Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Eric Auger , Alex Williamson , Borislav Petkov , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jason Herne , Tvrtko Ursulin , Pavel Begunkov , Sean Christopherson , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , Frederic Barrat , Moritz Fischer , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" For vfio_ap_ops.c: Reviewed-by: Tony Krowiak On 7/13/23 6:05 AM, Christian Brauner wrote: > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vcpu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret != -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r = 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifier_event *notifier_event, u64 > notifier_event->events_mask |= event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) != 1) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx = private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_ccw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state = VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private = container_of(work, struct vfio_ccw_private, crw_work); > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_private *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request channel registered, blocked until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device *vdev, unsigned int count) > "Relaying device request to user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count == 0) { > dev_notice(dev, > "No device request registered, blocked until released by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] = type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked = true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd = ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked = false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqueue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal = true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num, void *arg) > { > struct vfio_fsl_mc_irq *mc_irq = (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n", > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count == 0) { > pci_warn(pdev, > "No device request channel registered, blocked until released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *unused) > ctx = vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg) > { > struct eventfd_ctx *trigger = arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci_core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools = data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx = NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx, > > trigger = *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int irq, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret == IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *dev_id) > { > struct vfio_platform_irq *irq_ctx = dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *private) > struct eventfd_ctx *call_ctx = vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private) > struct eventfd_ctx *config_ctx = v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, > len -= l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_virtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_client *client, > mutex_lock(&client->vm->ioeventfds_lock); > p = hsm_ioeventfd_match(client->vm, addr, val, size, req->type); > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal counter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do not > * allow sleeping. In this function we allow the counter to reach the ULLONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLERR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will be less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_entry_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i = current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold = i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem_cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret = true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state *mdev_state) > } > > if (mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) > - ret = eventfd_signal(mdev_state->msi_evtfd, 1); > + ret = eventfd_signal(mdev_state->msi_evtfd); > else > - ret = eventfd_signal(mdev_state->intx_evtfd, 1); > + ret = eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_irqfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq_srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B5B4DC0015E for ; Thu, 13 Jul 2023 13:35:37 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8E54A10E6E4; Thu, 13 Jul 2023 13:35:36 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D37189316; Thu, 13 Jul 2023 13:35:33 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BE3EC612E6; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2EB19C433CA; Thu, 13 Jul 2023 13:35:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689255331; bh=C9ZL/aINfzb4DTfI0PDdwKD/w/Hf1nA7/TiEr1Wu8NY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=ULG29s5b0Oa6BUaRvE4je7ndrfAqtpxxGKG0jbR/MyJnnociEcPTF7D0TR+M1fv6d LQMj8X4vgG172Sl3TiqE8snMj+Qu1lERArY7yIC5+dsqWtGZdih2m9oOSKzHUUDRj5 SUZd9bXbF46iPK7aiZ4Xfsgn5QC+D0oNngsQXVMAMlZPfKBLkZSYdkygtLmJ7uI3bq 6W8z1prSQ04e8EP4uuXQ7sGi+6QV8rc6uOxet8DtxSAPHAGvo0nvxRqgKGWY3al1Jn B/rs07ot3Ug577ZTDhle1hFUb13gMP8cnJn+npH/fSDPqeKRMjSmK+c/GHjZZR8OHF wA2L1In5zK2rw== Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1b8baa836a5so5703895ad.1; Thu, 13 Jul 2023 06:35:31 -0700 (PDT) X-Gm-Message-State: ABy/qLZwOP8ddVexSfB6rWRpD93eNwiCl0+V95VP5Gr08jRZeVU4jzhx yNXjGAOSYPQGwi3aW4M8WDFUoTn9YcedLMGva5I= X-Google-Smtp-Source: APBJJlFgmxFKKMX4o5RoczSZCW4vsZEnViWIJVep1sF3lemBlvWAL/cO6of628K/gm7rbjqMK5O6ldYSkO/4Nrf+UkI= X-Received: by 2002:a25:d091:0:b0:c6e:a2b0:e53c with SMTP id h139-20020a25d091000000b00c6ea2b0e53cmr1438348ybg.62.1689255309970; Thu, 13 Jul 2023 06:35:09 -0700 (PDT) MIME-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> In-Reply-To: <20230713-vfs-eventfd-signal-v1-1-7fda6c5d212b@kernel.org> From: Oded Gabbay Date: Thu, 13 Jul 2023 16:34:43 +0300 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/2] eventfd: simplify eventfd_signal() To: Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , Johannes Weiner , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Alex Williamson , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Sean Christopherson , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Greg Kroah-Hartman , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, Jul 13, 2023 at 1:06=E2=80=AFPM Christian Brauner wrote: > > Ever since the evenfd type was introduced back in 2007 in commit > e1ad7468c77d ("signal/timer/event: eventfd core") the eventfd_signal() > function only ever passed 1 as a value for @n. There's no point in > keeping that additional argument. > > Signed-off-by: Christian Brauner > --- > arch/x86/kvm/hyperv.c | 2 +- > arch/x86/kvm/xen.c | 2 +- > drivers/accel/habanalabs/common/device.c | 2 +- > drivers/fpga/dfl.c | 2 +- > drivers/gpu/drm/i915/gvt/interrupt.c | 2 +- > drivers/infiniband/hw/mlx5/devx.c | 2 +- > drivers/misc/ocxl/file.c | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 2 +- > drivers/s390/cio/vfio_ccw_drv.c | 4 ++-- > drivers/s390/cio/vfio_ccw_ops.c | 6 +++--- > drivers/s390/crypto/vfio_ap_ops.c | 2 +- > drivers/usb/gadget/function/f_fs.c | 4 ++-- > drivers/vdpa/vdpa_user/vduse_dev.c | 6 +++--- > drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 2 +- > drivers/vfio/pci/vfio_pci_core.c | 6 +++--- > drivers/vfio/pci/vfio_pci_intrs.c | 12 ++++++------ > drivers/vfio/platform/vfio_platform_irq.c | 4 ++-- > drivers/vhost/vdpa.c | 4 ++-- > drivers/vhost/vhost.c | 10 +++++----- > drivers/vhost/vhost.h | 2 +- > drivers/virt/acrn/ioeventfd.c | 2 +- > fs/aio.c | 2 +- > fs/eventfd.c | 9 +++------ > include/linux/eventfd.h | 4 ++-- > mm/memcontrol.c | 10 +++++----- > mm/vmpressure.c | 2 +- > samples/vfio-mdev/mtty.c | 4 ++-- > virt/kvm/eventfd.c | 4 ++-- > 28 files changed, 56 insertions(+), 59 deletions(-) > > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c > index b28fd020066f..2f4bd74b482c 100644 > --- a/arch/x86/kvm/hyperv.c > +++ b/arch/x86/kvm/hyperv.c > @@ -2387,7 +2387,7 @@ static u16 kvm_hvcall_signal_event(struct kvm_vcpu = *vcpu, struct kvm_hv_hcall *h > if (!eventfd) > return HV_STATUS_INVALID_PORT_ID; > > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > return HV_STATUS_SUCCESS; > } > > diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c > index 40edf4d1974c..a7b62bafd57b 100644 > --- a/arch/x86/kvm/xen.c > +++ b/arch/x86/kvm/xen.c > @@ -2043,7 +2043,7 @@ static bool kvm_xen_hcall_evtchn_send(struct kvm_vc= pu *vcpu, u64 param, u64 *r) > if (ret < 0 && ret !=3D -ENOTCONN) > return false; > } else { > - eventfd_signal(evtchnfd->deliver.eventfd.ctx, 1); > + eventfd_signal(evtchnfd->deliver.eventfd.ctx); > } > > *r =3D 0; > diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/hab= analabs/common/device.c > index b97339d1f7c6..30357b371d61 100644 > --- a/drivers/accel/habanalabs/common/device.c > +++ b/drivers/accel/habanalabs/common/device.c > @@ -1963,7 +1963,7 @@ static void hl_notifier_event_send(struct hl_notifi= er_event *notifier_event, u64 > notifier_event->events_mask |=3D event_mask; > > if (notifier_event->eventfd) > - eventfd_signal(notifier_event->eventfd, 1); > + eventfd_signal(notifier_event->eventfd); > > mutex_unlock(¬ifier_event->lock); > } > diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c > index dd7a783d53b5..e73f88050f08 100644 > --- a/drivers/fpga/dfl.c > +++ b/drivers/fpga/dfl.c > @@ -1872,7 +1872,7 @@ static irqreturn_t dfl_irq_handler(int irq, void *a= rg) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/gpu/drm/i915/gvt/interrupt.c b/drivers/gpu/drm/i915/= gvt/interrupt.c > index 68eca023bbc6..3d9e09c2add4 100644 > --- a/drivers/gpu/drm/i915/gvt/interrupt.c > +++ b/drivers/gpu/drm/i915/gvt/interrupt.c > @@ -435,7 +435,7 @@ static int inject_virtual_interrupt(struct intel_vgpu= *vgpu) > */ > if (!test_bit(INTEL_VGPU_STATUS_ATTACHED, vgpu->status)) > return -ESRCH; > - if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != =3D 1) > + if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger) !=3D 1= ) > return -EFAULT; > return 0; > } > diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/ml= x5/devx.c > index db5fb196c728..ad50487790ff 100644 > --- a/drivers/infiniband/hw/mlx5/devx.c > +++ b/drivers/infiniband/hw/mlx5/devx.c > @@ -2498,7 +2498,7 @@ static void dispatch_event_fd(struct list_head *fd_= list, > > list_for_each_entry_rcu(item, fd_list, xa_list) { > if (item->eventfd) > - eventfd_signal(item->eventfd, 1); > + eventfd_signal(item->eventfd); > else > deliver_event(item, data); > } > diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c > index 6e63f060e4cc..51766db296ab 100644 > --- a/drivers/misc/ocxl/file.c > +++ b/drivers/misc/ocxl/file.c > @@ -185,7 +185,7 @@ static irqreturn_t irq_handler(void *private) > { > struct eventfd_ctx *ev_ctx =3D private; > > - eventfd_signal(ev_ctx, 1); > + eventfd_signal(ev_ctx); > return IRQ_HANDLED; > } > > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_= chp.c > index d3f3a611f95b..38c176cf6295 100644 > --- a/drivers/s390/cio/vfio_ccw_chp.c > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -115,7 +115,7 @@ static ssize_t vfio_ccw_crw_region_read(struct vfio_c= cw_private *private, > > /* Notify the guest if more CRWs are on our queue */ > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > > return ret; > } > diff --git a/drivers/s390/cio/vfio_ccw_drv.c b/drivers/s390/cio/vfio_ccw_= drv.c > index 43601816ea4e..bfb35cfce1ef 100644 > --- a/drivers/s390/cio/vfio_ccw_drv.c > +++ b/drivers/s390/cio/vfio_ccw_drv.c > @@ -112,7 +112,7 @@ void vfio_ccw_sch_io_todo(struct work_struct *work) > private->state =3D VFIO_CCW_STATE_IDLE; > > if (private->io_trigger) > - eventfd_signal(private->io_trigger, 1); > + eventfd_signal(private->io_trigger); > } > > void vfio_ccw_crw_todo(struct work_struct *work) > @@ -122,7 +122,7 @@ void vfio_ccw_crw_todo(struct work_struct *work) > private =3D container_of(work, struct vfio_ccw_private, crw_work)= ; > > if (!list_empty(&private->crw) && private->crw_trigger) > - eventfd_signal(private->crw_trigger, 1); > + eventfd_signal(private->crw_trigger); > } > > /* > diff --git a/drivers/s390/cio/vfio_ccw_ops.c b/drivers/s390/cio/vfio_ccw_= ops.c > index 5b53b94f13c7..3df231f6feda 100644 > --- a/drivers/s390/cio/vfio_ccw_ops.c > +++ b/drivers/s390/cio/vfio_ccw_ops.c > @@ -421,7 +421,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > case VFIO_IRQ_SET_DATA_NONE: > { > if (*ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_BOOL: > @@ -432,7 +432,7 @@ static int vfio_ccw_mdev_set_irqs(struct vfio_ccw_pri= vate *private, > return -EFAULT; > > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > return 0; > } > case VFIO_IRQ_SET_DATA_EVENTFD: > @@ -612,7 +612,7 @@ static void vfio_ccw_mdev_request(struct vfio_device = *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(private->req_trigger, 1); > + eventfd_signal(private->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request channel registered, blocked= until released by user\n"); > diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio= _ap_ops.c > index b441745b0418..feb88526ac9d 100644 > --- a/drivers/s390/crypto/vfio_ap_ops.c > +++ b/drivers/s390/crypto/vfio_ap_ops.c > @@ -1749,7 +1749,7 @@ static void vfio_ap_mdev_request(struct vfio_device= *vdev, unsigned int count) > "Relaying device request t= o user (#%u)\n", > count); > > - eventfd_signal(matrix_mdev->req_trigger, 1); > + eventfd_signal(matrix_mdev->req_trigger); > } else if (count =3D=3D 0) { > dev_notice(dev, > "No device request registered, blocked until r= eleased by user\n"); > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/func= tion/f_fs.c > index f41a385a5c42..ceb1aad0c5df 100644 > --- a/drivers/usb/gadget/function/f_fs.c > +++ b/drivers/usb/gadget/function/f_fs.c > @@ -831,7 +831,7 @@ static void ffs_user_copy_worker(struct work_struct *= work) > io_data->kiocb->ki_complete(io_data->kiocb, ret); > > if (io_data->ffs->ffs_eventfd && !kiocb_has_eventfd) > - eventfd_signal(io_data->ffs->ffs_eventfd, 1); > + eventfd_signal(io_data->ffs->ffs_eventfd); > > if (io_data->read) > kfree(io_data->to_free); > @@ -2739,7 +2739,7 @@ static void __ffs_event_add(struct ffs_data *ffs, > ffs->ev.types[ffs->ev.count++] =3D type; > wake_up_locked(&ffs->ev.waitq); > if (ffs->ffs_eventfd) > - eventfd_signal(ffs->ffs_eventfd, 1); > + eventfd_signal(ffs->ffs_eventfd); > } > > static void ffs_event_add(struct ffs_data *ffs, > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/= vduse_dev.c > index dc38ed21319d..99b901a9e638 100644 > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > @@ -494,7 +494,7 @@ static void vduse_vq_kick(struct vduse_virtqueue *vq) > goto unlock; > > if (vq->kickfd) > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > else > vq->kicked =3D true; > unlock: > @@ -912,7 +912,7 @@ static int vduse_kickfd_setup(struct vduse_dev *dev, > eventfd_ctx_put(vq->kickfd); > vq->kickfd =3D ctx; > if (vq->ready && vq->kicked && vq->kickfd) { > - eventfd_signal(vq->kickfd, 1); > + eventfd_signal(vq->kickfd); > vq->kicked =3D false; > } > spin_unlock(&vq->kick_lock); > @@ -961,7 +961,7 @@ static bool vduse_vq_signal_irqfd(struct vduse_virtqu= eue *vq) > > spin_lock_irq(&vq->irq_lock); > if (vq->ready && vq->cb.trigger) { > - eventfd_signal(vq->cb.trigger, 1); > + eventfd_signal(vq->cb.trigger); > signal =3D true; > } > spin_unlock_irq(&vq->irq_lock); > diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc= /vfio_fsl_mc_intr.c > index c51229fccbd6..d62fbfff20b8 100644 > --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c > @@ -54,7 +54,7 @@ static irqreturn_t vfio_fsl_mc_irq_handler(int irq_num,= void *arg) > { > struct vfio_fsl_mc_irq *mc_irq =3D (struct vfio_fsl_mc_irq *)arg; > > - eventfd_signal(mc_irq->trigger, 1); > + eventfd_signal(mc_irq->trigger); > return IRQ_HANDLED; > } > > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci= _core.c > index 20d7b69ea6ff..01c8e31db23b 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -441,7 +441,7 @@ static int vfio_pci_core_runtime_resume(struct device= *dev) > */ > down_write(&vdev->memory_lock); > if (vdev->pm_wake_eventfd_ctx) { > - eventfd_signal(vdev->pm_wake_eventfd_ctx, 1); > + eventfd_signal(vdev->pm_wake_eventfd_ctx); > __vfio_pci_runtime_pm_exit(vdev); > } > up_write(&vdev->memory_lock); > @@ -1861,7 +1861,7 @@ void vfio_pci_core_request(struct vfio_device *core= _vdev, unsigned int count) > pci_notice_ratelimited(pdev, > "Relaying device request to user (#%u)\n"= , > count); > - eventfd_signal(vdev->req_trigger, 1); > + eventfd_signal(vdev->req_trigger); > } else if (count =3D=3D 0) { > pci_warn(pdev, > "No device request channel registered, blocked un= til released by user\n"); > @@ -2280,7 +2280,7 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(str= uct pci_dev *pdev, > mutex_lock(&vdev->igate); > > if (vdev->err_trigger) > - eventfd_signal(vdev->err_trigger, 1); > + eventfd_signal(vdev->err_trigger); > > mutex_unlock(&vdev->igate); > > diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pc= i_intrs.c > index cbb4bcbfbf83..237beac83809 100644 > --- a/drivers/vfio/pci/vfio_pci_intrs.c > +++ b/drivers/vfio/pci/vfio_pci_intrs.c > @@ -94,7 +94,7 @@ static void vfio_send_intx_eventfd(void *opaque, void *= unused) > ctx =3D vfio_irq_ctx_get(vdev, 0); > if (WARN_ON_ONCE(!ctx)) > return; > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > > @@ -342,7 +342,7 @@ static irqreturn_t vfio_msihandler(int irq, void *arg= ) > { > struct eventfd_ctx *trigger =3D arg; > > - eventfd_signal(trigger, 1); > + eventfd_signal(trigger); > return IRQ_HANDLED; > } > > @@ -689,11 +689,11 @@ static int vfio_pci_set_msi_trigger(struct vfio_pci= _core_device *vdev, > if (!ctx) > continue; > if (flags & VFIO_IRQ_SET_DATA_NONE) { > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { > uint8_t *bools =3D data; > if (bools[i - start]) > - eventfd_signal(ctx->trigger, 1); > + eventfd_signal(ctx->trigger); > } > } > return 0; > @@ -707,7 +707,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > if (flags & VFIO_IRQ_SET_DATA_NONE) { > if (*ctx) { > if (count) { > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > } else { > eventfd_ctx_put(*ctx); > *ctx =3D NULL; > @@ -722,7 +722,7 @@ static int vfio_pci_set_ctx_trigger_single(struct eve= ntfd_ctx **ctx, > > trigger =3D *(uint8_t *)data; > if (trigger && *ctx) > - eventfd_signal(*ctx, 1); > + eventfd_signal(*ctx); > > return 0; > } else if (flags & VFIO_IRQ_SET_DATA_EVENTFD) { > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/pla= tform/vfio_platform_irq.c > index 665197caed89..61a1bfb68ac7 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -155,7 +155,7 @@ static irqreturn_t vfio_automasked_irq_handler(int ir= q, void *dev_id) > spin_unlock_irqrestore(&irq_ctx->lock, flags); > > if (ret =3D=3D IRQ_HANDLED) > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return ret; > } > @@ -164,7 +164,7 @@ static irqreturn_t vfio_irq_handler(int irq, void *de= v_id) > { > struct vfio_platform_irq *irq_ctx =3D dev_id; > > - eventfd_signal(irq_ctx->trigger, 1); > + eventfd_signal(irq_ctx->trigger); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index b43e8680eee8..722894a0f124 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -161,7 +161,7 @@ static irqreturn_t vhost_vdpa_virtqueue_cb(void *priv= ate) > struct eventfd_ctx *call_ctx =3D vq->call_ctx.ctx; > > if (call_ctx) > - eventfd_signal(call_ctx, 1); > + eventfd_signal(call_ctx); > > return IRQ_HANDLED; > } > @@ -172,7 +172,7 @@ static irqreturn_t vhost_vdpa_config_cb(void *private= ) > struct eventfd_ctx *config_ctx =3D v->config_ctx; > > if (config_ctx) > - eventfd_signal(config_ctx, 1); > + eventfd_signal(config_ctx); > > return IRQ_HANDLED; > } > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index c71d573f1c94..bee50f153c8e 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2250,7 +2250,7 @@ int vhost_log_write(struct vhost_virtqueue *vq, str= uct vhost_log *log, > len -=3D l; > if (!len) { > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > return 0; > } > } > @@ -2273,7 +2273,7 @@ static int vhost_update_used_flags(struct vhost_vir= tqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof vq->used->flags); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2291,7 +2291,7 @@ static int vhost_update_avail_event(struct vhost_vi= rtqueue *vq) > log_used(vq, (used - (void __user *)vq->used), > sizeof *vhost_avail_event(vq)); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return 0; > } > @@ -2717,7 +2717,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, st= ruct vring_used_elem *heads, > log_used(vq, offsetof(struct vring_used, idx), > sizeof vq->used->idx); > if (vq->log_ctx) > - eventfd_signal(vq->log_ctx, 1); > + eventfd_signal(vq->log_ctx); > } > return r; > } > @@ -2765,7 +2765,7 @@ void vhost_signal(struct vhost_dev *dev, struct vho= st_virtqueue *vq) > { > /* Signal the Guest tell them we used something up. */ > if (vq->call_ctx.ctx && vhost_notify(dev, vq)) > - eventfd_signal(vq->call_ctx.ctx, 1); > + eventfd_signal(vq->call_ctx.ctx); > } > EXPORT_SYMBOL_GPL(vhost_signal); > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index f60d5f7bef94..9e942fcda5c3 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -249,7 +249,7 @@ void vhost_iotlb_map_free(struct vhost_iotlb *iotlb, > #define vq_err(vq, fmt, ...) do { \ > pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ > if ((vq)->error_ctx) \ > - eventfd_signal((vq)->error_ctx, 1);\ > + eventfd_signal((vq)->error_ctx);\ > } while (0) > > enum { > diff --git a/drivers/virt/acrn/ioeventfd.c b/drivers/virt/acrn/ioeventfd.= c > index ac4037e9f947..4e845c6ca0b5 100644 > --- a/drivers/virt/acrn/ioeventfd.c > +++ b/drivers/virt/acrn/ioeventfd.c > @@ -223,7 +223,7 @@ static int acrn_ioeventfd_handler(struct acrn_ioreq_c= lient *client, > mutex_lock(&client->vm->ioeventfds_lock); > p =3D hsm_ioeventfd_match(client->vm, addr, val, size, req->type)= ; > if (p) > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > mutex_unlock(&client->vm->ioeventfds_lock); > > return 0; > diff --git a/fs/aio.c b/fs/aio.c > index 77e33619de40..96cf97b19077 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1166,7 +1166,7 @@ static void aio_complete(struct aio_kiocb *iocb) > * from IRQ context. > */ > if (iocb->ki_eventfd) > - eventfd_signal(iocb->ki_eventfd, 1); > + eventfd_signal(iocb->ki_eventfd); > > /* > * We have to order our ring_info tail store above and test > diff --git a/fs/eventfd.c b/fs/eventfd.c > index 33a918f9566c..dc9e01053235 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -74,20 +74,17 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __= u64 n, __poll_t mask) > /** > * eventfd_signal - Adds @n to the eventfd counter. > * @ctx: [in] Pointer to the eventfd context. > - * @n: [in] Value of the counter to be added to the eventfd internal cou= nter. > - * The value cannot be negative. > * > * This function is supposed to be called by the kernel in paths that do= not > * allow sleeping. In this function we allow the counter to reach the UL= LONG_MAX > * value, and we signal this as overflow condition by returning a EPOLLE= RR > * to poll(2). > * > - * Returns the amount by which the counter was incremented. This will b= e less > - * than @n if the counter has overflowed. > + * Returns the amount by which the counter was incremented. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +__u64 eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, n, 0); > + return eventfd_signal_mask(ctx, 1, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index b9d83652c097..562089431551 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -35,7 +35,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx); > struct file *eventfd_fget(int fd); > struct eventfd_ctx *eventfd_ctx_fdget(int fd); > struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); > -__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n); > +__u64 eventfd_signal(struct eventfd_ctx *ctx); > __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mas= k); > int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_en= try_t *wait, > __u64 *cnt); > @@ -58,7 +58,7 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int= fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) > +static inline int eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index e8ca4bdcb03c..891550f575a1 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -4228,7 +4228,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i >=3D 0 && unlikely(t->entries[i].threshold > usage); i--= ) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* i =3D current_threshold + 1 */ > i++; > @@ -4240,7 +4240,7 @@ static void __mem_cgroup_threshold(struct mem_cgrou= p *memcg, bool swap) > * only one element of the array here. > */ > for (; i < t->size && unlikely(t->entries[i].threshold <=3D usage= ); i++) > - eventfd_signal(t->entries[i].eventfd, 1); > + eventfd_signal(t->entries[i].eventfd); > > /* Update current_threshold */ > t->current_threshold =3D i - 1; > @@ -4280,7 +4280,7 @@ static int mem_cgroup_oom_notify_cb(struct mem_cgro= up *memcg) > spin_lock(&memcg_oom_lock); > > list_for_each_entry(ev, &memcg->oom_notify, list) > - eventfd_signal(ev->eventfd, 1); > + eventfd_signal(ev->eventfd); > > spin_unlock(&memcg_oom_lock); > return 0; > @@ -4499,7 +4499,7 @@ static int mem_cgroup_oom_register_event(struct mem= _cgroup *memcg, > > /* already in OOM ? */ > if (memcg->under_oom) > - eventfd_signal(eventfd, 1); > + eventfd_signal(eventfd); > spin_unlock(&memcg_oom_lock); > > return 0; > @@ -4791,7 +4791,7 @@ static void memcg_event_remove(struct work_struct *= work) > event->unregister_event(memcg, event->eventfd); > > /* Notify userspace the event is going away. */ > - eventfd_signal(event->eventfd, 1); > + eventfd_signal(event->eventfd); > > eventfd_ctx_put(event->eventfd); > kfree(event); > diff --git a/mm/vmpressure.c b/mm/vmpressure.c > index b52644771cc4..ba4cdef37e42 100644 > --- a/mm/vmpressure.c > +++ b/mm/vmpressure.c > @@ -169,7 +169,7 @@ static bool vmpressure_event(struct vmpressure *vmpr, > continue; > if (level < ev->level) > continue; > - eventfd_signal(ev->efd, 1); > + eventfd_signal(ev->efd); > ret =3D true; > } > mutex_unlock(&vmpr->events_lock); > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index a60801fb8660..5edcf8d738de 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1028,9 +1028,9 @@ static int mtty_trigger_interrupt(struct mdev_state= *mdev_state) > } > > if (mdev_state->irq_index =3D=3D VFIO_PCI_MSI_IRQ_INDEX) > - ret =3D eventfd_signal(mdev_state->msi_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->msi_evtfd); > else > - ret =3D eventfd_signal(mdev_state->intx_evtfd, 1); > + ret =3D eventfd_signal(mdev_state->intx_evtfd); > > #if defined(DEBUG_INTR) > pr_info("Intx triggered\n"); > diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c > index 89912a17f5d5..c0e230f4c3e9 100644 > --- a/virt/kvm/eventfd.c > +++ b/virt/kvm/eventfd.c > @@ -61,7 +61,7 @@ static void irqfd_resampler_notify(struct kvm_kernel_ir= qfd_resampler *resampler) > > list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, > srcu_read_lock_held(&resampler->kvm->irq= _srcu)) > - eventfd_signal(irqfd->resamplefd, 1); > + eventfd_signal(irqfd->resamplefd); > } > > /* > @@ -786,7 +786,7 @@ ioeventfd_write(struct kvm_vcpu *vcpu, struct kvm_io_= device *this, gpa_t addr, > if (!ioeventfd_in_range(p, addr, len, val)) > return -EOPNOTSUPP; > > - eventfd_signal(p->eventfd, 1); > + eventfd_signal(p->eventfd); > return 0; > } > > > -- > 2.34.1 > For habanalabs (device.c): Reviewed-by: Oded Gabbay 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CF7C1C001E0 for ; Thu, 13 Jul 2023 14:33:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2ED4C10E6EB; Thu, 13 Jul 2023 14:33:10 +0000 (UTC) Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by gabe.freedesktop.org (Postfix) with ESMTPS id B85AC10E0E3 for ; Thu, 13 Jul 2023 14:33:07 +0000 (UTC) Received: by mail-pl1-x649.google.com with SMTP id d9443c01a7336-1b9de7951easo3440615ad.0 for ; Thu, 13 Jul 2023 07:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=jacaK9M2p8ae07DYtf3WTwW4sJ88AeR0PMoTM/K8Zom80G9CNsRED8/7OkNACpL4FI vSrK+poAQrpW9b9XXAEX3N+/eJqGG0fl2uSilp/V2zhMmynFGmkNp19rQMAPCUIgro+L 8wZFnIyWuBTpd6inSk0jhwWPq/qOKDhiCmrdy2nICENUOLQPMx4zm5vkc1J+N+jf8F/9 NWijWeXBKP6nhRWfAZooF9dECtwpwP1B06LROVi+ZRGQWEPDlF+8FcWtS7IpVg38LWBC sabPszkfHQCdZSa4qO28HKir4zE3m+cUi5LtAFjCZb9xEKl25slyjVF3CoaXZrvttifT RnQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689258787; x=1691850787; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fr2vYa/Ch6xYV487nmzxcm8iM/FlpnkWVHQ5jynQTbg=; b=IUejQt4Fu8PMYQxqL7QDwn9ukDs7RxtsHUoyyNyC9JUISAeDT4B0OdMyKMIWybZwG+ O9leBePVlFb+VXdox18avS5Yd1c+WUV417XdItAqivgYJkne+FjI0Thz983x3JBrIWk9 w7CViRiioOtQOwTwr8Qp9WS1m5sC3XnyeA/jqs1/FLcBMDo0pt1Y+vacepw6WI1UttvP ++3s1E87nxAuARinDfEuv6cwNZIEm9d4jK55yaKuSKtPs544bsNH+dKHoH/TjJLft+du 7jnS8aKpwqKHfjcQQiSPIPGM7KCLoiyqB+vh2YAdE4QyJSRCLOgIriyNY/ziUCGmZBZM Ikpg== X-Gm-Message-State: ABy/qLb9GDp1wtpH6wNU53iINkPexRzY6hNybq0fZSUwk0IU+CC6FVAB I6e1lj+MdXHgkgx5+eV9dXa/KrYgkrw= X-Google-Smtp-Source: APBJJlFAAhWItEMB5PDxlVd4/XD0kDAeGPn5ZZPTnMU3ojU8FDM9Oji9AhkfLIh7rpZuc1o0H3AhYJQLwhY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:b282:b0:1ba:1704:89d1 with SMTP id u2-20020a170902b28200b001ba170489d1mr5846plr.10.1689258786828; Thu, 13 Jul 2023 07:33:06 -0700 (PDT) Date: Thu, 13 Jul 2023 07:33:05 -0700 In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Mime-Version: 1.0 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Message-ID: Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() From: Sean Christopherson To: Christian Brauner Content-Type: text/plain; charset="us-ascii" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Alex Williamson , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, Jul 13, 2023, Christian Brauner wrote: > diff --git a/fs/eventfd.c b/fs/eventfd.c > index dc9e01053235..077be5da72bd 100644 > --- a/fs/eventfd.c > +++ b/fs/eventfd.c > @@ -43,9 +43,10 @@ struct eventfd_ctx { > int id; > }; > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > { > unsigned long flags; > + __u64 n = 1; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > - return n; > + return n == 1; > } ... > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > return ERR_PTR(-ENOSYS); > } > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > { > return -ENOSYS; > } > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > - unsigned mask) > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > return -ENOSYS; This will morph to "true" for what should be an error case. One option would be to have eventfd_signal_mask() return 0/-errno instead of the count, but looking at all the callers, nothing ever actually consumes the result. KVMGT morphs failure into -EFAULT if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) return -EFAULT; but the only caller of that user ignores the return value. if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) & ~GEN8_MASTER_IRQ_CONTROL) inject_virtual_interrupt(vgpu); The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an error but otherwise ignores the result. So why not return nothing? That will simplify eventfd_signal_mask() a wee bit more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) { unsigned long flags; /* * Deadlock or stack overflow issues can happen if we recurse here * through waitqueue wakeup handlers. If the caller users potentially * nested waitqueues with custom wakeup handlers, then it should * check eventfd_signal_allowed() before calling this function. If * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ if (WARN_ON_ONCE(current->in_eventfd)) return; spin_lock_irqsave(&ctx->wqh.lock, flags); current->in_eventfd = 1; if (ctx->count < ULLONG_MAX) ctx->count++; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); } You could even go further and unify the real and stub versions of eventfd_signal(). 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 460C3C001DE for ; Thu, 13 Jul 2023 14:52:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 480E510E6F4; Thu, 13 Jul 2023 14:52:55 +0000 (UTC) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFAED10E6F3; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 26627615BE; Thu, 13 Jul 2023 14:52:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA899C433C7; Thu, 13 Jul 2023 14:52:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689259971; bh=R4Hkl4iroQ+C4d3AaFA6aa52uzI7aPnAyTDDN/lwc78=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RS/6gRgqvF3ybwn8Ovqq43iLhI7Yv15SZZP2U5CNn6IhgXHQH9mo4nByA/g4W736R AkMi1WqcMsHhNrtO7dGPqCwKIYlgvLK+7FW5vJj2elL3FTubJgM81//BHDuM8QqyRP Csacjb3yQ3aRtIn7A1i9sInqtS8VRY/O0QwqwwSlh+wJ04gvPtGAbDZaSnmdfd209l vt3KpAe4HIE13hYrO1C7jusvVYug5pHUh1tQDDmm+XtqhW6CbXRqbqDYOCl1W9QxOQ VXNT8IMNIH9hLd1wzLndR4KoVQB79H/FYLq25P8lOlildm0R+bpsuSo9TwClPA0kLV csu2vX1i0ECSg== Date: Thu, 13 Jul 2023 16:52:34 +0200 From: Christian Brauner To: Sean Christopherson Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Message-ID: <20230713-mahnen-drosseln-fa717117e827@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, linux-usb@vger.kernel.org, Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , dri-devel@lists.freedesktop.org, Michal Hocko , linux-mm@kvack.org, Kirti Wankhede , Paolo Bonzini , Jens Axboe , Vineeth Vijayan , Diana Craciun , Alexander Gordeev , Xuan Zhuo , Shakeel Butt , Vasily Gorbik , Leon Romanovsky , Harald Freudenberger , Fei Li , x86@kernel.org, Roman Gushchin , Halil Pasic , Jason Gunthorpe , Ingo Molnar , intel-gfx@lists.freedesktop.org, Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Arnd Bergmann , linux-s390@vger.kernel.org, Heiko Carstens , linuxppc-dev@lists.ozlabs.org, Frederic Barrat , Alex Williamson , Moritz Fischer , kvm@vger.kernel.org, Rodrigo Vivi , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, netdev@vger.kernel.org, Tony Krowiak , Tvrtko Ursulin , Pavel Begunkov , Eric Auger , Greg Kroah-Hartman , Oded Gabbay , Muchun Song , Peter Oberparleiter , linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Borislav Petkov , Vitaly Kuznetsov , David Woodhouse , Xu Yilun Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, Jul 13, 2023 at 07:33:05AM -0700, Sean Christopherson wrote: > On Thu, Jul 13, 2023, Christian Brauner wrote: > > diff --git a/fs/eventfd.c b/fs/eventfd.c > > index dc9e01053235..077be5da72bd 100644 > > --- a/fs/eventfd.c > > +++ b/fs/eventfd.c > > @@ -43,9 +43,10 @@ struct eventfd_ctx { > > int id; > > }; > > > > -__u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > +bool eventfd_signal_mask(struct eventfd_ctx *ctx, __poll_t mask) > > { > > unsigned long flags; > > + __u64 n = 1; > > > > /* > > * Deadlock or stack overflow issues can happen if we recurse here > > @@ -68,7 +69,7 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > current->in_eventfd = 0; > > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > > > > - return n; > > + return n == 1; > > } > > ... > > > @@ -58,13 +58,12 @@ static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd) > > return ERR_PTR(-ENOSYS); > > } > > > > -static inline int eventfd_signal(struct eventfd_ctx *ctx) > > +static inline bool eventfd_signal(struct eventfd_ctx *ctx) > > { > > return -ENOSYS; > > } > > > > -static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, > > - unsigned mask) > > +static inline bool eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > > { > > return -ENOSYS; > > This will morph to "true" for what should be an error case. One option would be Ewww, that means it did return -ENOSYS before any of this. > to have eventfd_signal_mask() return 0/-errno instead of the count, but looking > at all the callers, nothing ever actually consumes the result. > > KVMGT morphs failure into -EFAULT > > if (vgpu->msi_trigger && eventfd_signal(vgpu->msi_trigger, 1) != 1) > return -EFAULT; > > but the only caller of that user ignores the return value. > > if (vgpu_vreg(vgpu, i915_mmio_reg_offset(GEN8_MASTER_IRQ)) > & ~GEN8_MASTER_IRQ_CONTROL) > inject_virtual_interrupt(vgpu); > > The sample driver in samples/vfio-mdev/mtty.c uses a similar pattern: prints an > error but otherwise ignores the result. > > So why not return nothing? That will simplify eventfd_signal_mask() a wee bit > more, and eliminate that bizarre return value confusion for the ugly stubs, e.g. Yeah, it used to return an int in the non-eventfd and a __u64 in the eventfd case. > > void eventfd_signal_mask(struct eventfd_ctx *ctx, unsigned mask) > { > unsigned long flags; > > /* > * Deadlock or stack overflow issues can happen if we recurse here > * through waitqueue wakeup handlers. If the caller users potentially > * nested waitqueues with custom wakeup handlers, then it should > * check eventfd_signal_allowed() before calling this function. If > * it returns false, the eventfd_signal() call should be deferred to a > * safe context. > */ > if (WARN_ON_ONCE(current->in_eventfd)) > return; > > spin_lock_irqsave(&ctx->wqh.lock, flags); > current->in_eventfd = 1; > if (ctx->count < ULLONG_MAX) > ctx->count++; > if (waitqueue_active(&ctx->wqh)) > wake_up_locked_poll(&ctx->wqh, EPOLLIN | mask); > current->in_eventfd = 0; > spin_unlock_irqrestore(&ctx->wqh.lock, flags); > } > > You could even go further and unify the real and stub versions of eventfd_signal(). The reason I didn't make eventfd_signal_mask() return void was that it was called from eventfd_signal() which did, I didn't realize the caller didn't actually consume the return value. If we can let both return void it gets simpler. Thanks for that. 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1E365C001B0 for ; Thu, 13 Jul 2023 17:11:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7BA4710E740; Thu, 13 Jul 2023 17:11:02 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id D4F9210E740 for ; Thu, 13 Jul 2023 17:10:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689268259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=LfQNLsC+9rUN6nDXpJh9bJPEa/8hMG5DCXVRj5Oeyu51TyEWDKOjjpur6/cxrmNuUKHOnC NQHilZNg4i3zUNZ+0IOQUEL++nlNjCe8peXyFt+qqE8ei7mHuRT9rAMypsdQRxj5rm6/Ir hPNvo1AGXWYin1KAvmnITOwpIPtXeow= Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-YLv_gGE_Mme6ParRpwMzxA-1; Thu, 13 Jul 2023 13:10:57 -0400 X-MC-Unique: YLv_gGE_Mme6ParRpwMzxA-1 Received: by mail-il1-f198.google.com with SMTP id e9e14a558f8ab-345fe8d0a30so4601485ab.0 for ; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689268257; x=1691860257; h=content-transfer-encoding:mime-version:organization:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+UPgPFBGvQHuZjwqO9ik4oPicS3MZwipCdBIqa3Pous=; b=SYT+b7SrCobwY9tpX61VKoyVTX82BIJe44f3m5hNoENzLRye7pg79bQKBBEyF1wvAs P+FuqgOaYcQ/0s6UziAeODnZ/r+ZAzQGxE99XVkpzkK0RpsDnUq7EkY2qLPXa/3rHSc8 xv/YpAfF6GMjx8S3DY9x/MC2gPmKH2Put2Ma4Zv0AgRAc8S5qPk9kJhzwDoaRe5UQWd6 pSrfg9Iob36cGx3phWtRtXrG2uytQxfRcPcpVSJ6668oSqkaNmu3uM6jdX26NX5pwVCT xlKKuWcpGPELv0qcsIFIb0xLyn6D2nsaINc5UDRFm1Z3vfHUNwdHIOxVzr4VK736Z1Rf /8Yw== X-Gm-Message-State: ABy/qLaEB/NO2hyh1zhyvz3JadD5UDp65Jh0hcGghI8bn7eVHyq0xBBd FutdPi0gqFICsa4CerWnL7zLBUhcgapcP9g8Ysy5XnKP1bcsQu8VSA77bbHWBsy9CRjY5e81KRQ VymGma7SrjRuWuFQPR5xrKS2M5h15 X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980562ile.32.1689268257116; Thu, 13 Jul 2023 10:10:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYzBd2cy5+vbqrqBW5hcL0Nlt03XvoKU7EVc2Oqt6qt/39DAJLG7+eJes4a+aimrEVLy/slQ== X-Received: by 2002:a92:c105:0:b0:345:6ffa:63c5 with SMTP id p5-20020a92c105000000b003456ffa63c5mr1980544ile.32.1689268256865; Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Received: from redhat.com ([38.15.36.239]) by smtp.gmail.com with ESMTPSA id el20-20020a0566384d9400b0042b61a5087csm1948085jab.132.2023.07.13.10.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jul 2023 10:10:56 -0700 (PDT) Date: Thu, 13 Jul 2023 11:10:54 -0600 From: Alex Williamson To: Christian Brauner Subject: Re: [PATCH 0/2] eventfd: simplify signal helpers Message-ID: <20230713111054.75cdf2b8.alex.williamson@redhat.com> In-Reply-To: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> Organization: Red Hat MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-aio@kvack.org, Muchun Song , Tony Krowiak , Matthew Rosato , Paul Durrant , Tom Rix , Jason Wang , Roman Gushchin , dri-devel@lists.freedesktop.org, Michal Hocko , Heiko Carstens , linux-mm@kvack.org, Kirti Wankhede , Vineeth Vijayan , Diana Craciun , Borislav Petkov , Alexander Gordeev , Fei Li , Xuan Zhuo , Arnd Bergmann , Leon Romanovsky , jaz@semihalf.com, linux-rdma@vger.kernel.org, x86@kernel.org, Halil Pasic , Jason Gunthorpe , Ingo Molnar , Moritz Fischer , Frederic Barrat , Xu Yilun , Christian Borntraeger , linux-fpga@vger.kernel.org, Zhi Wang , Wu Hao , Jason Herne , Eric Farman , Dave Hansen , Andrew Donnellan , Vasily Gorbik , linux-s390@vger.kernel.org, Greg Kroah-Hartman , intel-gfx@lists.freedesktop.org, Sean Christopherson , Eric Auger , Rodrigo Vivi , Harald Freudenberger , kvm@vger.kernel.org, Paolo Bonzini , cgroups@vger.kernel.org, Thomas Gleixner , virtualization@lists.linux-foundation.org, intel-gvt-dev@lists.freedesktop.org, io-uring@vger.kernel.org, Jens Axboe , Tvrtko Ursulin , netdev@vger.kernel.org, Oded Gabbay , linux-usb@vger.kernel.org, Peter Oberparleiter , linux-kernel@vger.kernel.org, Benjamin LaHaise , "Michael S. Tsirkin" , Sven Schnelle , Johannes Weiner , linux-fsdevel@vger.kernel.org, Shakeel Butt , Vitaly Kuznetsov , David Woodhouse , linuxppc-dev@lists.ozlabs.org, Pavel Begunkov Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, 13 Jul 2023 12:05:36 +0200 Christian Brauner wrote: > Hey everyone, > > This simplifies the eventfd_signal() and eventfd_signal_mask() helpers > by removing the count argument which is effectively unused. We have a patch under review which does in fact make use of the signaling value: https://lore.kernel.org/all/20230630155936.3015595-1-jaz@semihalf.com/ Thanks, Alex 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6B43EB64DD for ; Thu, 13 Jul 2023 12:05:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233357AbjGMMFm (ORCPT ); Thu, 13 Jul 2023 08:05:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233096AbjGMMFk (ORCPT ); Thu, 13 Jul 2023 08:05:40 -0400 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2067.outbound.protection.outlook.com [40.107.101.67]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2FB722682; Thu, 13 Jul 2023 05:05:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h4aIv+8mLscnrckBt9RyUwHpsv4hgwIrL3f74ix7gkaCKVUzk/TWn7FAmrSuZxMjIGrBF/teRD0HU2yMuSSOl65pqVqV1inq6xTo73Jy/8nSM6c0JhNjJg2RsClxVB77+J0IOHsa+iB073Iz+2/gKQDAVJo6EruJjFUDWpr4W8YPYesG2rg8axu2DZQd4mJCTcYRCvNDShJeUkjr125EBI+cm/kWdVejpfmXMSizR1iNcFNRcmQ+acIN+eWBv3Q871QRpamylDjmEVrPdwZyL253q4NrqjrrX1xzu+7485kPwwdzwoc2fstvAWXfQBB0GG+eSx4V5R26OV3hpIp0Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=46t1vpqH/2W2DPq5F+oiTqhgHdbG/OFg1FyDVd/HtuQ=; b=AhN/kp6FhNNdgaWyVpRc9KkZtDALVGmjgD0LD/re4bwrGjUdYJJnfQZc4/c2AcdrBjlJWVrc4Z/EfQkW0/rYzZc4korhTdWbQGg4Fg93kDmPz1N4KZop8fkYSXB8frI297YxrzXckVJwiYqcfrENSB5awHHmuz24CD3M3mSLFkk9BdG5YM8goJz8JuhYoBQ4AC83NxYYfVDEb3+lkGDwAJiyB24j5ktDq+dIYRuuJz9LprlAZ+Q7sh6y/EbzP/MWr0Q1SeGQrDog9FX4KsqcE6os6j9lJ2+g8l0NVou5wip25uzBJuOsicrH5obd08Fn0IuZ80OjXZ0/2tStCoJJTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=46t1vpqH/2W2DPq5F+oiTqhgHdbG/OFg1FyDVd/HtuQ=; b=mPaRwqJvYW56HK/+G7XNOJMz7Hq94gemBGkz7C77GPehZwWokNkhhzjUwM+c5/AFjGAzb/5emmCaU8bSsYnF8ifM8T4WY9ukFwisS+StPQ8qS7VBglq3oT9XafdxZONutHR8TA1LMPgcCEFcK2PUVacN4iCYnBMGqDfZeDJ7KpbqT7rZiWW0UEpCTSy5u9GfrL0i3wqXqLxeoBuA9+cjxF6x6tcenuD0Cpf5qGGsVpETpY4JoteSQoAxK6647H5flmsTp1TO8xFX7Crm7C2FH0guBz/hqT0aJKf3xphyf2sVRuOHpcMvftdaLrBCxrXa64qT7R5LS0f8qDWWiatwBA== Received: from SJ0PR03CA0337.namprd03.prod.outlook.com (2603:10b6:a03:39c::12) by PH7PR12MB9128.namprd12.prod.outlook.com (2603:10b6:510:2f7::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.20; Thu, 13 Jul 2023 12:05:33 +0000 Received: from DM6NAM11FT016.eop-nam11.prod.protection.outlook.com (2603:10b6:a03:39c:cafe::91) by SJ0PR03CA0337.outlook.office365.com (2603:10b6:a03:39c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.24 via Frontend Transport; Thu, 13 Jul 2023 12:05:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by DM6NAM11FT016.mail.protection.outlook.com (10.13.173.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.24 via Frontend Transport; Thu, 13 Jul 2023 12:05:32 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Thu, 13 Jul 2023 05:05:16 -0700 Received: from yaviefel (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Thu, 13 Jul 2023 05:05:14 -0700 References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> User-agent: mu4e 1.6.6; emacs 28.2 From: Petr Machata To: Christian Brauner CC: , Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Date: Thu, 13 Jul 2023 13:59:01 +0200 In-Reply-To: <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> Message-ID: <877cr4uidk.fsf@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT016:EE_|PH7PR12MB9128:EE_ X-MS-Office365-Filtering-Correlation-Id: 00599237-2058-4671-d894-08db83997573 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vVttLdahOmtF1a2ILkXv5hkl159lZMIP5DopN2km/xwNS7eQSUwkOKtsVWLQIeS4+jJwW3maOezHt2v2JBw/+sVj2JhXBu/YO+1lknF/N5qSt4SoGCbpgxv2rVbPfmw+C6gRCO1WWNorKugyk6VGQ8erI9DCGpoDxsQfXyu7gwsyECbTpuD6YToeU3xwNvvw58aAk/zaJCZ4sJHkO5YQfDmkkAzTiQpqKLVNi1JypOxd+mJYnSWx0kmieTOb0ZvlslR/3R3Sopo0Li4D/PPEvzFQjd8gYIAcbTwMGHQRZBjzmSs2psU9RnqlaoCca78BFueofyKU6WwbXNvmMbdyoi7D4vwGLc95JBQMpdQMIls7x3/7FQHY2TkwBxtR5OrW966aLYD9G/DhKl13pkscJ+0bwoBV2E+uT7u+sfQr+iR8NfVGkx/JMCSI5QSMMwYeKscudgBeaDNGthTid9eNAgHXWKi4/8R+op2KZAd1dZEg1NnMEjF9+ZPIXP5oR++eXV2wZJKFd1b9VLq7bTfoElbm6SbGD6O8cVpLZDQxcJXBMjUzfYw5p2ho91fx1M0PfnctQlP+JupBk7RVWUKA581ef/Qg9HfKx5zXQ5o1f6QoYhFm/4+RDWYQE052v4DPs7INWfQ2sT0geBY7ts26XI5PUmz+fohtmhXaAUBgyvoLYy20Kz+0fhvC9U+2F9lRNO5yvKv+xnYcXKWyXSp8BtbbRC88Dsdw4OH6oD8KQ+OnxnV5CPsS5hqDZtQyZuW6 X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230028)(4636009)(346002)(136003)(376002)(396003)(39860400002)(451199021)(36840700001)(46966006)(40470700004)(6916009)(336012)(70206006)(70586007)(426003)(2906002)(36860700001)(40480700001)(40460700003)(316002)(47076005)(4326008)(4744005)(41300700001)(5660300002)(36756003)(26005)(54906003)(356005)(82740400003)(8936002)(8676002)(86362001)(6666004)(82310400005)(478600001)(7636003)(186003)(16526019)(2616005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2023 12:05:32.5256 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 00599237-2058-4671-d894-08db83997573 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT016.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9128 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Christian Brauner writes: > @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > * > * Returns the amount by which the counter was incremented. This should be reworded to reflect the fact that the function now returns a bool. > */ > -__u64 eventfd_signal(struct eventfd_ctx *ctx) > +bool eventfd_signal(struct eventfd_ctx *ctx) > { > - return eventfd_signal_mask(ctx, 1, 0); > + return eventfd_signal_mask(ctx, 0); > } > EXPORT_SYMBOL_GPL(eventfd_signal); > 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0E36C001B0 for ; Thu, 13 Jul 2023 14:00:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232672AbjGMOAz (ORCPT ); Thu, 13 Jul 2023 10:00:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232637AbjGMOAy (ORCPT ); Thu, 13 Jul 2023 10:00:54 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6247D1FF1; Thu, 13 Jul 2023 07:00:53 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id C32CC6153A; Thu, 13 Jul 2023 14:00:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53C91C433C9; Thu, 13 Jul 2023 14:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689256852; bh=qAVi5GjCnGFTZVoZ8BbhnYuhY9QEIH07fK7bqIq6/7o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=cu/7Br3w3aPCIg499KFH3bgsecNBcc4vh4ypzDpKy1Utcv2d+D9j85m4nKwzxw0sr QKWlVOs2M6MvghyIIMmySmyJVMysvMb4WlfgFEyN6cPOAOM5N4r2vM/+v7EFlww0RS KR2HY6LebQjQw4d/WFvcMZAhGNeq+145VBEm4BzUwMAwgwzVshG+IOSWVP+vHJ7HMz dFvZpofiXZ4mNhANEv80GG34KCP7afloXRxFoFj2nZG8C416hwhv40M3t1bzyaPV8s dq8NjXP6nK8OOxsw2p9kJ6ophjw4SgCoPzAgYKHNNw/duWBsZtLF83bMYCphN2pKVp hxH7TEHCdKBpg== Date: Thu, 13 Jul 2023 16:00:48 +0200 From: Christian Brauner To: Petr Machata Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] eventfd: simplify eventfd_signal_mask() Message-ID: <20230713-jenen-unreflektiert-26bb6cc816fa@brauner> References: <20230713-vfs-eventfd-signal-v1-0-7fda6c5d212b@kernel.org> <20230713-vfs-eventfd-signal-v1-2-7fda6c5d212b@kernel.org> <877cr4uidk.fsf@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <877cr4uidk.fsf@nvidia.com> Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org On Thu, Jul 13, 2023 at 01:59:01PM +0200, Petr Machata wrote: > > Christian Brauner writes: > > > @@ -82,9 +83,9 @@ __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) > > * > > * Returns the amount by which the counter was incremented. > > This should be reworded to reflect the fact that the function now > returns a bool. Thanks, I'll update that in-tree to avoid respamming everyone.