Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751447AbbFXIEw (ORCPT ); Wed, 24 Jun 2015 04:04:52 -0400 Received: from mail-am1on0068.outbound.protection.outlook.com ([157.56.112.68]:20092 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750970AbbFXIEh (ORCPT ); Wed, 24 Jun 2015 04:04:37 -0400 Authentication-Results: spf=none (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; nvidia.com; dkim=none (message not signed) header.d=none; Message-ID: <558A610F.7090501@mellanox.com> Date: Wed, 24 Jun 2015 10:49:35 +0300 From: Haggai Eran User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: , CC: , , Linus Torvalds , , Mel Gorman , "H. Peter Anvin" , Peter Zijlstra , Andrea Arcangeli , "Johannes Weiner" , Larry Woodman , "Rik van Riel" , Dave Airlie , Brendan Conoboy , Joe Donohue , Duncan Poole , Sherry Cheung , Subhash Gutti , John Hubbard , Mark Hairgrove , Lucien Dunning , "Cameron Buschardt" , Arvind Gopalakrishnan , Shachar Raindel , Liran Liss , Roland Dreier , Ben Sander , Greg Stoner , John Bridgman , Michael Mantor , "Paul Blinzer" , Laurent Morichetti , Alexander Deucher , Oded Gabbay , Jerome Glisse , "Jatin Kumar" Subject: Re: [PATCH 16/36] HMM: add special swap filetype for memory migrated to HMM device memory. References: <1432236705-4209-1-git-send-email-j.glisse@gmail.com> <1432236705-4209-17-git-send-email-j.glisse@gmail.com> In-Reply-To: <1432236705-4209-17-git-send-email-j.glisse@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.0.52.254] X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD048;1:DKkXmVvMpFEHoyvyG+An5AQPkMV9hPIDzoRECIuZfIerpgz+nhsuBpw1oT9JU0SrBvadqkhiYTemLdayDgMCnGNSuzSm51MBOHhpTJOUHQTJBti9cDuL3h2RlOugERZjrYWAEmMJJtmCZngfZNk5dGTVp4cwx+W5UHri+VZchOHPmDTWo3v4opnGKfGZ0OQkt+5Jz209EkWTEGR3ZbXRuw1Ng2vZ9HR9c3ofgOXC+G5pMUAAVv2URfWlGbOxgPw6WfHkbOpLI10fjjUVgPzpnKyXw8t6LT+osG7k2W5QM0637oqltaUd4vWVY8fC2hD3HweocvljsjhgVXcwitLj6Q== X-Forefront-Antispam-Report: CIP:193.47.165.134;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(479174004)(199003)(51704005)(24454002)(189002)(50466002)(6806004)(80316001)(105586002)(19580395003)(106466001)(19580405001)(87266999)(54356999)(65816999)(76176999)(86362001)(33656002)(87936001)(23676002)(59896002)(64126003)(101416001)(77096005)(46102003)(2950100001)(189998001)(92566002)(47776003)(62966003)(77156002)(65806001)(36756003)(50986999)(5001770100001)(7059030)(3940600001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR05MB541;H:mtlcas13.mtl.com;FPR:;SPF:None;MLV:sfv;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB4PR05MB541;2:rCCtJCpVrwHR0GBR+46130yGOWaNDT8E25yC6+ctbsteaygPtn4aw+fTbz7y9hxH;3:9YBsac3RfclSFBbO1CsVM46NqnvJNVACuwlkOufX4oG/SKVlqJlG7NKnuml8H1Jv4dV4olXXg8kqM3TZ+Vc+95HYim1oJgBGizoThRpiIob5r1BTY/Nim2V1QokuLwjRGEF/JwS6M1H0kTwFQ/WynN6ifT5RmiWvTDHiy/QhOBJK+6WA9eBy5bo24m70Tnayd3TbjybL0IPYR7Zhs11KFNojjK3aGWRT2Ly3Diqo1GmlFri+xgGIFEr8T6dwvzRa;20:ZaE2Q2HQFj3Xevk1GX2oRZAz9ln3QQhrkOZcgdEgcmxhopHRJQ2wXwjksgm6XKbVmeTN8+ijLadNq594ifNVaxvZSv872aH1AFj/84Ojrkx/dzjNUVfGTcmnv8RJLypr8wAtSkPBUwBqTh7oE3G1icGmzRXmaqxsGh9hlzflkY4Znln+veDMnudo7aO2NPDAX8CHDW66ClStzeGFFtQ2Ddf8OAevL0AP1icx8hWrlQGwrYHG6a9UNUhVr5lEH8d+xYpKK3LkX7WdS0PtCWOGTNj5P280QNSRIpe8DUgci4lP2VzQkzD1L5kv+Iexn/boSkOoByyrKBBF7rSe7b/2gkSCT808X+XrY/hpHeOWTFh0BheCyqn6SU6KPXWsKoYohDgDCz5Nlj1ix+X7q8WGt+wuj0XAPpYuYuW1xIhUnlYUgKR816A+HKrJP5GtcteI7xuPZ/Uqsj7aU/QqlLPfsKvykW/4dlklxqqGSJ8SyXP/VjSspKsYoKJCBmssNy2B X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB4PR05MB541; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:DB4PR05MB541;BCL:0;PCL:0;RULEID:;SRVR:DB4PR05MB541; X-Microsoft-Exchange-Diagnostics: 1;DB4PR05MB541;4:HTdJMQljdLrWs47HOS8AQPgtzoTbSo9b9AlERWPYWmciBkNNhbAbB/2OBtq5SSRO1uiyKR+JUf7fJFXQaINh82p5qj3MGjnB405fip1w83vmI8LiF41I0OnWLyneZkrrlhJ+YVUEofj3/S2t4FPi4xt7DK24a3VMcVxu7j8Q9QRepSv3vd1QprhJeXuymDRxrUiwLD4S9xuDHGNkMdKcsBcPoSwtsZ27ecj0dwSCi5LBw0cpz6vtH/B7RpVO0a0slRiVGaxcRnWzHSknB+Y/QVmA1Sihv0DAnSvADBg6WqE= X-Forefront-PRVS: 061725F016 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA1TUI1NDE7MjM6KzRuVnhVZnVZTFo2b282eTBUTm11OFVaVlNN?= =?utf-8?B?TVJnRHJnc3NNcEt4ZGtDV0c1UUZUTHN2M3R3M3Rpa0lSaDc2Zy9KSnBJVS91?= =?utf-8?B?aUhiVWVnUVpzY0dIUnZCbWI0Q0ZqQ2NTK2U4QnA4c0NDeVM2LzlxcmYvN3FG?= =?utf-8?B?c0hlcUFzclMvbFRIUXgwRTMxdG92RFZDTURKYUhBS1FYSWR3OFpKTGs3dDB3?= =?utf-8?B?WlVRcWkySUpRL3FFbnlvWEpJdUlCTWVsZzR1NFJtMlRVRWg5ZGc0TFNuMkpq?= =?utf-8?B?b3hxSDZ4YlQ0czRnRGVhc2tHV3F2emhGQmV1UnFVdjlJMVg4ei9VSG9sSEpO?= =?utf-8?B?aXAvcXpwbXhXZHBnTWFNZmlScWE1dnZBdlBwM1dVbG1kRlltWUVLOURoelN2?= =?utf-8?B?cjJLUlZPcFY2VW5HL2FzNDVUSlB6Y0MrN3RZMENJdmU5VmVtbzZwRTlReEI3?= =?utf-8?B?dlVYcGhvZFlONXZlYW92d05mVlU1OEx0MXNRb2ZPOXB4K241SG1PWUI0Z2U2?= =?utf-8?B?VjdmZzBkQTF4RGVFK2EwNk1WZThKS0hRbzJNeW1XUjg4U25lbmlBTzBVaUpI?= =?utf-8?B?M1FKOGwxZzBVaWxLckgvcXZWNnJsWWUvaEo2R1V2OCsxUDVQaEZyRkpSVXVI?= =?utf-8?B?V3JMeVpqOXJmZDYvNlN2M1Bvb0hQak42NWsrUTNVMGJGSERxS0F2emgzUVdm?= =?utf-8?B?ZS80THVCa0ltT1ducFZxdVVCU3NNTlhUNFowYW9Ld3k1SFp0V25teWhjTFBK?= =?utf-8?B?SWFIUE5xMFp5WU9HL3ViaHpBODJKYzh1U1g5Qlg0Z2MybytkQnZ6RklwODRO?= =?utf-8?B?SGdGeEk1UlZoK3VlVWdEZmdwUkVZMGIvd0tLck8rMFBmVG9oNHg4UzZzTmtG?= =?utf-8?B?R2R3SU54aGFoWjU5R05QbUpCVlNHQXdRNzc5QklQQklNUWFKTXovVnpLNy9V?= =?utf-8?B?YjBsbXpQRnZlWTFoRHlNd082OGtRQmRpN2hGRjVZVXM4eHV4aG1Da0NSZTJR?= =?utf-8?B?RW4wV2FtSEl6cXYvc1dKUUltZjdhWXB4Mlh3UjF4U2luYU5vT0N4cHlxWmor?= =?utf-8?B?MzI4bnpjTDBqTWljdFpTSllSanVOeG52Wm96cE43eGV5SFdYSGg2cHNlZEcz?= =?utf-8?B?alNuUmNReHlOQk52bnhoUnh6QXlpZjlvVll6bTVOSUxsbzZRT3FSWVBnemtp?= =?utf-8?B?VXJYLyt6bHcwZTRFcWhpUGlpSHpLb0lCdSsxZzNmS0F5bHBydWhQTk9QVTIw?= =?utf-8?B?REs2aFkzcURteXRzK3lTc25ZRU5PaWhqZnlnWEtRaWwraldyWWJtZjFOQmNF?= =?utf-8?B?Zkg5WTgxOGEvMXJQS1BLd1VMNERDdVRFdU1VK0M1amp2NjFyeStGeWNySmlR?= =?utf-8?B?dHFUck01WGRpMnB4MllaeGNxSzlRYVhqOVg3b0E9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB4PR05MB541;5:fuHekbiwiHnxO0jpGJqxzZ3lqQ3ZlINI+IYabcHCPobxgYPTpYIIML6GGWMVt8O1LBGu0PixbYA9lDJJZNNCM+ZHWLtixBUfC8lXejSRhg8xnGmCxwESps/E/R8AzQ+OyWW+G7d4GfG5IveMpl+irA==;24:K/jDdHCo4mZ1bqOoK2/uAhR24krpydM5vFPaG1SHBP2HepQqKMw9z5wsAdc5eIh4NZWrp+BIxs2/T5Ex4hIXtLWGGhV7Bj2ygdQ5DevzNrs=;20:zDQ1LZaaR3Y8wfyl9DwkeT4aOH1oIsB+cd5pNSNymdRtTu+MRhfPZx7qv+Fw9opHc0H/g7UPCx3QKuuay9S9LA== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2015 07:49:28.7551 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR05MB541 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2712 Lines: 80 On 21/05/2015 22:31, j.glisse@gmail.com wrote: > From: Jerome Glisse > > When migrating anonymous memory from system memory to device memory > CPU pte are replaced with special HMM swap entry so that page fault, > get user page (gup), fork, ... are properly redirected to HMM helpers. > > This patch only add the new swap type entry and hooks HMM helpers > functions inside the page fault and fork code path. > > Signed-off-by: Jérôme Glisse > Signed-off-by: Sherry Cheung > Signed-off-by: Subhash Gutti > Signed-off-by: Mark Hairgrove > Signed-off-by: John Hubbard > Signed-off-by: Jatin Kumar > --- > include/linux/hmm.h | 34 ++++++++++++++++++++++++++++++++++ > include/linux/swap.h | 12 +++++++++++- > include/linux/swapops.h | 43 ++++++++++++++++++++++++++++++++++++++++++- > mm/hmm.c | 21 +++++++++++++++++++++ > mm/memory.c | 22 ++++++++++++++++++++++ > 5 files changed, 130 insertions(+), 2 deletions(-) > > diff --git a/include/linux/hmm.h b/include/linux/hmm.h > index 186f497..f243eb5 100644 > --- a/include/linux/hmm.h > +++ b/include/linux/hmm.h > @@ -257,6 +257,40 @@ void hmm_mirror_range_dirty(struct hmm_mirror *mirror, > unsigned long start, > unsigned long end); > > +int hmm_handle_cpu_fault(struct mm_struct *mm, > + struct vm_area_struct *vma, > + pmd_t *pmdp, unsigned long addr, > + unsigned flags, pte_t orig_pte); > + > +int hmm_mm_fork(struct mm_struct *src_mm, > + struct mm_struct *dst_mm, > + struct vm_area_struct *dst_vma, > + pmd_t *dst_pmd, > + unsigned long start, > + unsigned long end); > + > +#else /* CONFIG_HMM */ > + > +static inline int hmm_handle_mm_fault(struct mm_struct *mm, I think this should be hmm_handle_cpu_fault, to match the function declared above in the CONFIG_HMM case. > + struct vm_area_struct *vma, > + pmd_t *pmdp, unsigned long addr, > + unsigned flags, pte_t orig_pte) > +{ > + return VM_FAULT_SIGBUS; > +} > + > +static inline int hmm_mm_fork(struct mm_struct *src_mm, > + struct mm_struct *dst_mm, > + struct vm_area_struct *dst_vma, > + pmd_t *dst_pmd, > + unsigned long start, > + unsigned long end) > +{ > + BUG(); > + return -ENOMEM; > +} > > #endif /* CONFIG_HMM */ > + > + > #endif Regards, Haggai -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/