/freebsd/sys/sys/ |
H A D | smr.h | 36 * algorithm, and smr_types.h for macros to define and access SMR-protected 40 * free directly to a SMR UMA zone or use smr_synchronize or wait. 57 /* Shared SMR state. */ 72 /* Per-cpu SMR state. */ 73 struct smr { struct 75 smr_shared_t c_shared; /* Shared SMR state. */ 78 int c_flags; /* SMR Configuration */ 96 smr_current(smr_t smr) in smr_current() argument 99 return (smr_shared_current(zpcpu_get(smr)->c_shared)); in smr_current() 106 smr_enter(smr_t smr) in smr_enter() argument [all …]
|
H A D | _smr.h | 34 typedef struct smr *smr_t; 36 #define SMR_ENTERED(smr) \ argument 37 (curthread->td_critnest != 0 && zpcpu_get((smr))->c_seq != SMR_SEQ_INVALID) 39 #define SMR_ASSERT_ENTERED(smr) \ argument 40 KASSERT(SMR_ENTERED(smr), ("Not in smr section")) 42 #define SMR_ASSERT_NOT_ENTERED(smr) \ argument 43 KASSERT(!SMR_ENTERED(smr), ("In smr section."));
|
H A D | smr_types.h | 34 * SMR Accessors are meant to provide safe access to SMR protected 52 /* Type restricting pointer access to force smr accessors. */ 59 * Read from an SMR protected pointer while in a read section. 61 #define smr_entered_load(p, smr) ({ \ argument 62 SMR_ASSERT(SMR_ENTERED((smr)), "smr_entered_load"); \ 68 * Read from an SMR protected pointer while serialized by an 79 * Store 'v' to an SMR protected pointer while serialized by an 93 * swap 'v' with an SMR protected pointer and return the old value 109 * Read from an SMR protected pointer when no serialization is required 119 * Store to an SMR protected pointer when no serialiation is required [all …]
|
H A D | disk_zone.h | 43 * (SMR). 52 * its capacity using SMR zones. Sequential writes will yield better
|
H A D | pctrie.h | 76 #define PCTRIE_DEFINE_SMR(name, type, field, allocfn, freefn, smr) \ argument 84 key, (smr))); \ 367 smr_t smr);
|
/freebsd/share/man/man9/ |
H A D | smr.9 | 33 .Nm smr 39 .Fa "smr_t smr" 47 .Fa "smr_t smr" 51 .Fa "smr_t smr" 55 .Fa "smr_t smr" 59 .Fa "smr_t smr" 65 .Fa "smr_t smr" 69 .Fa "smr_t smr" 73 Safe Memory Reclamation (SMR) is a facility which enables the implementation of 75 In typical usage, read accesses to an SMR-protected data structure, such as a [all …]
|
H A D | zone.9 | 125 .Fn uma_zone_set_smr "uma_zone_t zone" "smr_t smr" 341 .Xr smr 9 410 functions allocate and free items from an SMR-enabled zone, that is, 565 .Xr smr 9 569 flag, except that a new SMR structure is not created. 616 .Xr smr 9
|
H A D | locking.9 | 150 .Xr smr 9 , 156 .Xr smr 9 170 .Xr smr 9 434 .Xr smr 9 ,
|
H A D | Makefile | 326 smr.9 \ 2112 MLINKS+=smr.9 smr_advance.9 \ 2113 smr.9 smr_create.9 \ 2114 smr.9 smr_destroy.9 \ 2115 smr.9 smr_enter.9 \ 2116 smr.9 smr_exit.9 \ 2117 smr.9 smr_poll.9 \ 2118 smr.9 smr_synchronize.9 \ 2119 smr.9 smr_wait.9
|
/freebsd/sys/kern/ |
H A D | subr_smr.c | 35 #include <sys/smr.h> 171 * The grace period for lazy (tick based) SMR. 196 static SYSCTL_NODE(_debug, OID_AUTO, smr, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 197 "SMR Stats"); 216 smr_lazy_advance(smr_t smr, smr_shared_t s) in smr_lazy_advance() argument 265 * Advance the write sequence number for a normal smr section. If the 270 smr_default_advance(smr_t smr, smr_shared_t s) in smr_default_advance() argument 275 KASSERT((zpcpu_get(smr)->c_flags & SMR_LAZY) == 0, in smr_default_advance() 276 ("smr_default_advance: called with lazy smr.")); in smr_default_advance() 292 smr_wait(smr, goal - SMR_SEQ_MAX_ADVANCE); in smr_default_advance() [all …]
|
H A D | subr_pctrie.c | 57 #include <sys/proc.h> /* smr.h depends on struct thread. */ 58 #include <sys/smr.h> 117 pctrie_node_load(smr_pctnode_t *p, smr_t smr, enum pctrie_access access) in pctrie_node_load() argument 125 return (smr_entered_load(p, smr)); in pctrie_node_load() 141 panic("%s: Not supported in SMR section.", __func__); in pctrie_node_store() 162 pctrie_root_load(struct pctrie *ptree, smr_t smr, enum pctrie_access access) in pctrie_root_load() argument 164 return (pctrie_node_load(pctrie_root(ptree), smr, access)); in pctrie_root_load() 439 _pctrie_lookup(struct pctrie *ptree, uint64_t index, smr_t smr, in _pctrie_lookup() argument 445 node = pctrie_root_load(ptree, smr, access); in _pctrie_lookup() 448 node = pctrie_node_load(&node->pn_child[slot], smr, access); in _pctrie_lookup() [all …]
|
H A D | kern_rangelock.c | 41 #include <sys/smr.h> 281 * rl_q_entry while in the smr section, and cannot reuse rl_q_next 284 * the smr section is dropped.
|
/freebsd/sys/netinet/ |
H A D | tcp_hostcache.c | 51 * SMR. This puts certain restrictions on writers, e.g. a writer shall only 81 #include <sys/smr.h> 125 smr_t smr; member 281 V_tcp_hostcache.smr = uma_zone_get_smr(V_tcp_hostcache.zone); in tcp_hc_init() 334 * On success returns in SMR section. 349 smr_enter(V_tcp_hostcache.smr); in tcp_hc_lookup() 363 smr_exit(V_tcp_hostcache.smr); in tcp_hc_lookup() 405 smr_exit(V_tcp_hostcache.smr); in tcp_hc_get() 428 smr_exit(V_tcp_hostcache.smr); in tcp_hc_getmtu() 545 * accessible by readers in SMR section. in tcp_hc_update()
|
H A D | in_pcb.h | 141 * are be performed inside SMR section. Once desired PCB is found its own 142 * lock is to be obtained and SMR section exited. 146 * (e) - Protected by the SMR section 318 * The pcbs are protected with SMR section and thus all lists in inpcbinfo 326 * (e) Protected by SMR section
|
H A D | in_pcb.c | 60 #include <sys/smr.h> 1461 * inpcb hash lookups are protected by SMR section. 1463 * Once desired pcb has been found, switching from SMR section to a pcb 1465 * here because SMR is a critical section. 1554 * will be executed for each inpcb in the SMR context, so it can not acquire 1637 * as long as we are in SMR, we can continue traversal. in inp_next() 1652 * SMR section we can no longer jump to 'next', and our only stable in inp_next() 1684 * SMR section exited. 2237 ("%s: not in SMR read section", __func__)); in in_pcblookup_hash_wild_smr() 2342 * for bind(2) operations, or is in SMR section, which happens when sorting
|
/freebsd/usr.sbin/zonectl/ |
H A D | zonectl.8 | 59 Magnetic Recording (SMR). 60 There are three types of SMR drives: 65 using SMR zones. 88 SMR drives are divided into zones (typically in the range of 256MB each)
|
/freebsd/tools/uma/smrstress/ |
H A D | smrstress.c | 39 #include <sys/smr.h> 68 printf("SMR ERROR: wr_seq %d, rd_seq %d, c_seq %d, generation %d, count %d ", in smrs_error() 164 smrs_error(smrs, "ctor: Invalid smr generation on ctor\n"); in smrs_ctor()
|
/freebsd/sys/vm/ |
H A D | uma.h | 276 * a unique SMR context for this 280 * See sys/smr.h for more details. 340 /* Use with SMR zones. */ 394 /* Use with SMR zones. */ 634 * Associate a zone with a smr context that is allocated after creation 637 void uma_zone_set_smr(uma_zone_t zone, smr_t smr); 640 * Fetch the smr context that was set or made in uma_zcreate().
|
H A D | uma_core.c | 79 #include <sys/smr.h> 524 ("bucket_free: Freeing an SMR bucket.")); in bucket_free() 803 /* SMR Buckets can not be re-used until readers expire. */ in zone_fetch_bucket() 890 * protected by SMR, try to defer reuse to minimize polling. in zone_put_bucket() 1456 * Don't flush SMR zone buckets. This leaves the zone without a in cache_drain_safe_cpu() 2981 /* Caller requests a private SMR context. */ in zone_ctor() 3726 ("uma_zalloc_arg: called with non-SMR zone.")); in uma_zalloc_smr() 3757 ("uma_zalloc_arg: called with SMR zone.")); in uma_zalloc_arg() 3801 * SMR Zones can't re-use the free bucket until the sequence has in cache_alloc() 3896 ("uma_zalloc_domain: called with SMR zone.")); in uma_zalloc_domain() [all …]
|
H A D | vm_radix.c | 63 #include <sys/smr.h>
|
/freebsd/contrib/file/magic/Magdir/ |
H A D | biosig | 66 0 string (C)\x20CED\x2087 Biosig/CED SMR 67 !:mime biosig/ced-smr
|
/freebsd/crypto/openssl/test/recipes/04-test_pem_reading_data/ |
H A D | dsa-threecolumn.pem | 343 SMr
|
/freebsd/contrib/ofed/librdmacm/ |
H A D | rsocket.c | 289 struct ibv_mr *smr; member 338 struct ibv_mr *smr; member 717 rs->smr = rdma_reg_msgs(rs->cm_id, rs->sbuf, total_sbuf_size); in rs_init_bufs() 718 if (!rs->smr) in rs_init_bufs() 749 rs->ssgl[0].lkey = rs->ssgl[1].lkey = rs->smr->lkey; in rs_init_bufs() 764 qp->smr = rdma_reg_msgs(qp->cm_id, qp->rs->sbuf, qp->rs->sbuf_size); in ds_init_bufs() 765 if (!qp->smr) in ds_init_bufs() 932 if (qp->smr) in ds_free_qp() 933 rdma_dereg_mr(qp->smr); in ds_free_qp() 998 if (rs->smr) in rs_free() [all …]
|
/freebsd/sys/dev/wg/ |
H A D | wg_noise.c | 468 noise_remote_smr_free(struct epoch_context *smr) in noise_remote_smr_free() argument 471 r = __containerof(smr, struct noise_remote, r_smr); in noise_remote_smr_free() 752 noise_keypair_smr_free(struct epoch_context *smr) in noise_keypair_smr_free() argument 755 kp = __containerof(smr, struct noise_keypair, kp_smr); in noise_keypair_smr_free()
|
/freebsd/tools/build/test-includes/ |
H A D | badfiles.inc | 114 sys/smr.h \
|