From owner-svn-src-all@freebsd.org Fri Feb 15 23:10:14 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D942A14ED196; Fri, 15 Feb 2019 23:10:13 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [198.45.61.253]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47E178AA3A; Fri, 15 Feb 2019 23:10:13 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id x1FNAAxm053331 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 15 Feb 2019 15:10:11 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id x1FNAAiH053330; Fri, 15 Feb 2019 15:10:10 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Fri, 15 Feb 2019 15:10:10 -0800 From: Gleb Smirnoff To: Enji Cooper Cc: Justin Hibbits , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r343030 - in head/sys: cam conf dev/md dev/nvme fs/fuse fs/nfsclient fs/smbfs kern sys ufs/ffs vm Message-ID: <20190215231010.GN83215@FreeBSD.org> References: <201901150102.x0F12Hlt025856@repo.freebsd.org> <20190213192450.32343d6a@ralga.knownspace> <20190214233410.GJ83215@FreeBSD.org> <416504EF-13F3-4CEF-89EC-60FBBFF5D29E@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <416504EF-13F3-4CEF-89EC-60FBBFF5D29E@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Queue-Id: 47E178AA3A X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_SHORT(-0.99)[-0.995,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Feb 2019 23:10:14 -0000 Enji, On Thu, Feb 14, 2019 at 05:12:21PM -0800, Enji Cooper wrote: E> > On Wed, Feb 13, 2019 at 07:24:50PM -0600, Justin Hibbits wrote: E> > J> This seems to break 32-bit platforms, or at least 32-bit book-e E> > J> powerpc, which has a limited KVA space (~500MB). It preallocates I've E> > J> seen over 2500 pbufs, at 128kB each, eating up over 300MB KVA, E> > J> leaving very little left for the rest of runtime. E> > J> E> > J> I spent a couple hours earlier today debugging with Mark Johnston, and E> > J> his consensus is that the vnode_pbuf_zone is too big on 32-bit E> > J> platforms. Unfortunately I know very little about this area, so can't E> > J> provide much extra insight, but can readily reproduce the issues I see E> > J> triggered by this change, so am willing to help where I can. E> > E> > Ok, let's roll back to old default on 32-bit platforms and somewhat E> > reduce the default on 64-bits. E> > E> > Can you please confirm that the patch attached works for you? E> E> Quick question: why was the value reduced by a factor of 4 on 64-bit platforms? Fair question. Replying to you and Bruce. This pool of pbufs is used for sendfile(2) and default value of nswbuf / 2 wasn't enough for modern several Gbit/s speeds. At Netflix we run with nswbuf * 8, since we run up to 100 Gbit/s of sendfile traffic. Together with new pbuf allocator I bumped the value up to what we use. Apparently that was overkill for 32-bit machines, so for them I fully switched it back to old value. Nobody is expected to use these machine as high performance web servers. Also, I decided to reduce the default for 64-bit machines as well. Not everybody runs 100 Gbit/s, but I'd like to see default FreeBSD (no tunables in loader.conf) to be able to run 10 Gbit/s and more. So I've chosen a middle ground between old value of nswbuf / 2 and the value we use at Netflix. P.S. Ideally, this needs to be autotuned. The problem is that now we need to pre-allocate pbufs. -- Gleb Smirnoff