On Sat, May 19, 2018 at 07:25:05AM +0200, Mikulas Patocka wrote: > In order to reduce locking overhead, I use the spinlock in > swait_queue_head to protect not only the wait queue, but also the list of > events. Consequently, I need to use unlocked functions __prepare_to_swait > and __finish_swait. These functions are declared in the file > include/linux/swait.h, but they are not exported, and so they are not > useable from kernel modules. Please CC the author and maintainers of the swait code. My impression is that this is the wrong thing to do. The swait code is supposed to be simple and self contained, and if you want to do anything else use normal waitqueues. > > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> > > --- > kernel/sched/swait.c | 2 ++ > 1 file changed, 2 insertions(+) > > Index: linux-2.6/kernel/sched/swait.c > =================================================================== > --- linux-2.6.orig/kernel/sched/swait.c 2018-04-16 21:10:05.000000000 +0200 > +++ linux-2.6/kernel/sched/swait.c 2018-04-16 21:10:05.000000000 +0200 > @@ -75,6 +75,7 @@ void __prepare_to_swait(struct swait_que > if (list_empty(&wait->task_list)) > list_add(&wait->task_list, &q->task_list); > } > +EXPORT_SYMBOL(__prepare_to_swait); > > void prepare_to_swait(struct swait_queue_head *q, struct swait_queue *wait, int state) > { > @@ -104,6 +105,7 @@ void __finish_swait(struct swait_queue_h > if (!list_empty(&wait->task_list)) > list_del_init(&wait->task_list); > } > +EXPORT_SYMBOL(__finish_swait); > > void finish_swait(struct swait_queue_head *q, struct swait_queue *wait) > { > > -- > dm-devel mailing list > dm-devel@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/dm-devel ---end quoted text--- -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel