From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753216AbcHOPAc (ORCPT ); Mon, 15 Aug 2016 11:00:32 -0400 Received: from mail-db5eur01on0077.outbound.protection.outlook.com ([104.47.2.77]:14016 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752748AbcHOPA2 (ORCPT ); Mon, 15 Aug 2016 11:00:28 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=cmetcalf@mellanox.com; Subject: Re: [PATCH v14 04/14] task_isolation: add initial support To: Christoph Lameter , Frederic Weisbecker References: <1470774596-17341-1-git-send-email-cmetcalf@mellanox.com> <1470774596-17341-5-git-send-email-cmetcalf@mellanox.com> <20160811181132.GD4214@lerouge> CC: Gilad Ben Yossef , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Andrew Morton , "Rik van Riel" , Tejun Heo , Thomas Gleixner , "Paul E. McKenney" , "Viresh Kumar" , Catalin Marinas , Will Deacon , Andy Lutomirski , Michal Hocko , , , , From: Chris Metcalf Message-ID: Date: Mon, 15 Aug 2016 10:59:55 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: DM3PR13CA0015.namprd13.prod.outlook.com (10.164.193.25) To VI1PR0501MB2765.eurprd05.prod.outlook.com (10.172.11.15) X-MS-Office365-Filtering-Correlation-Id: 5addb567-ae83-4eb7-ebf2-08d3c51ce251 X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2765;2:Wog3b/r+Rp4E/QLYWXqkeeCPg7ZoqAVGhOo5mCLa8J0xHF32y0fRnwd7CKbLONmrlT8gMx4yzJ6stnoQc0/gCWhUxxjptqHf2hYugiIKdA2eDMsWYRukvU85nHCOiQZxuhqFJALUT4jyH7A/HCcOkK7Mq5Dkn8Z2BXFIrPf5a0Bgbu1byxVuhPoUsuGWnhHt;3:ZcV7uqS8R5NzKeYHyy9Z++q8phxpvB2ee3KNicBPbxVySs/4bDyqinPXvcBHbADm+KVW7477Ku3dwI71ztFINgAUIKTnVj0cOjYA/HvKRQYvuwQfJ6TtGaL0jNBJ9Jp2;25:YxrfjrcgZZEPn2VMVoSKLFBTp1hgEwOCRtAi1+QZOhrlEuojwZp44jDTO3x3HmW2kLQ/S0ZFWMMs7TQQXSXmUtpOMJPzFA4uqTwxRo+puNk5i7Kfol7ZmIrLFKOkxpCakkHJR747AcEi91nZCbCbt6KwoqutcKYEMesJsc2v5xaVjEZNZXPKnnrooxNrdHU9AShy9vQVLiZ69o7I/NCnjJsMiLoF65CGW0A5q4On8w5ZOlqWmn0pxiUK4yBmNcz+IImEUiYZqPJNF/+tdiSN/1z0EKEIHNsytkYmzW/d+1HVjDe9dRrVuH4LzkdkBJOSVQhZZhKuyGzIKnk8S5ISdHPYLTS/2foYXg7L843WW5Y0qlmkSzxjLXZ2HbqsiPcj61KvWAyEMvlmRyLZE5CB0xnhz0wIo03Bzq3C2akH3Yk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB2765; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2765;31:aZhEzFfwzWUwPaQDKbbWQ5dwX6Nbse2nyhHxD0OsfWgKQUxzMTUxRVppUwUfEnqnfy8WVX/hu2TImnsmpw5WG4exj1fnmV2MUAud/xwh1Ho/d5cFVJxqMXnv/d3JoRPhnJlGvZSdqPr0Hf2kyZWJv5f4KWU8Qd1tmqKZgtvUtN14FRqfVcyB0AQSrjPiV4uYYBaqQqUHxaJdYdvGw/DP1icwCF+AUv4xk2B5QvhE7Ys=;20:4CD6TtVdmJ0AmZ/7/OhuXVTabfO3OOuNKACrhwD51UvhC+4Az6PGRAJORtBHpiq+6bjESVO9QTnMjcRfHN2vps9s2mKAsVhZMpsinxC36I47SEPi/OaaOq2aIaShtgIw6zOK0Gr3ItYDH0gH96YCuqq9ogaqO23bs24IK/Kkud9KHFOUKYqPlh9XhJaLe3KUwAuiQmxKHSTEpzD0HoEoHIhi2ePnIQuhD42jsMPoc//YCczJn9WTlySg6y/nafuO9yjEUhvlK02WNPkOw2IOxTgZf9FJyKWN5HDIWcFwQZVUPjBVElk930aZkLIowP+KKkbKMhHVf5E5fzg7fwmzmXryp/RSzksM8yZJJB2QdiwODfUrBSQMjEt55Q8fdZql43igUErJpSVOfWbrtJBDTcJYS2haE9YHaclCMvROryxYlHtq3pN8cYAYBq890QEfTv9j02JgSt/aAZcAFz2DoFfYErkX/gjBDgwRPV1pAhwNUwTXBq0hMOC1AuwbKOac X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(171992500451332); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:VI1PR0501MB2765;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB2765; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2765;4:m3PeZloXnR6BCtxeCI+BDhAb1pEoNKhhNNI8vcgKWMpcaiNMHkprYyzkbc7MFm5eBlGpb5rz+wsfHii9Zyhe3GoH7Xik0n9PsNj6FRaxHXBTKV0gWf/tWsSTT51Z27atvspGNi7PYD9F+UGJgAZlFjdi3B6zfXYywQtF9gXXUO/OS8/ORhrmOV93DIJSjBVFHgLRHeF7e48C/H411bmizvAl36SsPkF8CHCjUTQs5T4dgxFObqK915S0de5oSWXiplQ/trvC68es9Mef4JuLr3yxs+gWdXtn5PhBVlk4Qldayql09M0tIva2EgSlx9fg03ed855YyWnhc8I0/TLUbqcj3r+Gd86gbKTiDoQkvjGRMdeYsbQCwRaN0XTAhPdOc1msMuSE9t0fwJnF8X257VxKT92WZzG1zbGgVsYGwvCEPpssQPX0+UbDBEFk4/hBX5zDYmLReYnK422w6M4DxA== X-Forefront-PRVS: 0035B15214 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(199003)(57704003)(377454003)(189002)(24454002)(50986999)(65806001)(76176999)(54356999)(106356001)(65956001)(101416001)(6116002)(36756003)(230700001)(7736002)(7846002)(81166006)(586003)(3846002)(68736007)(19580395003)(33646002)(83506001)(5001770100001)(66066001)(8676002)(305945005)(105586002)(47776003)(93886004)(4001350100001)(189998001)(97736004)(64126003)(81156014)(31696002)(86362001)(50466002)(2906002)(92566002)(31686004)(7416002)(15975445007)(42186005)(4326007)(2950100001)(23746002)(77096005)(65826006)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0501MB2765;H:[10.15.7.181];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;VI1PR0501MB2765;23:oILrlHnjxz5w1kK2+9ssMGULraj+hEKx+Qz?= =?Windows-1252?Q?2CeaDFKOSTebRRIYBXgW6jpy2mIsP7azZVo4Dp394UU7R6NwVKPZiVmL?= =?Windows-1252?Q?W7A3cWVE+imltvhnPPwEcoALynMRClpkBvjBKKenm2c+9qCafwpn9Dob?= =?Windows-1252?Q?BT+Unu9PfQyNSsQsuEknOa6htI8GDOh3R4gaIfS/0I6JvLDAG2+qSRRh?= =?Windows-1252?Q?ORuNoyxpQ10chWShHaqXETDnpspzRQcL+YM4jb7j8olRDEQrYRounWuw?= =?Windows-1252?Q?4DrN0pGZmEFo0qA1SXBbku9db27tw+rRAce0k/jfX3CzmEWa5z0q6t0v?= =?Windows-1252?Q?9IpEmTN7oBN2Oe6yEnwgqOsd0y8/XCs/2NF6ngw+ZIUTR3l84L+1JHAg?= =?Windows-1252?Q?hUOykATBcivcMc7fOMTaB1APmrGV6zASwAN107XRNqG8OqmoiNenHAVz?= =?Windows-1252?Q?RxyCdHSl7pJc5GHBXuZSCZego/yfNu4K/k9iP+yRj9U39BxIKr2abltI?= =?Windows-1252?Q?ePGvshaC0ZBHaNGsMBhiMOhO7acWFgleqm0HeavXfcpt3zt92YnzaI+K?= =?Windows-1252?Q?EN0ZfDVZ1Ec0afo7qc3oyt3HuTsOhOSIrwMf2nh3553ATO52hg02AtfI?= =?Windows-1252?Q?tppQtuzOgXm5yZES6t4kx9er+UwWcDva5/7j7UM86nDZNkRp7Vesbonk?= =?Windows-1252?Q?cDEVSZHVW8ltyB+ntNha5Rf16EQbaYIm42qdiYIYo6h3sAPYNAUc710y?= =?Windows-1252?Q?8smPQhOXZkD8J7odBY+ykQVtiAdZorCO7tARnBhTazTMiWYK2g4lf9OZ?= =?Windows-1252?Q?oQsHX3STR5I6lE85IY8QX0zW5qDMglMDVNVuUhNxGwvNS+dDJ9Evc6Yy?= =?Windows-1252?Q?ugq3+JxIfpMWN8Rnu7opuhtIeVv/91jPRe/ya9LY3kskjf7yERDv+fGr?= =?Windows-1252?Q?lmlzxmKH0q43HV4D55WInqa7vtGWZ1krhCbqXNSW1aqbyyr4yA4EGlqX?= =?Windows-1252?Q?cXQ/qrnjXFgHuhjOCsxcdAc4kJ0X/c16Gf0J5klJ2Ef90kw07aMwwdbN?= =?Windows-1252?Q?adern3TefHLvKXGCxzVR3trMa6cMicHKgXxeK+GgQDOFQQne0oofVyqS?= =?Windows-1252?Q?MOw0J1cZrrSLxSIEChZytvkJYdiE30vRfWnJaw/Rhkvh21130jwIwgeo?= =?Windows-1252?Q?E6VJveZpkX0KdhbF7Wa09gEKBsZWwon/qEpS2o+9vFcWmpmCMbUz6pPU?= =?Windows-1252?Q?2OF2rK1I/f+OlrQAmnxHpwgN2pge5ESjm8i2ZfykxP4AWZOIcn7cDV6D?= =?Windows-1252?Q?6+OFMCcG31Lh5kokqOD2/XnooZ7OFUGL3fj43PIi3qjacmRDCJafe0Qm?= =?Windows-1252?Q?N57Wl5YIU5Iw6wVjXCCTUi4F+iN6O6mKZcx1sVWanLbUOlrfA85tryqk?= =?Windows-1252?Q?XN3Eyt7xnKadFq8VXTdaYXYYXRGLyuuC2YaWgHIBzsg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0501MB2765;6:ueylwk4fVK27ubfzKYhR03STMShKA/NBazOydemokZJhyGs9Mj1rLb1U0Q0+ncU7J/KJTrZ6ooQlIyGv3rm6UU0jSp05CmwfteAJTF2/F9uCUbRVK77kFd31VvKjEfju67pz6gT8alFZDovG7WdF0cUZYhnKeqs/0ULPpX53Ej+eTeR1PW+WHWsW6Nhpqx6742kJHijs1XM/jDgZrHvPpLwAWs0ewf8WcRDBGcjakochAevqq3FHnzT5Fy+9ljMUbw0zLvxC55H4qMFR4RxfP0p0z496DJKTuJnw6VftyyF2XVuLi3tEUTd5b72aWnQI9mVwvG52F2OIqcLQmWfnAg==;5:6UJdIAsO0PgXADijmVmZMuQBQszbR2X+A/sxdxRrGkJpZMNgFJ/J7G/M8bRMLbMNodXQAv6ZWjax/S0+MoYIsoKh8G/+4srRqRSIbmiKvxMXZm2Gl4lrJt6ttCtkSZAC3xXlVvLLv3Fo6oO7OAPzUg==;24:a7wECRcYWXZVD3ReCFJ+g8QL+MWy9mfCwVixAR8sobgMU9xP9fBqNsQWjDNZUSVIe0JvknwjIyoLIfGGB16c06BLNqI0lwhvzRaBkaTO4v8=;7:wIfYez2Yv4FIOunDllNNaG7v4aO1IgcnBgqbfrUug6gnQroOgz+DtJ2iMlGUBsPnk4y6KQTjfXwabCsrnPb/78cI3nGMBRTGy6inDiYXvjjf7CiEKPdXkwhxqaITpuvVXA0nlGTi3sSBLmC5SEjv1fO/zs1J4nCcNBurw/q3mn8UCmMTo1O2T7415mxovts5Y2o9E1z74auzNGuBCrdN98gVutfCYyZIvGciuiNOA9vO9NzB7yjBWuYItVUsA9Pf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2016 15:00:19.5423 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2765 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/11/2016 2:50 PM, Christoph Lameter wrote: > On Thu, 11 Aug 2016, Frederic Weisbecker wrote: > >> Do we need to quiesce vmstat everytime before entering userspace? >> I thought that vmstat only need to be offlined once and for all? > Once is sufficient after disabling the tick. It's true that task_isolation_enter() is called every time before returning to user space while task isolation is enabled. But once we enter the kernel again after returning from the initial prctl() -- assuming we are in NOSIG mode so doing so is legal in the first place -- almost anything can happen, certainly including restarting the tick. Thus, we have to make sure that normal quiescing happens again before we return to userspace. For vmstat, you're right that it's somewhat heavyweight to do the quiesce, and if we don't need it, it's wasted time on the return path. So I will add a guard call to the new vmstat_idle() before invoking quiet_vmstat_sync(). This slows down the path where it turns out we do need to quieten vmstat, but not by too much. The LRU quiesce is quite light-weight. We just check pagevec_count() on a handful of pagevec's, confirm they are all zero, and return without further work. So for that one, adding a separate lru_add_drain_needed() guard test would just be wasted effort. The thing to remember is that this is only relevant if the user has explicitly requested the NOSIG behavior from task isolation, which we don't really expect to be the default - we are implicitly encouraging use of the default semantics of "you can't enter the kernel again until you turn off isolation". > > + if (!tick_nohz_tick_stopped()) > > + set_tsk_need_resched(current); > > Again, that won't help It won't be better than spinning in a loop if there aren't any other schedulable processes, but it won't be worse either. If there is another schedulable process, we at least will schedule it sooner than if we just sat in a busy loop and waited for the scheduler to kick us. But there's nothing else we can do anyway if we want to maintain the guarantee that the dyn tick is stopped before return to userspace. -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com