From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968299AbdEXKMS (ORCPT ); Wed, 24 May 2017 06:12:18 -0400 Received: from mail-he1eur01on0134.outbound.protection.outlook.com ([104.47.0.134]:21152 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S967341AbdEXKJW (ORCPT ); Wed, 24 May 2017 06:09:22 -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: [PATCHv2] ARM32: Support mremap() for sigpage/vDSO To: Russell King - ARM Linux , Andy Lutomirski CC: Will Deacon , , <0x7f454c46@gmail.com>, , Thomas Gleixner References: <20170414132529.8337-1-dsafonov@virtuozzo.com> <871579ef-ee9a-c321-80e4-47836bb0e472@virtuozzo.com> <20170523200946.GG22219@n2100.armlinux.org.uk> From: Dmitry Safonov Message-ID: <7dc84202-9f12-4f0e-a925-e050974e17b9@virtuozzo.com> Date: Wed, 24 May 2017 13:09:14 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <20170523200946.GG22219@n2100.armlinux.org.uk> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: VI1P18901CA0007.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::17) To VI1PR0801MB1744.eurprd08.prod.outlook.com (2603:10a6:800:5a::22) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR0801MB1744: X-MS-Office365-Filtering-Correlation-Id: edeaf09a-825c-4cba-a722-08d4a28cf0a9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:VI1PR0801MB1744; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1744;3:dh1/ISYJYNu8e2a8jJJXkRZp1XvZZi1mTiU/Le0T9Ks/+W/gHAkrt9tCFmdEu9jBC3Ba7CZSDmDimdTVf8aL/h2KHMdNtuVrzhb4ksnAk5/KBFH5h4q/bs+FqhhqQZqDcmQe7ypamy6yIQMGJBHyD9IXf9EguqX92T4dJYAimbaf4EVffd7m+qgC/3EUg5E7l+UDakTkRzPWxwLkfihUd+Oymjv+uNgL0POAMpVKukk+tNKczGf7Zc3Mfyn5Uh3Pq0agI++DZgXYQh87sNxB5ajAz1kqrz7/LZIapflWTALLsxd8pLAqjTOoBu3Ybez1tzR8TaYksAXCA55HaqXJ6w==;25:cgeuNA4K6cMfI34XQnXp9pB6iJR4k+QwPCGwBcklVrZ3BykP9dlFPRgPIfc+RSQQ7rD7LEb95Bjefr/vJsQ7+lvz1fEewxcCwPs1y254kAfNpGOIxoEumS80OXfp6uwrudHSpaf87RDhZh1VAWYLYv6IH5pJqY6Fh/X16oKWOMKNyc/aYKuFV8Mo9EPHGiVNIKzdbDkFkQYbqdwLykUEVdBZI1kMt97l+cSVqWEU2v0HN+wpaUE2bKfts/vkyzps9Lnw/4feLAH21dYTzYlnPQjTjg1vLx8WvidOx252Qr9TgaMcZJyWTUYLwNzO6+EF0bK6dQIWaHKI6bEfxnqoUFmDd8v/p+T5BQVYAWLP8oXp/GhmiedOgVHM2v1sjamvskzM86aX8cG9gFmt75Pvdm1WtpgGWfQYH52JKaw3RfemGeVc0bGsl0HAF9XKP3tDJMD3+M3j1G/tPlqiCvg1xMWxKxERnHoinp3lHU+L0YI= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1744;31:EMKHnkSix+4CxFO2SYlUleIFRB8Kn7yPHEkAkcgntCUeAyvapE00Crzbs3uhfqyDB8AfXfxbqclccwEmPjkNllhp/mUOq/HDSx6gT6hjUZeFySAuzxnEFTK37Q3ghSi5GSQorfR5ZRikART38j/tg1+comDyGIgc1OE9nG9lzNZywjkY3Cp0oOgujgV+ivy5oVIwbUyev+Ky0VM2eDmNK47n4awNqGRUPBmSHOm0gPI=;20:XcCLv6+KOp4vF6NAIscMkmkMk0PzlRlkZfnZiR3n9VLHTh+R2OWt0KogoOV+phNhDhlng8B5xAXJ79mMJ76/YsjebUE8yklGOGseXeZzk4/FNpk0mDr+QWaItwkflTMMVfgAhVSJJyUOs2VLjgVnFT4s+AXoAOSfYmXZ8bHC5by8xPz5bDy1Ve8p1t8VqMQFE5osq0wAQiGtAV5zJbcXtHPB2lV4Upm891B+U7xyrbpWsawnOhbm0UBtWDnhJXbZAMa682rWCJhnM6R8HMf93PB+HHNEONHjWcnrwSAgLa1Dcg2nPi+AsA+0Ik00KDyBwmWdb3wRIPKVSVFm8762wDfkDKVFp+/VFco3xbZ94wfx+ySc49R2gFxksOKWiuHdOvViuVMYJccXE1HiVPWC1YlWwlrbI+a/2B9vt4O0mo4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(258649278758335); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(6072148);SRVR:VI1PR0801MB1744;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB1744; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1744;4:mulPTve73kyMUNs4KeOlJCfiWOq1Fiw8LvBqf8QSF8EqrLP0GHIQhxx72Hbn1MCl6TLsh5zkH2BYrYMMS7QLY7aW+hXbdPiqQHXIl8Pj1shiP8ASCqO2uEUIPNvo4k60fwK02gzDaNyuwwwPVPreP4OmPk5Hsp84J/pd1mToTScECCWfiBhvEglKVvQT2SRdlBjkMPLUSXz+7GIxRM0VxsYwQXOEVeWAkIGB7jsixt4nDDtkaBDUeMOWbK9U6kytSCs9EAokiizW87H7f6kAe2ejXnxK9puXarbacWRrKGz76w8D4ZR/dsS7bGljrT7AwWKOtJoPAcqU1IPDnine5lqHVmTC/TtxmARCv4tqq+zv4OH1itYc4j5isYvBxIKyebNSgsv+c/iCwTfC2HSuNpf9zJf4V/AghvRqvgRfLtKSk2RLPBft9c5WmPH+G86zezGHOzT4WM8W+BqSIVBgDwwqIDFacAPj17gWuqnMXMsZqWCDvv6SQoeAjXkOnRAP+/TmrH7IQ7T3qfU1vSnZZsdCmQM9//tZu4AR/s0VByVs7A+q3ff1Qi6uNMmuvWMGBkiJu3AP0ocuFGOGheDgrvWEWAvGuvYIuf+RMU9dwG5GLuXpU+IYBvEayJZXut6q5BXMDBqaStFIeOs2hpKUPqq/XL07hweu0yBdEJuZbFVr+WvAQNC/Iw8o5IYA1vSa8c0Gd4FA4I6WUB9RK23/yEwNlP0w8VFMAiin3J6VeO1YMOATRT3zQPP1lWOhg2VhiKPgaaGBFdB6TUnykiVERZdCpv8t979peXZPa5XNHAIKkWMRM3Nnwkk+x1FQgxXwd28S/C942oo/1RncsYDA94bOq4ptxkv9HlXxjdeidUOL/C1ZmU0IHN/jYsFkIdxu X-Forefront-PRVS: 031763BCAF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(39840400002)(39410400002)(39450400003)(39400400002)(24454002)(377454003)(47776003)(76176999)(54356999)(50986999)(66066001)(50466002)(33646002)(5660300001)(65826007)(42186005)(305945005)(7736002)(478600001)(4001350100001)(189998001)(81166006)(8676002)(53936002)(6306002)(54906002)(38730400002)(77096006)(6486002)(6246003)(31696002)(86362001)(230700001)(53546009)(229853002)(93886004)(2906002)(23676002)(2950100002)(3846002)(6116002)(6666003)(966005)(36756003)(4326008)(83506001)(25786009);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1744;H:[172.16.24.230];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDFNQjE3NDQ7MjM6TG9tVTBxRzZ2NXVod2hWMFR1MlptS1Fu?= =?utf-8?B?ckRMeFIzZUZTeVY4WWdpTDgxdlovSzdZek01eUFrSjQ5bEhlUkNoTlZSSkpk?= =?utf-8?B?QzgyVzFiTEFRbDZvQVVjaVR3NEpJSVNRYXRXcytNR0o2UXN1SkVuOHB5c1R6?= =?utf-8?B?UTJ0Uk5NNHJkSEE3Vkc3cEc2ak9yWDg1WTJ5L3BYbWJQdHY4bDRSZXY0U3F3?= =?utf-8?B?YlRMTkJJemZpVDJ3Y095dmVJZFFYVkJXODdneUJSM0FOQzk0S3BqSUMzMzJW?= =?utf-8?B?UWhuQVFDRXQrTFBkL0xLNGxtNnNBK1Byc05yWDMwK3I3b0tMNlN0c05lSjFj?= =?utf-8?B?TFJ4UTZWcmtRcms0TlR2MndOT3RkNHlEdmdpTWU3QkFtQlZ6TzAwdytMNytL?= =?utf-8?B?VE9DVEhJbnJTNW4zWDh1YTJMV1lQbTBqUUtxeTdKaFF3dnhIdGdva3dUT3dq?= =?utf-8?B?Z1JZdkFBVzcvN0JBbFozZGo4QytEUHoxdG4zajJXQTZkeEdDZTRpdW1LV0pL?= =?utf-8?B?RE1maFJyK2lUdllxY3MwRHptSC9xTExrZDIvZ25SYWpLM1FJTzZHSitwMXVh?= =?utf-8?B?WXZZRllIWDUzQ2kvdTlXU1J1OG45bjQvUUk5d3owbzRXVVdTS3IxVXljRWNQ?= =?utf-8?B?WUEzTU1TcC9NVVcwbzFCbW8vUnFYK3FEaldxRit3dzZWMFhxOHdiOEYwSzlN?= =?utf-8?B?SXlPSGsxcDlsU0VlRzNPY2JwdkZudkpDZS9Wb3NnWktkY2FQbU9pajVYTEpS?= =?utf-8?B?bDBmKzVjVUJGRXBGQ0NyRnZPYm8rbHZsSHFRR2p5bXRBa1FraXA0amhHSWRw?= =?utf-8?B?c0dxL08zbEVYcXBESGxObVc5WkpNR1dTaStmLzhLNkVjRFpVUXR3YjFvNzFY?= =?utf-8?B?a3gwUzF6WDJrTWU5NjJBaWVFNGQ2NHRwNWYraTRaNHpnVUZ3VHk3UVZiOVB6?= =?utf-8?B?cUFiR2V3TTh5SXFlaUREclNFekxFYWc5OHFKZnF0WEt6M0p4SGZjSFBqZFNL?= =?utf-8?B?aVZoYmxKWWpZNEswUjcwRUg0UjlXVG8yZndXZ2hMUzdQR2ZFbDVoMk1UcUh3?= =?utf-8?B?bXh6U3Jza0VOU0NBaFdwZUc1bFBOSjl4WlBLa2Z3ZU5sVERCamxmbVZvNGNz?= =?utf-8?B?MVBqMlBLKzFZUDByTWNlNFRXemw5UVFVNHU0aVU0ZW1IZmhZL0Rmd0EvK0ow?= =?utf-8?B?SCswYmVpdWdnRm12NXFBd0pHeEFCeEdPRk1FTUxJVjdFQjBvb1gwVWpDOFhr?= =?utf-8?B?RHEySUh5M2QwTkU0RHNuQ0JXYjhyQXJxQks5clAxNjJsbG1DVWJNYlFtaDQz?= =?utf-8?B?WURDT2Q5VTFoN3hjVDlPL2FPQTZSVEJsclZROVBFbTg3OXIxcE9GWHJNRVAv?= =?utf-8?B?N2J1eE41Zmo0OENKL3RYbm5PdnZUcGxxekRsMWRlT0ZoUW1yck9oemRuK29U?= =?utf-8?B?d3BTeHNBWGRZU0M2Qk5SYnJtRE1kaFZJNzI0M1FQVlpyZXVDYUloOHlMZkZm?= =?utf-8?B?TmdQMjJxQ21JQ3dhYmdWajJ1dU9rZ2JQMVdIdjhGRnZMektCenh3aUhXTk1T?= =?utf-8?B?eVhxSTh4MVhFMmE2eXBlSDNJSGJvWFpWQUdZUkFMVE1idDE0aE51dmFaeXNn?= =?utf-8?B?WjZvR29IL2JWL1psLzVQQnhHd2F6WVN3R2ZLV3pIVkdZUEZiY3pGcTdGekE9?= =?utf-8?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1744;6:WhUQAurgnGHzmoT3YyAdFFHluYN7RqAGtskbVomiRUYDtd9sapeGxEAI4/XoAw8qMftZhPPM2uRol+eIIPUwCn4HPdbd+2Bs3svzPXzx+fIWN3vuUNusuybgSbBzwm9wgrhRTsAL2JsWOgMNiz4yao+tgmSu7FfiFZe9KhtfxWm7PoZDQ1W9ONFY56VH7pzkCdL/mjtoQoS5/VS0DMgFYeGhQsovKRnBmHRQLtoYMPkVDLSPmVmsfhebc1XjYDcO1CT2eBu3f6UK4Stj63Ec9lEqbpDEsDOPBOkyO2iKDzk5FadkTGl7Ls/bBQKDTImPd9bphDvFWAGS0V2/pwl1xhDfu1+p4td/+QaeCzNsJMf8kod0E7m73Z1zk2u3oUTURBpoM5P5grcflGpSKmCZrqE1ubU5twsQxnDSUHxZYMarViFXT9wWImtXX5c4tNurQARsp33AGn/fi9j+WfN9dFpZDnw/Zd0WmPswGBP/EoB6mlOywB9mTGpiA5MahnnIiPm7te9qlDc8Jb7SCZL4Tg==;5:GM/7sVpRMTJdGNSo9WUB5mLEA6Dz41CnURtKDDAetnwZ859SYsx0j683YmiKkoQ+l/yQeTzw3FzW8Xe9Y8oqCK7ABiOcx6VtB1ypAorAoumBJw7sZYWLPyjAoNQAkGbFuk4yQeP6OfjkP0VPuT1l0uV6YkTD+KP3tQEp5AjqZm8=;24:G8MC2yvSFInVGOmCsofip3Yk+Idv7bSO1tz/lF5nyATJxdOvFdoQOqwV7GG6tm4H+ihaLHZmawxekoHZa4sI+pUL0w1atMdCPBbro/OVq3o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1744;7:qvKOt5brK61f4M3llAXTBtlRgoMld07FpsWqRnkjRuKzgSvOjLMAeCX1kTKEGxa/mTTGo3JYXmzwpg2s8rW/1PfM5x1iCrXGEiutp8gCeZ4iqoQr7dbpfhkFjGm+kTVkK3OjXJPLsFroGsCaDKCW4YqUaPkg/2mVHr0rK1VEBokQrulii049yuRoLqZ2alEIvNnLovCdt4Yx9lDCx57bnTcXdyy8xI1OoO6HCgl2otDfFYDBwIK7pB9JGpn/wtlvAmvS4oFE4CUAV65uKoCh7aCyut9IqLSJJU/fb7bRl0ObojU+65b2CVdqUh41kg0YI9alkqfXyZ7NM+oJ9xTw+Q==;20:j8LajQHSIhLv6eaCnndaY+oCPFGyrC8GbkHn/DDTOITNP7hMbLdXNrEL1tfxRMYhxwlS/6+eD/1KUlnDT6BsJlwuzZuRP/MIhmkL5EZOZ1UOWqXYeeT5Fu/EzRnd3so6WKGNQb7tInS4hiyWrZ8iCQ08RTQqSpzvpDzhFBmrAgk= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2017 10:09:17.6468 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1744 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org + Adding back to CC x86 guys - as I've removed in ping messages. On 05/23/2017 11:09 PM, Russell King - ARM Linux wrote: > On Thu, May 18, 2017 at 02:13:29PM +0300, Dmitry Safonov wrote: >> On 04/25/2017 08:18 PM, Dmitry Safonov wrote: >>> On 04/14/2017 04:25 PM, Dmitry Safonov wrote: >>>> CRIU restores application mappings on the same place where they >>>> were before Checkpoint. That means, that we need to move vDSO >>>> and sigpage during restore on exactly the same place where >>>> they were before C/R. >>>> >>>> Make mremap() code update mm->context.{sigpage,vdso} pointers >>>> during VMA move. Sigpage is used for landing after handling >>>> a signal - if the pointer is not updated during moving, the >>>> application might crash on any signal after mremap(). >>>> >>>> vDSO pointer on ARM32 is used only for setting auxv at this moment, >>>> update it during mremap() in case of future usage. >>>> >>>> Without those updates, current work of CRIU on ARM32 is not reliable. >>>> Historically, we error Checkpointing if we find vDSO page on ARM32 >>>> and suggest user to disable CONFIG_VDSO. >>>> But that's not correct - it goes from x86 where signal processing >>>> is ended in vDSO blob. For arm32 it's sigpage, which is not disabled >>>> with `CONFIG_VDSO=n'. >>>> >>>> Looks like C/R was working by luck - because userspace on ARM32 at >>>> this moment always sets SA_RESTORER. >>>> >>>> Cc: linux-arm-kernel@lists.infradead.org >>>> Cc: Russell King >>>> Cc: Will Deacon >>>> Cc: Andy Lutomirski >>>> Cc: Thomas Gleixner >>>> Cc: Cyrill Gorcunov >>>> Cc: Pavel Emelyanov >>>> Cc: Christopher Covington >>>> Signed-off-by: Dmitry Safonov >>>> --- >>>> v2: (buildbot) Fix (unsinged long) to (void*) cast warning. >>>> >>>> arch/arm/kernel/process.c | 8 ++++++++ >>>> arch/arm/kernel/vdso.c | 18 ++++++++++++++++++ >>>> arch/x86/entry/vdso/vma.c | 3 --- >>>> mm/mmap.c | 4 ++++ >>>> 4 files changed, 30 insertions(+), 3 deletions(-) >>> >>> Ping? >> >> Ping? > > I'm mostly happy with the ARM bits, but I can't take the patch without > acks from others because it touches other architectures/generic code. > Fair enough, thanks. Andy, does moving of this WARN_ON() looks good to you? I've done it to reuse it over arches and between vdso/sigpage mappings, reducing code duplication. Here is the patch, so you don't need to search it in the mailbox: https://patchwork.kernel.org/patch/9681273/ -- Dmitry