From owner-svn-src-all@freebsd.org Mon Aug 29 17:59:06 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ECC77BC7A6B; Mon, 29 Aug 2016 17:59:06 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id B6C8AA1C; Mon, 29 Aug 2016 17:59:05 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id B1648781C2E; Tue, 30 Aug 2016 03:58:54 +1000 (AEST) Date: Tue, 30 Aug 2016 03:58:54 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Slawa Olhovchenkov cc: Bruce Evans , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r305004 - in head/sys: amd64/amd64 amd64/include i386/i386 In-Reply-To: <20160829173726.GX22212@zxy.spb.ru> Message-ID: <20160830034632.A3851@besplex.bde.org> References: <201608291307.u7TD7L6H025649@repo.freebsd.org> <20160829173726.GX22212@zxy.spb.ru> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=VIkg5I7X c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=b-jchPaYlLJwnxUff-0A:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 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: Mon, 29 Aug 2016 17:59:07 -0000 On Mon, 29 Aug 2016, Slawa Olhovchenkov wrote: > On Mon, Aug 29, 2016 at 01:07:21PM +0000, Bruce Evans wrote: >> ... >> Log: >> On amd64, declare sse2_pagezero() and start using it again, but only >> for zeroing pages in idle where nontemporal writes are clearly best. >> This is almost a no-op since zeroing in idle works does nothing good >> and is off by default. Fix END() statement forgotten in previous >> commit. >> ... > > Do you think about using nontemporal writes for copying from user > space to kernel space? In much cases this copy result don't need any parsing > anf just go to DMA, eliminate cache use. I once tried that (for copyin/out, without DMA). It was just a small pessimization. For small data, it increases setup overheads, and large data isn't common enough to matter. DMA can be even slower since it increases latency. First there is latency to set it up, and then you often don't want it to touch the cache since that gives more latency for cache misses. Bruce