git: kernel - Improve physio performance (2)

Matthew Dillon dillon at
Sun Jul 17 12:00:32 PDT 2016

commit 9942a85186eb01e7d377406f3f6c91aba66a35ac
Author: Matthew Dillon <dillon at>
Date:   Sun Jul 17 11:56:49 2016 -0700

    kernel - Improve physio performance (2)
    * Increase the cap on pbuf_mem buffers from 256 to 512.  256
      wasn't enough to max-out three NVMe devices.
    * Add 25% hysteresis to the pbuf_{mem,kva,raw}_count counters
      to reduce unnecessary tsleep()s and wakeup()s (and thus
      unnecessary IPIs) when the pbuf pool is exhausted.
      Add a tiny bit of hysteresis for the localized *pfreecnt
      as subsystems tend to use smaller values (e.g. pageout
    * In physio tests throughput with 3 x NVMe + 4 x SATA SSDs
      increases to 6.5 GBytes/sec and max IOPS @ 4K increases
      to 1.05M IOPS (yes, that's million).   (random read
      from urandom-filled partition using 32KB and 4KB blocks,
      with high user process concurrency).

Summary of changes:
 sys/platform/pc64/x86_64/machdep.c |  4 ++--
 sys/vm/vm_pager.c                  | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list