[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1665646872-20954-1-git-send-email-zhangxiangqian@kylinos.cn>
Date:   Thu, 13 Oct 2022 15:41:12 +0800
From:   zhangxiangqian <zhangxiangqian@...inos.cn>
To:     davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
        pabeni@...hat.com
Cc:     netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] net: macvlan: change schedule system_wq to system_unbound_wq
For FT2000+/64 devices,
when four virtual machines share the same physical network interface,
DROP will occur due to the single core CPU performance problem.
ip_check_defrag and macvlan_process_broadcast is on the same CPU.
When the MACVLAN PORT increases, the CPU usage reaches more than 90%.
bc_queue > bc_queue_len_used (default 1000), causing DROP.
Signed-off-by: zhangxiangqian <zhangxiangqian@...inos.cn>
---
 drivers/net/macvlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 1080d6e..dd3f35e 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -361,7 +361,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
 	}
 	spin_unlock(&port->bc_queue.lock);
 
-	schedule_work(&port->bc_work);
+	queue_work(system_unbound_wq, &port->bc_work);
 
 	if (err)
 		goto free_nskb;
-- 
2.7.4
Powered by blists - more mailing lists