svn commit: r364044 - in head: share/man/man9 sys/compat/linuxkpi/common/src sys/kern sys/security/audit sys/sys

Alan Somers asomers at freebsd.org
Sat Aug 8 01:51:38 UTC 2020


So it's just the struct copy, then?  I'm impressed that it made that much
difference to remove it.
-Alan

On Fri, Aug 7, 2020 at 7:40 PM Mateusz Guzik <mjguzik at gmail.com> wrote:

> or to put differently, the difference is disapperance of vn_stat from
> the codepath.
>
> On 8/8/20, Mateusz Guzik <mjguzik at gmail.com> wrote:
> > tmpfs_getattr fills > 100 bytes worth of data into struct vattr, which
> > then has to be converted to struct stat format. The conversion happens
> > to copy some of it as it is and branch on other stuff. tmpfs_stat
> > elides the entire process.
> >
> > On 8/8/20, Alan Somers <asomers at freebsd.org> wrote:
> >> On Fri, Aug 7, 2020 at 5:06 PM Mateusz Guzik <mjg at freebsd.org> wrote:
> >>
> >>> Author: mjg
> >>> Date: Fri Aug  7 23:06:40 2020
> >>> New Revision: 364044
> >>> URL: https://svnweb.freebsd.org/changeset/base/364044
> >>>
> >>> Log:
> >>>   vfs: add VOP_STAT
> >>>
> >>>   The current scheme of calling VOP_GETATTR adds avoidable overhead.
> >>>
> >>>   An example with tmpfs doing fstat (ops/s):
> >>>   before: 7488958
> >>>   after:  7913833
> >>>
> >>>   Reviewed by:  kib (previous version)
> >>>   Differential Revision:        https://reviews.freebsd.org/D25910
> >>>
> >>> Modified:
> >>>   head/share/man/man9/Makefile
> >>>   head/share/man/man9/VOP_ATTRIB.9
> >>>   head/sys/compat/linuxkpi/common/src/linux_compat.c
> >>>   head/sys/kern/vfs_default.c
> >>>   head/sys/kern/vfs_syscalls.c
> >>>   head/sys/kern/vfs_vnops.c
> >>>   head/sys/kern/vnode_if.src
> >>>   head/sys/security/audit/audit_arg.c
> >>>   head/sys/sys/vnode.h
> >>>
> >>
> >> What avoidable overhead? The tmpfs_stat handler that you added in your
> >> next
> >> commit looks pretty much the same as vop_getattr.  I'm missing where the
> >> performance improvement comes from.  Could you please fill me in?
> >> -Alan
> >>
> >
> >
> > --
> > Mateusz Guzik <mjguzik gmail.com>
> >
>
>
> --
> Mateusz Guzik <mjguzik gmail.com>
>


More information about the svn-src-head mailing list