Page MenuHomeFreeBSD

D58337.id184127.diff
No OneTemporary

D58337.id184127.diff

diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
--- a/sys/kern/kern_umtx.c
+++ b/sys/kern/kern_umtx.c
@@ -113,7 +113,11 @@
(td)->td_user_pri <= PRI_MAX_TIMESHARE) ?\
PRI_MAX_TIMESHARE : (td)->td_user_pri)
-#define GOLDEN_RATIO_PRIME 2654404609U
+/*
+ * Linux's fair multiplier, which replaced the bit-sparse 0x9E370001
+ * that collapses for keys an allocator arena apart.
+ */
+#define GOLDEN_RATIO_32 1640531527U
#ifndef UMTX_CHAINS
#define UMTX_CHAINS 512
#endif
@@ -380,7 +384,7 @@
unsigned n;
n = (uintptr_t)key->info.both.a + key->info.both.b;
- key->hash = ((n * GOLDEN_RATIO_PRIME) >> UMTX_SHIFTS) % UMTX_CHAINS;
+ key->hash = ((n * GOLDEN_RATIO_32) >> UMTX_SHIFTS) % UMTX_CHAINS;
}
struct umtxq_chain *

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 31, 12:20 AM (16 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36858627
Default Alt Text
D58337.id184127.diff (750 B)

Event Timeline