Received: by 10.192.165.156 with SMTP id m28csp415769imm; Fri, 13 Apr 2018 01:11:53 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/XUPXgqDpxSS7SZ+hKvG7a43Cm0JPOq7RKiLObDOziDva/mZQwgLP0IPMRtdIpTThtI6UF X-Received: by 10.101.98.196 with SMTP id m4mr3309731pgv.329.1523607113894; Fri, 13 Apr 2018 01:11:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523607113; cv=none; d=google.com; s=arc-20160816; b=gmJLzCkLymzYcRbAr4flV24Vu2bWacVIX2TDSeLIAhbXWkDrPi93jmlFuB5L4/1J+m l2cY+3tjUNNUza5zKMlPxSJTJoNhn5ekXYJxzDHWSJFye/jYLgwOPXIz95QB2c7umTC3 n147vd/Eyaj+UyM77sF3rAns7afTLmDqa025LdyBPFOoPG71pHO59f4kOEpVlV1Cz5C+ ndyYnpm+97lRygypc24JhQG8F+HRwZizzJ3NHw5iILu6cMYxcxkMnDr+UnBUgv0tHcBB i1bfSedGPPOcUEn+CQZOhzBkSGQuKS9mfhWswWxR8RtjqZa5hv7SbxXfsXssWUukauar 6XdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :arc-authentication-results; bh=BPR9QglL114SRQ6QABMkvjeFRZoeBsbzFdOYhq4nTcw=; b=PXRTYX/x91d1ys/n3PtoFJYomddQN1RNJq9O7wBOL4QrKVzottovAR37EJwa6/XEnI WXqq2tTaCsL25dV1mIq6Jt0OisTVd3a1fIW785T0/vgCv6el2Q4MIKeg7CU8rDEygLX2 Lk7my0YrDhbNeO9rW1HmMLEoF6BfSmPp2BQxXUrVCBXH7he/prXhfKTwQB8mfQbGAZt+ GUNgwMKcri0QpXWDKG79+9kwymJwf9BCN08ZY2zrOON7ZulkJYM3DtlHlXk2xgmH7JvP AZ9crodRoeVDFzamM1VWxvaaYy/C/4EHuJxjPlLRDg5mk/sUW0gqioYA4QbHsUS6M43w 8ujw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f2si273325pgt.417.2018.04.13.01.11.05; Fri, 13 Apr 2018 01:11:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753136AbeDMHm4 (ORCPT + 99 others); Fri, 13 Apr 2018 03:42:56 -0400 Received: from mx2.suse.de ([195.135.220.15]:45333 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750851AbeDMHmz (ORCPT ); Fri, 13 Apr 2018 03:42:55 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id DE473ACDC; Fri, 13 Apr 2018 07:42:53 +0000 (UTC) Subject: Re: Query:Regarding percpu_counter debug object destroy To: "Kohli, Gaurav" , tj@kernel.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org References: <0754201b-2051-3f1c-7a09-ed1be96a0260@codeaurora.org> From: Nikolay Borisov Openpgp: preference=signencrypt Autocrypt: addr=nborisov@suse.com; prefer-encrypt=mutual; keydata= xsFNBFiKBz4BEADNHZmqwhuN6EAzXj9SpPpH/nSSP8YgfwoOqwrP+JR4pIqRK0AWWeWCSwmZ T7g+RbfPFlmQp+EwFWOtABXlKC54zgSf+uulGwx5JAUFVUIRBmnHOYi/lUiE0yhpnb1KCA7f u/W+DkwGerXqhhe9TvQoGwgCKNfzFPZoM+gZrm+kWv03QLUCr210n4cwaCPJ0Nr9Z3c582xc bCUVbsjt7BN0CFa2BByulrx5xD9sDAYIqfLCcZetAqsTRGxM7LD0kh5WlKzOeAXj5r8DOrU2 GdZS33uKZI/kZJZVytSmZpswDsKhnGzRN1BANGP8sC+WD4eRXajOmNh2HL4P+meO1TlM3GLl EQd2shHFY0qjEo7wxKZI1RyZZ5AgJnSmehrPCyuIyVY210CbMaIKHUIsTqRgY5GaNME24w7h TyyVCy2qAM8fLJ4Vw5bycM/u5xfWm7gyTb9V1TkZ3o1MTrEsrcqFiRrBY94Rs0oQkZvunqia c+NprYSaOG1Cta14o94eMH271Kka/reEwSZkC7T+o9hZ4zi2CcLcY0DXj0qdId7vUKSJjEep c++s8ncFekh1MPhkOgNj8pk17OAESanmDwksmzh1j12lgA5lTFPrJeRNu6/isC2zyZhTwMWs k3LkcTa8ZXxh0RfWAqgx/ogKPk4ZxOXQEZetkEyTFghbRH2BIwARAQABzSJOaWtvbGF5IEJv cmlzb3YgPG5ib3Jpc292QHN1c2UuZGU+wsF4BBMBAgAiBQJYijkSAhsDBgsJCAcDAgYVCAIJ CgsEFgIDAQIeAQIXgAAKCRBxvoJG5T8oV/B6D/9a8EcRPdHg8uLEPywuJR8URwXzkofT5bZE IfGF0Z+Lt2ADe+nLOXrwKsamhweUFAvwEUxxnndovRLPOpWerTOAl47lxad08080jXnGfYFS Dc+ew7C3SFI4tFFHln8Y22Q9075saZ2yQS1ywJy+TFPADIprAZXnPbbbNbGtJLoq0LTiESnD w/SUC6sfikYwGRS94Dc9qO4nWyEvBK3Ql8NkoY0Sjky3B0vL572Gq0ytILDDGYuZVo4alUs8 LeXS5ukoZIw1QYXVstDJQnYjFxYgoQ5uGVi4t7FsFM/6ykYDzbIPNOx49Rbh9W4uKsLVhTzG BDTzdvX4ARl9La2kCQIjjWRg+XGuBM5rxT/NaTS78PXjhqWNYlGc5OhO0l8e5DIS2tXwYMDY LuHYNkkpMFksBslldvNttSNei7xr5VwjVqW4vASk2Aak5AleXZS+xIq2FADPS/XSgIaepyTV tkfnyreep1pk09cjfXY4A7qpEFwazCRZg9LLvYVc2M2eFQHDMtXsH59nOMstXx2OtNMcx5p8 0a5FHXE/HoXz3p9bD0uIUq6p04VYOHsMasHqHPbsMAq9V2OCytJQPWwe46bBjYZCOwG0+x58 fBFreP/NiJNeTQPOa6FoxLOLXMuVtpbcXIqKQDoEte9aMpoj9L24f60G4q+pL/54ql2VRscK d87BTQRYigc+ARAAyJSq9EFk28++SLfg791xOh28tLI6Yr8wwEOvM3wKeTfTZd+caVb9gBBy wxYhIopKlK1zq2YP7ZjTP1aPJGoWvcQZ8fVFdK/1nW+Z8/NTjaOx1mfrrtTGtFxVBdSCgqBB jHTnlDYV1R5plJqK+ggEP1a0mr/rpQ9dFGvgf/5jkVpRnH6BY0aYFPprRL8ZCcdv2DeeicOO YMobD5g7g/poQzHLLeT0+y1qiLIFefNABLN06Lf0GBZC5l8hCM3Rpb4ObyQ4B9PmL/KTn2FV Xq/c0scGMdXD2QeWLePC+yLMhf1fZby1vVJ59pXGq+o7XXfYA7xX0JsTUNxVPx/MgK8aLjYW hX+TRA4bCr4uYt/S3ThDRywSX6Hr1lyp4FJBwgyb8iv42it8KvoeOsHqVbuCIGRCXqGGiaeX Wa0M/oxN1vJjMSIEVzBAPi16tztL/wQtFHJtZAdCnuzFAz8ue6GzvsyBj97pzkBVacwp3/Mw qbiu7sDz7yB0d7J2tFBJYNpVt/Lce6nQhrvon0VqiWeMHxgtQ4k92Eja9u80JDaKnHDdjdwq FUikZirB28UiLPQV6PvCckgIiukmz/5ctAfKpyYRGfez+JbAGl6iCvHYt/wAZ7Oqe/3Cirs5 KhaXBcMmJR1qo8QH8eYZ+qhFE3bSPH446+5oEw8A9v5oonKV7zMAEQEAAcLBXwQYAQIACQUC WIoHPgIbDAAKCRBxvoJG5T8oV1pyD/4zdXdOL0lhkSIjJWGqz7Idvo0wjVHSSQCbOwZDWNTN JBTP0BUxHpPu/Z8gRNNP9/k6i63T4eL1xjy4umTwJaej1X15H8Hsh+zakADyWHadbjcUXCkg OJK4NsfqhMuaIYIHbToi9K5pAKnV953xTrK6oYVyd/Rmkmb+wgsbYQJ0Ur1Ficwhp6qU1CaJ mJwFjaWaVgUERoxcejL4ruds66LM9Z1Qqgoer62ZneID6ovmzpCWbi2sfbz98+kW46aA/w8r 7sulgs1KXWhBSv5aWqKU8C4twKjlV2XsztUUsyrjHFj91j31pnHRklBgXHTD/pSRsN0UvM26 lPs0g3ryVlG5wiZ9+JbI3sKMfbdfdOeLxtL25ujs443rw1s/PVghphoeadVAKMPINeRCgoJH zZV/2Z/myWPRWWl/79amy/9MfxffZqO9rfugRBORY0ywPHLDdo9Kmzoxoxp9w3uTrTLZaT9M KIuxEcV8wcVjr+Wr9zRl06waOCkgrQbTPp631hToxo+4rA1jiQF2M80HAet65ytBVR2pFGZF zGYYLqiG+mpUZ+FPjxk9kpkRYz61mTLSY7tuFljExfJWMGfgSg1OxfLV631jV1TcdUnx+h3l Sqs2vMhAVt14zT8mpIuu2VNxcontxgVr1kzYA/tQg32fVRbGr449j1gw57BV9i0vww== Message-ID: Date: Fri, 13 Apr 2018 10:42:52 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <0754201b-2051-3f1c-7a09-ed1be96a0260@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 13.04.2018 10:32, Kohli, Gaurav wrote: > Hi , > > I have checked below code and it seems we are calling debug_object_free > twice, ideally we should deactivate and later we > have to destroy. > > 1st call -> percpu_counter_destroy->debug_percpu_counter_deactivate -> > debug_object_free > 2nd call -> > debug_object_free > > > > static bool percpu_counter_fixup_free(void *addr, enum debug_obj_state > state) > { >         struct percpu_counter *fbc = addr; > >         switch (state) { >         case ODEBUG_STATE_ACTIVE: >                 percpu_counter_destroy(fbc);  -> first call >                 debug_object_free(fbc, &percpu_counter_debug_descr); 2nd Having looked at the code I'd say this is indeed buggy. I'd say it stemmed from same cargo culting since timer_fixup_free follows the same structure of code, except that in del_timer_sync there is no code which does debug_object_free. The situation is similar in work_fixup_free. So at this point I guess the question is whether we want to leave the debug_object_free call in percpu_counter_fixup_free and just remove debug_percpu_counter_deactivate and open-code the call to debug_object_deactivate in percpu_counter_destroy. Or remove the explicit call in percpu_counter_fixup_free and leave debug_percpu_counter_deactivate. In the end it's a matter of style, so perhaps Tejun, as the maintainer, has the final say what style he prefers. Personally, I'd go for the former solution so that the percpu follows the style of the rest of the kernel. > call >                 return true; >         default: >                 return false; >         } > } > > > We are seeing one issue, where one list contain garbage data in > obj_hash, just before element of that is percpu_counter but > still not sure as it is very difficult to reproduce. > > Can some one please review above code or can we remove one instance of > debug_object_free from above code. > > Regards > Gaurav >