From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932335AbcFGTaD (ORCPT ); Tue, 7 Jun 2016 15:30:03 -0400 Received: from mail-bn1bon0138.outbound.protection.outlook.com ([157.56.111.138]:27520 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752864AbcFGTaA (ORCPT ); Tue, 7 Jun 2016 15:30:00 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <575720A6.4000700@hpe.com> Date: Tue, 7 Jun 2016 15:29:42 -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: Waiman Long CC: Alexander Viro , Jan Kara , Jeff Layton , "J. Bruce Fields" , Tejun Heo , Christoph Lameter , , , Ingo Molnar , Peter Zijlstra , Andi Kleen , Dave Chinner , Boqun Feng , Scott J Norton , Douglas Hatch Subject: Re: [RESEND PATCH v7 0/4] vfs: Use per-cpu list for SB's s_inodes list References: <1465327445-56484-1-git-send-email-Waiman.Long@hpe.com> In-Reply-To: <1465327445-56484-1-git-send-email-Waiman.Long@hpe.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.186] X-ClientProxiedBy: CO2PR06CA049.namprd06.prod.outlook.com (10.141.242.49) To AT5PR84MB0307.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.29) X-MS-Office365-Filtering-Correlation-Id: 777d9921-82ea-4dcd-a7f8-08d38f0a1bda X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;2:O847ZLdm+rG/cpLG8xxGXy0CdXhftNcs8aBJpHsccfDlhZDyo7DcAQlpJOOYtd8bUMkpPY4IHApUKGKln59midoD7vuzuSSLpoKpaKMY/qtg9zidaioYAE5fd0PABnF3kV0NF3XoozR3mvY2PH0VfPfn85QuuA+SxMplGlFM1KSw0h7/7I2/VByREmZ4V3QL;3:1+Z6ym7XQo8KY8jWSgxPJ0iKRr52dkbYq54tG49JZSlKwZA8x6sKDqGvcy53i52F899ngrOOF2rDFdVB1ze4fysEkBS05xOcHR6TgUols21h0MeubyOcNSC6pkaxnged X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;25:EBJ0mSCgqN1tuCwTXF148bHtX6GBGt5R/zIMWl2lGMKM5jhLet71Qb1gyPzQ1sQ+W8KJ8zbj4aKZllTYE1L5F39us76PhhmpXtW6p1x8sHS5R60tykCTgbCYSznOK+OjP8qusXmLM7vHvfLV5jhHOgwuD8xOCK0p8vnbAwq35EgkPjDzXgzjqC6bjt1cd4faGCWspESOwxk1sF7gqtJn1PqkKmHG8s+YwPDK1J1dS77tOFyuMZKoET2JqcPpELBVE0+XHQaPfi3CXBvetdtoeQtPPHENR12WO1rL4h0oZ8ElZjBY56nl+2WwV1SXcHAHAY5AIMHaZJI2ApqfGc5o/h3MNMZ97zZ7CLUhMelLBoIYv23ga7B9XiMZocymgDoZc97p7ZA0Ko543N/c8AXFk9nEATL3hJ+gPw+2ZYq3+TdRd9qYPnYoWmkRio4cBTYFqTXPlN/RnNc3Mgcm7W2Ir9qYKbbERzBjtCu0290sHAVTpWjcgec+gQY45gIlFvBHSxCiV39Z7cxZrBcRScuZ2UjhhrEJ3TQG/6P8tPfZb8MktXeLAQeTneV6xJ42QpthuCaGaoXkKbIHsuDrZ+HKlsOwrORDDA4/AMWYU2UOc4FcSFJsOlcfPDS6UipAhVhD6gv/XfFGnxGpo6tC0ehp/C2PwUjxOAsHfNUpsq+qU+cQt6oCoGHRMMjssUPQ4/4qR8082H5RU4CQQRhqYfEeWL+/TxFKBe3o7PHiI/xeL21pJDYd+Lgt1aIZUZQsGZyZLwAQSXCm0HmRdN5eXTRPvgySUeIuArHV873V+cUE4yM= X-LD-Processed: 105b2061-b669-4b31-92ac-24d304d195dc,ExtAddr X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;20:x4TtZKst+e78X/66E1CVz8EuHKUsyYpv+06i77CmSAVQfRZ5phE4DdT/0xHICFLhfTNNgBJm70KQdM0loh1eLBoNW+qyXKYP5Kjl+GOnmgPAtXLMVEMDvdj1PgN/Wt9+sizKTDTYgyUhTmD/foK/hvYLqv2gVDL82E9jAsCBozmZ5BOzNuwkXp+48drpHR8eXvfoPND4b+QzZM2u72MgpXNUVMY2aIbu8oGSx7ljfqwDAMEas6sJvK7IJ1cHM8f6M5MPIHfz40C1ZCyQObrlbMyIn+lE1S7mnVIxWzkJtfuiBcytaM7nU7KSYlWdXIaq3An7kEX14nSPxL+pk1A5ISW40SF7pOBcBSszBEytHaNSD3C1ZgLCe1U7HEt3n00E7s+TeYKIpCtd0U7NDMQidcHY3PsmLn9Q+7HS66JE8A+adkdD7WFFL6clMeVWEaW+VzcnkKuDgyr4jV0UT/0dsDAZzp9WHc/czaoDTAIjHQ6puk7kHMXuwJDD+iVZs2/2;4:ohiEtV8QbUWMf9PXZJJ2iKREuOkxpZfAn1lvsaOUz3xTZcWncw32+J9xR2gmqrOJJqUr0X7JH26eZOsYGs8zXPKufQqrq35qUSgJxoIFWFlMNJ3kZTIs/9lQg74RaXYhmdaL3xippSX8Qz7luXIgVc8MWw+nCHZr7ZtXV1gHk9GM+Alq3WS32QDvN2jVdvTm7J+3/gDUQN1Bx/D2JoAsgC/nMvUvBeJZPakDWNgmMSMRBH14ja8alUEcZzNrBOtadteVg/Q/Em9RqLTCwsjzgA0SGRWearIfxKpyh1v1zFWfLjaJfLw3eBoMPvO+ZIDmIJoBxskyAuSW4Tj0YxLfk4FSJX9SJoDECw0X7pViANPGHPjRcOtyNzvtyjkjSVLQ4RYJkAtqS7zME1uht/z04y6B/lmnZPzKiCokI9qrPwzXF3hfekge5V1U0ifNXH2q X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(84791874153150); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:AT5PR84MB0307;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Forefront-PRVS: 09669DB681 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(199003)(24454002)(11905935001)(377454003)(189002)(33656002)(230700001)(110136002)(59896002)(106356001)(86362001)(99136001)(5008740100001)(117156001)(83506001)(54356999)(189998001)(66066001)(65806001)(8676002)(87266999)(2950100001)(65816999)(4001350100001)(105586002)(47776003)(65956001)(97736004)(101416001)(77096005)(92566002)(15975445007)(81166006)(76176999)(50986999)(81156014)(6200100001)(36756003)(3846002)(6116002)(586003)(4326007)(68736007)(42186005)(64126003)(50466002)(5004730100002)(19580395003)(23756003)(2906002)(80316001)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0307;H:[192.168.142.147];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;AT5PR84MB0307;23:5bWQwfPHh6Mhh70Y/utHgDv4AUOexkwq6BrjPwa?= =?iso-8859-1?Q?9BpzBQlgiCc2lCGGCA4/dZa1pKeSWe497XcT/7SIga+z3cq5jtZRWbK+8S?= =?iso-8859-1?Q?/LQJ/GqWbTkd3ZlJcsdHXRNag+quzlUWdG/1jQgVEjc4Si6qGVBVIMdJo6?= =?iso-8859-1?Q?TJXQo4fPPJTZSViC1XC+HKvCJuwizA75/fNL/XJ+/h1Y0Ub0HM9DMX5D15?= =?iso-8859-1?Q?d3j3WZmXARLTgzPRmpBsaLfvkM+HPN96mCtf3vdRXNhp4kInSbnFQmK+2F?= =?iso-8859-1?Q?elqECC2EcJi4DkCEBNRMI26iFtxiQUBxj3ri++zHcW+n7pBGqRi9gEq+on?= =?iso-8859-1?Q?XaZ2QK48ZT6OgRGro/NH8P9esPV2U+qWlwQ7nx5xskKjHaI3c3ONwvbtMR?= =?iso-8859-1?Q?v1sPthnzUl0pGIoR2TiEXpe54aGGORMSLsMRX7PefT76EUWwOjnLg47O6Z?= =?iso-8859-1?Q?PN99JMo3MWRh5GOSaghQac80yMpO+Io965ygmA6S7k1FiLgEVu9bqB/UPL?= =?iso-8859-1?Q?p29bwimZKGlMy3ZPSeYWlk+rcSOLQM/rFVcwJhiFIDUsLeMDkkXtdMZZmi?= =?iso-8859-1?Q?8N5f/fEjmcyx2LG5VlIFoyBqXSGKeK0b4QoAj7F/oQ3jfz4Gmxi+Nd72ST?= =?iso-8859-1?Q?Bbc4VvZ5D5tzAX2wZBTkAai0vx7EvmSe+trYYaRcH2Nt/FxeoRS/lzqr+o?= =?iso-8859-1?Q?1AoXsEmlMw2yz2tovJzxmWuqYzqnqY2CtTp6h6QaJwUwf+KILuePHRCbL8?= =?iso-8859-1?Q?nTmuItNT76IXCAYgM6ipBn7UBz4EqglCDkmWOTvYD/k/xEzP8M6OtfNTeL?= =?iso-8859-1?Q?rBkEWXFXk1CXFdk5AsfgAvyPKZkK7EXskm3pq5gBkL9MQFthzSLb1+NyH4?= =?iso-8859-1?Q?f9d39k8xa87eCEtL97MhUgZJdFAGrtzytsPa9gf0QTLsRxWB6wteB8z8Yq?= =?iso-8859-1?Q?Ka+SGkeEB/4ERC/2kxQJCefeO1OWOTmhtA570wsCGL7lg6eHsWv4KuWMwc?= =?iso-8859-1?Q?zpcllaMi6ergMp13UbyQMSlJbWsYarbSMKl8di8vosgV3LKS4hC/WsJ9yf?= =?iso-8859-1?Q?kBI55eZ1tfEN/gvd30TtjIcu+T7fHs9vKqXf3JyedOjjbtzlxot+vwiLjH?= =?iso-8859-1?Q?yCKLbbl1HiIteGOOZJf3Po3rJ/g4lIfJIBdxVs+HXgk17XbGFe3XhPE6Lo?= =?iso-8859-1?Q?T4MDtiN5SAi/5nsftScPeZ0hBueI4svvzOe8ey910pcpsHL+yc6Lgz6U1s?= =?iso-8859-1?Q?2HnomKaRl5aUbVrh/zPSIpWu/uiijnbtwlE3xyOhFYdtXyV4epgID5x0Zt?= =?iso-8859-1?Q?8ZZ8kSFBqfS3kcphIu7hI1+bxZJ4bVM5TkIrk8RBD7f9gZfjrDioaQ1zsh?= =?iso-8859-1?Q?Zo2wxDK1+2rqxJuXmP5A+XysbH8mxbz4at7Wd1N4OqEm18WaNvMUDIDVc+?= =?iso-8859-1?Q?+cgNRgjeHH9mnwTv2LCDyL7Wnn6WDZIj0H6?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;5:dZriCORlf6jr9xuos8kHX/K/qlodEz4afpBdRmmlazsEtYXkL1mfKTgaLtm9bbMmtpILGGQT3yATwFpOZZk9l6fWsYBhjv3U6cQVA6WVlhHqYdnQkLmJEIFyo5wA1gA7o33wqluxWDdIpxLuwBtk+g==;24:p3cWOSfEGsCh2Kfgx+yrcHD78RHpxgunuyjg/JLm/U3LSjk13l8ZuOCVyQa5CgiaUBwEgMFbbxCW+vo6K2nRTrwfb37mD3WMpiQ0nxP2zBA=;7:WzYCHiiGyoe8MowPJL1CqpvPQrCKE6fpViqPcqBoUjbLJMkTrK/gUZdl0QCflOL2V2ntqiCdmPIIoPu3uW32v4a5m5OefgzxzCIFDzKxKHIDZb2XghE+F1uF9282SOJq0Vx1Tjuu7j3i9Y7rXDKrBCTWcVdO4UvPEisohZUW7IyMcDndjvWnmDAEO+etmeWiJumLIOVf00mjbN1DfvGhwQWh1hcIP+ygADdZk75O/WM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2016 19:29:53.8235 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0307 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/07/2016 03:24 PM, Waiman Long wrote: > v6->v7: > - Fix the race condition in __pcpu_list_next_cpu() as reported by > Jan Kara. > - No changes in patches 2-4. > > v5->v6: > - Remove patch 5 which can increase the kernel testing matrix. > - Disable preemption in pcpu_list_add() as it was complained by > the 0-day test even though it is not technically necessary. > - Add a PERCPU_LIST_WARN_ON() macro to simplify code. > - No changes in patches 2-4. > > v4->v5: > - Fix the UP panic problem reported by 0day test by unifying the SMP > and UP code. > - Add patch 5 to add a new kernel config parameter to allow disabling > per-cpu list for small systems that won't benefit much from this > feature. > > v3->v4: > - Fix some racing conditions in the code. > - Add another patch from Jan to replace list_for_each_entry_safe() > by list_for_each_entry(). > - Add lockdep annotation. > > v2->v3: > - Directly replace list_for_each_entry() and > list_for_each_entry_safe() by pcpu_list_iterate() and > pcpu_list_iterate_safe() respectively instead. Those 2 functions > provide a stateful per-cpu list iteration interface. > - Include Jan Kara's patch to clean up the fsnotify_unmount_inodes() > function. > > v1->v2: > - Use separate structures for list head and nodes& provide a > cleaner interface. > - Use existing list_for_each_entry() or list_for_each_entry_safe() > macros for each of the sb's s_inodes iteration functions instead > of using list_for_each_entry_safe() for all of them which may not > be safe in some cases. > - Use an iterator interface to access all the nodes of a group of > per-cpu lists. This approach is cleaner than the previous double-for > macro which is kind of hacky. However, it does require more lines > of code changes. > - Add a preparatory patch 2 to extract out the per-inode codes from > the superblock s_inodes list iteration functions to minimize code > changes needed in the patch 3. > > This patch is a replacement of my previous list batching patch - > https://lwn.net/Articles/674105/. Compared with the previous patch, > this one provides better performance and fairness. However, it also > requires a bit more changes in the VFS layer. > > This patchset is a derivative of Andi Kleen's patch on "Initial per > cpu list for the per sb inode list" > > https://git.kernel.org/cgit/linux/kernel/git/ak/linux-misc.git/commit/?h=hle315/ > combined&id=f1cf9e715a40f44086662ae3b29f123cf059cbf4 > > Patch 1 introduces the per-cpu list. > > Patch 2 cleans up the fsnotify_unmount_inodes() function by making > the code simpler and more standard. > > Patch 3 replaces the use of list_for_each_entry_safe() in > evict_inodes() and invalidate_inodes() by list_for_each_entry(). > > Patch 4 modifies the superblock and inode structures to use the per-cpu > list. The corresponding functions that reference those structures > are modified. > > Jan Kara (2): > fsnotify: Simplify inode iteration on umount > vfs: Remove unnecessary list_for_each_entry_safe() variants > > Waiman Long (2): > lib/percpu-list: Per-cpu list with associated per-cpu locks > vfs: Use per-cpu list for superblock's inode list > > Hi, I am resending this patch series as I haven't received any feedback to see if further change is needed or is good enough to get merged. Cheers, Longman