mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-11 21:16:44 +07:00
ipvs: Put backup thread on mcast socket wait queue
Instead of doing an endless loop with sleeping for one second, we now put the backup thread onto the mcast socket wait queue and it gets woken up as soon as we have data to process. Signed-off-by: Sven Wegener <sven.wegener@stealer.net> Acked-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
998e7a7680
commit
ba6fd85021
@ -29,6 +29,7 @@
|
||||
#include <linux/udp.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/wait.h>
|
||||
|
||||
#include <net/ip.h>
|
||||
#include <net/sock.h>
|
||||
@ -772,6 +773,10 @@ static int sync_thread_backup(void *data)
|
||||
ip_vs_backup_mcast_ifn, ip_vs_backup_syncid);
|
||||
|
||||
while (!kthread_should_stop()) {
|
||||
wait_event_interruptible(*tinfo->sock->sk->sk_sleep,
|
||||
!skb_queue_empty(&tinfo->sock->sk->sk_receive_queue)
|
||||
|| kthread_should_stop());
|
||||
|
||||
/* do we have data now? */
|
||||
while (!skb_queue_empty(&(tinfo->sock->sk->sk_receive_queue))) {
|
||||
len = ip_vs_receive(tinfo->sock, tinfo->buf,
|
||||
@ -787,8 +792,6 @@ static int sync_thread_backup(void *data)
|
||||
ip_vs_process_message(tinfo->buf, len);
|
||||
local_bh_enable();
|
||||
}
|
||||
|
||||
msleep_interruptible(1000);
|
||||
}
|
||||
|
||||
/* release the sending multicast socket */
|
||||
|
Loading…
Reference in New Issue
Block a user