From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751922AbdFODQB convert rfc822-to-8bit (ORCPT ); Wed, 14 Jun 2017 23:16:01 -0400 Received: from hqemgate15.nvidia.com ([216.228.121.64]:5118 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750768AbdFODQA (ORCPT ); Wed, 14 Jun 2017 23:16:00 -0400 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Wed, 14 Jun 2017 20:15:59 -0700 Subject: Re: [HMM-CDM 5/5] mm/hmm: simplify kconfig and enable HMM and DEVICE_PUBLIC for ppc64 To: Jerome Glisse CC: , , David Nellans , Balbir Singh , Aneesh Kumar , "Paul E . McKenney" , Benjamin Herrenschmidt References: <20170614201144.9306-1-jglisse@redhat.com> <20170614201144.9306-6-jglisse@redhat.com> <9aeed880-c200-a070-a7a4-212ee38c15ed@nvidia.com> <20170615020925.GC4666@redhat.com> X-Nvconfidentiality: public From: John Hubbard Message-ID: <71020519-41da-242f-9ce4-ce1bd7cda879@nvidia.com> Date: Wed, 14 Jun 2017 20:15:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20170615020925.GC4666@redhat.com> X-Originating-IP: [10.2.170.42] X-ClientProxiedBy: HQMAIL103.nvidia.com (172.20.187.11) To HQMAIL107.nvidia.com (172.20.187.13) Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/14/2017 07:09 PM, Jerome Glisse wrote: > On Wed, Jun 14, 2017 at 04:10:32PM -0700, John Hubbard wrote: >> On 06/14/2017 01:11 PM, Jérôme Glisse wrote: [...] >> Hi Jerome, >> >> There are still some problems with using this configuration. First and >> foremost, it is still possible (and likely, given the complete dissimilarity >> in naming, and difference in location on the screen) to choose HMM_MIRROR, >> and *not* to choose either DEVICE_PRIVATE or DEVICE_PUBLIC. And then we end >> up with a swath of important page fault handling code being ifdef'd out, and >> one ends up having to investigate why. >> >> As for solutions, at least for the x86 (DEVICE_PRIVATE)case, we could do this: >> >> diff --git a/mm/Kconfig b/mm/Kconfig >> index 7de939a29466..f64182d7b956 100644 >> --- a/mm/Kconfig >> +++ b/mm/Kconfig >> @@ -279,6 +279,7 @@ config HMM_MIRROR >> bool "HMM mirror CPU page table into a device page table" >> depends on ARCH_HAS_HMM && X86_64 >> select MMU_NOTIFIER >> + select DEVICE_PRIVATE >> select HMM >> help >> Select HMM_MIRROR if you want to mirror range of the CPU page table of a >> >> ...and that is better than the other direction (having HMM_MIRROR depend on >> DEVICE_PRIVATE), because in the latter case, HMM_MIRROR will disappear (and >> it's several lines above) until you select DEVICE_PRIVATE. That is hard to >> work with for the user. >> >> The user will tend to select HMM_MIRROR, but it is *not* obvious that he/she >> should also select DEVICE_PRIVATE. So Kconfig should do it for them. >> >> In fact, I'm not even sure if the DEVICE_PRIVATE and DEVICE_PUBLIC actually >> need Kconfig protection, but if they don't, then life would be easier for >> whoever is configuring their kernel. >> > > We do need Kconfig for DEVICE_PRIVATE and DEVICE_PUBLIC. I can remove HMM_MIRROR > and have HMM mirror code ifdef on DEVICE_PRIVATE. > > Cheers, > Jérôme That's probably fine. (I see that you may have missed the rest of my response, but looks like Balbir covered it.) thanks, john h