• Home
  • Raw
  • Download

Lines Matching refs:prot

884 static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority,  in sk_prot_alloc()  argument
890 slab = prot->slab; in sk_prot_alloc()
894 sk = kmalloc(prot->obj_size, priority); in sk_prot_alloc()
900 if (!try_module_get(prot->owner)) in sk_prot_alloc()
916 static void sk_prot_free(struct proto *prot, struct sock *sk) in sk_prot_free() argument
921 owner = prot->owner; in sk_prot_free()
922 slab = prot->slab; in sk_prot_free()
940 struct proto *prot) in sk_alloc() argument
944 sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family); in sk_alloc()
951 sk->sk_prot = sk->sk_prot_creator = prot; in sk_alloc()
1430 struct proto *prot = sk->sk_prot; in __sk_mem_schedule() local
1435 allocated = atomic_add_return(amt, prot->memory_allocated); in __sk_mem_schedule()
1438 if (allocated <= prot->sysctl_mem[0]) { in __sk_mem_schedule()
1439 if (prot->memory_pressure && *prot->memory_pressure) in __sk_mem_schedule()
1440 *prot->memory_pressure = 0; in __sk_mem_schedule()
1445 if (allocated > prot->sysctl_mem[1]) in __sk_mem_schedule()
1446 if (prot->enter_memory_pressure) in __sk_mem_schedule()
1447 prot->enter_memory_pressure(sk); in __sk_mem_schedule()
1450 if (allocated > prot->sysctl_mem[2]) in __sk_mem_schedule()
1455 if (atomic_read(&sk->sk_rmem_alloc) < prot->sysctl_rmem[0]) in __sk_mem_schedule()
1459 if (sk->sk_wmem_queued < prot->sysctl_wmem[0]) in __sk_mem_schedule()
1462 prot->sysctl_wmem[0]) in __sk_mem_schedule()
1466 if (prot->memory_pressure) { in __sk_mem_schedule()
1469 if (!*prot->memory_pressure) in __sk_mem_schedule()
1471 alloc = percpu_counter_read_positive(prot->sockets_allocated); in __sk_mem_schedule()
1472 if (prot->sysctl_mem[2] > alloc * in __sk_mem_schedule()
1493 atomic_sub(amt, prot->memory_allocated); in __sk_mem_schedule()
1505 struct proto *prot = sk->sk_prot; in __sk_mem_reclaim() local
1508 prot->memory_allocated); in __sk_mem_reclaim()
1511 if (prot->memory_pressure && *prot->memory_pressure && in __sk_mem_reclaim()
1512 (atomic_read(prot->memory_allocated) < prot->sysctl_mem[0])) in __sk_mem_reclaim()
1513 *prot->memory_pressure = 0; in __sk_mem_reclaim()
1948 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
1951 per_cpu_ptr(net->core.inuse, cpu)->val[prot->inuse_idx] += val; in sock_prot_inuse_add()
1955 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
1957 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
1995 void sock_prot_inuse_add(struct net *net, struct proto *prot, int val) in sock_prot_inuse_add() argument
1997 __get_cpu_var(prot_inuse).val[prot->inuse_idx] += val; in sock_prot_inuse_add()
2001 int sock_prot_inuse_get(struct net *net, struct proto *prot) in sock_prot_inuse_get() argument
2003 int cpu, idx = prot->inuse_idx; in sock_prot_inuse_get()
2014 static void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2016 prot->inuse_idx = find_first_zero_bit(proto_inuse_idx, PROTO_INUSE_NR); in assign_proto_idx()
2018 if (unlikely(prot->inuse_idx == PROTO_INUSE_NR - 1)) { in assign_proto_idx()
2023 set_bit(prot->inuse_idx, proto_inuse_idx); in assign_proto_idx()
2026 static void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2028 if (prot->inuse_idx != PROTO_INUSE_NR - 1) in release_proto_idx()
2029 clear_bit(prot->inuse_idx, proto_inuse_idx); in release_proto_idx()
2032 static inline void assign_proto_idx(struct proto *prot) in assign_proto_idx() argument
2036 static inline void release_proto_idx(struct proto *prot) in release_proto_idx() argument
2041 int proto_register(struct proto *prot, int alloc_slab) in proto_register() argument
2044 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, in proto_register()
2045 SLAB_HWCACHE_ALIGN | prot->slab_flags, in proto_register()
2048 if (prot->slab == NULL) { in proto_register()
2050 prot->name); in proto_register()
2054 if (prot->rsk_prot != NULL) { in proto_register()
2057 prot->rsk_prot->slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL); in proto_register()
2058 if (prot->rsk_prot->slab_name == NULL) in proto_register()
2061 sprintf(prot->rsk_prot->slab_name, mask, prot->name); in proto_register()
2062 prot->rsk_prot->slab = kmem_cache_create(prot->rsk_prot->slab_name, in proto_register()
2063 prot->rsk_prot->obj_size, 0, in proto_register()
2066 if (prot->rsk_prot->slab == NULL) { in proto_register()
2068 prot->name); in proto_register()
2073 if (prot->twsk_prot != NULL) { in proto_register()
2076 prot->twsk_prot->twsk_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL); in proto_register()
2078 if (prot->twsk_prot->twsk_slab_name == NULL) in proto_register()
2081 sprintf(prot->twsk_prot->twsk_slab_name, mask, prot->name); in proto_register()
2082 prot->twsk_prot->twsk_slab = in proto_register()
2083 kmem_cache_create(prot->twsk_prot->twsk_slab_name, in proto_register()
2084 prot->twsk_prot->twsk_obj_size, in proto_register()
2087 prot->slab_flags, in proto_register()
2089 if (prot->twsk_prot->twsk_slab == NULL) in proto_register()
2095 list_add(&prot->node, &proto_list); in proto_register()
2096 assign_proto_idx(prot); in proto_register()
2101 kfree(prot->twsk_prot->twsk_slab_name); in proto_register()
2103 if (prot->rsk_prot && prot->rsk_prot->slab) { in proto_register()
2104 kmem_cache_destroy(prot->rsk_prot->slab); in proto_register()
2105 prot->rsk_prot->slab = NULL; in proto_register()
2108 kfree(prot->rsk_prot->slab_name); in proto_register()
2110 kmem_cache_destroy(prot->slab); in proto_register()
2111 prot->slab = NULL; in proto_register()
2118 void proto_unregister(struct proto *prot) in proto_unregister() argument
2121 release_proto_idx(prot); in proto_unregister()
2122 list_del(&prot->node); in proto_unregister()
2125 if (prot->slab != NULL) { in proto_unregister()
2126 kmem_cache_destroy(prot->slab); in proto_unregister()
2127 prot->slab = NULL; in proto_unregister()
2130 if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) { in proto_unregister()
2131 kmem_cache_destroy(prot->rsk_prot->slab); in proto_unregister()
2132 kfree(prot->rsk_prot->slab_name); in proto_unregister()
2133 prot->rsk_prot->slab = NULL; in proto_unregister()
2136 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) { in proto_unregister()
2137 kmem_cache_destroy(prot->twsk_prot->twsk_slab); in proto_unregister()
2138 kfree(prot->twsk_prot->twsk_slab_name); in proto_unregister()
2139 prot->twsk_prot->twsk_slab = NULL; in proto_unregister()