From owner-svn-src-head@freebsd.org Sat Aug 8 01:39:18 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E5A1F379A55; Sat, 8 Aug 2020 01:39:18 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BNlJQ41hWz494Q; Sat, 8 Aug 2020 01:39:18 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wm1-x343.google.com with SMTP id d190so3140480wmd.4; Fri, 07 Aug 2020 18:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=AA6ZGx0ZIx28lmvzUwfqC35TLB43PfGTyHhJGeTS3cw=; b=vFNSaXx7NFfX498BeBhAbqlHQWIWoEmiXZ0GoADBRaFm5lbmJDryEI+Rn7XmKCWD7H 0E42OOta/Af8EEhAG0EHIxkYXOghR0IMLJ8PA4nZRSF0/T1Z5t5nvUMpp1VacMFTHVfQ LG/bxrVTnvuI4DV+fNc4iP1NyHqbZF/YLda/sOpTDz7J5ByAyUK90zPqdcR7cKcyWblG u1PNn3sHJ3LbNNK1F1YU0keVWyeWkU+L6TDGlHENcY7LafS9v5u1p5q6uMcHh9GyWMLk orcIzFpnNc69knzvc12cz+zAnrxwqR4gEPPEjfzxzgtfz3Lxd+8xfIVovV60WZO0d/Y2 NxxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=AA6ZGx0ZIx28lmvzUwfqC35TLB43PfGTyHhJGeTS3cw=; b=IiSzq8qA+U+9bCgWzIEbBnILUnigFBD97++H0xy1Ks8x0BO5YQouueVl+9UFau8808 mOvs2GZLLKO39UlEueybSruWikZYjj/pNEqw8zh9hAtbQxWUE64EBQ8y5zOmohTIAyN2 qK2jZ5A7zT7FCKdurMXhdd5ebEuV/NXO+m9whGN9b33Zmai17510y6prkhkdwL/0r2q7 pj1cpjJ19x8l9EjFWeTaEhuh+tzsDroiy2+O8eR8GoUJMkEMEW+SJ5/VbGzotSW2iBhR 9dLFlU4/uEw3a0fu/m+MzlF+sY2mY2u7MziiyVAU1RBK38GlUg7N8ss8tDbKu/yjCE7A Rwhg== X-Gm-Message-State: AOAM5314WIRSHXmjVkWNcg5786jW9G5eZy3fNJCYAMrtpXqo6rxO8kFB 8o97ua6MZi9FVKFJzJSbZPvXfDamkhFfg5XRRy5bLw== X-Google-Smtp-Source: ABdhPJyKa1XrA5fEcLIQxi5zVToUc7DAnGmVdDbifFXprZ31J2y/IIuqKKBpPtHOyf73YlqmDNPJNcwL3ZVFGkGcgTc= X-Received: by 2002:a7b:cb98:: with SMTP id m24mr15803591wmi.10.1596850756205; Fri, 07 Aug 2020 18:39:16 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a5d:614c:0:0:0:0:0 with HTTP; Fri, 7 Aug 2020 18:39:15 -0700 (PDT) In-Reply-To: References: <202008072306.077N6fjP084661@repo.freebsd.org> From: Mateusz Guzik Date: Sat, 8 Aug 2020 03:39:15 +0200 Message-ID: Subject: Re: svn commit: r364044 - in head: share/man/man9 sys/compat/linuxkpi/common/src sys/kern sys/security/audit sys/sys To: Alan Somers Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4BNlJQ41hWz494Q X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2020 01:39:19 -0000 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 wrote: > On Fri, Aug 7, 2020 at 5:06 PM Mateusz Guzik 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