mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	nfsd: give out fewer session slots as limit approaches
Instead of granting client's full requests until we hit our DRC size limit and then failing CREATE_SESSIONs (and hence mounts) completely, start granting clients smaller slot tables as we approach the limit. The factor chosen here is pretty much arbitrary. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
		
							parent
							
								
									44d8660d3b
								
							
						
					
					
						commit
						de766e5704
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1472,6 +1472,11 @@ static u32 nfsd4_get_drc_mem(struct nfsd4_channel_attrs *ca)
 | 
			
		|||
	spin_lock(&nfsd_drc_lock);
 | 
			
		||||
	avail = min((unsigned long)NFSD_MAX_MEM_PER_SESSION,
 | 
			
		||||
		    nfsd_drc_max_mem - nfsd_drc_mem_used);
 | 
			
		||||
	/*
 | 
			
		||||
	 * Never use more than a third of the remaining memory,
 | 
			
		||||
	 * unless it's the only way to give this client a slot:
 | 
			
		||||
	 */
 | 
			
		||||
	avail = clamp_t(int, avail, slotsize, avail/3);
 | 
			
		||||
	num = min_t(int, num, avail / slotsize);
 | 
			
		||||
	nfsd_drc_mem_used += num * slotsize;
 | 
			
		||||
	spin_unlock(&nfsd_drc_lock);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue