git: kernel - Optimize the x86-64 lwbuf API

Samuel J. Greear sjg at evilcode.net
Sun Jan 23 00:52:44 PST 2011


The optimization is cute, almost devolves this into an assignment, but
this new API is quite terrible imo, there must be a cleaner way to do
this.

Sam

On Wed, Jan 19, 2011 at 6:29 PM, Matthew Dillon
<dillon at crater.dragonflybsd.org> wrote:
>
> commit 7a683a249a628667d7a484f26af36786efbdd87f
> Author: Matthew Dillon <dillon at apollo.backplane.com>
> Date:   Wed Jan 19 17:27:46 2011 -0800
>
>    kernel - Optimize the x86-64 lwbuf API
>
>    * Change lwbuf_alloc(m) to lwbuf_alloc(m, &lwb_cache), passing a pointer to
>      a struct lwb which lwbuf_alloc() may used if it desires.
>
>    * The x86-64 lwbuf_alloc() now just fills in the passed lwb and returns it.
>      The i386 lwbuf_alloc() still uses the objcache w/ its kva mappings.  This
>      removes objcache calls from the critical path.
>
>    * The x86-64 lwbuf_alloc()/lwbuf_free() functions are now inlines (ALL x86-64
>      lwbuf functions are now inlines).
>
> Summary of changes:
>  sys/cpu/i386/include/lwbuf.h             |    2 +-
>  sys/cpu/i386/misc/lwbuf.c                |    2 +-
>  sys/cpu/x86_64/include/lwbuf.h           |   37 ++++++++++++++++++++++-------
>  sys/cpu/x86_64/misc/lwbuf.c              |   25 +++++++++++++------
>  sys/kern/imgact_elf.c                    |    6 ++++-
>  sys/kern/kern_exec.c                     |    3 +-
>  sys/kern/kern_sfbuf.c                    |    2 +-
>  sys/kern/kern_subr.c                     |    3 +-
>  sys/kern/kern_umtx.c                     |    5 ++-
>  sys/kern/kern_xio.c                      |   12 ++++++---
>  sys/platform/vkernel/platform/copyio.c   |    6 +++-
>  sys/platform/vkernel64/platform/copyio.c |    6 +++-
>  sys/sys/imgact.h                         |    2 +
>  sys/sys/sfbuf.h                          |    5 ++-
>  sys/vm/vm_fault.c                        |    3 +-
>  sys/vm/vm_zeroidle.c                     |    9 ++++---
>  sys/vm/vnode_pager.c                     |    3 +-
>  17 files changed, 90 insertions(+), 41 deletions(-)
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7a683a249a628667d7a484f26af36786efbdd87f
>
>
> --
> DragonFly BSD source repository
>






More information about the Commits mailing list