Re: [PATCH net-next v1 2/5] net: sched: Introduce helpers for qevent blocks
From: Cong Wang <hidden>
Date: 2020-07-07 19:48:40
From: Cong Wang <hidden>
Date: 2020-07-07 19:48:40
On Fri, Jun 26, 2020 at 3:46 PM Petr Machata [off-list ref] wrote:
The function tcf_qevent_handle() should be invoked when qdisc hits the "interesting event" corresponding to a block. This function releases root lock for the duration of executing the attached filters, to allow packets generated through user actions (notably mirred) to be reinserted to the same qdisc tree.
I read this again, another question here is: why is tcf_qevent_handle() special here? We call tcf_classify() under root lock in many other places too, for example htb_enqueue(), which of course includes act_mirred execution, so why isn't it a problem there? People added MIRRED_RECURSION_LIMIT for this kinda recursion, but never released that root lock. Thanks.