From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752550AbcGAINU (ORCPT ); Fri, 1 Jul 2016 04:13:20 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:42373 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750803AbcGAINB (ORCPT ); Fri, 1 Jul 2016 04:13:01 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=thellstrom@vmware.com; Subject: Patch for drm-next WAS Re: [PATCH] kref: prefer atomic_inc_not_zero to atomic_add_unless To: Dave Airlie References: <1444474594-28359-1-git-send-email-Jason@zx2c4.com> <561ABFA6.8050102@vmware.com> CC: "Jason A. Donenfeld" , LKML , Paul McKenney , "dri-devel@lists.freedesktop.org" From: Thomas Hellstrom Message-ID: <842a1a37-7c57-ed57-7a80-97fb8a3c3f88@vmware.com> Date: Fri, 1 Jul 2016 09:08:34 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [155.4.128.115] X-ClientProxiedBy: BY1PR0501CA0001.namprd05.prod.outlook.com (10.162.139.11) To SN1PR05MB2333.namprd05.prod.outlook.com (10.169.125.23) X-MS-Office365-Filtering-Correlation-Id: 4f9734be-1e59-4525-8407-08d3a17e8af7 X-Microsoft-Exchange-Diagnostics: 1;SN1PR05MB2333;2:MZKoKppQbrQZKHI2wKiwJbh1EuMpqo7iga4qvbhww+inPdj3N2pnnUGmaW2q11JL2Dp+FNO0DHfyGklQmenJrFhBREGY5pQNr23TJBfcfgoSXtCm3sbx2cEb/FTSOXVrOVnrsGsWYiI3MXhGA60BZCUfPXg8gyP/YfIIh61X6+2Zz2QKgP/Tz64wqGzhVYRI;3:FMcru6em4YMRFBXFGD2VgTa6BPOpSyNM5ptfFl4/9yGwhFirkSWQK6mjBRjqUsIQrj9HyWqPmgUlcH/0V1hyeutzN+gF+Ymp+445jKqJe0hlG1AV0OWGf/ngusaaGWBz X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR05MB2333; X-Microsoft-Exchange-Diagnostics: 1;SN1PR05MB2333;25:WbfYPK2Ear2ftzgnN3c9CgJXYORA8iYPTooBlcrt2vFA7XxrlHeL7e/YgWzi213vzKqIHBLDM4A28vo5Ro1GaJz4ZYCwM/cWDHv3pDAionT1AZ75/cdcG4iTyNZFbNmiFFAR+Y0uZvXZpL41qp0+uiyNlQlBK+ObjCis060ogrk4ZKX/79z1sWa3NNtgnWtY+YS6fj2Hnuy6xBngkl1stk8qBDYp+ASP+ZnbqjZs+vWeNdWoDDiJV5RwMAyVPREOVKl1D00QBG2ojbVL4wKvjLPwMNVGtzs45N6AIPTn+saoL2cAzV6zdQPqSmjJPaR3l0djwZwGFmBbamngu2ing/R7IHZgFZvyEUpR2u5cZY3wUwVa8XGXIpmO9mZFftTC+XbHIujswzZRmXwbq0X/jvo/QI6b/coFsf5AcL33Jl9X6BfGuMg0xPzMgnPUaOCwHvaXxUN+COWcFhf5ICUjFiHHbOPsPVHkqb8UHmFqcRtlb95Obwra/dgV9TCbzQM1yegWlt6LtwfYhRCCp3FsOi+pSQaRx0McZ5MvOGbZZCw20S1BeVLcj801WnbKkgIqwgQR+rzXKniP4mngMcEX3J9Kq+y65GQKu5eCyhECMjOp6CumCofaW3FEY6qAPQRTSuIqUdu5Ru4YLr3ioKUz8IqLl1IMq41nupqO6zFlHrVitBBakmBp9J5wJAp5B+XKObCdxq1zqDYJ7KzxGN1xIfLvYIs5Ih5XWtf4AcFBXs1Vz8druS9P7u2BfwLvw+sjZHvG7zRa6GF9dbf+CuJjsyR/rjHHUxbFYoVTSTCxjeoBL9nY165IVJUifl8aC95/WpqyhuP7S9QQcP4L82rh6g== X-Microsoft-Exchange-Diagnostics: 1;SN1PR05MB2333;20:odGoWFUmcVP7JpAibNumBLXSmK8R11QMTt+g/vMpJCZzJzgRwpcsXw24MWOLqUSpMSHeXovLed/6HU9RW08lFVnxC+DeT4IU9XRLzbpzbHXvTnfvHt1fKVxp+83HAOoyOTKlki+S0tooMuReV3rawL0W8UjTnZ+qm89YSwTJ9AY3j1Ks3PP3KdSknZPsrKVdnQBGOvjxLkzWT/DS1jyoxjJ1tb/dwKAv2wv8MXRrjBFSKkKGL6REwH0yKcEvwYi1;4:moFA+tWyBfrioYjPTa9vfyQahZ07A65MlqUFK3PPGzpY/dCm/tqEBHYuB6FY37Um2TjFaLA9k1WqwwCmsX8U7FMR1wzuG7FeuAPe8mtWJBPXSpsYayTO0j4f7WYg90gbrtp1n9JBsboYqZVbu3+HeR8h2eOl8H/NmXBioaUpnY4moPmw1KL5m4eykU6WPqHBmWhj7JTAdBx/NFvsdeLnnvaY2tqHo44eKXdIVsLyRz2uVpXgY+q8BVvE6tD6EY2hG4O65SaJEI7zprv/rUWKG3L0T5jIEt6SAQJ8NlCZQahuGb6hNCwlNxCDALEkuuZO94yqSJJGAdsoB+K0COnrbpiN1Mp/TyaNunefLACKVY8viQL8qxzCwAyRk0zO8Edemsbcezkk08mzoctIyhuxUuD6m99KlAlcv+npQ0wCzUTE/9sgce64wfc2uLv28nNg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(61668805478150)(10436049006162); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:SN1PR05MB2333;BCL:0;PCL:0;RULEID:;SRVR:SN1PR05MB2333; X-Forefront-PRVS: 0990C54589 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(377454003)(199003)(24454002)(189002)(50986999)(54356999)(586003)(64126003)(110136002)(68736007)(36756003)(92566002)(31686004)(42186005)(76176999)(6116002)(97736004)(2906002)(33646002)(3846002)(4001350100001)(189998001)(4326007)(65956001)(23676002)(19580395003)(50466002)(81166006)(8676002)(15975445007)(47776003)(65806001)(66066001)(106356001)(105586002)(2950100001)(7736002)(7846002)(86362001)(19580405001)(31696002)(305945005)(101416001)(229853001)(93886004)(230700001)(77096005)(81156014)(83506001)(575784001)(65826006);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR05MB2333;H:linlap1.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjA1TUIyMzMzOzIzOk9pNjdncWJZM2h6SUw2UGdNRjNFM0hSMGlt?= =?utf-8?B?ZmVmMmRnYnFKSGRYczJ4WXVYa3BGLy82b1c1VkdENGhScUt6ZVhJVXEzbUxC?= =?utf-8?B?eFYwRTJibnplNEI2SWg0dm1hN0lWRGNIR3kySlBFOWJMZkZTdGROVThKV1Rl?= =?utf-8?B?M3U1TkQvWmNWNHBBWUt1YlVkMFhCMlZLUlN1MFowT3p3ZElOMXZ5Y3pLUll0?= =?utf-8?B?YWZBbDBYazBrNDJma0J5Q2ZPbk1SamZVOHBHN1hObmgvQ0FZUXpReFoxZVhM?= =?utf-8?B?MkdBRUpseWNkR1pZZzgvM1FMTzE0QkJiWDkzMlVoRE9jV05WNS9mREhzSmli?= =?utf-8?B?eGFRcVRYY1dOQWp6U0FGUEVTZGp0bG9xdkpyMmJwZUQwVEQ1SHBDRGpxb2Ux?= =?utf-8?B?RTNCeDdDQ29XMTlQcDFvRWJnM01yQUNlNEdOZHNxSnBlU3RuR1hBTlNmZDN3?= =?utf-8?B?bmxXRnVzVzdjMmlFZ2ViK045UDd0TDBUdHh5MjhGckd2cE1qTkFqUW5aa3Iw?= =?utf-8?B?U2JMR3o2bkhTUEsrb3p1QTBTRXdnNW55c0ZQcnRJU0dreDBOK1l3ZlU1bXRC?= =?utf-8?B?QlJjOERYYkpCUW40cW1NOFJJcllaR0dzQkZFVTN0ait6cUpOWWQ2dERCdXdH?= =?utf-8?B?eERxWUVpL3JjcWJVSjVjRERZUTE1eDZPSkRHcFFJcWF5bmhoRGRBWjZWbE80?= =?utf-8?B?MXdycWlkR3hoYm5oUlprRnBvdlhpbzMxSDYyK1NRQkxUdk0yemxEVEowV1lZ?= =?utf-8?B?SUxwMmYvYnMwRmZHNmppeWk2VGE1Nm42Tk9tdzY1M2U1SWRBOUwvSVh0NEFo?= =?utf-8?B?MlBaLzJGQXdYQUpsVkswUkZOVzlOZFkvU1drV0tGTmRTcE5hQW9iS05RUlNj?= =?utf-8?B?KzlJYmVndS9ScVArZitJZk13YURUcE9QNWJ2WDZVQlNoNGNqNzFZU2dDZ09q?= =?utf-8?B?OElxTWlhL0Ryajl1cGc4YmFHNlB6c0tEZ3RvMTFZVHd0T3FMS1pyWkdhbXVr?= =?utf-8?B?ejR3VkxoeFN0L2QvWXJTcVdhVjA2VXRPdGxHZHp2SkxRd3NCQ1pwSEpJMVRK?= =?utf-8?B?US9GTnBXMnhkL1o4Q093a3VhMGF6R2taanZ5V3NtQnpQLzcrUzhjTG43eW9h?= =?utf-8?B?Ym8veEQxSGpKYVpwYU9UR1h3K3BwWldsWjNQb2YzdkxyamIxQ3ZtN2hvWlhU?= =?utf-8?B?dWVZaWFDaXkrdUJQQ0dlWE11TUVDZFZ2aS93cXNEK2FaK1VxWDl2a01DaXRX?= =?utf-8?B?UmViWUlMbE1vcU1nS0M3OXJxLzdlZ1RQM2dCczJ2N1RyK2EvcnlvdUE5bzIy?= =?utf-8?B?dDFwM0Qrd2VRd1lZaFFZYWpqTHAxUER0QWtvVEZWS1NxTUhEVDkyT1cyWm5t?= =?utf-8?B?QTBLdExMWFBhckhDMUtFZHA1QUNtS1NydE1McEFkRnhnQVAxdVRGTmFjZlhh?= =?utf-8?B?T2dxK2xLb3ZQYllpeUZ2aUlJQUtQTzBycnkxOXhuQVhWRG5YSVNBTkdadk1i?= =?utf-8?B?czlCVG9SeHJHQysydTkreEVmcWNzSVRQSGFDemNzYnNnZ1cvRnBBSVJhd3R2?= =?utf-8?B?am56OVlBeWd4ZzluMk5xZUJnYzR3aDVwZGJKV2I2Y0xNOE80WVM4QmFTTTN0?= =?utf-8?B?ZFpwRDRjNm83aW5TMzZYYnhtSm5zOSs2K1lIandiK0ZSMzZVaU9Zd01Da0Iz?= =?utf-8?B?cDcycUQ2a2dNUmhZc0pheTNHcWVnY29EUk1DWE9yTmY1UEExaHY2Yy94SzNn?= =?utf-8?B?bDhrTWR5b2U3WVVvLzU3SnBKcGVyQ3BEOFFYRXExMzFaRjJOZEprYmFJNElX?= =?utf-8?Q?HuEgbUaCSBMi0?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR05MB2333;6:jMo2IpLJ4YKnchQgI9voze1hmYAhlkz62Hi5M85EA8nnJTcVG/qjXxKWISdMAUhG+5eFq62Tp4LHPdFDW26UfwWRGVJSAvS2xNRC7qneKSMGoEPVMz4QX+XwHWaGoX56hPGGECrwXjHI9RJV0wJ4FGEWAbS6Uj4QszkALwIpNiWHt7366NUm9bbkGqiPzwGnlq9pAp4dqiUt821x5QzVGy2x/MQgfaJQIVDIg29wWnPbj0rLWaIE1nEtMxkpHmE06uztpb+ZaPIDPCvfXMPeowKmRwkL5p213IPsaah9Qa3uPdit/7RGCefRI3I2uG54;5:yYoxI1tWUm7heKzcLR0Iln9JjTyUxQ/vw8xSI5u54lGXZv7L12XISNfNbyKUI3txMT9xQOhN9yzh+gbA73CxJ3l6l9iGJjrs7yOTzGLKeOq8Oq1SBLy74Qv/cNM8zCEViFt/xgFNtXt93pyQS1kFhA==;24:oOLwK1a/uUbaSA7ZDwshYG315bOPKBCYfD7jW4mcKzKpnJJQLvZ8R8ZFrulLg+LGSPbjmTisX73q9t55qg9PYw2VWLJAY8lskFv97pCCTlU=;7:C1pOn6UcshvdIII3ncqqBHaSo+JeDOF6sCNscVng/JDM+lgrD+VjJcGz5MgBpXHBm9UJWeaoAOswLqCMo0KFm0FDbi1F1pYcm4QHXdQwk1Sop+zmvQre+S0r89j0Lnv9JGqtEUz2Evi2eb6aDUXTmclxct0EcrgTjo+9g6r9PaaSrOwmYCmIXvbKdIQAr8LzL0KsAhhPDMfS3ayBKO7NDUHQqk3dsV+f9qGDc/8sJ6Jqf5EQDnc8BWZZheMBcoYjq3so9LgPzaQK9u5JAfUeaA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR05MB2333;20:YdcpS++pqU/YT544rsVTkk0Kc60wfllf0XqVNZLwXwIut3kpLbj6XZ6YHyvY5XyeypUGZQ6DGzUMB8/LEgHA7mC/2J7bGreKYu5XlSEh/GzREK+hicPdSd2AE+yKILb/991JmxwGrvvgxiDF+UX1IoxU2PFIK95/WeBEoO37Q5g= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2016 07:08:44.3767 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR05MB2333 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dave, Since kref_get_unless_zero() was brought in by drm, could we add this to drm-next? Thanks, Thomas On 06/30/2016 12:52 AM, Jason A. Donenfeld wrote: > This was positively reviewed by maintainers but never picked up. Can > someone queue this for 4.7 or 4.8? > > Thanks, > Jason > > On Mon, Feb 1, 2016 at 10:53 PM, Jason A. Donenfeld wrote: >> This was positively reviewed but never picked up. Can someone queue >> this for rc3? >> >> Thanks, >> Jason >> >> On Sun, Oct 11, 2015 at 9:59 PM, Thomas Hellstrom wrote: >>> Reviewed-by: Thomas Hellstrom >>> >>> >>> On 10/10/2015 12:56 PM, Jason A. Donenfeld wrote: >>>> On most platforms, there exists this ifdef: >>>> >>>> #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) >>>> >>>> This makes this patch functionally useless. However, on PPC, there is >>>> actually an explicit definition of atomic_inc_not_zero with its own >>>> assembly that is slightly more optimized than atomic_add_unless. So, >>>> this patch changes kref to use atomic_inc_not_zero instead, for PPC and >>>> any future platforms that might provide an explicit implementation. >>>> >>>> This also puts this usage of kref more in line with a verbatim reading >>>> of the examples in Paul McKenney's paper [1] in the section titled "2.4 >>>> Atomic Counting With Check and Release Memory Barrier", which uses >>>> atomic_inc_not_zero. >>>> >>>> [1] https://urldefense.proofpoint.com/v2/url?u=http-3A__open-2Dstd.org_jtc1_sc22_wg21_docs_papers_2007_n2167.pdf&d=BQIBAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=vpukPkBtpoNQp2IUKuFviOmPNYWVKmen3Jeeu55zmEA&m=z5Nd9sYiJMKiphNjyZp6XT5CbayXMBlcb903f260pDY&s=HEHX3CuXRs2GRRQWuC4Vef6iJMwdilKVRkiZgJpjEpA&e= >>>> >>>> Signed-off-by: Jason A. Donenfeld >>>> --- >>>> include/linux/kref.h | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/include/linux/kref.h b/include/linux/kref.h >>>> index 484604d..83d1f94 100644 >>>> --- a/include/linux/kref.h >>>> +++ b/include/linux/kref.h >>>> @@ -166,6 +166,6 @@ static inline int kref_put_mutex(struct kref *kref, >>>> */ >>>> static inline int __must_check kref_get_unless_zero(struct kref *kref) >>>> { >>>> - return atomic_add_unless(&kref->refcount, 1, 0); >>>> + return atomic_inc_not_zero(&kref->refcount); >>>> } >>>> #endif /* _KREF_H_ */