ltt-relay-objs := ltt-events.o ltt-debugfs-abi.o \
ltt-probes.o ltt-core.o ltt-context.o \
lttng-context-pid.o lttng-context-comm.o \
- lttng-context-prio.o lttng-context-nice.o \
- wrapper/poll.o
+ lttng-context-prio.o lttng-context-nice.o
ifneq ($(CONFIG_PERF_EVENTS),)
ltt-relay-objs += lttng-context-perf-counters.o
int finalized, disabled;
if (filp->f_mode & FMODE_READ) {
- init_poll_funcptr(wait, wrapper_pollwait_exclusive);
+ poll_wait_set_exclusive(wait);
poll_wait(filp, &buf->read_wait, wait);
finalized = lib_ring_buffer_is_finalized(config, buf);
+++ /dev/null
-/*
- * Copyright (C) 2011 Mathieu Desnoyers (mathieu.desnoyers@efficios.com)
- *
- * wrapper around poll __pollwait and poll_get_entry. Using KALLSYMS to get its
- * address when available, else we need to have a kernel that exports this
- * function to GPL modules.
- *
- * Dual LGPL v2.1/GPL v2 license.
- */
-
-#ifdef CONFIG_KALLSYMS
-
-#include <linux/kallsyms.h>
-#include <linux/poll.h>
-
-struct poll_table_entry;
-struct splice_pipe_desc;
-
-static
-void (*__pollwait_sym)(struct file *filp, wait_queue_head_t *wait_address,
- poll_table *p);
-static
-struct poll_table_entry *(*poll_get_entry_sym)(struct poll_wqueues *p);
-
-void wrapper_pollwait_exclusive(struct file *filp,
- wait_queue_head_t *wait_address,
- poll_table *p)
-
-{
- struct poll_wqueues *pwq = container_of(p, struct poll_wqueues, pt);
- struct poll_table_entry *entry;
-
- if (!poll_get_entry_sym)
- poll_get_entry_sym = (void *) kallsyms_lookup_name("poll_get_entry");
- if (!poll_get_entry_sym) {
- printk(KERN_WARNING "LTTng: poll_get_entry_sym symbol lookup failed.\n");
- return;
- }
- entry = poll_get_entry_sym(pwq);
-
- if (!__pollwait_sym)
- __pollwait_sym = (void *) kallsyms_lookup_name("__pollwait");
- if (!__pollwait_sym) {
- printk(KERN_WARNING "LTTng: __pollwait symbol lookup failed.\n");
- return;
- }
- return __pollwait_sym(filp, wait_address, p);
-}
-
-#else
-
-#include <linux/poll.h>
-
-ssize_t wrapper_pollwait_exclusive(struct file *filp,
- wait_queue_head_t *wait_address,
- poll_table *p)
-{
- return pollwait_exclusive(filp, wait_address, p);
-}
-
-#endif
/*
* Copyright (C) 2011 Mathieu Desnoyers (mathieu.desnoyers@efficios.com)
*
- * wrapper around poll __pollwait and poll_get_entry. Using KALLSYMS to get its
- * address when available, else we need to have a kernel that exports this
- * function to GPL modules.
- *
* Dual LGPL v2.1/GPL v2 license.
*/
#include <linux/poll.h>
-void wrapper_pollwait_exclusive(struct file *filp,
- wait_queue_head_t *wait_address,
- poll_table *p);
+#warning "poll_wait_set_exclusive() is defined as no-op. Thundering herd effect can be noticed with large number of consumer threads."
+
+#define poll_wait_set_exclusive(poll_table)
#endif /* _LTTNG_WRAPPER_POLL_H */