Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp315812ybi; Fri, 31 May 2019 01:50:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqw/3IR0k/ITm/Anvw2ElfamaOviYQ+GsBxQuNJAaMzeTnzCZHviA/ctlrF1dH78+71JagdK X-Received: by 2002:a65:4084:: with SMTP id t4mr7740289pgp.224.1559292652126; Fri, 31 May 2019 01:50:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559292652; cv=none; d=google.com; s=arc-20160816; b=UlerDAR1JQNxHK9YfOg9v+sVgi1PHymei34b2k1Qj+I+uTwOvUu6emQFVL2rQo8ZiQ m/hSPYG9skiHlAeIbNP3WkTxZyz4uR5repLFD4bFNMMzCU6xiubJRUulcPXjRFoqEBtt aHWbhMbVxS56i3/1MVwoGeiYZOXkOgM5FtfxwDpW6Vh/HCoD/NAUg8oogtrLh3k5g+X6 6tB8gyRkEVjjdO7QwcHO46qJVlIMB+QDze9vEvqvfmYQR0IuTRXV/ImdAZD4e8t2oaQz I/afGBvX3Zozu2QwbP43+3THLaUTuVfoL0DiTqDvigiTQRpcf0ZctXkIZo4Ts/pfTjhc Okvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=6/x1Gq4+4tiNMFSEU7/AwUdW4MWI1lUpHuAHkH2vvbc=; b=hMGhrEF4fOtCID/50TMHkU9zlgFS09IMON2plPsMWe1/9dZJXd7vq1aClw9oGzLcG4 WPohLbMB4aw/jeO3928lKw5EtPmkHzvTsVzsxPs+OwVXUyiAIV4bRinc91MgrP6MkK4u k6b9lP2zAsFUDL+nBV36vl2jeiwPwusKr5FjS2C+5s9YGs4b9OC/FqRY4Vd4KaB9/VP+ dynM7SNvfiDfdaQOa4m/WAbp01766IroouEqeJ1vJjq2KBcukec8TGhoFXLFwC5PNT7P m/QxpTZxMzrMqzi8gtlI/WtDoAjS0Jz4/PA079/Sxrj2xo4rxSXenrupDQ6fkFWYxwqM kZDQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z7si5054381plo.274.2019.05.31.01.50.36; Fri, 31 May 2019 01:50:52 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727070AbfEaIrz (ORCPT + 99 others); Fri, 31 May 2019 04:47:55 -0400 Received: from mx2.suse.de ([195.135.220.15]:55688 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727058AbfEaIrz (ORCPT ); Fri, 31 May 2019 04:47:55 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id CF1F3AF55; Fri, 31 May 2019 08:47:53 +0000 (UTC) Date: Fri, 31 May 2019 10:47:52 +0200 From: Michal Hocko To: Minchan Kim Cc: Andrew Morton , linux-mm , LKML , linux-api@vger.kernel.org, Johannes Weiner , Tim Murray , Joel Fernandes , Suren Baghdasaryan , Daniel Colascione , Shakeel Butt , Sonny Rao , Brian Geffon , jannh@google.com, oleg@redhat.com, christian@brauner.io, oleksandr@redhat.com, hdanton@sina.com Subject: Re: [RFCv2 1/6] mm: introduce MADV_COLD Message-ID: <20190531084752.GI6896@dhcp22.suse.cz> References: <20190531064313.193437-1-minchan@kernel.org> <20190531064313.193437-2-minchan@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190531064313.193437-2-minchan@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 31-05-19 15:43:08, Minchan Kim wrote: > When a process expects no accesses to a certain memory range, it could > give a hint to kernel that the pages can be reclaimed when memory pressure > happens but data should be preserved for future use. This could reduce > workingset eviction so it ends up increasing performance. > > This patch introduces the new MADV_COLD hint to madvise(2) syscall. > MADV_COLD can be used by a process to mark a memory range as not expected > to be used in the near future. The hint can help kernel in deciding which > pages to evict early during memory pressure. > > Internally, it works via deactivating pages from active list to inactive's > head if the page is private because inactive list could be full of > used-once pages which are first candidate for the reclaiming and that's a > reason why MADV_FREE move pages to head of inactive LRU list. Therefore, > if the memory pressure happens, they will be reclaimed earlier than other > active pages unless there is no access until the time. [I am intentionally not looking at the implementation because below points should be clear from the changelog - sorry about nagging ;)] What kind of pages can be deactivated? Anonymous/File backed. Private/shared? If shared, are there any restrictions? Are there any restrictions on mappings? E.g. what would be an effect of this operation on hugetlbfs mapping? Also you are talking about inactive LRU but what kind of LRU is that? Is it the anonymous LRU? If yes, don't we have the same problem as with the early MADV_FREE implementation when enough page cache causes that deactivated anonymous memory doesn't get reclaimed anytime soon. Or worse never when there is no swap available? -- Michal Hocko SUSE Labs