Page MenuHomeFreeBSD

D32259.id96088.diff
No OneTemporary

D32259.id96088.diff

Index: sys/dev/nvme/nvme_private.h
===================================================================
--- sys/dev/nvme/nvme_private.h
+++ sys/dev/nvme/nvme_private.h
@@ -469,7 +469,13 @@
nvme_completion_poll(struct nvme_completion_poll_status *status)
{
int sanity = hz * 10;
+ int sanity2 = 1000 * max(1, (1000 / hz));
+ /*
+ * Adaptively spin for the first ~ms
+ */
+ while (!atomic_load_acq_int(&status->done) && --sanity2 > 0)
+ DELAY(1);
while (!atomic_load_acq_int(&status->done) && --sanity > 0)
pause("nvme", 1);
if (sanity <= 0)

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 11:27 PM (24 m, 21 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31253457
Default Alt Text
D32259.id96088.diff (555 B)

Event Timeline