bpf: Eliminate rlimit-based memory accounting for bpf local storage maps
Do not use rlimit-based memory accounting for bpf local storage maps. It has been replaced with the memcg-based memory accounting. Signed-off-by: Roman Gushchin <guro@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Song Liu <songliubraving@fb.com> Link: https://lore.kernel.org/bpf/20201201215900.3569844-32-guro@fb.com
This commit is contained in:
		
							parent
							
								
									819a4f3235
								
							
						
					
					
						commit
						ab31be378a
					
				| @ -545,8 +545,6 @@ struct bpf_local_storage_map *bpf_local_storage_map_alloc(union bpf_attr *attr) | ||||
| 	struct bpf_local_storage_map *smap; | ||||
| 	unsigned int i; | ||||
| 	u32 nbuckets; | ||||
| 	u64 cost; | ||||
| 	int ret; | ||||
| 
 | ||||
| 	smap = kzalloc(sizeof(*smap), GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); | ||||
| 	if (!smap) | ||||
| @ -557,18 +555,10 @@ struct bpf_local_storage_map *bpf_local_storage_map_alloc(union bpf_attr *attr) | ||||
| 	/* Use at least 2 buckets, select_bucket() is undefined behavior with 1 bucket */ | ||||
| 	nbuckets = max_t(u32, 2, nbuckets); | ||||
| 	smap->bucket_log = ilog2(nbuckets); | ||||
| 	cost = sizeof(*smap->buckets) * nbuckets + sizeof(*smap); | ||||
| 
 | ||||
| 	ret = bpf_map_charge_init(&smap->map.memory, cost); | ||||
| 	if (ret < 0) { | ||||
| 		kfree(smap); | ||||
| 		return ERR_PTR(ret); | ||||
| 	} | ||||
| 
 | ||||
| 	smap->buckets = kvcalloc(sizeof(*smap->buckets), nbuckets, | ||||
| 				 GFP_USER | __GFP_NOWARN | __GFP_ACCOUNT); | ||||
| 	if (!smap->buckets) { | ||||
| 		bpf_map_charge_finish(&smap->map.memory); | ||||
| 		kfree(smap); | ||||
| 		return ERR_PTR(-ENOMEM); | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user