or to put differently, the difference is disapperance of vn_stat from
the codepath.

On 8/8/20, Mateusz Guzik <[email protected]> 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 <[email protected]> wrote:
>> On Fri, Aug 7, 2020 at 5:06 PM Mateusz Guzik <[email protected]> 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>
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to