Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754687AbbGXQ5i (ORCPT ); Fri, 24 Jul 2015 12:57:38 -0400 Received: from mail-db3on0079.outbound.protection.outlook.com ([157.55.234.79]:17816 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753006AbbGXQ5g (ORCPT ); Fri, 24 Jul 2015 12:57:36 -0400 Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none; Subject: Re: [PATCH 08/10] posix-cpu-timers: Migrate to use new tick dependency mask model To: Frederic Weisbecker , LKML References: <1437669735-8786-1-git-send-email-fweisbec@gmail.com> <1437669735-8786-9-git-send-email-fweisbec@gmail.com> CC: Peter Zijlstra , Thomas Gleixner , Preeti U Murthy , Christoph Lameter , Ingo Molnar , Viresh Kumar , Rik van Riel From: Chris Metcalf Message-ID: <55B26E74.5040803@ezchip.com> Date: Fri, 24 Jul 2015 12:57:24 -0400 User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1437669735-8786-9-git-send-email-fweisbec@gmail.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: BLUPR0601CA0002.namprd06.prod.outlook.com (25.163.210.12) To DB5PR02MB0776.eurprd02.prod.outlook.com (25.161.243.147) X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;2:USy6fLnmmmym1zt8IVZambh0zB+079WEYy9jdOANtQHtpeYp4j0ehqqdZU7QAdef;3:NKS2Q31EYIJ3qXgPiHRdbQ/UjgzrVIzMih7mZ0csBOgehboNGzm7hBocs/6OTGGudHqV5/tsXJFDhlF+m/tztrpBzuEBdXXEexcRDGp5jhC1ElE8BFAnd8aorwAYhBd0qiKFh9hiOqfBoiIyUKw6YA==;25:f5cyTcS6NUB8DAcgZw9zRzbUSdw7xB9WQTUqf/mVtpienb4vgDaUyHuMd3mGkmFEHRf6BNxTxXqLeQ3bxwZT3UfPPfycD4uzKiUeL2CKQy1YXu8q05/n3kxLZAD1KayrnTkdtkVCt/w9UKg4e6FTlNWzp+r/Mt0Dy8eDkbih4xJj3HKxeAMUGiYgldRPlTi+o2hy0BUqZAMCovCpdmcvz7JksxzpvHLXRybqbqBzCiQfXLxzUC171XPJjrq2NYTTcJblFVGpcWwVRtGVvLeFrQ==;20:PKFtZ2nJ8xwKlXCSAug+dM/2CfNKv1weA25R/2vVcUcA29kj0zHC4z/QXHQCSQKLXwOKyXiwsPIOGJf2MUWy+sGHltGfmUzaul8oYys4hkkOuDfI+JGgFUDFgV2s1Z8dhGAPz73I57OD6b84vL8hZW14H9fZl5MoiLPCGUuRcog= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR02MB0776; DB5PR02MB0776: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:DB5PR02MB0776;BCL:0;PCL:0;RULEID:;SRVR:DB5PR02MB0776; X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;4:4qCjOIO3ALOK/fbV5ClSyZ7rwvn7Vg4aW0ka1UHBXNJmjzyPL5GjENnXMyuf3zftqacygzhshq6yjeWQzjLnxwglwYPSPka1+nEXGPD2r7ujPIfi6OWeNbXyJDk7rPBMJRRJPQnLP9swrN3AqddJvT+RHtn+8grnEi37doBz0Zxt8hSX+VG/Oe3EXUbLfuZ8mSZUJb17cfCHzKjeZonTJ1AtMAmgvUjciRQtL16Cp8+5h4M2C17Z9TQq9sKeLgaID8Gw/sEFicLuwrrRtYL5QzSqnaOqumm3NLm7bW6EX4g= X-Forefront-PRVS: 0647963F84 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(24454002)(479174004)(377454003)(46102003)(64126003)(62966003)(87976001)(77156002)(76176999)(65816999)(87266999)(54356999)(50986999)(23746002)(65956001)(47776003)(230783001)(65806001)(40100003)(36756003)(83506001)(122386002)(92566002)(66066001)(77096005)(33656002)(4001350100001)(80316001)(5001960100002)(15975445007)(50466002)(5001770100001)(2950100001)(86362001)(19580395003)(189998001)(42186005)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR02MB0776;H:[10.7.0.41];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB5PR02MB0776;23:OGYouzs2bSzzh+UI8Ybq5pECMDXC6faOn9x7X?= =?Windows-1252?Q?PdJ1VR3MiFc73BOiBAwZBZLhVBOfro48/9klKVY45/0u4njuf4LVTq2p?= =?Windows-1252?Q?CyvxjLJuxlR+X0XRQU5xbIDaqM5Od8iytC7x1IcKei8QejWuUk1poGGT?= =?Windows-1252?Q?OJ0JQ4yC1ry5G3e1/P9QHBCfBF5S3oRB8dsS441JsoYWBo6SynJEsUub?= =?Windows-1252?Q?0Po2vaTzf+E8DuKTuIH/w78eMHgVtenhtEUy8E+CIqIHmuNfieh5gAFi?= =?Windows-1252?Q?gMVoZCTY7AEBfR43TymhJil+F+QetPFN8g5nwOeeZA1gsSXLl87Ui8pU?= =?Windows-1252?Q?4dyI4c3SxJHfZGD6GyaT3JzSniIJUQV0YZfNOru+dROWRfB2WFsVjaXG?= =?Windows-1252?Q?z9JDYQUj7ql6xbR1d9d6OMqfNJEBTWLT0aV9XaBifc3gOyznXae5UGFL?= =?Windows-1252?Q?5oSCNQFZR6IXEERZ/X2n2mh8sA/I2qGwvAUU6vVsQ10GoRDBQzkMvWkR?= =?Windows-1252?Q?jRlpLHwzOIM8KyAn0HBtcAB+Ds/TO8sh1SAoI7MuKXgHyteTTZjzo+Q9?= =?Windows-1252?Q?IGGQNzQ9WJfOiG74k26j4zillmmPb9VQ2c3iH8iM5yaeS44pjw4v/r7B?= =?Windows-1252?Q?Lq5tsZ2K9Ful5ToZxxnWQ8L4aUr9YoWpCqFBgpNOUvAgz8/o4Z4Ivo6M?= =?Windows-1252?Q?Ly5SU0E74j/HtsEfvBT9JEZoNTuiSAevJgkr3Rb9U94/J80BRCMm6Dil?= =?Windows-1252?Q?cjab4rWLNL1Cgjr0Ltw7vqszWo0LXJS8FJoCf+TCkDvwYgwta3e1Rg5Y?= =?Windows-1252?Q?pri65oP9giYKAbwQuxmMkft9Ie9fktS1FdFXE49UOArC7xg/L86L0Ufe?= =?Windows-1252?Q?KQJmzzMhWVCxSI3yQ2G/ozmMtBaHrzCYeCwrv1rMZryBpuSfx+IvWE8e?= =?Windows-1252?Q?mIjKEEs+WMSMCeCgEYapVJQhb6MwTCfI2AxkF5xplI13YSVaHfi1xSiy?= =?Windows-1252?Q?RWarox/zb5vv2V20Q4IVdT3nIrO5w/8LerDsOKR1fTZZFhUraP7XsegA?= =?Windows-1252?Q?h6AVl5TaWTfpkiufzXm3+rsZJxSL1DYz0d+PLIzpWAsvWQuesf3gcP71?= =?Windows-1252?Q?IoFALDxZdmlaYT1mqejAaPdaLX1Zvi4waZCQzaubk3n?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR02MB0776;5:1nMdvoU2AF4n0cELRJHBoUXUCWLHNSPObmf87m1r+TEcJlQ+SrattDnJjQ9abn2g0znUWqKxoYDSrCsSoXZ76TFdBTo0HkxYcIg0ZHx+SXZehQM9Oq/VmWsE1TRPHbWg3LSTbRijaAaIjMefXYO1Iw==;24:/cyE6m5Gn5q/OEslKris5LXL69lWUAwimwxe7ykcdGQSIr61LXBAu2+lc/ixQiFFNxzqndftSs3N9naqutapPmfAs7yWUV7abJbO6Fh9boo=;20:X/eLxT0iOlN21NVVGwPvbWBgFDd7M2246qg2pvacTwxM6ji0d94/ByiWWL+t1jo8dmGOFTi9MXdklKTncwVpNA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2015 16:57:33.0790 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR02MB0776 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1171 Lines: 28 On 07/23/2015 12:42 PM, Frederic Weisbecker wrote: > +static void cpu_timer_list_dequeue(struct cpu_timer_list *t) > +{ > + if (!list_empty(&t->entry)) > + cpu_timer_dec_tick_dependency(); > + list_del_init(&t->entry); > +} Is the list_empty() test necessary? It wasn't in the original posix-timers code, and it feels like a pretty serious bug if you're doing a list_del on an empty list. At a higher level, is the posix-cpu-timers code here really providing the right semantics? It seems like before, the code was checking a struct task-specific state, and now you are setting a global state such that if ANY task anywhere in the system (even on housekeeping cores) has a pending posix cpu timer, then nothing can go into nohz_full mode. Perhaps what is needed is a task_struct->tick_dependency to go along with the system-wide and per-cpu flag words? -- Chris Metcalf, EZChip Semiconductor http://www.ezchip.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/