From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752585AbdKTS0n (ORCPT ); Mon, 20 Nov 2017 13:26:43 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:52066 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751963AbdKTS0j (ORCPT ); Mon, 20 Nov 2017 13:26:39 -0500 Subject: Re: [PATCH][v4] uprobes/x86: emulate push insns for uprobe on x86 To: Oleg Nesterov CC: , , , , , , , References: <20171115175928.3821714-1-yhs@fb.com> <20171117172526.GA10949@redhat.com> <47697170-3737-052e-584f-811cf4e4dbf2@fb.com> <20171120164145.GA2387@redhat.com> From: Yonghong Song Message-ID: Date: Mon, 20 Nov 2017 10:25:55 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171120164145.GA2387@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [2620:10d:c090:200::5:df28] X-ClientProxiedBy: CY4PR0601CA0033.namprd06.prod.outlook.com (52.132.96.46) To MWHPR15MB1837.namprd15.prod.outlook.com (10.174.255.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 65041fcf-88fb-48c2-06a6-08d530442634 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603258);SRVR:MWHPR15MB1837; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1837;3:iKoWDVS0kGc92d5OntaU+oH+stpyC1q960iNsaJm/nkukfYim1gJEXiw/dxyGf9+4XZ1YITRAXPhk7hoLDcKq5dQcXAebqAA1WS77tDtruaQRTx5/Da0a4wYBpVUaJzK4hJc0sqRHRNa4cQNGO2uINuhtZizRdy440MHBRrWIRrfzCo+nHCeg4KQtP/rMEHXWHMt7+f88gl8HK+rlmTIxu46wxdJSN80Kmhe6ZO9hArjG4dx/FvAapU5fj2TedlS;25:ybKxd3WyfNp4ooLGJmjAouKg+rX3EMo/ZWZ2AuTo8J6qgcX8P6/z2cXRw3ER4lYg6HumOzavof3PzNYcU8Pw6wxi51MjERUpuqjduk1H3qBbVnzVfXrNVLKD+7M3quXJmvZAa4To6Spee6dTeuIcI39U/TQFuKLMOMRIzytApMUXLa8gbl2SiCgZX0/UlqQSo7+XdnXA9Fq+dv6B1N9GfT+8c5CO7pMdB4MFlGk+dBIB4MKNigXxJSMgaTxh0zvZRUOJ/d9aMBB4leIL3M9oUs3ERrNUikL0xot/LRfe5bQ9gJ82MBNGuq9pfzYctfvHO0IGFRRWyuuS+QfLFZ8U2A==;31:3pRMQch++wxbhOMT2wYg8qO/3bH3u5W9slELGeXete0pfkIqLqQVQp/sYZd5xsql35uTAM3uIamGCb9F4bP54qt1bumQjWiiDK6yvxayExZIfcyn4X+kAcNoYjXhli+xhQykgp+/ianecUn+ijOAQlOLwGjnjzTrqCzEUq8pcYTeVaiqIE7im01Swi1V3goztCebjYEylB+WYOcDrL28hLaOpMononw+oDedOFJCouk= X-MS-TrafficTypeDiagnostic: MWHPR15MB1837: X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1837;20:cKwHoH3rsUSuq+Z3wYtupwu0Ggs1nII4EL9zv6KDNMWWSS/b9RdO5GUFQa3mvvs9tLPuF2zKA0rJ+pckxSW+k/8MDYrycTaQYMArTG1RyQ1D+JneZekqUN7kT2dKc5tSlWkanhS1iuzpl6yGci17riw9hQyW3VfRR0+SObeMluWslYmI1kRVFWqyBJ1X+q9kcUPnkAk4P5XlPOHdSl2V4wK/IiC0z+qXcv4E0yA69fzY2PILUHgblwiTS80TPO8MmPQESQILybVGJzifxK0b9tyAkjlnKL0hqVkuqpqWOXyqMLaN1cJ4B1iWBTK6hPTvwsI4UGAsLOAE+yFxgRCe3yq5BYcZ839xxfD6wTQ8ouHhcY9RZgaTR9raxF51J7ooygHP0wUAwAMlwjKPF0hhciKCkf1wG1w6FhQaY2XLZ5kBSX1kLq2Gjlbc6zRnMDRJtgahkBhZLkw/DidCoHE2X565+pdcJN4J33G8GylzmLO/bC+TcdaJ0DZyavxEfL8o;4:Go47xlz8IduFAlNdRQVbQEN/fb3RYx8HLBOYUMROaitYcCONPDCkMBlDHnXReJfuXkyeZhpBIoxCKOrBl5K5uqZnsXB75tRRQABRlZ8cw8B1ysLbS+T7ogj5MwfGvS11bc6zR/4sSF5s6P0DNuEz5kNB4V9KDtiQeHM8FVYzchdNJ33ga4eJ7UyfuN7KXWd3D89UJmjns6mOevT9UB1Be67vp52AkuZaP75ffy637D4pLGkNO+u+lpiRUuSUY3KcbzTvpnK5P3/wJKwI+a4o0Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(11241501159)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(3231022)(6041248)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR15MB1837;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR15MB1837; X-Forefront-PRVS: 04976078F0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(189002)(199003)(24454002)(189998001)(50986999)(76176999)(229853002)(47776003)(5660300001)(101416001)(4326008)(65956001)(65806001)(54356999)(68736007)(58126008)(6666003)(2950100002)(6916009)(6246003)(65826007)(6506006)(6486002)(36756003)(8936002)(7736002)(31696002)(305945005)(31686004)(86362001)(33646002)(6116002)(53546010)(25786009)(316002)(105586002)(64126003)(478600001)(67846002)(23676003)(97736004)(230700001)(8676002)(106356001)(6512007)(50466002)(83506002)(81156014)(81166006)(2906002)(93886005)(53936002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1837;H:raviram-mbp.DHCP.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjE1TUIxODM3OzIzOk5zeEE3OTZJZEVya2NOVXMwbHY2VnZIUHo2?= =?utf-8?B?YzlDdjdINGlITGthVlh2TkdLbDVYTndBcWdScmJSSXVRWmNhZk1CdGdPVStp?= =?utf-8?B?eDRJZVE2WEovME9aOWtFNk5vSzh3ZTdOdWJ1dGNseDI0V0djN0l6K0xBRVBI?= =?utf-8?B?K1R1eXNPWWZFWG1uMmswUFkrTXdCVmlJWGRPYXB2NFJIb2xIVUZqVXZsMW5u?= =?utf-8?B?R2orVDVocG54aWJ3U3AvbEx5SWZidDlreCtFSXZQSkdUUWE2UDloVmlCcW5S?= =?utf-8?B?bnhhWHpENm56NzA5eE5uaXFWWWJ1U1k1U25Vd2pkT3g3Wmc2NW5WSEVHTlJH?= =?utf-8?B?WFh5dXlEbUhMVU5MZ2RIOVJxV2NqWnpsK2lKYkh5elNlYWYwL1NTOFRSVHFj?= =?utf-8?B?M2g0YzZ6TEUrdXFuR3kyMXhPK0JqS2Z2WW1YTUx4Q1RGem1qem5kc25sbU9O?= =?utf-8?B?QTh3ak56ZlpVajJMZVNxOCtqVkViUE1GWkJ4b2NOdWl4M0wzR3pFTXl2ZnRS?= =?utf-8?B?aEI4M0RrbStJVzQydmh5RHJXQkxnMGs2YzBid2Y2eWFDbXN0aUQ1WmhnbXUw?= =?utf-8?B?V2dURyt1OEt2T0xWQjI3aGx0ZWxqMVFBekNVOFlJc1FySDhEYzZVZW9WZStP?= =?utf-8?B?ZnZYc3NkSFRQSjM5N3lNd1ladDk1ZkFZaG9KWGZUaG1wZXBPczZFbUE2WGVY?= =?utf-8?B?RmptazUxTkgvODYwN2h5WVNNSDJZNHk4Uk54cXhyNzA2ZkVRNld3SWIrSlQ2?= =?utf-8?B?RlBDQjcvU2QrNDY3U3c0b25xRnpTbmpFUjgvRDR3NStscGhlWU5JL1JaeFlX?= =?utf-8?B?OU55VjNCU1ZyV1ZFQk5mZXZwMnM5NHFtcncrTnZ5YVo3WUkzc0JhdnRiYlA0?= =?utf-8?B?a2dXVjYzQ0FBbDZYeTRiNmNaUm5pbEFEOWlveWIwcTNqY25FMEhvT2hOcXJm?= =?utf-8?B?YmJ2aERDcEQ3SnZQNmEzd0kydXcrcE5IamtVVjFCVVB2bW9zOENLR3F2Nk9D?= =?utf-8?B?QkFieS9VbXFwdmRUZkdyRml0OUZ4VXN2Yy9FVVpqRTNRSnY5L0NQUVRsVzFu?= =?utf-8?B?YWJ4dDNUTy9IK0VtQlFxTjUyeHdndFpVbGxqVTFYU1c4RWF3VEwwY2swb0ty?= =?utf-8?B?dFBaZnpkOVZIcFFTV1RlcXc1MktkWlVoUVFOdHM0TnFabWZVKzVXTXBqQlo5?= =?utf-8?B?NWI2VFA1NytiTERYQytwVmRwa0JUVURsMGtYWG0vTFVkU0ZLVFdhTUNGUzRJ?= =?utf-8?B?aTFMZmhvcHMyQW5pSUdRQ1JnWTU1OWY0S2hTTkx1Y2NhQU5zb2xnSTRRdlFD?= =?utf-8?B?QmkwQUpUQlZhd0ZjS3JZcWRQN012T0t5THpKQ1ZXTm9nQWVzMHp6Z2dITzdm?= =?utf-8?B?OWJyTGxJRE1BaG9PTG5nNmovZVRmVDczYkRtTkdIZjl5MDNWcjdMK094cWcz?= =?utf-8?B?aHMvcGxjZVlMcTFiNEdYVW5hL0M5VGwzcHQ5MXVmelhPNVBiQlNMbmFtVkZj?= =?utf-8?B?ckFUVW9Xd0dCOWdBbi92MGV6V0pMQkU3bHY1c3UvSFRaK1RndDR0bFRLNnZX?= =?utf-8?B?aFI2TC9wM3lRaWJqUEdBNWRmcnJIVTJVbVhhUTNsOXRRbDQ5MEJpQjVSdEhn?= =?utf-8?B?UGJadjlTR2dWTlZuTXR2ZStoZ2MvaTR4RlJrYnF2d2pBMGkzZkw3M29taDBa?= =?utf-8?B?VDFpZ2luR1FKOEJSN29Bc092ZTRKeXNQUnJwY3BvOVdrMTMweFdZTmx3Zjhy?= =?utf-8?B?ZkZjSTZlMTNGQm1VSTZxQT09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1837;6:bmRc848TFDnuNaDmfvUm0irGRv0AqfivSCgadBGfIR9U4X5vbhGSbdEuxADToa/Nz7wmTeiBJIk/BKF3qVsGS/7J3H6T7W61FugCXAbBD/rZsuHQhPR4AQ6+RDzrJAffUeXWRkucYXpJ6BIqQFO2K9s5/JxNY6tdEyo3SNTZ9UYFo18739wSGOMF6ccsPrmy3d/aNgXR5n+0P0D8lDk0JvG1mbFdWpwQmggpLoB7jag8M0nMKaouKeLNBJr0ZkkRVamX128Of2B6yyyfuVAESBDnyZDGzFfxHhksLeIKv0F3W5lNRnTuLccOkILeIhpO0TXqlttERRTngsig7HuuLxVKX+G/8W/QOjTySIIaFPE=;5:KfSwwnBf8eF2DNfmDznJLxuiasCdIBugcF1d13I6Ghq8puiEorEazZMJtSQ+PJDBUZOuKsSje9eLxaL8ULnuTi2z4kGhG8pul8BLCZV+KiVDkWI3t44R0uXmgUs1leSrvaPIUN1Q11RxIdPsd7MGPt1HxD/0d34F5XwqXOvHbdo=;24:Xnoj3QOq8AwFJcs59TOamnoIEf/9atblOeD23vAAJtf7DlijsyoPDIOxqwzdWQ/hy8YdxLQaMusf/9tYCbSafsCQSyXVntvfWC+HvmRn2PM=;7:HJuepwooaWCiWEoEEK8dDg/S4OAlXWXkgazwx5PTht1JqcV5stb2EPwdS8iVcexgAbWqLJrevUiA9o+aUd8LC/6JrXQN5RsOiLGnhsdf/zK0nLTUILDpBhHdfjqGCJga4Zc9yltf4CXUXX871R++XUycK8a+nhJKYEgdC8C+jyjldwVguGYQ5Ykc1cy5N+kUH7LrS4ox4t+kAn97xGP13YU7hcp+e+CrA6mwDiUHzbP1zE0f4iVHEHB1laJq6Uav SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1837;20:lm7DH11oqi6bs0u42A20IfHDL51OJa9s0bmUGI8I3Th/3v4Xb2AWjNazxIZICEJx0yHWg4DVBfJuCKRF+awSEcLD8ORQ70vED2xyRNppTAQMC8AroAbbK9kIikPzTfLsA3VOvHODbGeEUpTWANaOP1ge2V99TpuVU/IO3I4Ul88= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2017 18:25:58.8551 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 65041fcf-88fb-48c2-06a6-08d530442634 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1837 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-20_10:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/20/17 8:41 AM, Oleg Nesterov wrote: > On 11/17, Yonghong Song wrote: >> >> On 11/17/17 9:25 AM, Oleg Nesterov wrote: >>> On 11/15, Yonghong Song wrote: >>>> >>>> v3 -> v4: >>>> . Revert most of v3 change as 32bit emulation is not really working >>>> on x86_64 platform as among other issues, function emulate_push_stack() >>>> needs to account for 32bit app on 64bit platform. >>>> A separate effort is ongoing to address this issue. >>> >>> Reviewed-by: Oleg Nesterov >>> >>> >>> >>> Please test your patch with the fix below, in this particular case the >>> TIF_IA32 check should be fine. Although this is not what we really want, >>> we should probably use user_64bit_mode(regs) which checks ->cs. But this >>> needs more changes and doesn't solve other problems (get_unmapped_area) >>> so I still can't decide what should we do right now... >> >> I tested the below change with my patch. On x86_64, both 64bit and 32bit >> program can be uprobe emulated properly. > > Good, so your patch is fine. Thanks! > >> On x86_32, however, there is a >> compilation error like below: > > Yes, yes, when I said "in this particular case" I meant x86_64 system only. > > Sorry for confusion, I asked you to test this additional change just to > ensure that we didn't miss something and your patch has no problems with > 32bit tasks on 64bit system, except those we need to fix anyway. Understood. I actually tried a little to see whether I could have a simple way to fix 32bit compilation error without using ugly "#ifdef CONFIG_X86_64". Maybe is_64bit_mm is a good choice. But we could defer this until you have a comprehensive fix for 32bit app uprobe on 64bit systems as there are multiple issues for this. > > Oleg. >