From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753778AbdEIThe (ORCPT ); Tue, 9 May 2017 15:37:34 -0400 Received: from mail-cys01nam02on0041.outbound.protection.outlook.com ([104.47.37.41]:50400 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750858AbdEIThc (ORCPT ); Tue, 9 May 2017 15:37:32 -0400 Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=caviumnetworks.com; Date: Tue, 9 May 2017 22:37:19 +0300 From: Yury Norov To: Boqun Feng Cc: Will Deacon , Peter Zijlstra , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Adam Wallis , Andrew Pinski , Arnd Bergmann , Catalin Marinas , Ingo Molnar , Jan Glauber , Mark Rutland , Pan Xinhui Subject: Re: [PATCH 3/3] arm64/locking: qspinlocks and qrwlocks support Message-ID: <20170509193719.is3naupydwuytzdt@yury-N73SV> References: <20170503145141.4966-1-ynorov@caviumnetworks.com> <20170503145141.4966-4-ynorov@caviumnetworks.com> <20170509044708.vvwgzhvdrqyljy6s@tardis> <20170509184829.scwjixgc2kxxxku7@yury-N73SV> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170509184829.scwjixgc2kxxxku7@yury-N73SV> User-Agent: NeoMutt/20170113 (1.7.2) X-Originating-IP: [94.25.181.227] X-ClientProxiedBy: VI1PR0602CA0003.eurprd06.prod.outlook.com (10.175.26.141) To DM2PR0701MB1280.namprd07.prod.outlook.com (10.161.225.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 828b2bf8-fe88-4236-7744-08d49712d4f8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1280;3:/mXk/mV319yTTgdREH+s0SjtBV5CTBnaSPtIxIzcq8ryfh8V8xZCUTlwICJJEwSCfqBGK4oY3/wUbKigViTCduuEZHYN9tCMV/uuwf145NFIJe6VGqrhZyPVCBoEJzck2pxRaPxKaMd1EROTZAJUbeSNIqDOUskzL/LeZpePqfXt8yMtBIKATkiwKVZfr1dj/oBu+fycZGsNYasDGx2eX6jd4egMFaC2mnfFTdAPH3/fMG64J88f66zZbb+VK+dkV+/r7/Kj4euawQ2/jJhCmaTdzjOaD79QQ44Wi/xpp4pNttsHVaeOYS95A3LHR/DiW3Ab847Eyf0R57c81ijdSA==;25:2u/6KsEEIXW1EZoaje14iJ/L2BXWDz5/qGVNmpr6z/qeetZdHCbII8G8xjgwRkRvd2DrfeiowvoLBA3AJR+6tjhS6m3tjF7XpmL+7oE9ltDamSVWE+Iy229Hz+MdVU0ePiJW3dimHx53C8S4jtLapYHhbuFQLnBPcSOUFBqG6YiDZHJ6+eTSmWuKgcJd54SaVAks1UfxwPqrmoJ7nLrATrYQRXizRRiRsgOJH0v6e7QqkK4/pDo3Hc6AATsmryKIxruwa4FQGkSaruJmO85vvuigymmXyMgeygSdtJGKFU0TctEm8G+Zdnq6YoEhgQdklctb7stDVVlhKKZkOe7fGKfDRLgjxXSSvzecO9rg1Ihj93K039FBnvQzHWC5crOVkLoN5YKGetyMgEBCWLiQbx4WoDQjWqpmZlxULXn6uaenrmlZMcEApGDj5RxIQ9gurnaAMQkC9H1YatinyyOBkXvFp5wouc2Gw2M3P+2ueAA= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1280;31:9uDkG1jGZF+ZSESUAcatbk3SIaMJEQZp+nyVLY8+iu+Z/w0tw2krQUkXwEGgMw0uZRE7gcoLrmkdDyzNwJP0E2z9n25DE4rfovN71e6FKhH6Ga32SATqhNEdpsCqDvS9jDnf0VHspiIWmpL+xnycNFt8uK7v7ldlpYUKdzNPb9pudVhuksTP1Fvu3hPbADq28ZSX09Wl68S9Rf/mYkFK+GschVAmA+jL7w/CJoUc1IhXUaeGkU5aYh5hbIZd5v8y;20:fqEl/sxQubYnxjJDFjDE/G1eRybwNKLjUS6OK4fquNHBwt9VtAT/55DeK+qlhmLpoZc1XUiOMjBOS1AWkswTJ6HLIoKU90jsrzfNkSAmtK/JKh6Q1RmEMRHIXgifw+fr/8kFh31gv/XoKFmVPGZBEKId22sj1pe97rDByuRko4VH10yhOSoG1xSpjub8JI3V6cfAPyGxPiMkN66awN6FHM6zbRmch/PMcEHiBONVnrEBKhKTLeVEQJ3ErIqYbc7JU7T2/CydchqdPiQmbg3UK7Xlm9FyZ2Vxa06SQxW2Ruq90dYANs5lMkr6W3DjjGm4Yoby5jHP+3NNHVZlaPzcSbeZ4eQVgacNyFEi0f+QH9T23Z/w5Qxj0EPqTcWeL74WzesKM5Q65CMJUgY/pCEyMzaw4qhSoLEP6Q7osdtXKOpSqIvXCYb95L2wNiVqVl7dEKeCswXwKoEYd8l2Umz+esKx6h4P30p+9UgWeqZ7jBxEHZfNS4pfTLHNtNTB7TO3/98AmUbj6GCOGZX8UAdC2XhXlmh9F0HHWY/4bPLor7LHr7ccxzxNdLkohhnmX1O2wxu8TXrX25llNwrelqG4Lt6THyLFpxrKo3fORaF2ZXU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(6041248)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(6072148);SRVR:DM2PR0701MB1280;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0701MB1280; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1280;4:+paFm9biOf4rlPK6WTjHaXg+KEIvySAa5afB00DMuK3nJbsbDY6kyo301wKw1Wek2FVccNJHA++LQipFfi66FGCt8Wkkdtb3iH/6PRbEMD/cFlCNH9O6h8hEjKrQOt6wJMfVuj5kXF0qmBecZ2eLUP+OWzBq1A0suUjxJ/GlO8IVEPfrBts+43m8W7BZc3xnA8w1RCcifpldglQY9DjT0KE/nVztkF/q3IZVvOiIaN+kIYhUgPNZFzYE+NBwu2B2e7il1haHwMw18eQuYYjCmELnKlqNUUJL9KSZf2F3asa5OhUHxefcGjeavnadcSwHJbtDUOvGqNvRaHZfI3NI0t6dopDLasRiumdJZ3dwEF4qoOzR04stR6JqErVlcO3010Qao+psuHkDiBAqDv0zt+YBoO4NnKCXzWmJ0fK55kBbpBKDud0ibs6UT9tqGTth73QuDavVBxPMmg2S7BuzKe3eD96LOCa2Zbh98MJ4F0OA/9S9s7IGuagLWm4AeOXPy0Y1YqmCBKlIJVY2QZrJq5svvXYtgdsgcNp1zvNQQIYAthHV4AnLRTm0bCeLH9BRVgC9bDSzcfpGxOhNUozxfneJwBJ8ieyJlu3SJlEyHAcA7AzbQwytrTwuyLKw6NAJIrrki2yrcnvY5ACNWttKr0VyY5Asrglua4pUdupI8GWzca8UKAQTlSfJPMaK291BcZf9/UaOXCqswRgJEt13tMNbOR4fSsC6NgG6pzBWsfgo8O5TM75U5haW6TspUmTxGN+wGxB61va8OpQcvpOY+Q== X-Forefront-PRVS: 0302D4F392 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39850400002)(39400400002)(39450400003)(39840400002)(24454002)(51914003)(2906002)(54906002)(7416002)(4326008)(42186005)(1076002)(3846002)(23726003)(25786009)(189998001)(33646002)(47776003)(42882006)(5660300001)(9686003)(2950100002)(6306002)(6246003)(7736002)(229853002)(6916009)(6496005)(50986999)(76176999)(54356999)(66066001)(6666003)(478600001)(305945005)(38730400002)(110136004)(33716001)(53936002)(50466002)(6486002)(6116002)(93886004)(81166006)(8676002)(4001350100001)(72206003)(76506005)(83506001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0701MB1280;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0701MB1280;23:Fd0Cn3CINhmw7DxpL5Qs7VlaqhQltbGrlMz2mKn?= =?us-ascii?Q?VsihuE90EjpX/M+UxD/dmdJleAqeIAqgd4PLKt3y0jZXdAps7ywLYMJIYSP+?= =?us-ascii?Q?T6GF5pC2LuDzqjdlXxK/Hp4+ob1ZDMOm5E/kddmn4blK+WCyaQIQ+1WmRfO1?= =?us-ascii?Q?GQ7fqOUpugweTUzqqmFQGKcxfw415ANqj0q/83oxPWdfHpgGTZOb8Xlxg726?= =?us-ascii?Q?n0zolE/LkBtmMfyuzBlT+HVmeSMagY7vaxBnU9BxobysHDz9+3Zgr9EuGlwI?= =?us-ascii?Q?badCZ4EVaPbV7KOeUpMUoBTJ9yi7/0Bcg/kiS6AEi/MJw8Ixv1Ph9dlJUyR4?= =?us-ascii?Q?Pu0fK45ZtCNBYIGKp9sm+ut7Cl8SgSuqVpONzSNVy3S2Po/6m9ydGsavkVEB?= =?us-ascii?Q?l1dljAwW+948xbjnlAdPn378JP33aUGtwXdQ1ALeMgablw2qOI9lPF4E09C3?= =?us-ascii?Q?IM90MtMzhCWLfuOPqDG1eu6KXwUowQ4EbBDeqIXsaC6tCxL+9A/0iAT3AXC9?= =?us-ascii?Q?+2+J7+ixXykkMh4q0/XrPZKMl0Sx+pnct0LFClEwoAXWp4N8RgogqIvdpikj?= =?us-ascii?Q?Ekeqn24m8grA01Ml2Z9btJhUDvHGPQAPRNoWY6RvEM31m1umWrfTuZN2+TEC?= =?us-ascii?Q?U6XclapgKXqHlbGAPsqL2mE/YPUrlFWOTnr1jFCK8H+DsN9NgnPEN3fIrDrg?= =?us-ascii?Q?FT3XGxTvUWctNDVu6Pyd1SfgZ8Ly8II2dixG6pT0Vr4AIeVIH6/s7+jTehBe?= =?us-ascii?Q?uGPb7cFwp2ZE/IIxjVM7ox0lygv+LQ+ZHulrCDcF1xtvcSL4yse1b+ITkf3B?= =?us-ascii?Q?FNNfeod4M8QujRi5KGkloBJUltr5PZoFRREGZOAErRaWKBFlerec/yYfvqp7?= =?us-ascii?Q?4wxIIzagk4sTvNnrif42OvHN9Yk9Qn+uXI6aZGUya92uMF1mZQsrjtTtIzUD?= =?us-ascii?Q?dx40oGc752/FFFz2+4ItBa5bEBcc05C+IR+Vra6RGkRXXSyV3JgJFyCf/Egb?= =?us-ascii?Q?gmsdLy05z7a4DxLQZgIX5981qNYSty297ihLnoKUncQRFdC5dUqx8kOdwUlc?= =?us-ascii?Q?qFm8TOfArj0jyBCILMpxRHD5zMUAB2L18yoSwBSv9Q1MylRLOJyUgyQS82+d?= =?us-ascii?Q?sAE+zM8VECrFTmkSrXnwldXUUyCuiw5rGSQTz/dB0lFkFsKpqufPW9jmUd55?= =?us-ascii?Q?YJiNETNKpd+gx9mYBuUrBweju5jggxaIZKEeD3+I+ABdyf01kKQz/4AnuCp5?= =?us-ascii?Q?p8W02IZw/cgLBJWkfYBW4bIwKu/XX+MX2zjrskH2m?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1280;6:yBig9ZO9MdHOHJ5YnN68TwmOsWBmAQpufXTThlZ74TtOZN2JuHDV2pt79EHt0IRHIzFJkPjJIYGh0gHIwujnEm8Ogi5FJExd06yUg3CiPykxalBTiiFBGlKWysZtUep4MLqLq9kIpvpwHgvrQYQw4sUbGzZmXWaE/OOCxouMuGoZrTBMUmk8gjiVuTKWHeaFw0sIip/SRRRFdxjiW+uMwZG/pB0WoemuM27rWuP00R7APtfMvyy/R/ILo7oyL9rrnUpvnrgP7TVjD9fFDKl2d8jh3xNohgHGqke1qMQOCZlA6DVdaG+uxXnTzYdCz0prKI4ErVIZl66p5stwo0O3Dk6Fbud99g3rEI+v10xvGO6H64fd2WuibBAud6CQjHIeyDQZ/sSJreNgetI/Abk3mWYScsenkRGTw9l9unYmXpI8kqJkLiUCSm0AwSuiwm+dSiNuCm1n6t/LlI5EWf3r1komr/BH6ari5euyOX3GDMAY6bwd6DDSL+BGczTqDwBewIy/kODXfS3C7ZEnldbuJQ==;5:vMv95nGWJrXzYh/8rCQgsHqpH0QMtTOl6SS4+tCB2lD35W6CZyWfuf1n1OaB3ER0z9u91303qEeK8SA/g//mRSorjwekx0PAyo4RAE3NRPWiXR0Ckdnew96wr/DfXmQWM8KllXApEQhgmTXaEx9AfA==;24:Y2Te1e7o0RlsbbWOp1bYlWlr/fosY1s679Z9/NOe9GYSMhbIz0JWkAFAevwXJduRVDxIpeO4OzQp3smxUQO/3+yY3ToTMh5Ht/NMqXQL8Z0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1280;7:BLz+yx0kxrnzfeKXhHOj5BKMEg5a3wq4su018s2o4rn91rjTIjRAqqnaPOk1t6MyM37OkLzHdE0fdpvEtuRAwyGjqIPfRAQkSvJBgYLnqFoBKQyq2kld5rHYeBe9Eb2e7yTd7xw1uK93XQQiSo9R8pMIvkzK2zHaVDqzY0JLfbNCGQuA4rRXZBx07lfEc8x3mfIMeT+319N/CI144RzaqFDADwTx+DYZF+5R5goTpYz325LXzedFJEB/UI8ROv/0iNKqHwHCmeI4gNmvAgLVHn0VOoLvNH/t8fcYkxrPrCJEVmXEMjnJhym2yNgci686tMAEZOzKiVUIL5LfM7COoA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2017 19:37:29.9187 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1280 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 09, 2017 at 09:48:29PM +0300, Yury Norov wrote: > On Tue, May 09, 2017 at 12:47:08PM +0800, Boqun Feng wrote: > > On Wed, May 03, 2017 at 05:51:41PM +0300, Yury Norov wrote: > > > From: Jan Glauber > > > > > > Ported from x86_64 with paravirtualization support removed. > > > > > > Signed-off-by: Jan Glauber > > > > > > Note. This patch removes protection from direct inclusion of > > > arch/arm64/include/asm/spinlock_types.h. It's done because > > > kernel/locking/qrwlock.c file does it thru the header > > > include/asm-generic/qrwlock_types.h. Until now the only user > > > of qrwlock.c was x86, and there's no such protection too. > > > > > > I'm not happy to remove the protection, but if it's OK for x86, > > > it should be also OK for arm64. If not, I think we'd fix it > > > for x86, and add the protection there too. > > > > > > Yury > > > > > > Signed-off-by: Yury Norov > > [...] > > > > +#define queued_spin_unlock queued_spin_unlock > > > +/** > > > + * queued_spin_unlock - release a queued spinlock > > > + * @lock : Pointer to queued spinlock structure > > > + * > > > + * A smp_store_release() on the least-significant byte. > > > + */ > > > +static inline void queued_spin_unlock(struct qspinlock *lock) > > > +{ > > > + smp_store_release((u8 *)lock, 0); > > > > I think this part will cause endian issues, maybe you want something > > like what we do in queued_write_lock(). > > > > Have you tested this on an BE environment? > > No. I think I have to. Thanks for the pointing it. > > > > > Regards, > > Boqun > > I think it's just the issue of copying from x86, and there's no any > specific need to cast to u8* type on arm64. So the correct version of > it would be like this, I believe: smp_store_release(&lock->val). > > Yury Oops, it would rather be like this: static inline void queued_spin_unlock(struct qspinlock *lock) { #if IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN) smp_store_release((u8 *) &lock->val + 3, 0); #else smp_store_release((u8 *) &lock->val, 0); #endif } Or with the helper, like here in ppc port: https://www.spinics.net/lists/linux-virtualization/msg29390.html