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 X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFF24C33CB3 for ; Fri, 17 Jan 2020 18:14:19 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 87C732082F for ; Fri, 17 Jan 2020 18:14:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H9GYcGT+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87C732082F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 1CE6E6B04D9; Fri, 17 Jan 2020 13:14:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 17F4C6B04DA; Fri, 17 Jan 2020 13:14:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 045DB6B04DB; Fri, 17 Jan 2020 13:14:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0197.hostedemail.com [216.40.44.197]) by kanga.kvack.org (Postfix) with ESMTP id DA86F6B04D9 for ; Fri, 17 Jan 2020 13:14:18 -0500 (EST) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id 909973A92 for ; Fri, 17 Jan 2020 18:14:18 +0000 (UTC) X-FDA: 76387925796.18.bath43_7cd58605c0313 X-HE-Tag: bath43_7cd58605c0313 X-Filterd-Recvd-Size: 5702 Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by imf05.hostedemail.com (Postfix) with ESMTP for ; Fri, 17 Jan 2020 18:14:17 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id y8so10156968pll.13 for ; Fri, 17 Jan 2020 10:14:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=OuIr4in3xQOppX19rgOiPKIAzj+c67E+lzKRExjohkE=; b=H9GYcGT+teNfRyQemXjNBoyJGnAgppTIFqqr5DOXOHcSk/mqSRWGSAbY3Kkwt6JPMD sBA52lPqTpYFefuq/jyG0UD8XMNcIrKAxN/dc0CH/NPq8taoMvM13lXPE+nKD6HEQ3kc gJP3iZkpcWy9UGL4BKC/CSOSkf9b7DWOEPK2b+p+SQnMoOkFAHL0rUHK6dOVWPc2jpCT XR/M57QxX+yWPHj89WUtr+kdB8JFZnbVou5ulWam50+fkpq+vGJoSD3XHV5bgg4HjKFd wesHGXh2eOBpnxSSFpaKB/93HeNiaRgMvtMUJgBn+vN/+6Mgr8R3t7gJCehe2JNCb/dk Ue+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=OuIr4in3xQOppX19rgOiPKIAzj+c67E+lzKRExjohkE=; b=Je5/oU9mrYWy/QdKutbMchItl6EAC+sa2F4o+k2bXJX65nEd+pA6ZShN5JIWLZB0qL 2u61bTBanLj8cHJjPJB0DLluJCVIYu6cgJ983mw11AEIIxUjFFvpegx3/zmEaqteA83d rV1mk4tYJwNypvYTOHKdp69DSoIr1DUn5rDtkrgObzWmJGJuBMsk66WTmvgs+ot/o78x qn84szVBSPgt/BfWlzBwYX1Cn6zIM40iuS3cAOwkBNZ6Wz8VIBuc4KsCW6JdRJnGUwz2 /60mz/R7F/xvashtNvGVmrbwQnC1ylKB6j6Ai5irVgyDFDPSf8RQf4Xmh/TE5aLh0WXW L+pw== X-Gm-Message-State: APjAAAXqEHT0XTuAM/6rOCnGmo6YHjzQIeBkUovbAmu8lEFy3YPx0fSt yNKzeelZpyFoOUOUboEi58o= X-Google-Smtp-Source: APXvYqz9vooRnPoitrbY06oL/qUgFJb2pY/g292RcHh+az+iF16LMIahqGZVogDDr2fPfyNT9TyqjQ== X-Received: by 2002:a17:902:34a:: with SMTP id 68mr336588pld.250.1579284856593; Fri, 17 Jan 2020 10:14:16 -0800 (PST) Received: from google.com ([2620:15c:211:1:3e01:2939:5992:52da]) by smtp.gmail.com with ESMTPSA id b65sm30185503pgc.18.2020.01.17.10.14.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jan 2020 10:14:15 -0800 (PST) Date: Fri, 17 Jan 2020 10:14:13 -0800 From: Minchan Kim To: Kirill Tkhai 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 , christian.brauner@ubuntu.com, sjpark@amazon.de, "Kirill A. Shutemov" Subject: Re: [PATCH v2 1/5] mm: factor out madvise's core functionality Message-ID: <20200117181413.GC140922@google.com> References: <20200116235953.163318-1-minchan@kernel.org> <20200116235953.163318-2-minchan@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Jan 17, 2020 at 01:02:34PM +0300, Kirill Tkhai wrote: > On 17.01.2020 02:59, Minchan Kim wrote: > > This patch factor out madvise's core functionality so that upcoming > > patch can reuse it without duplication. It shouldn't change any behavior. > > > > Signed-off-by: Minchan Kim > > --- > > mm/madvise.c | 194 +++++++++++++++++++++++++++++---------------------- > > 1 file changed, 111 insertions(+), 83 deletions(-) > > > > diff --git a/mm/madvise.c b/mm/madvise.c > > index bcdb6a042787..0c901de531e4 100644 > > --- a/mm/madvise.c > > +++ b/mm/madvise.c > > @@ -35,6 +35,7 @@ > > struct madvise_walk_private { > > struct mmu_gather *tlb; > > bool pageout; > > + struct task_struct *task; > > }; > > > > /* > > @@ -306,12 +307,13 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, > > bool pageout = private->pageout; > > struct mm_struct *mm = tlb->mm; > > struct vm_area_struct *vma = walk->vma; > > + struct task_struct *task = private->task; > > pte_t *orig_pte, *pte, ptent; > > spinlock_t *ptl; > > struct page *page = NULL; > > LIST_HEAD(page_list); > > > > - if (fatal_signal_pending(current)) > > + if (fatal_signal_pending(task)) > > return -EINTR; > > This EINTR may confuse userspace. Users will think the syscall was interrupted, > and it may be restarted, but this is not true. madvise_[pageout|cold] doesn't propagate the error to userspace. > > What we care here? Current task received fatal signal, while walk_page_range(..&cold_walk_ops..) > is a long cycle. So, this check allows to break the cycle faster. > > Iteration over remote task's mm may also be long, and we still may need to break > it if current received a signal. > > So, we'd better left fatal_signal_pending(current) here. > > Maybe we need both tasks fatal_signal_pending() checks and different retvals here, > but it's up to you. Yub, let's check both processes here to bail out. Thanks for the review!