Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751079AbdCMKAO (ORCPT ); Mon, 13 Mar 2017 06:00:14 -0400 Received: from mail-eopbgr10100.outbound.protection.outlook.com ([40.107.1.100]:12312 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750783AbdCMKAH (ORCPT ); Mon, 13 Mar 2017 06:00:07 -0400 Authentication-Results: virtuozzo.com; dkim=none (message not signed) header.d=none;virtuozzo.com; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCHv6 4/5] x86/mm: check in_compat_syscall() instead TIF_ADDR32 for mmap(MAP_32BIT) To: Thomas Gleixner References: <20170306141721.9188-1-dsafonov@virtuozzo.com> <20170306141721.9188-5-dsafonov@virtuozzo.com> CC: , <0x7f454c46@gmail.com>, Ingo Molnar , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , , , Cyrill Gorcunov , "Kirill A. Shutemov" From: Dmitry Safonov Message-ID: <35a16a2c-c799-fe0c-2689-bf105b508663@virtuozzo.com> Date: Mon, 13 Mar 2017 12:56:18 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR1001CA0014.EURPRD10.PROD.OUTLOOK.COM (10.171.79.24) To VI1PR0801MB1741.eurprd08.prod.outlook.com (10.168.67.19) X-MS-Office365-Filtering-Correlation-Id: fb8bb40f-d3fd-467b-8c73-08d469f7b6b6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:VI1PR0801MB1741; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1741;3:Yj4f4ndY3uMyOCR1oKUD9wJlwAcEmcahizTGx9Fs/1NmU2OzWWknCwDWqIDI2CWYwfvLx47WPccL5QeNMF5hReWYpF5eqd2vajdj1VPtgc+EFo+MVPhUWm6QWlyAwrHDOLSIA4p2ygUoBAR/TtoljbGjMPKEz+ZqWqNtcdMmxBxfiFA3gngoHjw3gFlwONI8J4isL1Y4aKo49sGEf2EmNcG1WByyQYKG3ZA4N4gIjGXwYUBCzAdGy+WZ9lmklE2E9sQR9f+akg60ld9PIwn3/w==;25:0AVF2D5esR3DkWDiW+1DN/Xj5BwW/N46IwMdVmcvT+nQIlbTwJq5STXlQn0j6QQLUkissBXvTd0n4YlUHHka6u4y6IaVeT9b7p4EYqOEc1rKuHqZxl64EkznTTVutcCMVr08TYl8HMAAckhuzaPOPhL114jUEZMRlDl3eMKGoic/TzbLcJJIucuxrXP65KtMtAJ2kz2CLGQAK4YVSeInvoM1CsrJRi87DfBlyF83Ym2LtB+JxBvp+pvSUJPThMsF0pnQfLQzd09MqFrvX8G8tfkc5kolz78ewalVMRdmQyAU/j57RGLwxJgsbQL4tyGj41oi95Fp+mv/Ni4rWcLt/LMxlqUCehN58OX1xghUNaLFlAr1ZKHmVB/ea+lJImPHCvEaugkhlA7k4v4D6GPB0ssJJ5RdvRgNwRUMT1pYZpZzGt67Q01vjsLTucpT9hb6cie/xYQ9pcL+vJRLnKb6Tg== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1741;31:/otnKR6mjACIqxlhfYGbBp7+tEZjOoAnldLoL/vLEgIZNVXEb/ZeSehM0K/pA8thkVCs0CkeUlILW1wDQQepc5KM2lYg39fWUteekDcLUusAXavqdwprsbjATK9ZuNSHYuLqvn4+u0pnHqziVQh84JoJ5fF5rBfEuYmjILpYb9GVrYNy58nzweIdQmQ4ES+icNPcHZSCEUpcY+jSHJX02HZvzjYOZljxXrfodxh9bmo=;20:kuGumstI1azYqkamOdJT5VGTSZvH0fngwI6fy9VNSllT2gaPaM5GjsD1mQQAW0d3EAEV58pceaSq5Ywl+Mu9bPzUeFiO31EfWpmaI2OccE1cq0MA7aEF3kVVHDU6v6TZ+OJHQaDmMRG97egPIaybEBId5Z+cnE+jiK9VZ9GB9yFs1LNfawhKJfIF8Bu6Q0CK5tNcZ5XfXEh7F1xb3LbVwNlmj1xvbhEQhq+Z6I69WeFIxYey16L7SLayyvl6KgVeltNMYr6oFRVK8SDEqetzVnmboPCk1uyKSTdkKMyg7Z4klAw1ltfVTSA/KzSa7QeuJYk7jxP5FPEAy1tzf4HvUFrFkAMcZQI7k38eMlUQyGFi9ooAD7q7g8KEMcNa+kvIHcDqG6u3BC0kvm0M/5VBEXyVxRbkLsV4YqLmSo4eFL0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123564025)(20161123555025)(20161123558025)(20161123560025)(20161123562025)(6072148);SRVR:VI1PR0801MB1741;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB1741; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1741;4:hOvLtkr3cPRxcGLcaQVNYJaYSrH59JQdpn22aQUET5U5rh31Dt5v3+57oAt4yCKen4NDSeed1ojxeO48S33qNY+32mC8n1vUSWso3t2sPL7Vgu681Cm4Bn2WfZosUkBiTKGhoqXt+uifRAfZkAEHRNv/9ndgSFJKVHAJsM8r7l99IZ/47Px4lvQlycOZ6wjeB/A4DfEVnSQrYdd4ZQgQ+Mr3SusJVBapUjUSGs20zfdUFWogLQPXCGtXHMythdyyFEih6RxfSQj52xjg0R/bpl70kEOzg31A6yVzk/jmfa0gBUqszsezHOzuSoxcfqCMENbAfS0Y4LRohZ9BS/V3xWxzv8NY1Tm8bLXT8YpzilBzBQcBgC6heyUYMC6+QeOZqiDAmNfaEaZNODRkADdTtgNZrWH8B4bOjtXXMED62VXVy5rlWUe6DrLgP+Yu6OH456eHmZs+aCV+wxAHfjQyuHU4kT9TdsX8UkXxIiVyWmBo+OSpjdSD1xmwAi182bD+Di214QvQ4WpZfCprF1C/KhUH7FkuRjtDiKIcDJjdTDfEL6jynFNtSApdEwDv3zFj7d0DBXpfquOuq0V1L9P+vWlqm7vZwjXIpXIc2BBV+F5LwqhGUEWo/AA7PpTVa6HBLVypl0hHGNTKkTLv5Ru0jQ== X-Forefront-PRVS: 0245702D7B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(39830400002)(39450400003)(377454003)(24454002)(2906002)(5660300001)(230700001)(7416002)(65956001)(229853002)(65806001)(66066001)(6666003)(25786008)(2950100002)(6916009)(6116002)(305945005)(38730400002)(3846002)(53936002)(6246003)(7736002)(110136004)(33646002)(64126003)(86362001)(36756003)(189998001)(31686004)(31696002)(42186005)(53546006)(6486002)(77096006)(76176999)(54356999)(4326008)(50986999)(47776003)(90366009)(81166006)(8676002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1741;H:[172.16.25.13];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;VI1PR0801MB1741;23:2S7kV9e70z7UAK4fdm/wY4C1SfdvXXMXXID?= =?Windows-1252?Q?aCfjn5P8fowuFb179kUIo0Z4BMc+nW26EyzT2tVGKObtHrRigK7Ef01w?= =?Windows-1252?Q?HyirO8cYZARfSiQwYg6VbgEciAEitgtViHqUHZeYRt9orMakAFOMiPm0?= =?Windows-1252?Q?4QRTf+9R0wB9bEemUYJojT579aIP5ge6quXoSjvkGh2IQw2qlL2vtiuI?= =?Windows-1252?Q?WvWlA40v5aP4Y3CG+D+XGHz4KkxPCzdtIkLKl4Uq6qlZv6YBa5H6Drzz?= =?Windows-1252?Q?VwRaOQNC2WGFxduWl3ACtHSEQrA/pFuoOyNyvJq9K3AblZUxa9mJ6x1b?= =?Windows-1252?Q?IJHggw17KI0xvuA7FFodoDl6OWeKf/3V7Rsdt41paWw/HTTBL2h8B3oP?= =?Windows-1252?Q?JVypuJHPtS60RomUa2X1FDslSH0hCIC7lVkiKA8abvtk4Cq1OG4a5IUA?= =?Windows-1252?Q?knzMpoWpWUgyzUz8E6gWv59ldkGHwl5sFildFatPscllIOYoWwRT6xYy?= =?Windows-1252?Q?+x3DlU3rkRyqB8LhwwG8cyNCly2FZoRnh/65PpuI2uxGfPjXjcNQhTd8?= =?Windows-1252?Q?Uv+AF9QtMPjzhEZPgkpaKeqErx3C+VQyfDeYZ21I1OBZwfem6uE6owXU?= =?Windows-1252?Q?9Si1hRXd7uc/eiZL4t1bd1Erq84Q+IEffsPu52g0YhRF7BCPDmlT/Rth?= =?Windows-1252?Q?BQJwFLmlgTDXcZwYYXu5Z6gvewprPdUMXRqVmanvqWISow2IAEKR8udB?= =?Windows-1252?Q?bM6zzG9C+IjZ14rhaRmD8dpRKQBLktqd3uoQBGfQWfJb4nxZx7AUwuGn?= =?Windows-1252?Q?PNZehYVH7RVDb94UN3V/d2vxmP/D/NMXAdqD/as/0y9Gihl86GXf6L+K?= =?Windows-1252?Q?dzw1ZaCZN5YP3rZp6Nbgz+qxGnMAMdyPustCZdrFnle+Quj1OVlTEVFr?= =?Windows-1252?Q?pOm+8nI7L8rG+/hVGWfGHnwlev4o1GOF4VG3e1tax3sAglsHrbCZ6h/M?= =?Windows-1252?Q?3TDE+fUNEzPooApLooXeC2i/JbL/kDgSaEILoJpyj9h9BBokvPCijNef?= =?Windows-1252?Q?6wigpkkkRwg9pIClmnQV2dsg67AaFPVKPSbeoko6qJ/hPXyc21vNyka5?= =?Windows-1252?Q?B2Bf1Cu9Sz6dedHp8B6tg1zNlIKYCt5xdDY1ga+zae5ptmu9Nevs9Cbn?= =?Windows-1252?Q?Nl0zKA9Sr/yglnEQiKo3Loo2ouradgX8=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1741;6:yIdSCCNtVorm69ON/RI2efDwrB2dGGSc5fj3CuOUmw4NjR4yYS43JeDHO2ru+frr7N5gzzDugZSrVcoGB/4xAZ5pUKvIhfk1vCKBdpSowLmsoDdaTXsOKD1CoDf0NRFXbsEkwjtkzN8SshrGMK7DKQ4qn1z6c3eWhopfug8dEt9zgftbZ438/Pnlo6rK0tZUwoCdQcKlBIQpR/91CPgfRh9YWZIFaUiWV3OX02k0DBSeoR6BXG0hldwdV0LWh94NfjwhFXuBzk1PirdTXfMOtmVoBlAScejiL7ts6RMM5iMX2Vho32heD4KHxKUBPviirwj4zM7NP8VVOFJOB0Y0kq4AePBFrEZyMkR/iFqYDpSymjF9dpu8ugCCYYjcfylt20uHTm/uQOiJafEYafoNjQ==;5:/2b0BLN+kIEQ5uMealbk4FR1sIifeaGp2kIACjcuHwQ1zlJLYMXaFdkVeKw0cQFvymvu6YU/iiaYJ7cqRxdT28ScXeko7M4An+Eh1poAmJwqUz4cszVL8MZ9f7Y1bWHKVjQpn/kyX5niV389vp2wnXXfaE7Fh4QST5cklUsXl8Y=;24:JXW9ipU+hRl860SKhS5UcNwEK5Iq7Dq0+tfFY6n39uAHuvZSsbZrOjIQ4tcksohWf/U33+NYSM+k9YWQNflR9lMYGHRyAqwdVgycEdzC4QA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1741;7:Sw1evDra1iq58yYrVwhypjJ4d+xbedzqzxKBjrVsREaylBYvP5r1lUrveTxKICnmViz89X6tB6Y1kE+7I0hqkSqBeVs77NO9tFIoP/fD529o/3itBwBcwV+drYoj+KhOwC6u3CBnNF8ycGunirHzmm/xRzxvy4jaGCoWX/hDez+HDk0vIcgUexUfBviMfuYAgU2f873O/mrB7qCUg482XurYR+0SnOZXn9zY7OUN5ur00zvNBwb1eLmDtYIr+udYRsxnRydp/NSvQXkhRLBueky4+EUYnqdR0fadjDN3YUHgrCNnBX8wWp4r2Gqo2SoOP9NebUXh7RYSdROg6Iijrw==;20:5WjrR0XYcygprZSgBuw7Wco8OLvcElEp++yB6JIHcB0x1QbRLHNgoosI3Ci/zjs09TuCzReQBvzcMTMhdc6mswV4/dIiSfEVgZz6ysmXulE8lYcvNs9hVJKavdW1B1iT6LQ4o6K+f3sNL7dF7ENIukB6llb//Vjx2i9VGH5sizk= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2017 09:59:59.5196 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1741 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1856 Lines: 45 On 03/13/2017 12:39 PM, Thomas Gleixner wrote: > On Mon, 6 Mar 2017, Dmitry Safonov wrote: > >> Result of mmap() calls with MAP_32BIT flag at this moment depends >> on thread flag TIF_ADDR32, which is set during exec() for 32-bit apps. >> It's broken as the behavior of mmap() shouldn't depend on exec-ed >> application's bitness. Instead, it should check the bitness of mmap() >> syscall. >> How it worked before: >> o for 32-bit compatible binaries it is completely ignored. Which was >> fine when there were one mmap_base, computed for 32-bit syscalls. >> After introducing mmap_compat_base 64-bit syscalls do use computed >> for 64-bit syscalls mmap_base, which means that we can allocate 64-bit >> address with 64-bit syscall in application launched from 32-bit >> compatible binary. And ignoring this flag is not expected behavior. > > Well, the real question here is, whether we should allow 32bit applications > to obtain 64bit mappings at all. We can very well force 32bit applications > into the 4GB address space as it was before your mmap base splitup and be > done with it. Hmm, yes, we could restrict 32bit applications to 32bit mappings only. But the approach which I tried to follow in the patches set, it was do not base the logic on the bitness of launched applications (native/compat) - only base on bitness of the performing syscall. The idea was suggested by Andy and I made mmap() logic here independent from original application's bitness. It also seems to me simpler: if 32-bit application wants to allocate 64-bit mapping, it should long-jump with 64-bit segment descriptor and do `syscall` instruction for 64-bit syscall entry path. So, in my point of view after this dance the application does not differ much from native 64-bit binary and can have 64-bit address mapping. > > Thanks, > > tglx > > -- Dmitry