Home
last modified time | relevance | path

Searched refs:eventfd (Results 1 – 25 of 64) sorted by relevance

123

/linux/virt/lib/
H A Dirqbypass.c94 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 Dioeventfd.c29 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 Deventfd.c137 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 DMakefile.kvm8 kvm-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o
/linux/tools/testing/selftests/kvm/
H A Dirqfd_test.c19 * 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 Dmshv_eventfd.c396 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 Dmshv_trace.h425 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 Dmshv_vtl_main.c301 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 Dirqbypass.h49 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 Dkvm_irqfd.h56 struct eventfd_ctx *eventfd; member
/linux/mm/
H A Dmemcontrol-v1.c47 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 Dvirqfd.c47 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 Dvfio_pci_intrs.c741 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 Dvfio_pci_core.c46 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 Dtest-eventfd.c8 return eventfd(0, EFD_NONBLOCK); in main()
/linux/tools/testing/selftests/kvm/include/
H A Dkvm_util.h21 #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 Dmain.c302 kickfd = eventfd(0, 0); in main()
304 callfd = eventfd(0, 0); in main()
/linux/drivers/accel/habanalabs/common/
H A Dhabanalabs_ioctl.c776 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 Dcgroup_event_listener.c47 efd = eventfd(0, 0); in main()
/linux/include/uapi/misc/
H A Docxl.h65 __s32 eventfd; member
/linux/Documentation/translations/zh_CN/virt/
H A Dne_overview.rst59 设备使用eventfd作为信令。enclave虚拟机看到通常的接口——本地APIC和IOAPIC——从
/linux/tools/virtio/
H A Dvirtio_test.c116 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 Dvduse_dev.c1216 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 Dqaic_accel.h103 __u32 eventfd; member
/linux/Documentation/admin-guide/cgroup-v1/
H A Dmemory.rst732 - 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

123