From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753550AbcGHAtk (ORCPT ); Thu, 7 Jul 2016 20:49:40 -0400 Received: from mail-db5eur01on0138.outbound.protection.outlook.com ([104.47.2.138]:38887 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753044AbcGHAtj (ORCPT ); Thu, 7 Jul 2016 20:49:39 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; Subject: Re: [PATCHv2 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_* To: Andy Lutomirski , Michal Hocko , Vladimir Davydov References: <20160629105736.15017-1-dsafonov@virtuozzo.com> <20160629105736.15017-4-dsafonov@virtuozzo.com> CC: "linux-kernel@vger.kernel.org" , "Dmitry Safonov" <0x7f454c46@gmail.com>, "linux-mm@kvack.org" , Ingo Molnar , Cyrill Gorcunov , , Oleg Nesterov , Andy Lutomirski , Thomas Gleixner , "H. Peter Anvin" , X86 ML From: Dmitry Safonov Message-ID: Date: Thu, 7 Jul 2016 14:11:58 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: HE1PR03CA0007.eurprd03.prod.outlook.com (10.163.170.145) To AM5PR0801MB1731.eurprd08.prod.outlook.com (10.169.247.9) X-MS-Office365-Filtering-Correlation-Id: ca7bedd7-ae17-418e-4a0e-08d3a657adba X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1731;2:ctmN6ouOhcZPbIocEtEKuF3PETn1QqVXAlkaOqTrXlw9HZl0wBtXz4Acog41cX7lXjJsff8W03MXwpeUnOWIdROuG7t3h0MiBL054nf75eetI2wKti9sC4/grNE611K7QwF6Z7TCt/KVPhuA63JnevBLa3BVrSLkrU/9wDet9wkcI6sNy6HyQNY6n9CuU2MJ;3:o1+AUqpEr7xNPvziBlGYxF6czQdDfKjHZPxVwbjX7l8xIDmBkOqnCZDUgxcijlQsaPy2PdXg459kJPteoaR7sFh6yf1h1vQfzbrUh8k+wo5N3FfH+Js0t3gnC9B5vkIa X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1731; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1731;25:OWrVPBOQn+XZB0sHlCe8c3iWofDyYh29NiqSEJfgxfzd8DoNeY/ASCBV9ktd5LInEEYVIMpzUMZWym4vIPePk2K8B//WZ6+0b9QyRGwLZqUXXPJxH9NaoHNH0I4cEBR1Euyvl6JPEJp7eB6ymxXRP+bv7zMBxVTCtecgLomuqtKmkgDXt6KIl7UwDxD3MDiUTkda15klL7OFy+icx61tjg4JvO+iSe0oyK3yotopDFczAMorKa9q3l3131Gs8lMhbVdYgMnSwXt6xyK2P+WTM4Wkt1Mz53HmsnaXDPhIGjqT9/XKxXnxjHzYK5hD43rv8uRZqrHVIz114UCh2zwmpdrwmPiNyf/x0ldzpNdkdiZragCCoiLBhMH4FX5GdL3gtD9DZqIesu9JXqta2/J4KZo/tXiljK1o6lpmhPiYkHv2DPdyUUvnaRfkgPjNpaTYIBDUz5QMAXCbTQgRy7vVrsdmtis6BwRSKnEZcCwLn0Ya7S6ygOoVGfG8Ebv0m2j4uE1NH+thq2NczLXjldL8FmLM2bEh2JBSF+9k65IbITSe5O127cCw24A/YH7SDc4Lo/e4uv8ZYCdOcfbwkLlm58a0bzo2fogYwdVsKvNd1ftVN9FcXHFhwfvC4CTZ8pbAhLXQw3me9hD41McMdRiqDzYd8Y/ucack1stvdGKLCg8+9MzcnVIZOFqvsfgZBoTn;31:RDQpaENM68XGKg0fkZF9/34IMS3ZOuJxZ26AHWUToH+puFLFDgMZIwRaa9djr+Yklh7mF5A/x2VeefbJZPra73p7MrciV3TjLqFl3gksznqsew4NCPhv5DTLtbIJYvBot4J3thVHhDjfaO5Nne/ihgLPbg7CEPkPyD/57NQho9sfbx5X5q0jryCm/r5Kz6SvaiLao3+bSycIQkiofsS0mA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046);SRVR:AM5PR0801MB1731;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1731; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1731;4:9E3PfdC+sw5gLhDrUIfghHu23c7aWj+41UquZNWc0NS7H2kTCMHdC9jknMxqwoaGPiPsPJie5u8hc//MW2nr2qbfKVFkdjAzmKa5BT40NxCWU7YwZdPhoXth5S2uQnfpkEWqHzLzLaecDlC1DN9VRimfOO0wdSbayQhw/KbdKiJWehjUIyb636yOPA+bpoLB6iMqpCe5UwQ8ch0fVe9JU9ghtZY0P2JZld/v0R+u2dLVSa2tgTey/ScJc54lomQKMvp0K7ukPHJV8uO28satTb2n1b43iNhEnI0ntrhOV+BxrH7NgpekxN7YaSdJM2mBYljkZP0QjW1zrBeQp3SQG3qUXFCIS9f8FztB/b9YlbD1pPwBwDk4pB3EOYAwDuzK+6wHeR1r2IzJZit3BAT7RMlVWHSclKQJm7RGNep4uRY= X-Forefront-PRVS: 0996D1900D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(189002)(377454003)(199003)(76104003)(24454002)(54094003)(7736002)(305945005)(42186005)(7846002)(6116002)(19580395003)(3846002)(19580405001)(101416001)(23676002)(230700001)(586003)(64126003)(81166006)(81156014)(31686004)(68736007)(36756003)(54356999)(76176999)(8676002)(50986999)(33646002)(4326007)(106356001)(77096005)(86362001)(2906002)(92566002)(4001450100002)(50466002)(4001350100001)(97736004)(5001770100001)(65956001)(189998001)(65806001)(31696002)(105586002)(47776003)(66066001)(83506001)(2950100001)(65826006);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1731;H:[10.30.26.154];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjE3MzE7MjM6UDlNeEI1UlNlYkxvT2NXNWtaVjgwbVov?= =?utf-8?B?elpkS0JFakszc0F5SUc2R3M4a0U2ZjYvVUVMS0YvcWZSWHhNOUJBVitiaDda?= =?utf-8?B?S0NHUFZvS2FlV3FVQkFoUW5MeVFEdkV6MkRFai8vNmlPblJ6K0VINXkwajdx?= =?utf-8?B?L25rZ1EwWS9udTVpNzNzZG5RN2VTbVFRWml3Q0lOOSswRUhMUW5rRnhrdEtG?= =?utf-8?B?UXdTWlN5UUZGL09sc2pheFhHTE5TMWl2UGRQNmQ2SW41QTlrQ2F1SWljMU1k?= =?utf-8?B?b3lRaWJwbnhpYkJMOVFDc1pZQmZENnZJZjh1d0x3cEtBVnUya055Z2E2WWRr?= =?utf-8?B?bE9tWWNPSTdZeFRETkEwM3dpdmVIdmhzWUZRS0hpb2s3TW9QRG52QThQVVlJ?= =?utf-8?B?SnZhVFpieWRueFBuN1VIc2dWbzk3VVFTd29xUy94TDVtZUxnd280V05iUXVD?= =?utf-8?B?eS9yVE1UZnMxcExPVy9RRlk2ZTkrYmRJaFVwMDFQK0tsamF5a2VMSXMrR2dQ?= =?utf-8?B?bkp2NU9PL3pzZnEwUEtmVnpZcndkaEhDVXg5ckh3U2ZtUHR0ZUhQajlOQ1Nk?= =?utf-8?B?aG5TSXdGOHFNTWNkemRVSTNNRzN2Z1paNkJCcllrYU01ZW1EYlZLNWtqUU5i?= =?utf-8?B?ai9pdHBUd3lac2Q3NXY5cDdSS28xZSs2eXBEeWV6S0pVNy9WbG5uTDY1eGd5?= =?utf-8?B?MnVOQmUvdk1XV2tWVWZuZVBYMG9LR0d4K0JiSlpSZ1p5TEFEb1VOZ3BpYTVQ?= =?utf-8?B?UDVzZjBYNkJndERiQkt5aHc4eGtHNHhac0xLeFpxODVtMkkzcVNGWHROWTdC?= =?utf-8?B?MTJSL2R4Y25obS9GZEh4cTArY3VYbzFCTEMrdkxxTjZmUFFJWkI3alBaYU9X?= =?utf-8?B?dVdCWDdhZXlnVUpwaUhrTnhpWlNlQmRtL0puTW96NVdnWUpQSU80UjB2RjF6?= =?utf-8?B?amU4NXErbmhLYkVJNXM1UWJHaW5yOCt5UzR4TXl1bkpEYU9QMEIwMUtoSkcw?= =?utf-8?B?TTlacTlmbXE2U01sQWJDSU1FSGdvNnp4WDErOWVGc3gvYTdNdWwrYjhtbktp?= =?utf-8?B?angyamxJcGRJTUJjWTJXYmM4REpRYVdPT2VURzQ3UFpMdGE0M3RSTDRlNnh0?= =?utf-8?B?eDMxS3BjVjRlY2ZWTHNqVHE5M1hwVFdDQTBtVXFMaUxvNGJJYTl3N21tSkQ0?= =?utf-8?B?Y25aVmFqTkU5aTNwUjliOHBXUEpHb1dXUWIyRHlCbFlTTUhQOG8yZ3pNMUVM?= =?utf-8?B?Qkw2ZGxBMUVFOWNOYkYzcG9Edm91cDVnN0lzVEJ2NU5rQW9OaisrQktLZ3Zz?= =?utf-8?B?NSswSmltb0U1NnNabFJiZlkxeGoxN1hMRmV3dzhSZGZWRWlHVzczUVI2SFVy?= =?utf-8?B?Smh6c1JsQ0x2RXF4V3hhZ1ArOG9pTkxGeEVqZVlWTnJmOHNYVWNtLzJOem5I?= =?utf-8?B?Z1hXVGFOQXRybHJISkVFakQ4SWFrMkFNOHg2RUQ3NUswZUZGbUZQMlB4czQw?= =?utf-8?B?VmNuMzZncWJFcEFQZ1hqRVdOZDNlaERCU3A3enBBZjBSM1ZhdHgxT0ZoM3Z4?= =?utf-8?B?RGw3U091L0hDVU1hUE5RcEp0UWxRcytpMTlLYW1OeTR5RUZuc09xbjg2NGVv?= =?utf-8?B?WkttU0NPNmJIdmxsZ1RlWkl1RlBEWlRVT21JMEQ1RDhFbmVMU013L2V5eXBa?= =?utf-8?B?R1A4aVFaOFBRQ2ZsbVVMZTFucU9DcE1KakhHUjhIbG9ZVlp5VVBYNi9RRERM?= =?utf-8?B?dExQWXhWZDlHcEtrcFhPZlk0WkpPN1hQcUFKeUVESHd3NXJ4aEhLTnJuQ3c0?= =?utf-8?B?cy95VU9zaXREQm9OVXhUQ2JkbFZySFdmalRBRHBidzkwYWFLZz09?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1731;6:cis+iXXJA22Iu6NksUNNzNyAFd32kzaS/udy4yOb1jb2aLwGMpbNFzWjU3qp9ggAmsR3H85g7STrUeJCIgIzOn+zCZsqf/NzPP54iyGjer+BQyMJSi/JkjI9Amgb7JLIC6AsU5UOy6Vh9TOo2+56t4kktit4mGKUVYC+a/Ua42A9Ty1SmIy7BBQsW8WBdj/WfdWzY5O2XvAuAec+8iDCFlX4mm4S8tKiJ9C9J6KmPOd5w47HHLkr9jVdkj3XscV0/FskDYu9cK/YMgcUr179O6PcDiCmkFnEHjItCJYXfm/amVDN3zeXD/0y51PiOPhx;5:GxlmpxbGlUhxJhDOTp9VtlBP6pnsnJ6i50QeMq75TI5j7LA1scGKKpNgFyOUIFMo3WTv+kj0Fon4auH9JfahsQ/ogpi1VHkzEv2VfthZuy6p5Abgq5YVKOr9/mtCnB2CWoRqCWnOpVCx7p/ra2Aseg==;24:7NUO7V+lRFTtbAXpwwLJeGEwS4G06K7+hGCHQNmcsI8jV0BqGK/IMxM7173WGBv4FYL5nabxZQipfyGN5ZIhljf25yQHgKYIvkjGJ2hXdF4=;7:Fpg3ioTAdPGKamuhje5+YL3suZAo1JKY0+Ww0MXUvEjEyaQwB8JsHNyeTCrNdu8RDK4p+W4tGXcPBUDi4zB4MvdzC9kqCEOVnXZrFPlQ5kPN4a6t8dujbW7jfjAy1gVEA2l203NmeZHcrFY5fQNehPYJ9VCMc2HSsJHU0pp4KeDF1L9vi8NGDqUSQnJAj9VWxcBhYfHs8GVNNZlBLP/SF1RCwsWaSlYHr5Ako00YBqitJ4YlfTyLg1a2a4fCBImW SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1731;20:IF9GpDE3KhaSR34DYEuH0rKp870g0hxaDmBYrGdzSDOTSUXEdmDkfOLsFVupAt/nGC5dv7NtNAQl02/8OI60FhQMME3gAfjHRYJ7M1mDvlKJloDjajyaA20biFmOG/8JODPb2/7me2FEE1ESBF15p/hpBUTe0VM7tmV0/PQ+kAQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2016 11:13:07.2454 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1731 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/06/2016 05:30 PM, Andy Lutomirski wrote: > On Wed, Jun 29, 2016 at 3:57 AM, Dmitry Safonov wrote: >> Add API to change vdso blob type with arch_prctl. >> As this is usefull only by needs of CRIU, expose >> this interface under CONFIG_CHECKPOINT_RESTORE. > >> +#ifdef CONFIG_CHECKPOINT_RESTORE >> + case ARCH_MAP_VDSO_X32: >> + return do_map_vdso(VDSO_X32, addr, false); >> + case ARCH_MAP_VDSO_32: >> + return do_map_vdso(VDSO_32, addr, false); >> + case ARCH_MAP_VDSO_64: >> + return do_map_vdso(VDSO_64, addr, false); >> +#endif >> + > > This will have an odd side effect: if the old mapping is still around, > its .fault will start behaving erratically. I wonder if we can either > reliably zap the old vma (or check that it's not there any more) > before mapping a new one or whether we can associate the vdso image > with the vma (possibly by having a separate vm_special_mapping for > each vdso_image. The latter is quite easy: change vdso_image to embed > vm_special_mapping and use container_of in vdso_fault to fish the > vdso_image back out. But we'd have to embed another > vm_special_mapping for the vvar mapping as well for the same reason. > > I'm also a bit concerned that __install_special_mapping might not get > all the cgroup and rlimit stuff right. If we ensure that any old > mappings are gone, then the damage is bounded, but otherwise someone > might call this in a loop and fill their address space with arbitrary > numbers of special mappings. Well, I have deleted code that unmaps old vdso because I didn't saw a reason why it's bad and wanted to reduce code. But well, now I do see reasons, thanks. Hmm, what do you think if I do it a little different way then embedding vm_special_mapping: just that old hack with vma_ops. If I add a close() hook there and make there context.vdso = NULL pointer, then I can test it on remap. This can also have nice feature as restricting partial munmap of vdso blob. Is this sounds sane?