On Fri, Aug 7, 2020 at 8:16 AM Jamal Hadi Salim wrote:
>
> I am guessing the hash table got too large.
> Smells like hard coded expectation?
Yeah, that is literally how kfree_rcu() works.
>
> How to fix?
I guess you just have to wrap up kfree() and pass it
to call_rcu().
Thanks.
More clarification - this:
---
diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c
index ec945294626a..06510c8c8281 100644
--- a/net/sched/cls_fw.c
+++ b/net/sched/cls_fw.c
@@ -22,12 +22,12 @@
#include
#include
-#define HTSIZE 256
+#define HTSIZE 4096
struct fw_head {
+ struct rcu_h
Made this small change:
--
diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c
index ec945294626a..75d43ed10cd8 100644
--- a/net/sched/cls_fw.c
+++ b/net/sched/cls_fw.c
@@ -22,7 +22,7 @@
#include
#include
-#define HTSIZE 256
+#define HTSIZE 4096
struct fw_head {
u32