Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965037AbcDLSmJ (ORCPT ); Tue, 12 Apr 2016 14:42:09 -0400 Received: from mail-db3on0064.outbound.protection.outlook.com ([157.55.234.64]:14720 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932831AbcDLSmF (ORCPT ); Tue, 12 Apr 2016 14:42:05 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=mellanox.com; Subject: Re: [PATCH v9 04/13] task_isolation: add initial support To: Frederic Weisbecker References: <1451936091-29247-1-git-send-email-cmetcalf@ezchip.com> <1451936091-29247-5-git-send-email-cmetcalf@ezchip.com> <20160119154214.GA2722@lerouge> <569EA050.5030106@ezchip.com> <20160128002801.GA14313@lerouge> <56ABACDD.5090500@ezchip.com> <20160130211125.GB7856@lerouge> <56BCDFE9.10200@ezchip.com> <20160304125603.GA23906@lerouge> <56E07BF0.3060509@mellanox.com> <20160408135622.GD24956@lerouge> <5707DDA8.10600@mellanox.com> CC: Gilad Ben Yossef , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Andrew Morton , "Rik van Riel" , Tejun Heo , Thomas Gleixner , "Paul E. McKenney" , Christoph Lameter , Viresh Kumar , Catalin Marinas , Will Deacon , Andy Lutomirski , , , From: Chris Metcalf Message-ID: <570D4169.4010008@mellanox.com> Date: Tue, 12 Apr 2016 14:41:45 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <5707DDA8.10600@mellanox.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: BLUPR16CA0061.namprd16.prod.outlook.com (10.162.86.29) To HE1PR05MB1692.eurprd05.prod.outlook.com (10.169.119.158) X-MS-Office365-Filtering-Correlation-Id: 7edd5207-ffb4-45ad-829b-08d3630221d3 X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1692;2:5JpnqudT2tvQWYT9E4eQIIHaVmt5GshGrpfhQJ6L71dAGbMxJS9O3YaXuK3jKxeVDDetIwS16Smx4AzdjdNGPWdm1s2bTZ5w1SDcoF+FKsEz+lZ2Tw82il5ggHovJOI7qR0siTZ0VHkosr5ImnZhkzBuJsPh6K/22tc1UjF+eXd5oXTYMKChd+RqsG/d7j4/;3:RTrmVi9QdMkfDVNDIr8M+JWGI4UbHBUxOiFBZ+IwpD7gCYbrIshrf8GYjcDKnFMRJKo7p7a7bphYi5Pfy3H1UI7AWcLUYyQIMQU7iEcUmxHpBy43SwZCfeeo/shFpPIH X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1692; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1692;25:XconBmAay43fSXpcqr+rx/08ICRB4F/d4p2TzeSQZo7tVtllu/nluDCJmOItVFUUooHRW4Yak7o0rAZwsb2Nj6o09auCHHXnp3gc/A+6OiJkwirf45zWaTyBgjk5dPm9FW1sPM6Y1k6rMMknboMkBRY61S01XEct5naeE5gath/mh+YLG7fIQYBuBYcvTpld/cXoYD6++jO4k8lY0FDaLyHXYcB5VM0JSRZxs3NLLJohm69spgNUQqh7xQCuNDSU63HxiXLFyENa1PFVOe6xeGxBe1QzPTquHMIzfXMyvSIfUuBZWrxHcbzUByQeCPFi26A850XRqP71UhpqXffuqRCQaZ/APITw2OEg1gKKuTf727LpbfFybZcB/nE1OFHA6BfXPTJRh+Ig0HAy7roIYSQIsnH68Ph0eQR1IikTigKi3GSauXOMhb0zUGpsvTr1nMnqE7nl7QhnJo3wKW83RrrYKodyyGHHRXtFhS28v26c75AicUgvdEetJs5fE7YjXKhJ7z7Yxw9eG8QqGqGywzLvHRCtjqdk18dpRed4b4hPvCPFIcoNFr6tQULbMt1/7WdVMhE15ScaZH8roU8IVS3pm+6+eQHS3XkEJIK18qj6FgwXrqkIVnViKHjiUzMmA/GLFI5neBAnWXHgrL3tCojQvjaeLkfaPjL8KlboerWzmgtfYK3NjNUqrIToft5VpYgofO/qmc5Bo5o89flAgdKMhqN48kXK2lvyZ2zR26E= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1692;20:pX0K9LU/HHiVo6erFVRu3xGjEr/Uw0X9jNJsdlntuvT00x/LiBmFlM4u3FZtbCkSdxw9VGFH1rIJGcKLk7azRUTSpKCESrFh4/E7YWEWPjpT9XitoPGMgMOGhVRkUdB668B7IeHSUzpOFKQ77c7lXKjdwSPAPQODPACpaZ8sz0O1ARfWcV94OEWrBlpkgaWKkQHIFpqkYghGNeT7A9Xsk8/3H/eOszltaE3X3CMgUC5A98CzIymBuFhfbz7H4K3Q5b3EG95gmTiBa48Gq5kBYW+simrOKVEhVfU+PzPqBXzrXOae7tdp4c+wYTOg1qZYj/FqMzs1eV3h7Z5V2VwVLSb2D8BxNNWj8uo1rIMMVT27oN7uxFVtcTyMoKSgAAe3MmxLu0V5mVDnvJ9P2t3+lyNum7hboyihHtIHTOCH2aAVGObObaJlj9sZCjHuPd7MgnEYb89gishjCkBuqTXqUG7K44S7J6t6wySPUl9jnA5khFvhSB9TUR7/fl05A2Y+;4:1N5UMciD+w1mXcUs+wQwMvWsbLBpvttJf5334Y6k5hO3V4Kx9T8LfdLnH7aZ3eJtgJHW7AIS8KPg9kQdlhMG4HxJQ+rZ9BqAFxeAap38snxMi9ivTjCX6x17b/h4hflXXLjdtMnv3BTpHapnfwiFrwe+E4IzjD8yQ6A67ldSUYB+1Lm59WsxwrbmvSrR9ittSRfvCI87BZhSBh6Wp3oI24vI2m8bXvOcjytX9sJh6kq0911dfiQU+vUxQEDdNyhBINRAGsp/rPtiOmrs2rzT4bSq2z0G2AEIomc+CTcLrRh8/UybzTP2nvgg68lzCP7fI8kiPJxwxrTWLAj9ymy7gqts6yPm5ToK5M+t7uMxGhsUsoItkHW3MMHHQkUhYQYH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:HE1PR05MB1692;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1692; X-Forefront-PRVS: 0910AAF391 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(52314003)(24454002)(377454003)(81166005)(36756003)(23746002)(93886004)(65806001)(65956001)(64126003)(86362001)(66066001)(65816999)(87266999)(50466002)(76176999)(83506001)(50986999)(110136002)(189998001)(5004730100002)(54356999)(33656002)(47776003)(19580395003)(77096005)(80316001)(92566002)(5008740100001)(586003)(4326007)(2950100001)(2906002)(230700001)(42186005)(6116002)(15975445007)(3846002)(1096002)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR05MB1692;H:[10.15.7.169];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR05MB1692;23:qMfNj1V60DjonQ7XTrE+iQULzG/5tqzRy+wNf?= =?Windows-1252?Q?/V5qZ+GifC1TpBwFAqtO3o+FRhkBsrsGGLAq3sRCLdniF+lFGoHo0uTI?= =?Windows-1252?Q?tUfF3w1CHPCiYMug5dAy/SHx4DpYGkGnUePClLycAl6HsszYsaxw5eww?= =?Windows-1252?Q?umwiVBbpo4WCB+q+70gPWLCc6NgvaJvA0B68H6CD1XvQheqyYp6mgCpZ?= =?Windows-1252?Q?o7k/GAkImjcZ+7OsH5QiER/No4IX/atnMJGFffPdwh8ef+DCUVSemK1m?= =?Windows-1252?Q?GwKoSHSCA2QgBPdQrbldY8SDpFBbByUUzLgEvFKc0Uw2Hlg7RUHFXI6r?= =?Windows-1252?Q?JUncuWqLnQ7fc3SZ5ysQ7VhEbqg1pr6fGnlM/nR4Os8LsjDEsov5J3n/?= =?Windows-1252?Q?CaaoAjQyvBieqhDSz0+QT0jYw6bjl+Rw8hVXerg1iLj5tfyIwdZGytug?= =?Windows-1252?Q?1h0IhCE1dBO71avRcT2yXPs/0Y5qClE5MKNfcxJMUMjx3Bg58aEX4WkD?= =?Windows-1252?Q?/kOO32TwhCSaiz18/IQr8r2mNHNMnyLWjGk0IgMVpUrhsizoLln2i/M8?= =?Windows-1252?Q?xe+nLPBfMwngVqnLk/0Ef3K0XfsmjvLlNBEM2oY9R5+OlA1yo5CmxdSj?= =?Windows-1252?Q?XGQ/dkeKc+8c/HU5ZfRpxXbFMXJwZs0MeTJs7oLHExo45LdbImgD6Wba?= =?Windows-1252?Q?bam+zE1WWjMznhZxIc8C2CXHZbuzVHMsQEst8SeQn3dw2ZiA4zIDWmZ+?= =?Windows-1252?Q?U6rZyMJyNIYxHOO4o2FWkxpGpwpJ7v7SKC8upglYZBGZW6tvxKiSMeeD?= =?Windows-1252?Q?cU69HDJ5s7sffHixpn/U8RoYCuQSN212NrmaU+QfGv8cxL5AdTay1V1k?= =?Windows-1252?Q?G5P0hvomRKBI/e+MDrRqeS0HVHzK2jOYFZckpC7X7yLEDTR+QKBPVeZZ?= =?Windows-1252?Q?+dtOMgGdP/WFC07OhR1kcu6BHuK9SIIs8kCuKvDCRPAM/2s8NBG2BxuU?= =?Windows-1252?Q?UzeLWudTSHZdgE9ur97fEXUknpdPJ6dl3r4ceHxb0YrR9xbL99JhCUbL?= =?Windows-1252?Q?LWaJ7F9BBISgon1RY/biu5E3xcsygR8vuAHhXPbAnY6tlhWjE3LgExxv?= =?Windows-1252?Q?9K4zYRHkCKSl9CrGUvbshc6TPGTf0J2MC7KYkTHf/kvKKFLw8zpA/mAr?= =?Windows-1252?Q?5D0aQ6dJMD+1GvYWItrXxWlD4yZCro=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1692;5:36/j+PZH1JnPkJDLGnPw05PUH2pd2SUpzH4vtJ7gYXJWRd8TgucJwmVGZ2nvGbf8N/cpm6hyaiabG0cjBiXLv2Zb1OB41RMvCPcNXkBnTcGHqlmvcodRthzsyi9xHMdyOqAmbDVnFlyf6xvFKctLDA==;24:hLXahHOjL3huh4KhP2ZKwzKLc7QD/jkotpNNagdTFQgxbHFOep1DobGRgD/c9Dl10iqNtD041ZYnHhDKSR5dXFGEWXCtAEazUouL6VZZ88Y= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2016 18:41:57.2340 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB1692 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1961 Lines: 46 On 4/8/2016 12:34 PM, Chris Metcalf wrote: > However, this makes me wonder if "strict" mode should be the default > for task isolation?? That way task isolation really doesn't conflict > semantically with migration. And we could provide a "weak" mode, or a > "kernel-friendly" mode, or some such nomenclature, and define the > migration semantics just for that case, where it makes it clear it's a > bit unusual. I noodled around with this and decided it was a better default, so I've made the changes and pushed it up to the branch: git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile.git dataplane Now, by default when you enter task isolation mode, you are in what I used to call "strict" mode, i.e. you can't use the kernel. You can select a user-specified signal you want to deliver instead of the default SIGKILL, and if you select signal 0, then you don't get a signal at all and instead you get to keep running in task isolation mode after making a syscall, page fault, etc. Thus the API now looks like this in : #define PR_SET_TASK_ISOLATION 48 #define PR_GET_TASK_ISOLATION 49 # define PR_TASK_ISOLATION_ENABLE (1 << 0) # define PR_TASK_ISOLATION_USERSIG (1 << 1) # define PR_TASK_ISOLATION_SET_SIG(sig) (((sig) & 0x7f) << 8) # define PR_TASK_ISOLATION_GET_SIG(bits) (((bits) >> 8) & 0x7f) # define PR_TASK_ISOLATION_NOSIG \ (PR_TASK_ISOLATION_USERSIG | PR_TASK_ISOLATION_SET_SIG(0)) I think this better matches what people should want to do in their applications, and also matches the expectations people have about what it means to go into task isolation mode in the first place. I got rid of the ONESHOT mode that I added in the v12 series, since it didn't seem like it was what Frederic had been asking for anyway, and it didn't seem particularly useful on its own. Frederic, how does this align with your intuition for this stuff? -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com