From owner-freebsd-current@FreeBSD.ORG Thu Aug 19 14:12:12 2010 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6EB01065673; Thu, 19 Aug 2010 14:12:12 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 838108FC08; Thu, 19 Aug 2010 14:12:12 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:18ec:2038:19e5:d1cb] (unknown [IPv6:2001:7b8:3a7:0:18ec:2038:19e5:d1cb]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id A8A0F5C59; Thu, 19 Aug 2010 16:12:10 +0200 (CEST) Message-ID: <4C6D3BBB.7030104@andric.com> Date: Thu, 19 Aug 2010 16:12:11 +0200 From: Dimitry Andric User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.9pre) Gecko/20100814 Lanikai/3.1.3pre MIME-Version: 1.0 To: alc@freebsd.org References: <4C6505A4.9060203@FreeBSD.org> <20100813085235.GA16268@freebsd.org> <4C66C010.3040308@FreeBSD.org> <4C673F02.8000805@FreeBSD.org> <20100815013438.GA8958@troutmask.apl.washington.edu> <4C67492C.5020206@FreeBSD.org> <8639ufd78w.fsf@ds4.des.no> <4C6844D8.5070602@andric.com> <86sk2faqdl.fsf@ds4.des.no> <4C6AAA88.5080606@andric.com> <4C6AF13A.1080606@andric.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: current@freebsd.org Subject: Re: Official request: Please make GNU grep the default X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Aug 2010 14:12:13 -0000 On 2010-08-17 23:24, Alan Cox wrote: >> So normal mmap is ~3% slower, and prefault mmap does not seem to make >> any measurable difference. I guess the added complexity is not really >> worth it, for now. > > Do you know what fraction of this time is being spent in the kernel? I ran 100 trials again, but now using "time -a -o logfile", so I could run ministat over the accumulated results. This gives: x gnugrep + bsdgrep-r210927 (the initial version that started this thread) * bsdgrep-r211490 (current version) % bsdgrep-r211490-mmap-plain # bsdgrep-r211490-mmap-prefault Real time: N Min Max Median Avg Stddev x 100 1.15 1.98 1.18 1.2122 0.11159613 + 100 8.57 14.26 8.79 9.1823 1.0496126 * 100 2.81 6.57 2.91 3.0189 0.4304259 % 100 2.34 4.03 2.99 3.0022 0.12635992 # 100 2.85 3.49 2.88 2.8981 0.075232904 User time: N Min Max Median Avg Stddev x 100 0 0.07 0.03 0.0239 0.015627934 + 100 1.6 3.33 1.9 1.976 0.30264824 * 100 0.29 1 0.39 0.4004 0.08696824 % 100 1.8 3.56 2.73 2.7274 0.13260117 # 100 2.78 3.04 2.81 2.8238 0.04039652 System time: N Min Max Median Avg Stddev x 100 1.08 1.91 1.15 1.1809 0.10953617 + 100 6.55 10.9 6.94 7.1905 0.77911809 * 100 2.38 5.5 2.53 2.6061 0.35068445 % 100 0.18 0.53 0.25 0.2645 0.053586049 # 100 0.03 0.54 0.06 0.0668 0.052259647 E.g. it looks like bsdgrep with 'plain' mmap performs almost the same as the regular bsdgrep (both around 3.0s average), but with mmap much more of the time is spent in user mode. And it seems prefaulting does help now! I guess it also makes sense to add madvise(..., MADV_SEQUENTIAL)? > Does > the value of "sysctl vm.pmap.pde.mappings" increase as a result of your > test? If not, there is still room for improvement in the results with > mmap(). It always stays at 0, I have never seen any other value.