From owner-svn-src-all@freebsd.org Sun Jan 14 16:06:29 2018 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 60689E77DA8; Sun, 14 Jan 2018 16:06:29 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2FDEA81A61; Sun, 14 Jan 2018 16:06:28 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from comporellon.tachypleus.net (cpe-75-82-218-62.socal.res.rr.com [75.82.218.62]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id w0EG6Ko1016236 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sun, 14 Jan 2018 08:06:20 -0800 Subject: Re: svn commit: r327950 - in head/sys/powerpc: aim include powerpc ps3 To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201801132314.w0DNEra5002692@repo.freebsd.org> <20180113232441.GV1684@kib.kiev.ua> <010d0153-8931-a3c2-db21-dfcbaf848fc0@freebsd.org> <20180114083036.GX1684@kib.kiev.ua> From: Nathan Whitehorn Message-ID: Date: Sun, 14 Jan 2018 08:06:19 -0800 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20180114083036.GX1684@kib.kiev.ua> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Sonic-CAuth: UmFuZG9tSVbhQ86OtD+JcD2TOSEK+9UrN/xCcs0DMgLQa/hbQVm1KZDcs0Dt8nvFaPlyzKpI63yceDG/6GFZkClvIDoCNiCwVjVwCHO2tNU= X-Sonic-ID: C;3kTj20T55xGLP9zi2dYaJA== M;/EVp3ET55xGLP9zi2dYaJA== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 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: Sun, 14 Jan 2018 16:06:29 -0000 On 01/14/18 00:30, Konstantin Belousov wrote: > On Sat, Jan 13, 2018 at 08:31:40PM -0800, Nathan Whitehorn wrote: >> >> On 01/13/18 15:28, Nathan Whitehorn wrote: >>> >>> On 01/13/18 15:24, Konstantin Belousov wrote: >>>> On Sat, Jan 13, 2018 at 11:14:53PM +0000, Nathan Whitehorn wrote: >>>>> +/* >>>>> + * We (usually) have a direct map of all physical memory. All >>>>> + * uses of this macro must be gated by a check on hw_direct_map! >>>>> + * The location of the direct map may not be 1:1 in future, so use >>>>> + * of the macro is recommended; it may also grow an assert that >>>>> hw_direct_map >>>>> + * is set. >>>>> + */ >>>>> +#define PHYS_TO_DMAP(x) x >>>>> +#define DMAP_TO_PHYS(x) x >>>> Take a look at the sys/vm/vm_page.c:vm_page_free_prep() function. >>>> >>> I think the checks in there should work as designed, unless I'm >>> missing something. Am I? >>> -Nathan >>> >> Actually, wait, this is broken if hw_direct_map is not set. I can do an >> #ifdef __powerpc__ hack, but do you have opinions for a better MI flag >> for "yes, the macro is defined but, no, the direct map may not be >> available"? > Exactly. You explicitly noted the need to check for the hw_direct_map > in the comment, so I did not see a need to explain further. > > We intended that PHYS_TO_DMAP/DMAP_TO_PHYS become MI KPI. If the symbols > are present, their semantic is the unconditional presence and usability of > the direct map. > > sf bufs were rototiled with things like SFBUF_OPTIONAL_DIRECT_MAP, but I > dislike it and hope that PHYS_TO_DMAP would be not damaged this way. > That's unfortunate. Is there any reason you need this to be certain at compile time? That seems to be quite restrictive and not to add a huge amount of performance. Given the exciting variety of MMU modes on PowerPC, there is not any way to guarantee the presence of a direct map at compile time, so the alternative is to invent a whole new kernel signalling mechanism for "direct map is almost certainly available, but might not be", which seems strictly worse, or to have a standard API that PowerPC can't use, which also seems worse. -Nathan