Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1649039ybl; Fri, 10 Jan 2020 23:44:11 -0800 (PST) X-Google-Smtp-Source: APXvYqw4M/Mr7q76h5AObboqnYrdMHdYCC3hpz+xCS3dGQs069ig2wHdHkA7YT9VURInYOagnGta X-Received: by 2002:aca:814:: with SMTP id 20mr5656085oii.159.1578728651524; Fri, 10 Jan 2020 23:44:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578728651; cv=none; d=google.com; s=arc-20160816; b=RgwnGNOOfOZ57qr/xGhH+F0dL/U6F43J/9Dm2xjQlDb71z5AWKhXpoGClL9ntjmY5O gua+rcCNv9HPSUa2AwNtiMer5oC1ZPYQILmqkGqng0+hwtPqr23tzccEqK24OaNBhYq3 j6SjtegNRNzXmprWBwxvNyAbKD4PV20IaFaiopS2bbImv49ao4YT4fqnqR8/RvqgRXZm TrzYRBPMexsLkP5ULtJYNRWArRSX6goXwTWpIgOfekPu1OpyJeyDCdkF0L4Wt8aUX9sr jVXzQ2cZP25Y29i3l/vSgJBwx/hyFgcwH1XEBYUMVjn4YOOBPmlCpWyrWu3AQikF7j7W S8Qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7phXSgAkhV7ekY+XxbbLPgZzgDKYvBOEXbRLHHpKIRM=; b=co1CQqgxteHJFIdbl4aAduHS2/Vbmy2ybQ0Qo+CuE1kZEJ6bIA6iTpkYYyrlc3/UN7 amxXo1f1WNbte+Lk4fPsLMWnBdailakRU59nqiKBxsdG9TujlqO2sMhalFgwiOGhGLTt FOgvOGplRRF6ZfNwS6nc8xOOadL49fSVejG3fYW9asnq2EGIqQElF1gjJlTAEeTLVUx/ GQJFyDQrqqqM4kjinlfzkYouEef6hBMfknv1XE67YgltyT+A5agoHpOiFv4PUM2UC3q0 3NjXMD/qUrTrMWFSvTz57K+J3CSpXGiv/rkPojX3AlWwh3/Q29bt3yQ7l+xP2Tvo1BhM 0iRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=RiwLzAiA; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d1si178003oth.158.2020.01.10.23.43.59; Fri, 10 Jan 2020 23:44:11 -0800 (PST) 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=pass header.i=@gmail.com header.s=20161025 header.b=RiwLzAiA; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728540AbgAKHnJ (ORCPT + 99 others); Sat, 11 Jan 2020 02:43:09 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:33720 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728507AbgAKHnI (ORCPT ); Sat, 11 Jan 2020 02:43:08 -0500 Received: by mail-wr1-f65.google.com with SMTP id b6so3888581wrq.0; Fri, 10 Jan 2020 23:43:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to; bh=7phXSgAkhV7ekY+XxbbLPgZzgDKYvBOEXbRLHHpKIRM=; b=RiwLzAiADjNU/CdyggCMb4mC3tAkhOf/tdXXpjZGd0923CM74Nwwwg4xxLJQrX7c69 DtVyroORkLm4kZI6fWasSzTvLxPTjryytOT7sOfsmMMANDvIHs06tPEd8km9VCIUumuw 88L4s8w7oj5wqKMX7X0dUzmwpgJWfbKc1V8+sdFGKJUfX0lTaLoV8cH809OCNznwxPSm z6f6eBeVAwMG9FJNoSa4N2jNY9TfpM04GTn7jsetbGzdD89Z9SPOljf3wFWN5yh3xlqp P+kbJB/o2kU/OHaSzhPWwAfixETFkGRfgkOyzZ61zC6LhoDAq5jwo6dSMyjkTuhNd1nX hU4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to; bh=7phXSgAkhV7ekY+XxbbLPgZzgDKYvBOEXbRLHHpKIRM=; b=GjI3q/qsJWgUUlyUN+x9jp/iGjShMlSygMGeT5W//oNW5S3u+Dvg7wmTFRXqSRFSV+ OqL52+OHuOnsPg9Rt5vZEDHkzbwsly0pYTNvAtY2pFZb+BlQrT4CL0hBpH7enf0mhcbP twdPRlpy0uGy3lNBJ2DLEw1dUwHmbwuqs0A5MIngy2pb7p7XyqNOEsJ3EjACLcuR0KnE 5kRQjW8DM0d30rmeHFbXakCaJfM+2a0Vp82id0WpJs/NphzNkPSby0ATFfSKAcCD7RCJ ijHro7pbTEQpMBOWZXeP4SrGnkPPdi6DVCO1ETQNFNF8oKb5XMupEAyoEhfH4gBtrqQd 8MUg== X-Gm-Message-State: APjAAAXps345GZ3X6d7LLyyAQA9CfIcCnhHSXZZ9GDqIq32US6B+Zxma HG2Lz9yEoJQln1zG7SeGR99kte3+ X-Received: by 2002:adf:e641:: with SMTP id b1mr7581841wrn.34.1578728587074; Fri, 10 Jan 2020 23:43:07 -0800 (PST) Received: from localhost.localdomain ([2a02:2450:10d2:194d:d1f3:c74b:f29c:a970]) by smtp.gmail.com with ESMTPSA id r68sm5236515wmr.43.2020.01.10.23.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jan 2020 23:43:06 -0800 (PST) From: SeongJae Park To: Minchan Kim Cc: Andrew Morton , LKML , linux-mm , linux-api@vger.kernel.org, oleksandr@redhat.com, Suren Baghdasaryan , Tim Murray , Daniel Colascione , Sandeep Patil , Sonny Rao , Brian Geffon , Michal Hocko , Johannes Weiner , Shakeel Butt , John Dias Subject: Re: [PATCH 4/4] mm/madvise: allow KSM hints for remote API Date: Sat, 11 Jan 2020 08:42:59 +0100 Message-Id: <20200111074259.25577-1-sj38.park@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200110213433.94739-5-minchan@kernel.org> (raw) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 10 Jan 2020 13:34:33 -0800 Minchan Kim wrote: > From: Oleksandr Natalenko > > It all began with the fact that KSM works only on memory that is marked > by madvise(). And the only way to get around that is to either: > > * use LD_PRELOAD; or > * patch the kernel with something like UKSM or PKSM. > > (i skip ptrace can of worms here intentionally) > > To overcome this restriction, lets employ a new remote madvise API. This > can be used by some small userspace helper daemon that will do auto-KSM > job for us. > > I think of two major consumers of remote KSM hints: > > * hosts, that run containers, especially similar ones and especially in > a trusted environment, sharing the same runtime like Node.js; > > * heavy applications, that can be run in multiple instances, not > limited to opensource ones like Firefox, but also those that cannot be > modified since they are binary-only and, maybe, statically linked. > > Speaking of statistics, more numbers can be found in the very first > submission, that is related to this one [1]. For my current setup with > two Firefox instances I get 100 to 200 MiB saved for the second instance > depending on the amount of tabs. > > 1 FF instance with 15 tabs: > > $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc > 410 > > 2 FF instances, second one has 12 tabs (all the tabs are different): > > $ echo "$(cat /sys/kernel/mm/ksm/pages_sharing) * 4 / 1024" | bc > 592 > > At the very moment I do not have specific numbers for containerised > workload, but those should be comparable in case the containers share > similar/same runtime. > > [1] https://lore.kernel.org/patchwork/patch/1012142/ > > Signed-off-by: Oleksandr Natalenko > Signed-off-by: Minchan Kim Reviewed-by: SeongJae Park > --- > mm/madvise.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/madvise.c b/mm/madvise.c > index eb42b2b7f49b..3aa9aec6bfd9 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -1000,6 +1000,8 @@ process_madvise_behavior_valid(int behavior) > switch (behavior) { > case MADV_COLD: > case MADV_PAGEOUT: > + case MADV_MERGEABLE: > + case MADV_UNMERGEABLE: > return true; > default: > return false; > -- > 2.25.0.rc1.283.g88dfdc4193-goog