git: kernel - Refactor kern_sendfile()

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Oct 31 10:49:58 PDT 2017


commit e7cb11ec46aea8b0515575369f26c95747b67d53
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Oct 20 12:01:43 2017 -0700

    kernel - Refactor kern_sendfile()
    
    * Refactor kern_sendfile() to greatly improve performance.
    
    * Use vm_page_lookup_sbusy_try() exclusively to acquire VM pages
      to assign to the mbufs.
    
    * Instead of holding pages in a fancy manner, just issue the
      UIO_NOCOPY / VMIO VOP_READ() in the blind and loop up.
    
    * The VOP_READ() is still synchronous.  It is really unclear
      whether asynchronizing VOP_READ() via the pagerops would
      really improve performance verses simply implementing a
      limited number of connections per worker.  At least in
      localhost tests, we seem to be hitting a hardware memory
      bottleneck long before we hit a cpu bottleneck.

Summary of changes:
 sys/kern/uipc_syscalls.c | 145 ++++++++++++++++-------------------------------
 1 file changed, 48 insertions(+), 97 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e7cb11ec46aea8b0515575369f26c95747b67d53


-- 
DragonFly BSD source repository



More information about the Commits mailing list