From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751896AbcGGMku (ORCPT ); Thu, 7 Jul 2016 08:40:50 -0400 Received: from mail-db5eur01on0137.outbound.protection.outlook.com ([104.47.2.137]:62283 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751750AbcGGMkn (ORCPT ); Thu, 7 Jul 2016 08:40:43 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; Subject: Re: [PATCHv2 2/6] x86/vdso: introduce do_map_vdso() and vdso_type enum To: Andy Lutomirski References: <20160629105736.15017-1-dsafonov@virtuozzo.com> <20160629105736.15017-3-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: <23274480-7eec-f5da-8eb3-301ed7882a9f@virtuozzo.com> Date: Thu, 7 Jul 2016 14:04:35 +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: AM3PR07CA0013.eurprd07.prod.outlook.com (10.141.45.141) To HE1PR0801MB1737.eurprd08.prod.outlook.com (10.168.149.149) X-MS-Office365-Filtering-Correlation-Id: 703fe857-fdd7-4f51-7b17-08d3a656a4be X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1737;2:ngBSm7qIqMIjVcb+cB1SyRitKYVTcrlVjYGsDIr0d1POo72+cv6pP9DmHmY6hl23244rkUDCcQO9V4NJLYyhLZ9tvT5wXR/NrWKFYZUuldHCzUnu+3pUknXu3QvDKPDhXZnlKCA1FqDXZd7uSXew7yLwcqiTUUBGjyjYwymo6SQ63Fn4adj9/k4+A/uAhJxK;3:48ORfkEoMjgIrZ8BqBzaC1M6MmAiwv/v0dYsgqXuheJEk3STocNJzj3HsfhpVaOryAsHiV61lE/Ki9J8YglAnfhJpQCmzdN7F1eXFuyH0KRVYJa7S41vrKUPxAX34xNW X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1737; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1737;25:5uxO0VIHQ3QTidNxEN7ABo6Zy+KfAjXFjmFSIhMK4wnLbIfi2A7ClhOwnkaRHIgfcbtdYSE7gto1kQG1A9/sJFm1Ql4VnKQIxpli5CWzYr7ndgTgHmoO+2/LFDFnuOZpIyjMUOGEp8UxZZRxgwE08JExWbf95ZWT93Wz07vUmJoMQpl4rUKtNPhOWUFluovgyYTuV+OH15O3O7aZBrA5cB9m+/E0VTxJ9ZJquEzyDAGrzEYJHMSBhZv7NN0QGziAEQjHh5Y8KRgCUFfXqzroHmFM4Ofp3xccLgyXEap6s+X3teBIokeAkC6ZQHtsBuX42vhsHGn+culz22IBw3orVBgdmQ1Q2xMPZWkymJQFWWRnhSLaHaNgsPxcE9hbvCZWgyX79naUaj7Md1OTO+SBVnJB85priq3++nktLxSCtfLednqIRj/o7qMTNNex+zV9iZIs5joFN8INJ0bgei2CX+0dbw5EvO6sIhqJ+U0z55cgWkToVGISzehfYpAHOCoIXB+WJh/fDvo6D8mfgOy67qAsP/jRYxlrnMZK6nli+TzllJ11c8L2uP+Ft6ahitOJMSn5KTkMTK4wvm89pWnI0eGeWVZJA/6GUNrzLZ1Ys2uHOBrNwdGIKsDTL+IWgWUV2VzrdcbyxjfKLXrGDiHuNnnUcJe3ATTjYPrJdE3HSqv4FdlhbCO1z4oDxRoHHrUc;31:D2dGSPhh1kSz6f3khm5+e93NqQEan0R4TITG7aMofuMiQ/4KRyBWhAgdDQH33UcQpP7CrKZUC7ZFY2hdyh0TqG9K9Fc+7SmZ8dqdXKD6tJKp1Uj7PeZR6USLN5RUTSFHZhilBfZf8u+9rb0WxEwbc1JJu5A4Ckogxf21AG1R+1NEHeJl/wdvagMY+nRWHCenBwY34CGzizHme3thJwhR8w== 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:HE1PR0801MB1737;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1737; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1737;4:9HEQcEKlj3OKROb1NooTqS8SPzBzEV0X/0wDfezNK2CXEVNDW/HRSrkxT41j4W9inZNy/N2KwsFey1IZ5V7bI7g1yB7EUcWIns1QfVBNY0stzkiWs6CVsBuEFvVfTEHtp6ZB2TOnsjs8chdec9BEPYQsj38EhZD8OF7M+Hcu1sPSeEPMH0RhTxCplHFxhBIzz6dQw78QT9oVPIEWLuvQWcWjotkDIf3omUiQh7Y1Fi0mTV6/e1JE70SKDdhHkzB4qexZKnOVRsAelWzC8NNIhiuUZWj5iXqovXog8xZT2ZuTAh4YkoFTU2Vton/GzpR2WnvP7Qyjotl8FuAvAR4CeREZCNIv3+5wo3+slPZNwbPaaHahrQLI/4CXQamwUd7NXQYcB+LZaAurs/rhgtKDomypcGnF23b4NYLkbJ7LavQ= X-Forefront-PRVS: 0996D1900D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(199003)(189002)(24454002)(377454003)(65806001)(50986999)(65956001)(76176999)(66066001)(50466002)(6116002)(54356999)(77096005)(83506001)(3846002)(230700001)(23676002)(19580405001)(19580395003)(586003)(7736002)(7846002)(305945005)(4001350100001)(31686004)(97736004)(189998001)(86362001)(101416001)(110136002)(8676002)(31696002)(42186005)(47776003)(81166006)(81156014)(92566002)(2950100001)(36756003)(68736007)(106356001)(2906002)(64126003)(33646002)(105586002)(4326007)(65826006);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1737;H:[10.30.26.154];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDFNQjE3Mzc7MjM6c21pS2QrelY3Qlh1UmlWd2FpbmpKejla?= =?utf-8?B?YjZJdTNabzdWaDJvYzhTenJFNU56R2o1YjcxMFhiRWdFdVhyZUlmdHVKMDFF?= =?utf-8?B?NDYyWFovNUdhUlpsQzgzaitSbVdjRTBKWFRvVi9DVXNRQTdpL0RmZ2NaOXh0?= =?utf-8?B?VXIvVGhiNHRsaWl4ZnV1emN2eEdRUy84cGtSRlBCOXQrS3R2TGE2WVkrbXFX?= =?utf-8?B?V0JJUG9IMHlGSUw1aUo3cDhhUlpvNG5OQXc1c09uUEJaVU1RTkNJNGFubGFZ?= =?utf-8?B?YTFNU3ltT09jaFd3dHlJK3FDNnlQNkNxQTI2OGE0N2tmNEIyUFBncWJ5dStR?= =?utf-8?B?VXlUVEpORWFZTU94OWNGdFJyRWRjekVyamJOdUl6cjJ3dXJFZEhESUFxMU1u?= =?utf-8?B?VXZoNkNPL0lUM3JwYUZkVkNEUjRxWU00dUczdVBrblJ5dnkvL2dBczR6aXB6?= =?utf-8?B?Y0hJOGZ6T1hlMnFUTTl0cUtNOXhpajB1QXB5dkc1YUVyV0JINVdvU3NiMWMx?= =?utf-8?B?TTR3blhUSHArcWRlMElsdlJsazBSS2ZHMDMrbkRoRytUSk1KZEgvRE5XSHhL?= =?utf-8?B?YkZJVzhwbUZlbWkrUldJc2lCclJGUmY5UCt1dkdDdEZ3TVdvem9DVmFSZ0ZL?= =?utf-8?B?bEp2bDlzMDVlZHpPSHJiQjMxUjFlYXBYeFg0ckljbjBhSXNWcExqNER4dmlN?= =?utf-8?B?Yk9wVHVSQUpTcERRSFRzV1BlYUlROEVGc3RXN2dLdDA1SWtVVmlscGU3b3FZ?= =?utf-8?B?Qkt4OUo1RkNENncxYXBydVVtL3FvVzBBNno5ajIvMWt2ajUrZEZ2MWp3MS9w?= =?utf-8?B?cnA2Mi91a0tjYUVxUUJNWkZWTTJDLzNDZk14bHErZkNIRERDSzdFbGdUbUJi?= =?utf-8?B?bVRmU3NZMjdubVdiR3hSQUdtaDFuTjVvYk1xV1R4aWhsOGI2dWJCTHNBNXJO?= =?utf-8?B?Q2xkZTFWeG5aZFd6RU5ZSk5SSzFjQlptYW9kemFCU3FJaDE0a3ptdm1iWlZF?= =?utf-8?B?REtJK0cwOUlNS1JxbHFUWVE3ckh1VEJTVlRqbUprOHZoY3lMODFlMVZFaXd0?= =?utf-8?B?UjdEUW9DMFptYnFwck5PTWpjVGplV05GejNJNUlWNWVGbHJ0dklvVTNNTFc3?= =?utf-8?B?V3BYRVdzc1lXWE5iTER1eHpMZjNGQXBvYlB4bktvdEttSk4zbFNRRmxPOE5J?= =?utf-8?B?aFprZ3Q2YUNXUGJrSE9tYmpPRnlDU1Q2MmVaZC9FVGpicGtaRzBaRDZoSWE4?= =?utf-8?B?OVNjL3RtS2x3MUxQZWlRSnFZNGtxZ0xxMXN0WlRJRHRXUm5uQVloOEtIb01k?= =?utf-8?B?UjZ4amNrUmNnaGwvVitNWjB5OHVLZU1nNStsUytORExKZTV2d3NHQ2x1NllD?= =?utf-8?B?d2pwUkRJOHB6cFdrdkJYbEVKeGZyNGlVWFR4YjVVVk03OGd2bmVuajBnSS9p?= =?utf-8?B?WnpXNnVWTFJSSitOL0libnJKN0NEcWx4aTM2U0ExNGhnakQ3Y2xYM3psOFh3?= =?utf-8?B?UDZ2S1RaMzlSWWhSV2tuaFAvUFFWR2lyUjlOTkdWai91V0p6SkJ4QkFDUmM1?= =?utf-8?B?K3h6YkFXRXdFVURHbTU5dE1VdTJiTnREeVhRT3RsaFZBN21wcUxtNU84T1lT?= =?utf-8?B?WXVGQnI0WVVsQlAzNFEybFMraWkySE1Sb0IwdVRyL1lxd2l3MTdqd05uMTA5?= =?utf-8?Q?0QTyAl2DHIKRt7f+kCT+NyxikBo6YGoTiD8uAYi0d?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1737;6:CHIrNG4VeLelkL3pAv5JAeeO3i4tzivTcFFfr8RdrTnPL+RDSpFC3RYjk3He3yHLxE9QKrB2N4TIZVatpRVhqtJmdzuD4YZgLefp6Kdq11vxUXLor1Zsput+6ttiDlBhq1ZWFdjxFDa0I/JGBvOh+TZbEvRz1iFiPVYw0DuRJrbkBU72FT2To/zG4i/DMErXYZoNOO+Spjcgh4LOXzWPJyrJ9wZ52ezP0BYBxEJbhrk4aHwkYmH6n4PmpwDb28Trn3CzuTce+jTc6J7Cf/YOtG4AdtOP6bsn5xR4Fk4r8vys5GlJBJpWEuDG/EoGhMtk;5:wcrVLJC7jAufOHi5ZaMvPXAaukVqeu0Oi6pWqYwFARr6rlJXLGM+N+JeiFYW4ueoS7M4aa6xeVbMY5lrvBW0tnL7sE6hfme6X/KxwaJQw6ZTkUgTBHE+rXO89sYCw6UwLJWRiPy2gdmC/8laHHLFww==;24:W0TIeUWzL519L/DeUiaN7d/itZr2ZhUwv4zWpWVXbpUI2unU7LlSmEX5Q8MqpdEwQgDolPazzars9YUTL3WR/U3U1bEfUt0LGyvdSacqnfA=;7:QTUJdBXW49i2Q/B6/nkQ4uHQ2mIgBYdQpq+yvlGk4HXbwsDLwy6IRE5PYoNsUYf2QALL71zCT7CALhZWAWhWpEDqiskwxBdiYyK2CnbfOtXwXkid23HNrmydyeV360JGCO6j8vOjtN0zmBVJM6cV26Z2ACXlz/ItjxWqae1Y0QrW9VCudbiDuVr9fpEQQ2CF6BjwloMxVhxMdPwDOI/NQmV+n1BYvtzJ+P6E+DhyfVycZAfrjR+MwnHGS6jfMgdO SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1737;20:eDVzpn5/nklZMdtnUwG4EzPH+LqMdn5Bs7bIrHDlufIjpIRPuONORdoTG+GsGV/3AXG1s0+sySAnf3qPTrz3cWpOCRV6WwhuWu2DYFLAFt+C4Ya/EEOnfXiZ9BybsA31/CkeQXaJaZQ44AXXY5rxB5LrWx9ot5yINpX0k8GrVLc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2016 11:05:43.5464 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1737 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/06/2016 05:21 PM, Andy Lutomirski wrote: > On Wed, Jun 29, 2016 at 3:57 AM, Dmitry Safonov wrote: >> Make in-kernel API to map vDSO blobs on x86. > > I think the addr calculation was already confusing and is now even > worse. How about simplifying it? Get rid of calculate_addr entirely > and push the vdso_addr calls into arch_setup_additional_pages, etc. > Then just use addr directly in the map_vdso code. Thanks, will do. >> +int do_map_vdso(vdso_type type, unsigned long addr, bool randomize_addr) >> { >> - if (vdso32_enabled != 1) /* Other values all mean "disabled" */ >> - return 0; >> - >> - return map_vdso(&vdso_image_32, false); >> -} >> + switch (type) { >> +#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION) >> + case VDSO_32: >> + if (vdso32_enabled != 1) /* Other values all mean "disabled" */ >> + return 0; >> + /* vDSO aslr turned off for i386 vDSO */ >> + return map_vdso(&vdso_image_32, addr, false); >> +#endif >> +#ifdef CONFIG_X86_64 >> + case VDSO_64: >> + if (!vdso64_enabled) >> + return 0; >> + return map_vdso(&vdso_image_64, addr, randomize_addr); >> +#endif >> +#ifdef CONFIG_X86_X32_ABI >> + case VDSO_X32: >> + if (!vdso64_enabled) >> + return 0; >> + return map_vdso(&vdso_image_x32, addr, randomize_addr); >> #endif >> + default: >> + return -EINVAL; >> + } >> +} > > Why is this better than just passing the vdso_image pointer in? Hmm, then all callers should be under the same ifdefs as vdso_image blobs. Ok, will do.