From owner-svn-src-head@freebsd.org Wed Aug 5 17:40:54 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 684D237CA26; Wed, 5 Aug 2020 17:40:54 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) (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 4BMJnL0Zfhz3dlg; Wed, 5 Aug 2020 17:40:53 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x42a.google.com with SMTP id f7so41531544wrw.1; Wed, 05 Aug 2020 10:40:53 -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=kIINTRLDQqiOEl9fQ3iaI+w7X6TVH0yX2mjkGOp1+sw=; b=E1BdsVLfT2naVLGMjT5AI4VQku9bGVrVLnEUtCCbKFOSfZvpA5c8tYbFldVnJ2DYc3 T+v+xw8gfW3q25jCZLirKn/nXBxKbyE267/XUvXme7IVr/56zRaHfiddv158N3Xg4lzL FcZ2+/M169JJU/ZIgU70BLUnLfBvs+DVSrt0WKke/ElWgJiCCxj8knggZoO50Nn5g93y j27qdVREzV7T4Nd11xeNRRcr1sTeNAKHPseUS/QTyAl0UUN7cqme4lKIZWT7OFi0uVEx ZtsGQ0zht3jAwwLDUL8v/ZqLBByoJKTaRMtVLVsN9b8hlhTxlAjU1/NpQUqotPBjvF5S GW7Q== 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=kIINTRLDQqiOEl9fQ3iaI+w7X6TVH0yX2mjkGOp1+sw=; b=ounm/E2H4td9/2IGjko8ECCscOKKakn8CIlVB9xiCr5LeUkgjSqT/Y4Q+PNM7e2ChA nBgGLZZQYnVqJub+qz2x5YfhFFPGqsej4pJj6+0xD78/yJsDjK9RRwSVGhuEFR7F+1aD zOQ2Y5TqHlRMvWrCXo9Jv/2lBnNRRmUyqJh8Qnb0ajBE/TjjGdCnclSJJeUoVaXNXdYP Oo31b7OepIaCdpyF6vFpNAOeTAYZEQFecjpFEPiiltByooMHFbsE8U2ykUyajj82ifQR Mp5x09RO7GfQ5nvgHMkrp6UiJO3y7m2XrG8VRtVDUeMWkrvAJwDYmWaeYZ26MCdSsjKN zQfg== X-Gm-Message-State: AOAM530I40Mm/k0APf5aOhf2m5TN0gOkNXdI1mF5tJpWKe2Ic5UjMAch yPX+pLrDnkoBfnI1ytmE6i3PUKkv/wWYz/v7PGV+7Q== X-Google-Smtp-Source: ABdhPJzIfdvV30MvprILG/1evftOKB09JoX6UdH+8H5hSPikHVh99QQujwD42sf96ZRVrROTQFSrQgaGjLcTr4Pvbek= X-Received: by 2002:a5d:61c8:: with SMTP id q8mr3619850wrv.160.1596649251963; Wed, 05 Aug 2020 10:40:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a5d:614c:0:0:0:0:0 with HTTP; Wed, 5 Aug 2020 10:40:50 -0700 (PDT) In-Reply-To: References: <202008050924.0759Oc3H010909@repo.freebsd.org> From: Mateusz Guzik Date: Wed, 5 Aug 2020 19:40:50 +0200 Message-ID: Subject: Re: svn commit: r363891 - head/sys/kern To: Don Lewis Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4BMJnL0Zfhz3dlg X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; REPLY(-4.00)[] 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: Wed, 05 Aug 2020 17:40:54 -0000 That's fine, then the arch does not have avoidably increased alignment. On 8/5/20, Don Lewis wrote: > On 5 Aug, Mateusz Guzik wrote: >> Author: mjg >> Date: Wed Aug 5 09:24:38 2020 >> New Revision: 363891 >> URL: https://svnweb.freebsd.org/changeset/base/363891 >> >> Log: >> cache: reduce zone alignment to 8 bytes >> >> It used to be sizeof of the given struct to accomodate for 32 bit mips >> doing 64 bit loads, but the same can be achieved with requireing just >> 64 bit alignment. >> >> While here reorder struct namecache so that most commonly used fields >> are closer. >> >> Modified: >> head/sys/kern/vfs_cache.c >> >> Modified: head/sys/kern/vfs_cache.c >> ============================================================================== >> --- head/sys/kern/vfs_cache.c Wed Aug 5 09:24:00 2020 (r363890) >> +++ head/sys/kern/vfs_cache.c Wed Aug 5 09:24:38 2020 (r363891) >> @@ -122,9 +122,9 @@ _Static_assert(sizeof(struct negstate) <= >> sizeof(struc >> "the state must fit in a union with a pointer without growing it"); >> >> struct namecache { >> - CK_LIST_ENTRY(namecache) nc_hash;/* hash chain */ >> LIST_ENTRY(namecache) nc_src; /* source vnode list */ >> TAILQ_ENTRY(namecache) nc_dst; /* destination vnode list */ >> + CK_LIST_ENTRY(namecache) nc_hash;/* hash chain */ >> struct vnode *nc_dvp; /* vnode of parent of name */ >> union { >> struct vnode *nu_vp; /* vnode the name refers to */ >> @@ -142,6 +142,8 @@ struct namecache { >> * to be stored. The nc_dotdottime field is used when a cache entry is >> mapping >> * both a non-dotdot directory name plus dotdot for the directory's >> * parent. >> + * >> + * See below for alignment requirement. >> */ >> struct namecache_ts { >> struct timespec nc_time; /* timespec provided by fs */ >> @@ -150,6 +152,14 @@ struct namecache_ts { >> struct namecache nc_nc; >> }; >> >> +/* >> + * At least mips n32 performs 64-bit accesses to timespec as found >> + * in namecache_ts and requires them to be aligned. Since others >> + * may be in the same spot suffer a little bit and enforce the >> + * alignment for everyone. Note this is a nop for 64-bit platforms. >> + */ >> +#define CACHE_ZONE_ALIGNMENT UMA_ALIGNOF(time_t) > > time_t is only 32 bits on i386 > > -- Mateusz Guzik