Page MenuHomeFreeBSD

D23440.id67579.diff
No OneTemporary

D23440.id67579.diff

Index: head/tools/uma/smrstress/smrstress.c
===================================================================
--- head/tools/uma/smrstress/smrstress.c
+++ head/tools/uma/smrstress/smrstress.c
@@ -84,7 +84,7 @@
/* Wait for the writer to exit. */
while (smrs_completed == 0) {
smr_enter(smrs_smr);
- cur = (void *)atomic_load_ptr(&smrs_current);
+ cur = (void *)atomic_load_acq_ptr(&smrs_current);
if (cur->generation == -1)
smrs_error(cur, "read early: Use after free!\n");
atomic_add_int(&cur->count, 1);
@@ -107,6 +107,7 @@
for (i = 0; i < smrs_iterations; i++) {
cur = uma_zalloc_smr(smrs_zone, M_WAITOK);
+ atomic_thread_fence_rel();
cur = (void *)atomic_swap_ptr(&smrs_current, (uintptr_t)cur);
uma_zfree_smr(smrs_zone, cur);
}

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 31, 3:38 PM (20 m, 27 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37698917
Default Alt Text
D23440.id67579.diff (769 B)

Event Timeline