From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D5DAEB64DC for ; Mon, 3 Jul 2023 11:14:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CF5E8E00C0; Mon, 3 Jul 2023 07:14:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 97F9B8E00BA; Mon, 3 Jul 2023 07:14:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 847608E00C0; Mon, 3 Jul 2023 07:14:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 74F418E00BA for ; Mon, 3 Jul 2023 07:14:18 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3D9201C8700 for ; Mon, 3 Jul 2023 11:14:18 +0000 (UTC) X-FDA: 80970041796.24.E3FB058 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf27.hostedemail.com (Postfix) with ESMTP id 6207240005 for ; Mon, 3 Jul 2023 11:14:16 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of steven.price@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=steven.price@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688382856; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I+qoqPMiBn3CKaCukYEIeRphF4lIwPvCEeG5HUiViI0=; b=Dw8U2gXfaMxqYUb+7tH3oNO8WWM3OeCXg/1/YT3L3WKXNdK2zqJbmHY6D4ZuFu5oUukxJi v+xvXHsWcMV4dGVCzRyVBcMWact9gPnRd+n4plDNKshNGwVOF/ubsUq/MtayEuJDBgX5FA ptUcB7GSyVA4MTXifWfo3N4r6jM5ZIk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688382856; a=rsa-sha256; cv=none; b=uQZJsGIwgAz/NOhPud/M8bsEdupNm/4FS6bQdmQgd+o95CXzoGz/gJQmmw0Tar3joDcw3D 8i+75RehTUHzkxlf0rVtLik98oa9brr0ITf3jb0p5OVO5r5bfIy9l7zcQRF5ztk1jAMHbb SWr1PlZXdKYz8KZuqiE9y+4CmFYd3Wc= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of steven.price@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=steven.price@arm.com; dmarc=pass (policy=none) header.from=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2032B2F4; Mon, 3 Jul 2023 04:14:58 -0700 (PDT) Received: from [10.57.76.95] (unknown [10.57.76.95]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EF2443F762; Mon, 3 Jul 2023 04:14:13 -0700 (PDT) Message-ID: Date: Mon, 3 Jul 2023 12:14:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH] mm: shrinkers: fix race condition on debugfs cleanup Content-Language: en-GB To: =?UTF-8?Q?Joan_Bruguera_Mic=c3=b3?= , zhengqi.arch@bytedance.com, "Matthew Wilcox (Oracle)" Cc: Andrew Morton , Roman Gushchin , linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <2d44a1bd-eb80-7724-ff4e-a0fc3bfd8b72@bytedance.com> <20230521135733.1076395-1-joanbrugueram@gmail.com> From: Steven Price In-Reply-To: <20230521135733.1076395-1-joanbrugueram@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: dio8rx5dtaadybcymsyhhcpmymcarfa4 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 6207240005 X-Rspam-User: X-HE-Tag: 1688382856-931574 X-HE-Meta: U2FsdGVkX1/nrpEc+m0GN4Qk7cts4/dovqN9Zki0/P89z14oK4+kYmMunGXwGja48Qgko++LgaZYB84WRSRsAxYDW4GJCthwqy7vwVTxr9lehgOp4r0L8mUfU3IYI7ZrgU4Oech1psBHUj+Ju7h5xvB6bp+DAOCJUlr6CaxmXPfjGYcwwQX2pKFgt4BxF5LXN6H3AoMfj5mczKXAB8lb3koBerwouwGknqbBCTSZExg6rbBdM2XXR8YYd7/yCKMJ2+ZJqQ1wlTnE9PTXSU+xhiSbDFWlVwO03EkQ5zfyefBBBWBKzwo8ZReNYflnMZahCwDXEkgkg3+t9kXk9B+MViVAwZWrjh2MWV/osaN3hErQ5AJ0WZWWwOZmACN5wcuJjNFRc/FX7z5ZWQ+X0Jc47tI6JYxu/Bel8R3owFiGqM7X1b/oSqKkqLcJNY+HFdeHVDoT1eCmJPZNeilrrGIs7OH10H3zfqiEFCnhBWQv4TQ/vX9cX0BNZn0dYUJyj89/RB1TmYOoR6OVRckzv1MWAMMWM5+CfR7UMZXpQv6/3hbeDW4Sje5ExdgXiwVZC5wkrBvBjkyOGvj3Hv82rpPSI5L0la2vwx0dPeLDKpEhb1y9TN3M5x04Av+7DDsBxCETyJA6ZYxsqKLFxJdamNrQBFl5NttZX3UQINlmTa+xA+oWVlhQPSLxwRAjPvPDeTpxt3ZdZBYAVEPxv6wY9d/x50F4+4zGY2gff60gQIo5xcxZdtk/0rNBoBH9HPzDGCce/+UESuR4DNk5fcKPA5spH1LKuzZESl8isRHsHWMMfJFTFh92rh6kA0x54xuGp4ktAmQLIXit50q47OwBjsADOyHRCTRfUOt3C8VoGLnO6MrfVgUUzwsV/gggRf2PwuLGZDqi0C9iYtGRofTDBVnsl05wUG6KpUOhb5n7Jnc0n89TwKlUUTosZ1OVthONdIYSBUIDvMvD/R+vV1zqtQZ 2PQ8UOF+ jw6jYbseMo901AVj1LIgo991sJd263FdzBzPAf//g+at04fwaVxsjHz0MLKhNb0uqrXPusutCxSXdPEl3p+sjyrSR5HxJODSCpBKqNpYElqsApNAvJaL9xMI5F9n0ZWYsiimL2sQ/V08C2nMXvzuklhNOKLPmMkcCONkn X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 21/05/2023 14:57, Joan Bruguera Micó wrote: > On 2023/5/3 13:37, Qi Zheng wrote: >>> +void shrinker_debugfs_remove(struct dentry *debugfs_entry, int debugfs_id) >>> +{ >> >> It would be better to add a check: >> >> if (!debugfs_entry) >> return; >> >>> + debugfs_remove_recursive(debugfs_entry); >>> + ida_free(&shrinker_debugfs_ida, debugfs_id); >>> +} > > As a practical matter, both `debugfs_remove_recursive(NULL)` and > `ida_free(_, -1);` are documented as no-ops, see: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/debugfs/inode.c?id=0dd2a6fb1e34d6dcb96806bc6b111388ad324722#n748 > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc82bbf4dede758007763867d0282353c06d1121 > > Sorry for the late reply (the patch already reached the mainline tree). Note that commit 69cb69ea5542 ("ida: Remove assertions that an ID was allocated") currently in linux-next makes ida_free(..., -1) illegal. I see a crash on boot on my test platform (Firefly-RK3288) with linux-next because of this. Qi's suggested change fixes this. I'm not sure whether Matthew's change removing the ((int)id < 0) check was intentional or not. Reinstating that check would also fix the crash. Steve