forked from mirrors/linux
		
	mptcp: drop SK_RECLAIM_* macros
After commit 4890b686f4 ("net: keep sk->sk_forward_alloc as small as
possible"), the MPTCP protocol is the last SK_RECLAIM_CHUNK and
SK_RECLAIM_THRESHOLD users.
Update the MPTCP reclaim schema to match the core/TCP one and drop the
mentioned macros. This additionally clean the MPTCP code a bit.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									4aaa1685f7
								
							
						
					
					
						commit
						d24141fe7b
					
				
					 1 changed files with 2 additions and 33 deletions
				
			
		|  | @ -181,8 +181,8 @@ static void mptcp_rmem_uncharge(struct sock *sk, int size) | |||
| 	reclaimable = msk->rmem_fwd_alloc - sk_unused_reserved_mem(sk); | ||||
| 
 | ||||
| 	/* see sk_mem_uncharge() for the rationale behind the following schema */ | ||||
| 	if (unlikely(reclaimable >= SK_RECLAIM_THRESHOLD)) | ||||
| 		__mptcp_rmem_reclaim(sk, SK_RECLAIM_CHUNK); | ||||
| 	if (unlikely(reclaimable >= PAGE_SIZE)) | ||||
| 		__mptcp_rmem_reclaim(sk, reclaimable); | ||||
| } | ||||
| 
 | ||||
| static void mptcp_rfree(struct sk_buff *skb) | ||||
|  | @ -961,25 +961,6 @@ static bool mptcp_frag_can_collapse_to(const struct mptcp_sock *msk, | |||
| 		df->data_seq + df->data_len == msk->write_seq; | ||||
| } | ||||
| 
 | ||||
| static void __mptcp_mem_reclaim_partial(struct sock *sk) | ||||
| { | ||||
| 	int reclaimable = mptcp_sk(sk)->rmem_fwd_alloc - sk_unused_reserved_mem(sk); | ||||
| 
 | ||||
| 	lockdep_assert_held_once(&sk->sk_lock.slock); | ||||
| 
 | ||||
| 	if (reclaimable > (int)PAGE_SIZE) | ||||
| 		__mptcp_rmem_reclaim(sk, reclaimable - 1); | ||||
| 
 | ||||
| 	sk_mem_reclaim(sk); | ||||
| } | ||||
| 
 | ||||
| static void mptcp_mem_reclaim_partial(struct sock *sk) | ||||
| { | ||||
| 	mptcp_data_lock(sk); | ||||
| 	__mptcp_mem_reclaim_partial(sk); | ||||
| 	mptcp_data_unlock(sk); | ||||
| } | ||||
| 
 | ||||
| static void dfrag_uncharge(struct sock *sk, int len) | ||||
| { | ||||
| 	sk_mem_uncharge(sk, len); | ||||
|  | @ -999,7 +980,6 @@ static void __mptcp_clean_una(struct sock *sk) | |||
| { | ||||
| 	struct mptcp_sock *msk = mptcp_sk(sk); | ||||
| 	struct mptcp_data_frag *dtmp, *dfrag; | ||||
| 	bool cleaned = false; | ||||
| 	u64 snd_una; | ||||
| 
 | ||||
| 	/* on fallback we just need to ignore snd_una, as this is really
 | ||||
|  | @ -1022,7 +1002,6 @@ static void __mptcp_clean_una(struct sock *sk) | |||
| 		} | ||||
| 
 | ||||
| 		dfrag_clear(sk, dfrag); | ||||
| 		cleaned = true; | ||||
| 	} | ||||
| 
 | ||||
| 	dfrag = mptcp_rtx_head(sk); | ||||
|  | @ -1044,7 +1023,6 @@ static void __mptcp_clean_una(struct sock *sk) | |||
| 		dfrag->already_sent -= delta; | ||||
| 
 | ||||
| 		dfrag_uncharge(sk, delta); | ||||
| 		cleaned = true; | ||||
| 	} | ||||
| 
 | ||||
| 	/* all retransmitted data acked, recovery completed */ | ||||
|  | @ -1052,9 +1030,6 @@ static void __mptcp_clean_una(struct sock *sk) | |||
| 		msk->recovery = false; | ||||
| 
 | ||||
| out: | ||||
| 	if (cleaned && tcp_under_memory_pressure(sk)) | ||||
| 		__mptcp_mem_reclaim_partial(sk); | ||||
| 
 | ||||
| 	if (snd_una == READ_ONCE(msk->snd_nxt) && | ||||
| 	    snd_una == READ_ONCE(msk->write_seq)) { | ||||
| 		if (mptcp_timer_pending(sk) && !mptcp_data_fin_enabled(msk)) | ||||
|  | @ -1206,12 +1181,6 @@ static struct sk_buff *mptcp_alloc_tx_skb(struct sock *sk, struct sock *ssk, boo | |||
| { | ||||
| 	gfp_t gfp = data_lock_held ? GFP_ATOMIC : sk->sk_allocation; | ||||
| 
 | ||||
| 	if (unlikely(tcp_under_memory_pressure(sk))) { | ||||
| 		if (data_lock_held) | ||||
| 			__mptcp_mem_reclaim_partial(sk); | ||||
| 		else | ||||
| 			mptcp_mem_reclaim_partial(sk); | ||||
| 	} | ||||
| 	return __mptcp_alloc_tx_skb(sk, ssk, gfp); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Paolo Abeni
						Paolo Abeni