From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752175AbcHKGHJ (ORCPT ); Thu, 11 Aug 2016 02:07:09 -0400 Received: from mail-he1eur01on0088.outbound.protection.outlook.com ([104.47.0.88]:5362 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750708AbcHKGHG (ORCPT ); Thu, 11 Aug 2016 02:07:06 -0400 X-Greylist: delayed 25136 seconds by postgrey-1.27 at vger.kernel.org; Thu, 11 Aug 2016 02:07:06 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=cmetcalf@mellanox.com; Subject: Re: [PATCH v14 06/14] arch/x86: enable task isolation functionality To: Andy Lutomirski References: <1470774596-17341-1-git-send-email-cmetcalf@mellanox.com> <1470774596-17341-7-git-send-email-cmetcalf@mellanox.com> CC: Thomas Gleixner , Christoph Lameter , Gilad Ben Yossef , Andrew Morton , Viresh Kumar , "Ingo Molnar" , Steven Rostedt , Tejun Heo , Will Deacon , Rik van Riel , Frederic Weisbecker , "Paul E. McKenney" , "linux-kernel@vger.kernel.org" , X86 ML , "H. Peter Anvin" , Catalin Marinas , Peter Zijlstra , Francis Giraldeau From: Chris Metcalf Message-ID: Date: Wed, 10 Aug 2016 10:30:25 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [108.20.173.108] X-ClientProxiedBy: CY1PR21CA0019.namprd21.prod.outlook.com (10.161.247.29) To VI1PR0501MB2768.eurprd05.prod.outlook.com (10.172.11.18) X-MS-Office365-Filtering-Correlation-Id: 9da2be4b-14d8-46e5-ef93-08d3c12ae65a X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2768;2:nTWHr0su8/J+hWRkTsMRd9yQSF+RIZJZrJ2lOGM0hiZquK2LVC2WQKlnLNRwrL6y1K8RFTLwllgaNz3mkLY6wX0aRY4rIBFC6gULUa3Q0Y4O0Dx2Gx7Uu+qr7+iZcnKO+OhU7CcM+WAlXjrwWkvYpS3jHiKIQAH6/q8l5exZp5w/+KrfOdvcPRyDrNYUyHeV;3:mQbfsi7GAwTkxUNVnfG4xMGpfy/iDMzf95cXaJ0Oj2gNZAk9Rc9LQwfLu5ouopPYVsFDdFsQ89secZZHQT6fOhW3WqFXLG7WjsdQNaj4pOH0shjWG5YqT9LiSezbhSFe X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB2768; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2768;25:HdJHcyBoixFlL4V//yx6WlGfmrmjvOxqft2epOCJPrRWVMzOLKidFJlsxOXLUSiJBBMWj2WDUUiUtrfrouCox+a8k7Afl1Jg7ItiX6X/Rzd7dwVgERhZkJi8ZcIqdZppgImkLd1nTBmxPBu+d27Wg/LYtHnxkkr6qLxJHqPWWElT/NlVfrfqUZ9QCAgOHP0A9hUqaLIiyEn7oKPdIFh2YVSanUh1naRy3Crlb1NKhYi+mGpn2NYGW2rjc7fKPw6TYxNYSllHz+FcitiKtwFeQM47fu9vfTxuJ9jTudSsj2sWfQgUyWlmopYPM0lvNfOU2lIyv/0u9lLwGOUfOlUmXJsQHDIoiO8uULcvumPY1ilT0fN/lhmjR+dZ+VjORf4JRzJ5PNPZUCfoXI3H2BOltfT5FBz+cw9wkQ9keIi5AAYD0NVsZKjievwU/x3rv7bsjTnl93ExpmcLTWb8QkiK4vqDVCvrPxNeEg18y0LTVqLxgTz3/GgGF/vMsbgdEMnn+I31WUodsKmadPVKBYpHKwckzs8Fd9sWeJuE0+Bi5xbTvR3tL4cTUecTHgemugIChNGoxrfr3z66R4sxAo28TnwQXwbgOjri/A/aMCuei3atLN3yph6LxzAGdBglCNjGMOsiWkftlm8t5VLRZNlEG8X6QTFIdHFAwypp+Eg6QDV0x6iHL/6PlEkaOGOOjDjALnhpCmmzWVXINT+PuO0SvngJW99IW3ldF/vQM812SsWoQrAaFQ9q0sSBQRcate7jASQPkoCqXl0Aw3Brz00mh/AgX7t5G9JslfgY9Orfme09aAoC38WIS+wf9ji5MEVcgJ8SJcTcBwqmDSS7zDc6+w== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2768;31:BJtF73qZXNCfKyaot+PqLKfEsZ7Dw4/RCmGu04d/lePd3XBNG7lRC1terJKIURAXo4o7MPbAxqVuVxo7L6TQrPJ54RyaT3HNZNodBIZ2KNn4tUa+mOrO08BXUJ+VsQKNUznO942B5tAN60iiDGWCgDF49v2lGTwkucwWuNsfIzx3Fl7AXhH8by1Vf2pnpxfHhFyurK6W+GZXpfC531Jvg8jWOOkXEhMBylK1gUVjBKE=;20:1Ec5Ee71IOqIMD047yWkTg9UbcZKBUM5ITqU0NSgtzJbYkantHXGp8M5ePHz/3YO/m67ZIPBYV525g+nTbyzFU554aiYBnSAVfEavPskNi+mKS3Lgv68osqgL/1pq5xA6GZwJijPFQkZ2JBKxq6rBWeFpXwZ9hCFnpnjL812qmEvgANmrLPgMfjw90eeBW317vTqKH7lhU0wV4y2Dd1a9ngZIP4kRhKnxnGd1INosB0MMY4dJtT/Yss46pnBogYHL92yhhZAvIdjZw03/gJ73pI4Q+9st34qZcPCzPZTr9gfWPPskMtXGWK7b/Z8oe0kxAv6PIaKGbmDARum1rlLx8sOpRWLnA2cbdZaza7n18129E5sGkPjWVlp/sv/2Xjs4fI4ww2bPnYoQrhAfqH5bpaNQdESKz9VqGkrhuwrmFcS8O8krxH1R5GqypRWWH8jEw5eUoyV+DQQEtbdBlbx7Y7Q/wcEwnDp6MTooYl/BTo9IbScUDEqVyzsM+E/qaf1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(171992500451332); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:VI1PR0501MB2768;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB2768; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2768;4:IS8lrOmVuBDFCMRM8COA274Wynbic5A1V/V0zWwczk95DTEgsKOTwSVrCTrMA0FrYtD6/8Watkx5Y1FUTHeNVFUqk85tjtnZfZ6IfrVPk4eF8McZMXyAJXKQQIFXUmf2LHiz2Cbk/yzSBQ+EL3wFer40FoqDnVkFgFnHHKcU75Hz+poBoyUUq8FJJy6Ae+nznSW99e8GtQ4MlrjPxDdb6MpoYlkVYdY/wNltFk5+5ysRgAhCoFPVJGXHAww0nPS4AkkxE0WZSzSF+jsIxZvSlIkG8FZKOmTIrzVktpNLVYYWUBVwv+uZHIjlpqFDKHb+fh/2/x3g4NLaq0urlVJL1V6vUM75HX6hnmYRjBb/hYMtKar87r82Q1WAWo8DMlc483iuHG5/NkMMn48F07QF0zL71fncwnr4Hz7OzrXzegp8FUVPWabHPEifv2HjJNpj X-Forefront-PRVS: 0030839EEE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(24454002)(377454003)(189002)(199003)(54534003)(83506001)(230700001)(64126003)(65956001)(76176999)(4001350100001)(65806001)(66066001)(86362001)(4326007)(101416001)(77096005)(105586002)(7416002)(81156014)(2906002)(47776003)(50466002)(92566002)(81166006)(36756003)(33646002)(189998001)(3846002)(68736007)(305945005)(31686004)(8676002)(23676002)(6116002)(54356999)(586003)(50986999)(117156001)(31696002)(15975445007)(19580395003)(106356001)(19580405001)(7846002)(7736002)(110136002)(2950100001)(97736004)(42186005)(65826006)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0501MB2768;H:[192.168.1.158];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA1MDFNQjI3Njg7MjM6WHlwUGU2aGZwTGprR2pDZGpIRE82Ylps?= =?utf-8?B?c1lTRnVjZThscGN3Q2RETmtGNkRXQVF2K0w4R0NjZy9kWmgzcUt4MjladVQ3?= =?utf-8?B?RkhDQjR2bllTU2RIOE9HYzVmRDFRUnZkWFV1ZUhMcE5CKzcwQnpUTG5rUGty?= =?utf-8?B?M3NCTjFIMmVYVWNpTzVUMFRtZjcvdzhLR0xyYVppTEtYS21IaGdNa1hrbjMv?= =?utf-8?B?Y2svNGwvclhkdGpIWjF1ZjRDbkFVTlZNUGZDVXZiRXBvK1hsR0ZpRjhkWGQz?= =?utf-8?B?K3VDZDhNT0lqbXhqTzlFemdObVcycEFRYVVEekRpQ0RxdHRzTVg3bE1GRmdj?= =?utf-8?B?VG5uSVpBNVlhVVBGQ1g4RFZPRUFoaVpOaEhheUtzdzNEWmJlblp2VkQ4amRF?= =?utf-8?B?MW1KcVcvUElQV05XUUF0ZHJQa0d0ZTdzRCtKUE5tSFMvMTgzWjU5cFZDQWJw?= =?utf-8?B?TjRhOHd6cnc4SVZPMnBBTmtGcGRGa0FXN1BOVy9odzZFbElGNzBxR3VXY21Z?= =?utf-8?B?ellQbzc5V0lJRHN0bDdPMFlnbmtRVHlyNXd1TVlLc2VFWndNbHlEMlU0Z3JP?= =?utf-8?B?R1Vacm5sdzlrNGxzZTczaG1PbHR4MEFMUXMyQ3l2d1JQNnNBNUxnTWNKMDJQ?= =?utf-8?B?Z1VCYVZaYXdTSUgwZmRGQmQxM001SC9EWXRPUE9XWHkvVzJlMDY1Y21Cck02?= =?utf-8?B?cjB0dS9Ma1E0NHl6VCtOdHhiM3FRRnZIVXFuVG9UZldKWC9vQXBiWWtRemZF?= =?utf-8?B?YzdoMG9IZ2F6L2c4cXROZkY3SHdEWnIwSW1rQlpHNkMyczZjVWYxcjl1bVVq?= =?utf-8?B?ZDZRZk5aM2oxZXBVM0hUaWpBdTBiK2o2Ujh0ZjRUZVZ1MmlKRzQwaVpMV1Ur?= =?utf-8?B?dzZxNlhxdmJYeGc3VmhET1FsS1ljRmtCaGJkb3ZtMDJiaGpTdHNyUlQvQlQ0?= =?utf-8?B?WmpQWmRNZjBlVld3S2YvM1QzdUxUMXNkdlZScmpkbDJGOHp6NmdncU10a0py?= =?utf-8?B?MExGbXArVXRkeW5EUENtdG84U1l3NkdmNENXeGhleFJiY25TcXRKYitLSEVH?= =?utf-8?B?bVRZQ0owOUxUTm95cWhXenlpYnBVMENxeGRqVnpmemNnemo0NE9zdGlBM3J1?= =?utf-8?B?cjNnMnRYdDllTUYxcElyRXFwckRwK0JuZ3RIZ2V1ODRHYUlmaDkwQ1BEalY2?= =?utf-8?B?azJpK0d5M3JSeitEZEhrVXJJN042TVdHZHNKblJwRkQ5YjdaQnRqWHlLTG5a?= =?utf-8?B?L0x6R1NKS3B3NWpRaWUyaXJBY1hQQVZXdVFhL3k1T2puaUZmWHplUkFRTUtC?= =?utf-8?B?Nk11WFI5K3d3UzdNelFacjNmVlpTN3F0MnZ5UVplbm9PN2tmR3Y0V3Z5RUZh?= =?utf-8?B?YmYwWXQxYWR1NHdUd01DY2o0SktwOFpycmVBWk9lSHlLWDdOSG9XSml2Tnk4?= =?utf-8?B?RElyS2lvSnBhTUVTQU9OSkJSeVJhUXRIcC9INWZ4cjRiRGtnWlFRVFNnRVBM?= =?utf-8?B?WXdJSi9oWFpGcHZhbDJnNlZaNWkvcUN0ekVrRVlxZ1hJTzZ1YkxVeDQ5cmhF?= =?utf-8?B?Z3c2MmgyNGlQTE1ORkNvTU9rTWhkNGk3RGgyUW83LzRZVUdKdGEwZEFUcGxW?= =?utf-8?B?cHVsV2wxMFN0OFBGZ3lvblFyYVNwa3c2dy9ETi9PNnhTVnkvUk4xbkVUVjFC?= =?utf-8?B?aktZWjJKK1p1bkY4UFZPRFo5Y0ZpblEyNXZDR0dpbTVPWXVQVFdGTWRHYksw?= =?utf-8?B?QUVOem45MzRNeHN3QStnZFNrOVhQT2VmRnFuS2RjcjFMTCttc055YkV2MVlK?= =?utf-8?B?WTVuK0tYUVh4all0VDZQbzRtRWpsTXdYN1BaRTExcTdIRjFYOW82dkl3N3pl?= =?utf-8?Q?CTUTDHKK7Egf0=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2768;6:ElKtnEJaPyshjmnj8TtfYh8W45xIuTKbFrKGO2CgSGpY3OrYyGkJr0SeRiE9rtDtGZpU2NM5LmlF4Qix4+6zqrsg/BIqMlc7cr4iTfRePokpyny99dFPLvyynjk+bL8oymCD69Fj4mqIyDhzUP9Fw6sQ1XeoUo718mqIa2EQ9gPg+Nc8uUqCyn1YOPTnMxGxD0ioxHBWWpaNC05CChy29kWsdsnKlMoaOrakU1ZZDcVcxL5wWJecNbcgMks2DLOkCtKsnHgnrn/WG7rrFNMZdvNHoQA02prySkQVdndYqssJNQcJImZArNkiAaNQXNWNR4FgzUbQ0VS1DBY7L5zVmw==;5:bs4aGf2+WXtKcOQCo0cGMbQ6R79ZF51tsxgT7l5LDPp8TadQdd8M3bWg4RFDZhu7/3FDQiQPvvh4/WXViT1YROpeDrBKY3nvaQNl95Muy3AwO0bAiXRM97TQBujTlt5JzNqKEAbe4fbP99RGWyfuXQ==;24:0eGNlV9pGOHMDka4sn/oFzYLy8rjLA2tUYXIBGVATRnCvstjvgrJkcUlxS6vsJagt6VT767SdWtcSeHpg1uYs/7byKvvuee84E+G1KIup0w=;7:WFXuvZ+fi5Tkw6uVM6L4D+npXIPx13Ag6E7ZAOmPg+hk3EESdYOin4oEXN6P4WgeF8U49i4jpaLmacqI5Hez8eTCg0e6wzNGtD3sfYKZSs9/GP1SDb9PWWWGE8LBl/G6nFhjK4RFOEnsnkGLCQQ/AAB83W/XLXcibvb1wXD8S/vuoxOWwAr1S5hlGAyWSloGGtOHJVg9iia8PX+ZSu/EH/atWl0DzerBvbeHkxdsDUzG/A5zys/dNK2Yopn3mgl4 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2016 14:30:33.1181 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2768 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/10/2016 3:52 AM, Andy Lutomirski wrote: > On Aug 9, 2016 11:30 PM, "Chris Metcalf" wrote: > @@ -91,6 +92,15 @@ static long syscall_trace_enter(struct pt_regs *regs) > if (emulated) > return -1L; > > + /* In isolation mode, we may prevent the syscall from running. */ > + if (work & _TIF_TASK_ISOLATION) { > + if (task_isolation_syscall(regs->orig_ax) == -1) { > + regs->orig_ax = -1; > + return 0; > + } > + work &= ~_TIF_TASK_ISOLATION; > + } > + > What is this? It's not mentioned in the changelog. It seems > nonsensical to me. If nothing else, you forgot to update regs->ax, > but I don't even know what you're trying to do. It's mentioned in the changelog as "Fixes a bug in x86 syscall_trace_enter() [seen by Francis Giraldeau]." To be fair, I didn't hear back from Francis, and you're right, this doesn't look like it makes any sense now. (I've added him to the cc's on this email; for this series I had just put him on the cover letter.) I modeled this code on a snippet from the old two-phase syscall entry work: if (ret == SECCOMP_PHASE1_SKIP) { regs->orig_ax = -1; ret = 0; } You got rid of this during the 4.7-rc series, but my code above was at least plausibly valid until then :-) Regardless, I assume that the right thing for that condition to do now when it triggers is to set regs->ax = -ENOSYS and return -1L? I'll update the git repository with that in any case. Thanks! >> #ifdef CONFIG_SECCOMP >> /* >> * Do seccomp after ptrace, to catch any tracer changes. >> @@ -136,7 +146,7 @@ static long syscall_trace_enter(struct pt_regs *regs) >> >> #define EXIT_TO_USERMODE_LOOP_FLAGS \ >> (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ >> - _TIF_NEED_RESCHED | _TIF_USER_RETURN_NOTIFY) >> + _TIF_NEED_RESCHED | _TIF_USER_RETURN_NOTIFY | _TIF_TASK_ISOLATION) >> > Where are you updating the conditions to force use of the slow path? > (That's _TIF_ALLWORK_MASK.) Whenever _TIF_TASK_ISOLATION is set, _TIF_NOHZ is also set. -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com