Received: by 10.192.165.148 with SMTP id m20csp3165479imm; Mon, 7 May 2018 07:44:51 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrQUE+q7NVK7pG2qHaf2/nsDA07FOJGuPLeubHEn1WZ+zyD+uB4h/cFkPT20h60heIMuoEl X-Received: by 2002:a9d:24a7:: with SMTP id z36-v6mr7488019ota.153.1525704291896; Mon, 07 May 2018 07:44:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525704291; cv=none; d=google.com; s=arc-20160816; b=N4oTKlufk4AeQVLznlsvf5MR+m70wFcqahiSDafODHlYWpW68dbMGvlB72s9MQtBdh E2kfC8WxcMSUcOITqGHHDt9dzgHScILXxHZGuNUAva0XQyyUIyX/paUsrYATKo5/sF3H Thwp71kMWrXg0K0qfJIhqs1SHPitNAq5MqjbfCJUQwg4irgosA83CWgmu6i80KLQs6Ri g0+OEmKlra8dGCblCNMXVsJVGPUmrqCX8zMyEc2hXxg4Mubg0L8vrtlC3586F30Z5/4u hs+tp7jPhW0Ng87RNJSeMbqmBtCyhUJtUpHiXEQgvBVAT5rpEU85PXFqfyuf3gmmofvH ZcNQ== 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:arc-authentication-results; bh=nkB6n9Ox9vwSb8FxXJ6w8UZ2AWUOwI6GduSC+je7k8c=; b=uOc32BR3Eid62g7ocqqzOOG8wRjMWSgLEWVKGL77JfSgKvQhTnGGCnHD2HaRa7gbBA lcw8/PTzUuA9er4s07CXzx/yN0RuQW51vZ9dNdErLGDwFz/gws3+a/qIarqOK38fNKlF Y8/oJrgMPFodHRlHVK4VHUFtGTJfY04hMC0E4Jou6FaSNzd5wNfsZvcHOPT7VlNz8prt wugg6eXzfajVangG4YImC6bHMOpQDEW8AMPmFp12wVbJrJGKPEZpqX42zlT8FlQRih8j sz4Oqy+fjZpvcB0zChloWwdn9x5KTyGAQSu24x6KS6mmrv5v0qzero3+9U4tqQ7iiOPs li4Q== 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k33-v6si1838821otk.171.2018.05.07.07.44.22; Mon, 07 May 2018 07:44:51 -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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752572AbeEGOeJ (ORCPT + 99 others); Mon, 7 May 2018 10:34:09 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:48246 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751991AbeEGOeG (ORCPT ); Mon, 7 May 2018 10:34:06 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 109FEF63FE; Mon, 7 May 2018 14:34:06 +0000 (UTC) Received: from dhcp-27-174.brq.redhat.com (unknown [10.34.27.30]) by smtp.corp.redhat.com (Postfix) with SMTP id 6B5CC1C707; Mon, 7 May 2018 14:33:59 +0000 (UTC) Received: by dhcp-27-174.brq.redhat.com (nbSMTP-1.00) for uid 1000 oleg@redhat.com; Mon, 7 May 2018 16:34:05 +0200 (CEST) Date: Mon, 7 May 2018 16:33:58 +0200 From: Oleg Nesterov To: "Eric W. Biederman" Cc: Johannes Weiner , Michal Hocko , Kirill Tkhai , akpm@linux-foundation.org, peterz@infradead.org, viro@zeniv.linux.org.uk, mingo@kernel.org, paulmck@linux.vnet.ibm.com, keescook@chromium.org, riel@redhat.com, tglx@linutronix.de, kirill.shutemov@linux.intel.com, marcos.souza.org@gmail.com, hoeun.ryu@gmail.com, pasha.tatashin@oracle.com, gs051095@gmail.com, dhowells@redhat.com, rppt@linux.vnet.ibm.com, linux-kernel@vger.kernel.org, Balbir Singh , Tejun Heo Subject: Re: [PATCH] memcg: Replace mm->owner with mm->memcg Message-ID: <20180507143358.GA3071@redhat.com> References: <20180502132026.GB16060@cmpxchg.org> <87lgd1zww0.fsf_-_@xmission.com> <20180503133338.GA23401@redhat.com> <87y3h0x0qg.fsf@xmission.com> <20180504142056.GA26151@redhat.com> <87r2mrh4is.fsf@xmission.com> <20180504145435.GA26573@redhat.com> <87y3gzfmjt.fsf@xmission.com> <20180504162209.GB26573@redhat.com> <871serfk77.fsf@xmission.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <871serfk77.fsf@xmission.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Mon, 07 May 2018 14:34:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Mon, 07 May 2018 14:34:06 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'oleg@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/04, Eric W. Biederman wrote: > > Oleg Nesterov writes: > > > On 05/04, Eric W. Biederman wrote: > >> > >> Oleg Nesterov writes: > >> > >> > I'd vote for the change in exec_mmap(). This way mm_init_memcg() can just > >> > nullify mm->memcg. > >> > >> There is at least one common path where we need the memory control group > >> properly initialized so memory allocations don't escape the memory > >> control group. > >> > >> do_execveat_common > >> copy_strings > >> get_arg_page > >> get_user_pages_remote > >> __get_user_pages_locked > >> __get_user_pages > >> faultin_page > >> handle_mm_fault > >> count_memcg_event_mm > >> __handle_mm_fault > >> handle_pte_fault > >> do_anonymous_page > >> mem_cgroup_try_charge Ah yes, indeed. > mm_init_memcg is at the same point as mm_init_owner. So my change did > not introduce any logic changes on when the memory control group became > valid. Not sure, but perhaps I am all confused.... before your patch get_mem_cgroup_from_mm() looks at mm->owner == current (in this case) and mem_cgroup_from_task() should return the correct memcg even if execing task migrates after bprm_mm_init(). At least in the common case when the old mm is not shared. After your patch the memory allocations in copy_strings() won't be accounted correctly, bprm->mm->memcg is wrong if this task migrates. And iiuc your recent "[PATCH 2/2] memcg: Close the race between migration and installing bprm->mm as mm" doesn't fix the problem. No? Perhaps we can change get_mem_cgroup_from_mm() to use mem_cgroup_from_css(current, memory_cgrp_id) if mm->memcg == NULL? Oleg.