| /linux/virt/lib/ |
| H A D | irqbypass.c | 94 struct eventfd_ctx *eventfd, int irq) in irq_bypass_register_producer() argument 96 unsigned long index = (unsigned long)eventfd; in irq_bypass_register_producer() 100 if (WARN_ON_ONCE(producer->eventfd)) in irq_bypass_register_producer() 120 producer->eventfd = eventfd; in irq_bypass_register_producer() 135 unsigned long index = (unsigned long)producer->eventfd; in irq_bypass_unregister_producer() 137 if (!producer->eventfd) in irq_bypass_unregister_producer() 146 producer->eventfd = NULL; in irq_bypass_unregister_producer() 159 struct eventfd_ctx *eventfd) in irq_bypass_register_consumer() argument 161 unsigned long index = (unsigned long)eventfd; in irq_bypass_register_consumer() 165 if (WARN_ON_ONCE(consumer->eventfd)) in irq_bypass_register_consumer() [all …]
|
| /linux/drivers/virt/acrn/ |
| H A D | ioeventfd.c | 29 struct eventfd_ctx *eventfd; member 47 eventfd_ctx_put(p->eventfd); in acrn_ioeventfd_shutdown() 61 if (p->eventfd == ioeventfd->eventfd && in hsm_ioeventfd_is_conflict() 79 struct eventfd_ctx *eventfd; in acrn_ioeventfd_assign() local 95 eventfd = eventfd_ctx_fdget(args->fd); in acrn_ioeventfd_assign() 96 if (IS_ERR(eventfd)) in acrn_ioeventfd_assign() 97 return PTR_ERR(eventfd); in acrn_ioeventfd_assign() 108 p->eventfd = eventfd; in acrn_ioeventfd_assign() 143 eventfd_ctx_put(eventfd); in acrn_ioeventfd_assign() 151 struct eventfd_ctx *eventfd; in acrn_ioeventfd_deassign() local [all …]
|
| /linux/virt/kvm/ |
| H A D | eventfd.c | 137 eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); in irqfd_shutdown() 156 eventfd_ctx_put(irqfd->eventfd); in irqfd_shutdown() 221 eventfd_ctx_do_read(irqfd->eventfd, &cnt); in irqfd_wakeup() 374 struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL; in kvm_irqfd_assign() local 403 eventfd = eventfd_ctx_fileget(fd_file(f)); in kvm_irqfd_assign() 404 if (IS_ERR(eventfd)) { in kvm_irqfd_assign() 405 ret = PTR_ERR(eventfd); in kvm_irqfd_assign() 409 irqfd->eventfd = eventfd; in kvm_irqfd_assign() 496 ret = irq_bypass_register_consumer(&irqfd->consumer, irqfd->eventfd); in kvm_irqfd_assign() 499 irqfd->eventfd, ret); in kvm_irqfd_assign() [all …]
|
| H A D | Makefile.kvm | 8 kvm-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o
|
| /linux/tools/testing/selftests/kvm/ |
| H A D | irqfd_test.c | 19 * KVM de-assigns based on eventfd *and* GSI, but requires unique eventfds when 22 * the secondary doesn't de-assign the primary's eventfd and cause assign to 28 static void juggle_eventfd_secondary(struct kvm_vm *vm, int eventfd) in juggle_eventfd_secondary() argument 34 * the eventfd at any time. And because the primary can recreate the in juggle_eventfd_secondary() 35 * eventfd, at the safe fd in the file table, the secondary can also in juggle_eventfd_secondary() 41 r = __kvm_irqfd(vm, GSI_BASE_SECONDARY, eventfd, 0); in juggle_eventfd_secondary() 46 /* De-assign should succeed unless the eventfd was closed. */ in juggle_eventfd_secondary() 47 r = __kvm_irqfd(vm, GSI_BASE_SECONDARY + i, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in juggle_eventfd_secondary() 63 static void juggle_eventfd_primary(struct kvm_vm *vm, int eventfd) in juggle_eventfd_primary() argument 69 * single eventfd t in juggle_eventfd_primary() [all...] |
| /linux/drivers/hv/ |
| H A D | mshv_eventfd.c | 396 struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL; in mshv_irqfd_assign() local 418 eventfd = eventfd_ctx_fileget(fd_file(f)); in mshv_irqfd_assign() 419 if (IS_ERR(eventfd)) { in mshv_irqfd_assign() 420 ret = PTR_ERR(eventfd); in mshv_irqfd_assign() 424 irqfd->irqfd_eventfd_ctx = eventfd; in mshv_irqfd_assign() 532 if (eventfd && !IS_ERR(eventfd)) in mshv_irqfd_assign() 533 eventfd_ctx_put(eventfd); in mshv_irqfd_assign() 548 struct eventfd_ctx *eventfd; in mshv_irqfd_deassign() local 550 eventfd = eventfd_ctx_fdget(args->fd); in mshv_irqfd_deassign() 551 if (IS_ERR(eventfd)) in mshv_irqfd_deassign() [all …]
|
| H A D | mshv_trace.h | 425 void *eventfd, int ret), 426 TP_ARGS(partition_id, addr, length, datamatch, wildcard, eventfd, ret), 433 __field(struct eventfd_ctx *, eventfd) 442 __entry->eventfd = eventfd; 451 __entry->eventfd, 458 void *eventfd), 459 TP_ARGS(partition_id, addr, length, datamatch, wildcard, eventfd), 466 __field(struct eventfd_ctx *, eventfd) 474 __entry->eventfd = eventfd; 482 __entry->eventfd
|
| H A D | mshv_vtl_main.c | 301 struct eventfd_ctx *eventfd; in mshv_vtl_vmbus_isr() local 318 eventfd = READ_ONCE(flag_eventfds[i]); in mshv_vtl_vmbus_isr() 319 if (eventfd) in mshv_vtl_vmbus_isr() 320 eventfd_signal(eventfd); in mshv_vtl_vmbus_isr() 976 struct eventfd_ctx *eventfd, *old_eventfd; in mshv_vtl_sint_ioctl_set_eventfd() local 983 eventfd = NULL; in mshv_vtl_sint_ioctl_set_eventfd() 985 eventfd = eventfd_ctx_fdget(set_eventfd.fd); in mshv_vtl_sint_ioctl_set_eventfd() 986 if (IS_ERR(eventfd)) in mshv_vtl_sint_ioctl_set_eventfd() 987 return PTR_ERR(eventfd); in mshv_vtl_sint_ioctl_set_eventfd() 992 WRITE_ONCE(flag_eventfds[set_eventfd.flag], eventfd); in mshv_vtl_sint_ioctl_set_eventfd()
|
| /linux/include/linux/ |
| H A D | irqbypass.h | 49 struct eventfd_ctx *eventfd; member 75 struct eventfd_ctx *eventfd; member 87 struct eventfd_ctx *eventfd, int irq); 90 struct eventfd_ctx *eventfd);
|
| H A D | kvm_irqfd.h | 56 struct eventfd_ctx *eventfd; member
|
| /linux/mm/ |
| H A D | memcontrol-v1.c | 47 struct eventfd_ctx *eventfd; member 61 struct eventfd_ctx *eventfd; member 72 struct eventfd_ctx *eventfd, const char *args); 79 struct eventfd_ctx *eventfd); 483 eventfd_signal(t->entries[i].eventfd); in __mem_cgroup_threshold() 495 eventfd_signal(t->entries[i].eventfd); in __mem_cgroup_threshold() 761 eventfd_signal(ev->eventfd); in mem_cgroup_oom_notify_cb() 775 struct eventfd_ctx *eventfd, const char *args, enum res_type type) in __mem_cgroup_usage_register_event() argument 818 new->entries[size - 1].eventfd = eventfd; in __mem_cgroup_usage_register_event() 855 struct eventfd_ctx *eventfd, const char *args) in mem_cgroup_usage_register_event() argument [all …]
|
| /linux/drivers/vfio/ |
| H A D | virqfd.c | 47 eventfd_ctx_do_read(virqfd->eventfd, &cnt); in virqfd_wakeup() 90 eventfd_ctx_remove_wait_queue(virqfd->eventfd, &virqfd->wait, &cnt); in virqfd_shutdown() 92 eventfd_ctx_put(virqfd->eventfd); in virqfd_shutdown() 147 virqfd->eventfd = ctx; in vfio_virqfd_enable()
|
| /linux/drivers/vfio/pci/ |
| H A D | vfio_pci_intrs.c | 741 struct vfio_pci_eventfd *eventfd; in vfio_pci_set_ctx_trigger_single() local 743 eventfd = rcu_dereference_protected(*peventfd, in vfio_pci_set_ctx_trigger_single() 746 if (!eventfd) in vfio_pci_set_ctx_trigger_single() 750 eventfd_signal(eventfd->ctx); in vfio_pci_set_ctx_trigger_single() 764 struct vfio_pci_eventfd *eventfd = in vfio_pci_set_ctx_trigger_single() local 768 if (eventfd) in vfio_pci_set_ctx_trigger_single() 769 eventfd_signal(eventfd->ctx); in vfio_pci_set_ctx_trigger_single()
|
| H A D | vfio_pci_core.c | 46 struct vfio_pci_eventfd *eventfd = in vfio_pci_eventfd_rcu_free() local 49 eventfd_ctx_put(eventfd->ctx); in vfio_pci_eventfd_rcu_free() 50 kfree(eventfd); in vfio_pci_eventfd_rcu_free() 1901 struct vfio_pci_eventfd *eventfd; in vfio_pci_core_request() local 1904 eventfd = rcu_dereference(vdev->req_trigger); in vfio_pci_core_request() 1905 if (eventfd) { in vfio_pci_core_request() 1910 eventfd_signal(eventfd->ctx); in vfio_pci_core_request() 2340 struct vfio_pci_eventfd *eventfd; in vfio_pci_core_aer_err_detected() local 2343 eventfd = rcu_dereference(vdev->err_trigger); in vfio_pci_core_aer_err_detected() 2344 if (eventfd) in vfio_pci_core_aer_err_detected() [all …]
|
| /linux/tools/build/feature/ |
| H A D | test-eventfd.c | 8 return eventfd(0, EFD_NONBLOCK); in main()
|
| /linux/tools/testing/selftests/kvm/include/ |
| H A D | kvm_util.h | 21 #include <sys/eventfd.h> 539 static inline int __kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd, in __kvm_irqfd() argument 543 .fd = eventfd, in __kvm_irqfd() 552 static inline void kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd, u32 flags) in kvm_irqfd() argument 554 int ret = __kvm_irqfd(vm, gsi, eventfd, flags); in kvm_irqfd() 559 static inline void kvm_assign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd) in kvm_assign_irqfd() argument 561 kvm_irqfd(vm, gsi, eventfd, 0); in kvm_assign_irqfd() 564 static inline void kvm_deassign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd) in kvm_deassign_irqfd() argument 566 kvm_irqfd(vm, gsi, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in kvm_deassign_irqfd() 571 int fd = eventfd( in kvm_new_eventfd() [all...] |
| /linux/tools/virtio/ringtest/ |
| H A D | main.c | 302 kickfd = eventfd(0, 0); in main() 304 callfd = eventfd(0, 0); in main()
|
| /linux/drivers/accel/habanalabs/common/ |
| H A D | habanalabs_ioctl.c | 776 if (hpriv->notifier_event.eventfd) { in eventfd_register() 781 hpriv->notifier_event.eventfd = eventfd_ctx_fdget(args->eventfd); in eventfd_register() 782 if (IS_ERR(hpriv->notifier_event.eventfd)) { in eventfd_register() 783 rc = PTR_ERR(hpriv->notifier_event.eventfd); in eventfd_register() 784 hpriv->notifier_event.eventfd = NULL; in eventfd_register() 796 if (!hpriv->notifier_event.eventfd) { in eventfd_unregister() 801 eventfd_ctx_put(hpriv->notifier_event.eventfd); in eventfd_unregister() 802 hpriv->notifier_event.eventfd = NULL; in eventfd_unregister()
|
| /linux/samples/cgroup/ |
| H A D | cgroup_event_listener.c | 47 efd = eventfd(0, 0); in main()
|
| /linux/include/uapi/misc/ |
| H A D | ocxl.h | 65 __s32 eventfd; member
|
| /linux/Documentation/translations/zh_CN/virt/ |
| H A D | ne_overview.rst | 59 设备使用eventfd作为信令。enclave虚拟机看到通常的接口——本地APIC和IOAPIC——从
|
| /linux/tools/virtio/ |
| H A D | virtio_test.c | 116 info->kick = eventfd(0, EFD_NONBLOCK); in vq_info_add() 117 info->call = eventfd(0, EFD_NONBLOCK); in vq_info_add()
|
| /linux/drivers/vdpa/vdpa_user/ |
| H A D | vduse_dev.c | 1216 struct vduse_vq_eventfd *eventfd) in vduse_kickfd_setup() argument 1222 if (eventfd->index >= dev->vq_num) in vduse_kickfd_setup() 1225 index = array_index_nospec(eventfd->index, dev->vq_num); in vduse_kickfd_setup() 1227 if (eventfd->fd >= 0) { in vduse_kickfd_setup() 1228 ctx = eventfd_ctx_fdget(eventfd->fd); in vduse_kickfd_setup() 1231 } else if (eventfd->fd != VDUSE_EVENTFD_DEASSIGN) in vduse_kickfd_setup() 1652 struct vduse_vq_eventfd eventfd; in vduse_dev_ioctl() local 1655 if (copy_from_user(&eventfd, argp, sizeof(eventfd))) in vduse_dev_ioctl() 1658 ret = vduse_kickfd_setup(dev, &eventfd); in vduse_dev_ioctl()
|
| /linux/include/uapi/drm/ |
| H A D | qaic_accel.h | 103 __u32 eventfd; member
|
| /linux/Documentation/admin-guide/cgroup-v1/ |
| H A D | memory.rst | 732 - create an eventfd using eventfd(2); 737 Application will be notified through eventfd when memory usage crosses 757 - create an eventfd using eventfd(2) 762 The application will be notified through eventfd when OOM happens. 856 The file memory.pressure_level is only used to setup an eventfd. To 859 - create an eventfd using eventfd(2); 864 Application will be notified through eventfd when memory pressure is at
|