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 6D7E0C433EF for ; Tue, 22 Mar 2022 20:27:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 89C546B0071; Tue, 22 Mar 2022 16:27:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 84B6D6B0072; Tue, 22 Mar 2022 16:27:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7131A6B0074; Tue, 22 Mar 2022 16:27:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.27]) by kanga.kvack.org (Postfix) with ESMTP id 61CDB6B0071 for ; Tue, 22 Mar 2022 16:27:47 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 15EB9121756 for ; Tue, 22 Mar 2022 20:27:47 +0000 (UTC) X-FDA: 79273158174.06.1277CCA Received: from bedivere.hansenpartnership.com (bedivere.hansenpartnership.com [96.44.175.130]) by imf13.hostedemail.com (Postfix) with ESMTP id 6204E20022 for ; Tue, 22 Mar 2022 20:27:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hansenpartnership.com; s=20151216; t=1647980864; bh=EJXT/9AlvFp0di+VBt0n+rgZk07sShJSmHtb5RgXDtU=; h=Message-ID:Subject:From:To:Date:In-Reply-To:References:From; b=qc13ztGyVKCiTnojPpCFyGaAV9Qz42w/BAFrgBr8/9KaQAEjw+DiHA1OHPaWxiiL6 OSXhnxWdb8pHPpwS2+/GTFcBsPwhbVMYvp7OkO69h/BjRp7XHpdgMt/X22kDd73F4L +/+OsV+V7BmlrqO98qdVIYD8DHhIy2B8ncZdx9jg= Received: from localhost (localhost [127.0.0.1]) by bedivere.hansenpartnership.com (Postfix) with ESMTP id 968001286EB2; Tue, 22 Mar 2022 16:27:44 -0400 (EDT) Received: from bedivere.hansenpartnership.com ([127.0.0.1]) by localhost (bedivere.hansenpartnership.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KfCZc2ZIYSZ2; Tue, 22 Mar 2022 16:27:44 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hansenpartnership.com; s=20151216; t=1647980864; bh=EJXT/9AlvFp0di+VBt0n+rgZk07sShJSmHtb5RgXDtU=; h=Message-ID:Subject:From:To:Date:In-Reply-To:References:From; b=qc13ztGyVKCiTnojPpCFyGaAV9Qz42w/BAFrgBr8/9KaQAEjw+DiHA1OHPaWxiiL6 OSXhnxWdb8pHPpwS2+/GTFcBsPwhbVMYvp7OkO69h/BjRp7XHpdgMt/X22kDd73F4L +/+OsV+V7BmlrqO98qdVIYD8DHhIy2B8ncZdx9jg= Received: from [172.20.40.85] (unknown [12.247.251.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bedivere.hansenpartnership.com (Postfix) with ESMTPSA id 8B5291286EB1; Tue, 22 Mar 2022 16:27:43 -0400 (EDT) Message-ID: <948a74b09e63a32d566778d1ba535df8883e5129.camel@HansenPartnership.com> Subject: Re: [LSF/MM TOPIC] Better handling of negative dentries From: James Bottomley To: Colin Walters , Matthew Wilcox , Dave Chinner Cc: Roman Gushchin , Stephen Brennan , lsf-pc@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Gautham Ananthakrishna , khlebnikov@yandex-team.ru Date: Tue, 22 Mar 2022 16:27:42 -0400 In-Reply-To: <42d92c6f-28f2-459b-bc2a-13dd655dd4ae@www.fastmail.com> References: <20220316025223.GR661808@dread.disaster.area> <42d92c6f-28f2-459b-bc2a-13dd655dd4ae@www.fastmail.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.4 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 6204E20022 X-Stat-Signature: arpgnytcdjo6etd8kb34ukgtw93kuf4u Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=hansenpartnership.com header.s=20151216 header.b=qc13ztGy; dkim=pass header.d=hansenpartnership.com header.s=20151216 header.b=qc13ztGy; dmarc=pass (policy=none) header.from=hansenpartnership.com; spf=pass (imf13.hostedemail.com: domain of James.Bottomley@HansenPartnership.com designates 96.44.175.130 as permitted sender) smtp.mailfrom=James.Bottomley@HansenPartnership.com X-HE-Tag: 1647980866-442487 X-Bogosity: Ham, tests=bogofilter, spamicity=0.001245, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, 2022-03-22 at 16:17 -0400, Colin Walters wrote: > > On Tue, Mar 22, 2022, at 3:19 PM, James Bottomley wrote: > > Well, firstly what is the exact problem? People maliciously > > looking up nonexistent files > > Maybe most people have seen it, but for those who haven't: > https://bugzilla.redhat.com/show_bug.cgi?id=1571183 > was definitely one of those things that just makes one recoil in > horror. > > TL;DR NSS used to have code that tried to detect "is this a network > filesystem" by timing `stat()` calls to nonexistent paths, and this > massively boated the negative dentry cache and caused all sorts of > performance problems. > It was particularly confusing because this would just happen as a > side effect of e.g. executing `curl https://somewebsite`. > > That code wasn't *intentionally* malicious but... Right, understood. That's why I think keeping track of negative dentries coming back to kill_dentry/retain_dentry is a good way of detecting something like this, so we can get a signal for "some process bloating the negative dentry cache" and act on it. My suspicion is that if we see the signal we can agressively remove old negative dentries in this same routine, thus penalizing the problem process for cleaning the caches. However, it's a very narrow solution somewhat decoupled from making the dentry cache a better memory management citizen. James