Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp899344imm; Wed, 11 Jul 2018 13:01:43 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf/SBHeDCGDapyKJlQTFbsjLKaQlv0zS+RbHOQLZi1pQVSbs6NViXjMLfnR2vl3THeudkkK X-Received: by 2002:a63:1546:: with SMTP id 6-v6mr30052pgv.271.1531339302946; Wed, 11 Jul 2018 13:01:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531339302; cv=none; d=google.com; s=arc-20160816; b=liMWc9k89UG3T0OiDDXS7xFZbNMRzBveCb04lQcGrbUwkzwNZ/WBokN+KAcZPEw5Py AkmKslYDe4XuGWJu/BDKA1Y+oD7pXh4Zm7tO2FpHxVY6E3x0KFMWmGc9kSGNGFjUqv47 1usdeTNX0cxIbagdmev1c97MV5lQgILsLq148JjENQ+emtiPhuhtwiuH1YoBlJbcq/zp UV+qmPoAxuGBwP96gMrKdKMwGwZTzXFwZ0Zw7yXxtPnoLffgVNUgJDivavEMw5LrHPDg z2uLw2atXYHmNfozyLCI8R7eE+Q9PFl3EaT+pWxPtAHlMaJ3YgzjB9r17i40hdLgBtJd yjGg== 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:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature:arc-authentication-results; bh=e9XQxkkUwafL5kCi6FNq8Fe7WUtMi01AOLjr0CTroVw=; b=kItjGj5q80fNHEdsivQtq/D68ulGIOCgtAiUNMhoCqEYZNLfse6lYSncaRi/JXeuKH g0DYVG4rzjj7ulwu1jZj2Luv2x+iAEuSSd5wzngagACtrM29qalmUZ8GPbKqfbc4XuAc rsIkuk9d0Y1EEGlVNAuMQ5HSmtG5bHWRfwmToCqm5W1EwcTA24Fwx3cbHlCZW9LkPTdH vd5tgYTUPrweAZvtCVKvQrfYx3Uzh0pYoxc9/xJjuY/gcyLGiyCMhmDhJgKCSX2LLoio Tvg6zJTZBlDV75QiUnPgjEFV3Q6DrS+rANV21X3DhHz7e+Pkm/3eVY9gXmzO7Gp4AkpF mOeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=I7umh6V2; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hansenpartnership.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g11-v6si17899313pgq.457.2018.07.11.13.01.23; Wed, 11 Jul 2018 13:01:42 -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; dkim=fail header.i=@hansenpartnership.com header.s=20151216 header.b=I7umh6V2; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hansenpartnership.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389642AbeGKT1j (ORCPT + 99 others); Wed, 11 Jul 2018 15:27:39 -0400 Received: from bedivere.hansenpartnership.com ([66.63.167.143]:57302 "EHLO bedivere.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387848AbeGKT1j (ORCPT ); Wed, 11 Jul 2018 15:27:39 -0400 Received: from localhost (localhost [127.0.0.1]) by bedivere.hansenpartnership.com (Postfix) with ESMTP id E0B4E8EE409; Wed, 11 Jul 2018 12:21:54 -0700 (PDT) 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 LAqvlV1V78k0; Wed, 11 Jul 2018 12:21:54 -0700 (PDT) Received: from [153.66.254.194] (unknown [50.35.68.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by bedivere.hansenpartnership.com (Postfix) with ESMTPSA id E30848EE0E4; Wed, 11 Jul 2018 12:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hansenpartnership.com; s=20151216; t=1531336914; bh=fzg/ZSvljtLnk0afJMLCTukW2IE7VYCFdKbcP6kXYFc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=I7umh6V2F4EMzoIvgmg+8vJkDMjtS/R7LYWiat1o/GHsrRl9Pe1pS/CVdUeJkxkoH ZfuL03xv2tMywEXguE7IHuv+ktA2Qr/7Ca7U8PglUc/hHIPibddjMAvBgSI+Tz3G3r B7yXh0fHqrIDh9qPJuMpzr/DFRFDkW6YGLrIBpnk= Message-ID: <1531336913.3260.18.camel@HansenPartnership.com> Subject: Re: [PATCH v6 0/7] fs/dcache: Track & limit # of negative dentries From: James Bottomley To: Waiman Long , Michal Hocko Cc: Alexander Viro , Jonathan Corbet , "Luis R. Rodriguez" , Kees Cook , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, Linus Torvalds , Jan Kara , "Paul E. McKenney" , Andrew Morton , Ingo Molnar , Miklos Szeredi , Matthew Wilcox , Larry Woodman , "Wangkai (Kevin C)" Date: Wed, 11 Jul 2018 12:21:53 -0700 In-Reply-To: <18c5cbfe-403b-bb2b-1d11-19d324ec6234@redhat.com> References: <1530905572-817-1-git-send-email-longman@redhat.com> <20180709081920.GD22049@dhcp22.suse.cz> <62275711-e01d-7dbe-06f1-bf094b618195@redhat.com> <20180710142740.GQ14284@dhcp22.suse.cz> <20180711102139.GG20050@dhcp22.suse.cz> <9f24c043-1fca-ee86-d609-873a7a8f7a64@redhat.com> <1531330947.3260.13.camel@HansenPartnership.com> <18c5cbfe-403b-bb2b-1d11-19d324ec6234@redhat.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.6 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2018-07-11 at 15:07 -0400, Waiman Long wrote: > On 07/11/2018 01:42 PM, James Bottomley wrote: > > On Wed, 2018-07-11 at 11:13 -0400, Waiman Long wrote: > > > On 07/11/2018 06:21 AM, Michal Hocko wrote: > > > > On Tue 10-07-18 12:09:17, Waiman Long wrote: > > > > [...] > > > > > I am going to reduce the granularity of each unit to 1/1000 > > > > > of the total system memory so that for large system with TB > > > > > of memory, a smaller amount of memory can be specified. > > > > > > > > It is just a matter of time for this to be too coarse as well. > > > > > > The goal is to not have too much memory being consumed by > > > negative > > > dentries and also the limit won't be reached by regular daily > > > activities. So a limit of 1/1000 of the total system memory will > > > be good enough on large memory system even if the absolute number > > > is really big. > > > > OK, I think the reason we're going round and round here without > > converging is that one of the goals of the mm subsystem is to > > manage all of our cached objects and to it the negative (and > > positive) dentries simply look like a clean cache of > > objects.  Right at the moment mm manages them in the same way it > > manages all the other caches, a lot of which suffer from the "you > > can cause lots of allocations to artificially grow them" > > problem.  So the main question is why doesn't the current mm > > control of the caches work well enough for dentries?  > > What are the problems you're seeing that mm should be catching?  If > > you can answer this, then we could get on to whether a separate > > shrinker, cache separation or some fix in mm itself is the right > > answer. > > > > What you say above is based on a conclusion: limiting dentries > > improves the system performance.  What we're asking for is evidence > > for that conclusion so we can explore whether the same would go for > > any of our other system caches (so do we have a global cache > > management problem or is it only the dentry cache?) > > > > James > > > > I am not saying that limiting dentries will improve performance. I am > just saying that unlimited growth in the number of negative dentries > will reduce the amount of memory available to other applications and > hence will have an impact on performance. Normally the amount of > memory consumed by dentries is a very small portion of the system > memory. OK, can we poke on only this point for a while? Linux never really has any "available memory": pretty much as soon as you boot up the system will consume all your free memory for some type of cache (usually the page cache which got filled during boot). The expectation is that in a steady, running, state the system is using almost all available memory for caching something ... if it's not negative dentries it will be something else. The mm assumption is that clean cache is so cheap to recover that it's almost equivalent to free memory and your patch is saying this isn't so and we have a problem dumping the dentry cache. So, why can't we treat the dentry cache as equivalent to free memory? What in your tests is making it harder to recover the memory in the dentry cache? James