From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755513AbcGTWDJ (ORCPT ); Wed, 20 Jul 2016 18:03:09 -0400 Received: from mail-bn3nam01on0100.outbound.protection.outlook.com ([104.47.33.100]:6816 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754409AbcGTWDG (ORCPT ); Wed, 20 Jul 2016 18:03:06 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <578FF50E.8030503@hpe.com> Date: Wed, 20 Jul 2016 18:02:54 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Tejun Heo CC: Alexander Viro , Jan Kara , Jeff Layton , "J. Bruce Fields" , Christoph Lameter , , , Ingo Molnar , Peter Zijlstra , Andi Kleen , Dave Chinner , Boqun Feng , Scott J Norton , Douglas Hatch Subject: Re: [PATCH v3 1/4] lib/dlock-list: Distributed and lock-protected lists References: <1468604383-40362-1-git-send-email-Waiman.Long@hpe.com> <1468604383-40362-2-git-send-email-Waiman.Long@hpe.com> <20160718233803.GN3078@mtj.duckdns.org> <578E7497.30602@hpe.com> <20160719192333.GP3078@mtj.duckdns.org> In-Reply-To: <20160719192333.GP3078@mtj.duckdns.org> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.182] X-ClientProxiedBy: SN1PR01CA0012.prod.exchangelabs.com (10.165.224.22) To CS1PR84MB0310.NAMPRD84.PROD.OUTLOOK.COM (10.162.190.28) X-MS-Office365-Filtering-Correlation-Id: 4949a5ef-0a26-4181-bb85-08d3b0e99e55 X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0310;2:2S0pcocs2YuAsHE5urLOYxFgzNZaSnfM92XjeRgvAiBX8mT/KXZubVSkH8s+pXzNjrniBrmt6An3tmPtWcvcmlAWjiJ29R+JFpL7E9qHeVFtN+LFPParHdVWvDU2CLGM3vXT2x6j7frEh2Ix6QtGf1UPBjN9+OtSd8fgdbC7HqWyt6KodeDkHUi0/GMxkwZW;3:R6BfJKc4FJnB6skg5YpsS0EgAbk6wMaHYp3Ctyrczn9P98S+S5Qifo/seoJ7SksI7Cd4RPI0NdkQfG1SBYp5Kxa+0EMzTlQ3JDFwBiEgryJVIY+7+HCk4hyKoy3QhM/t X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0310; X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0310;25:nbV9mLQfo6vl24deYIRKNeT1BfB9ISSAXLlPylw/zlhvnGwokjWS2ruAnSjMbXA+7gXzqnRF/obYBCsSt4vpwQgP8VVi2ckZ7uiaSmzTv78YYtXqsiMd9/f1YyDwPTwfOImy94xtL2JhOSeMNPlDjDkTs+Kbhp7i5mjBxOo7isXRXrJqAWw6PRVkDzr+eZLdhuKdytIwiYK7rVClzgYdH9Nv/0zd3vj+Y9z1uiiz3pj0WjlzkLyNk8iHZvuSAzOXnQgAMgtC4O6eUUQoIKSoCcYoeDl4eiK9Dgz0vBUGd1Vzi1/dbThFKWPaVlBS9otraBIefHsWYZI0zxpPCQQ404uz3K6s7wi+FxBRX2UIOqgkRs3uGfRxjZSIDBj3wCAt2Z8C164M0ay0FtaBa/VBKPh3+UwFmkiacwm2eYu7vSzp3xnCEeTWPIi02B5IesT0Uu/Zn5ASB4YYgyX2neaYrQlsQn53MSqG3iQA2NC+3f4iXDDfs6ldMvEsqU4GLAqFNYdF9Nroxpqe1ZgJKH0m+PXjaMJ+MiTDPX/0vGHK2Q7xVb//DIexuH+0YruHJC+aE5RE78XeY8faPy8HsiDBCgFpbF/YwiX7PqsH1fe5taSm9OfG6/fkDSXkPoFx16Q1MW22EGgkxZnlCgnxj7tdOyzFGJYkw3PW0pW1h5zwK2+xFkWK15pAs+G1ubXcxcFVCl2Eoi8y5AksesVXf0qDvgIs4Tw4aLmsVfYTwqKkMX8=;31:C+VxdITO11W6CMjysbBrl9dsJrK3Qt4l5jHSwOmKfBFGfgLl7tYa23kmOUF1x3yR2cwmMvX9I/QFff0OyTTGwlqs4OoTDbzs5DP6l3XAyQgoUq+J1dK15jIaSy7H7vV++xjp/h0D16JZyHwPrlzVJM4owIZZmeIqTY4G86dR4r2zyE2EQsBqSKn6jGiMDLyII+J/lurEL0/FFnOPDALiqQ== X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0310;20:Mk/ms/GzyVY0k86h9tpfmqLlUrNL4ksxxs6UAGOTGsOyYjvG/FsT1ptZXsUY/WnGeg5Wl5faYW6oSsWmfOQfBaky+61rzZ27jniMYEnUo0/xOrWgn72uy2CCP1tYqY1GJQLwOuNo2AxqqIcHmtKQROHlOq3ALp8Zkgbvd80rn00B497e1PAuoudjymANY8qiPUTpycUcPE8ZtUKtJExyyTfdRM1WXs7X4RKv8bOALOO9z2I/2NbnNKw+FFbwNbkL0NAYnpaY+46vcNx/kLNgRcb25nDf553qaCMM2G9dyrob+cv7ew0OFCziHoCGHYaDN112eQE43DgQlW8yEBQ89EUfDooW8KxmHPMJWHyIjjUL25mCxGLyJ66ppznpQOCVghq98H3T7JR8tmPrc+2hdm7CFEYrRJHpycUECVgwXxmcrDJ5EMYlHvU/Lylj0XwPx5hEaWXzFTsF3YyWlrY61Kk0CM0+59hDNqrACPPX6oUoZGbOtLoYRwCgtV1PpxXt;4:7Fki0DR762t95TB1mFkCDe9v58pZvpG5Tk3UY/IvJcV22VX4m9SntyFNGnDycaMv2MCnjyJY85ZtE9JiHzvNcy7kaW/8MB6mDX/+qJG8xbZIHoovlo7+jQxJnT6iXhW87NKgF6TDl1FBSxYg+3lnPAU5j4JwF8OxYDSbOgCQnt1238xhAmgZMaLcGyKODulgOxBUPCaAV2GTuE5v7HumO8ePC+Hk0YlSzD5lo94YtTZUyj+EkgDn067A830PW97ydf5CWJhrWynQ1WHQeN9RuBLOHkXEziexMG3/fLS0B/keOvdLyYTR0fNAmHuX2JEpeIbvxm9ARiAIshAXlL3tVJCX8Ci/CUvp3XQ3a/A1aNP8Q3ivNpPLS47z2WssWnLFC81NmlgEfW7DP34AkucaIw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:CS1PR84MB0310;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0310; X-Forefront-PRVS: 000947967F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(189002)(377454003)(199003)(24454002)(33656002)(117156001)(86362001)(47776003)(83506001)(92566002)(50986999)(101416001)(66066001)(50466002)(93886004)(59896002)(81166006)(105586002)(97736004)(81156014)(65956001)(65816999)(4001350100001)(23756003)(36756003)(110136002)(68736007)(65806001)(230700001)(7846002)(7736002)(8676002)(2906002)(2950100001)(4326007)(64126003)(80316001)(42186005)(189998001)(19580395003)(6116002)(3846002)(76176999)(87266999)(54356999)(77096005)(106356001)(586003)(305945005);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0310;H:[192.168.142.174];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CS1PR84MB0310;23:s1W/0MvcDRAYN9AWzQkD6kLd2plzMS7iM9cw1Oq?= =?iso-8859-1?Q?skvmGNeH8bz/rQiuCMQKg99sOPvi1w7dKsot4/Osj9u0aFNAlZBJehHyXD?= =?iso-8859-1?Q?AGg3k4ghMR93BsEljE2rBPsvtAX9aJ/8VXEnBvp4xI4cI7f1qCGmJSLjwY?= =?iso-8859-1?Q?xBQQ1h87l4BGCL285FmKDjuS/pMrvX94PzCv4ePxELi//oGcZtGppDFW5v?= =?iso-8859-1?Q?fmVI6S6iuDnqPjpFLVDSL5p/DnVse0ZVnqKK9UNxCyrnRRU0VtJc4w4fEy?= =?iso-8859-1?Q?fDMFaccH15XS30C804trvBlijFlTzToagQuGNRvE48I+3/xMXq6PuYPcvM?= =?iso-8859-1?Q?iOogMIEqfJWxWNc3oovii6OwXCx0Pj8+OetmjPJqp38uU+4SLGpxPqYBwi?= =?iso-8859-1?Q?a4G3zykesTqrU0YTnKVhKUD22ytmd3YZbrkBJJaYjDQz7hlOMLalpqlDgR?= =?iso-8859-1?Q?/Lq4eRJVZU3I/xMOpuc2btRh1m4E1LIfZorWOhBwxlhdl4K4h18gEDeH9p?= =?iso-8859-1?Q?vD+GgjhIuqMoOaKrxqoj4FrugPsVfGBLDytg2eziGOHxM4OOMZYOR9TGsx?= =?iso-8859-1?Q?Euug4rht9aW2jy/kvmGFvENTpc50vDkS3al8CH1VNJAY/rWe6Khv+kLu3h?= =?iso-8859-1?Q?iAF4icyH/tP0EVqQ++hXE1C3S9Wa7S1CmNLQkCDWPyA4UmLxIatz2/1+Cs?= =?iso-8859-1?Q?u5ZiBPq1O0qzkReD6rx2b143HODy6Mks5YmY9VdB6oIzFgYwYV96bht4oE?= =?iso-8859-1?Q?a0YYer93gtJhkP7q7tdXFrq0ku9JltnGjxFWDb0+VWnAp4T0fmaJMqTIFX?= =?iso-8859-1?Q?c1XjH1jwcAuQN7Ae6MRVeYt1l3imVNnSiVdH49PRxyRCqnswkAwK5rVFDd?= =?iso-8859-1?Q?uIFImvpic45NtKD6Bv+zNfaezDYMHxmw0Od41avnCZSI3hn3m/UMYtMWkX?= =?iso-8859-1?Q?UDDdEBiiYbTV1RUhnh3I8nmL0bBFbXkjQ//JwTv4j0BpH2f4Hi8RsT12ce?= =?iso-8859-1?Q?ub1sTGDTrEqfqTF9d7qyCoDoWfMKw2T8DFgDNRNnKTTI9eIqFWDzCBzT5c?= =?iso-8859-1?Q?6wXCj2Ya/dQdutIiH/TL8Yq3QMkas2f2ETxjNDwQa7xYgrzZRQPz9Ewr7I?= =?iso-8859-1?Q?j0KF3Z2nFvHZBFLXNkHQIyzqgbVJHVjJNX6BXiKroXMJVVMWeyDS9jGQd4?= =?iso-8859-1?Q?RZQrKyL7pZ8vglM5yMadxTdaXkGOY2S1mdFdpzb+RK0wnti4GSHNWz1kzB?= =?iso-8859-1?Q?Wk/6tsh4b55Z072W6RfvlwD3MuXhAmx4rFHtWg0ga8aMfU7Q/JoN+RWVCZ?= =?iso-8859-1?Q?b3bCvTDuXQx/Wg2Ldg7v6uPb6ZlDuhuUEKlc5qzs+k7/RPNN2TiIDIldLL?= =?iso-8859-1?Q?Pv6lAz0Q=3D?= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0310;6:VvgyYhBL41MO3EfdOXyLLagSdEiq0ketNT+UXrhXwXMHY17qVyNwEnAhkcanzkSbpLKQB2/9J7HjWRVWql4NIZnFlxHr003JOhZzRfh5Mqe0FDMDnJGtWQqaKHO+EDyhWXxJKnJHpfe8ghvOT7lr9wuv7cp+jIUvLjPcwLEftdy01yc/Zhcb5JSey6jrlf67apJ766R/R9AAFlA47DzHqVTIfGrxou4JcipqajTYeb4oi+Vv+6XjrY/C4EdeYKN1Wer592IiBQlQPm3U1Azstyh9wn1Kw6NNgy13Eng3bivoNLYIhXmNBEpcEmaCuaB7X2AebmKuwNLZVzQSG8JI1g==;5:d+SpN3LPHciMYx9wsO9h90NMmdMFWh/O7WdD6eZFwXrK5kDk2eaZv+TUnV7BO2e3VFHbeJ67/JutEZYpO5u//0gtcyHgLMwIlFS5NRYKR2SLpFuhgsKTWfPLgP0IK7qxY84Cqw22n49Dj12rL2iRIw==;24:zPXkXtHFQPkJ75Fq4+30Y7dP2ynDSsDx1AJTQxOFNDNH7Ibd7Wj8JKNW7vlY9JjEqBGBdoscP3AidzQ2e/hVaSZcuJ0rDnUVqkf204OgEkU=;7:wPs+jEGKpsJwv7+3IqLjhVzODme39rw0P2PDjdwDYZCgJs3xegP+Sb6cTVgIfX3JclonYZsPpM7RP7ZHP35wvpbJUByjw8FIB1MA7ZwIfogZXrzr0loImX549JgC2EUjVqglTwKMqp5JNikBRcsf1zjRGp7PQD2kxSxsYdNQoEg6cNfYUCZApMA/yHvBZNMJpNmPYmKDjkFVp6mDM6fD5wExdR6Y+MnT1jCfx87n+OmxjxlFAVp0rBoYviJP6Iv5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2016 22:02:59.5927 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0310 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/19/2016 03:23 PM, Tejun Heo wrote: > Hello, > > On Tue, Jul 19, 2016 at 02:42:31PM -0400, Waiman Long wrote: >>>> +int alloc_dlock_list_head(struct dlock_list_head *dlist) >>>> +{ >>>> + struct dlock_list_head dlist_tmp; >>>> + int cpu; >>>> + >>>> + dlist_tmp.head = alloc_percpu(struct dlock_list_head_percpu); >>>> + if (!dlist_tmp.head) >>>> + return -ENOMEM; >>>> + >>>> + for_each_possible_cpu(cpu) { >>>> + struct dlock_list_head_percpu *head; >>>> + >>>> + head = per_cpu_ptr(dlist_tmp.head, cpu); >>>> + INIT_LIST_HEAD(&head->list); >>>> + head->lock = __SPIN_LOCK_UNLOCKED(&head->lock); >>>> + lockdep_set_class(&head->lock,&dlock_list_key); >>>> + } >>>> + >>>> + dlist->head = dlist_tmp.head; >>> Just use dlist->head directly or use local __perpcu head pointer? >> I just don't want to expose the structure to world until it is fully >> initialized. If you think I am over-cautious, I can use dlist->head as >> suggested. > I don't think it makes any actual difference. No strong opinion > either way. Just use local __percpu head pointer then? I have run sparse on dlock_list.c. There is no need to use the __percpu tag here. The head gets assigned the result of per_cpu_ptr() which has no __percpu annotation. I actually got sparse warning if I used the __percpu tag. Cheers, Longman