Skip to content

Commit 8e667f6

Browse files
matttbeintel-lab-lkp
authored andcommitted
mptcp: pm: userspace: avoid scheduling in-kernel PM worker
When the userspace PM is used, there is no need to schedule the PM worker for in-kernel specific tasks, e.g. creating new subflows, or sending more ADD_ADDR. Now, these tasks will be done only if the in-kernel PM is being used. Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
1 parent 3716d83 commit 8e667f6

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

net/mptcp/pm.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk)
138138
* racing paths - accept() and check_fully_established()
139139
* be sure to serve this event only once.
140140
*/
141-
if (READ_ONCE(pm->work_pending) &&
141+
if (mptcp_pm_is_kernel(msk) && READ_ONCE(pm->work_pending) &&
142142
!(msk->pm.status & BIT(MPTCP_PM_ALREADY_ESTABLISHED)))
143143
mptcp_pm_schedule_work(msk, MPTCP_PM_ESTABLISHED);
144144

@@ -166,7 +166,7 @@ void mptcp_pm_subflow_established(struct mptcp_sock *msk)
166166

167167
pr_debug("msk=%p\n", msk);
168168

169-
if (!READ_ONCE(pm->work_pending))
169+
if (!mptcp_pm_is_kernel(msk) || !READ_ONCE(pm->work_pending))
170170
return;
171171

172172
spin_lock_bh(&pm->lock);
@@ -251,6 +251,9 @@ void mptcp_pm_add_addr_echoed(struct mptcp_sock *msk,
251251

252252
pr_debug("msk=%p\n", msk);
253253

254+
if (!mptcp_pm_is_kernel(msk) || !READ_ONCE(pm->work_pending))
255+
return;
256+
254257
spin_lock_bh(&pm->lock);
255258

256259
if (mptcp_lookup_anno_list_by_saddr(msk, addr) && READ_ONCE(pm->work_pending))
@@ -278,6 +281,9 @@ void mptcp_pm_rm_addr_received(struct mptcp_sock *msk,
278281
for (i = 0; i < rm_list->nr; i++)
279282
mptcp_event_addr_removed(msk, rm_list->ids[i]);
280283

284+
if (!mptcp_pm_is_kernel(msk))
285+
return;
286+
281287
spin_lock_bh(&pm->lock);
282288
if (mptcp_pm_schedule_work(msk, MPTCP_PM_RM_ADDR_RECEIVED))
283289
pm->rm_list_rx = *rm_list;

0 commit comments

Comments
 (0)