Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6354773yba; Tue, 14 May 2019 06:18:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqwHi4YuouYXUBmdfluJbwWxCqpib/bNv3xMPx6I1vvmqzGf5wezOrOFNIc4PHEYtiBfrGGa X-Received: by 2002:a17:902:7002:: with SMTP id y2mr38304057plk.75.1557839922038; Tue, 14 May 2019 06:18:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557839922; cv=none; d=google.com; s=arc-20160816; b=szKerw/b7bOtH5tkV9CNR+xMe8dIvUMXJ+R/dJBmlHGog+Zu4zyNCNTxBp3yQcgYcR J9wwB0lRLjEC2A03jR3Ofau6l7cG5Y8ccvRrhnHuQOHZ42lzrHsnuBqv++sWmhClFtCt 7OpyqbR+sLc6OOy8/QmORExKynnULhs1bJhtFO7cdLVL0d+BZbGY+rpBb70TfL+Oippt ZJQtD+PeU3wkwHMRRsms2QwtoSukO7rRVBtRhqL/GQ/0/34/6+aoJksZFEEsR6B0Hz5n YPHCa4pDCsdUqztmYE9XgySz1dLugNnLf9XBgFMYcTNidQPh8m4VIZo5fMOSUkZx1iyV /ABw== 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:message-id:date:subject:cc:to:from; bh=ljDEI5wRVFawwIewIlFmLcuWyWda410CfkNvL+gmA1U=; b=Ujuind0D4veoOmDaqwdZxxBufLFFN9MU52ZIS8MfKu3Ei9UoZ2ArrfJX4kpVIGyHpg RUk+M9ic5bOay5Nto+rw1KNe1cJkETb1kvakmdzN1euvST4xSr2ApdRSz5izAB07bt5Y 8hzsccuRw8kFrr3AI4sIptrqex4fBmxOuLkNg6ag+4XSUr27BKhrRY/LJw8533Mr4WUp mhCzEbdw2SEKnJOGAbxx2aq+WdKZ3Ot49Cjc9i1eepmDMIrMonhX/AuOKavc57PKdwVb EwMKVVU6mow225xYMl46K3OhbJh+YqW6regdtizllF0vrglyfKDCNFzXsFwyn4gEWXY0 DeVA== 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 i134si21408031pgd.318.2019.05.14.06.18.26; Tue, 14 May 2019 06:18: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; 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 S1726325AbfENNRC (ORCPT + 99 others); Tue, 14 May 2019 09:17:02 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:40379 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726142AbfENNRB (ORCPT ); Tue, 14 May 2019 09:17:01 -0400 Received: by mail-wr1-f68.google.com with SMTP id h4so19198806wre.7 for ; Tue, 14 May 2019 06:17:00 -0700 (PDT) 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 :references:mime-version:content-transfer-encoding; bh=ljDEI5wRVFawwIewIlFmLcuWyWda410CfkNvL+gmA1U=; b=gTR2zBXB1x3vvp49XaQGMIob9dDKyeZx8ZAWTyXu1HUIXMZRJDl9+zmYzjgfFo4TZz alkzLqmO55MOLi9n9HQyr7uHHu2ntOBwpKvsTChh9c7dodOCcxPe5X0HCLpuXXzXAL13 /idV8j/R5CbV9Hfa7VlnmctOkSX5Lc+fCCJp/vbXP4opDb/4QQWP6wk5wVBw5okXjrqQ 129qBFQZiATzj5oHYi4iTtH6aZAAT6Tg7MNk6Znz67PhiF4TJz87mIscCr/AiPuDxf5S 9PIGFUuzplU5PPKXfgS0uYV8wYxYM6VRsI7vpmW4Rx0Xp3PL+BZxJdlmjv79JN405nT2 B8Rg== X-Gm-Message-State: APjAAAV4QpT3n9+JtNiIiRQC2IROEs+34nBom/V+HtmBTOhzPI6A4m9r 1fM0w0d6WbaZConm4Ao4zzoOZZX4eyrmPw== X-Received: by 2002:adf:b35e:: with SMTP id k30mr2739640wrd.178.1557839819722; Tue, 14 May 2019 06:16:59 -0700 (PDT) Received: from localhost (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id u125sm7196076wme.15.2019.05.14.06.16.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 14 May 2019 06:16:59 -0700 (PDT) From: Oleksandr Natalenko To: linux-kernel@vger.kernel.org Cc: Kirill Tkhai , Vlastimil Babka , Michal Hocko , Matthew Wilcox , Pavel Tatashin , Timofey Titovets , Aaron Tomlin , Grzegorz Halat , linux-mm@kvack.org Subject: [PATCH RFC v2 2/4] mm/ksm: introduce ksm_leave() helper Date: Tue, 14 May 2019 15:16:52 +0200 Message-Id: <20190514131654.25463-3-oleksandr@redhat.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190514131654.25463-1-oleksandr@redhat.com> References: <20190514131654.25463-1-oleksandr@redhat.com> 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 Move MADV_UNMERGEABLE part of ksm_madvise() into a dedicated helper since it will be further used for unmerging VMAs forcibly. This does not bring any functional changes. Signed-off-by: Oleksandr Natalenko --- mm/ksm.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index 02fdbee394cc..e9f3901168bb 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -2478,6 +2478,25 @@ static int ksm_enter(struct mm_struct *mm, struct vm_area_struct *vma, return 0; } +static int ksm_leave(struct vm_area_struct *vma, unsigned long start, + unsigned long end, unsigned long *vm_flags) +{ + int err; + + if (!(*vm_flags & VM_MERGEABLE)) + return 0; /* just ignore the advice */ + + if (vma->anon_vma) { + err = unmerge_ksm_pages(vma, start, end); + if (err) + return err; + } + + *vm_flags &= ~VM_MERGEABLE; + + return 0; +} + int ksm_madvise(struct vm_area_struct *vma, unsigned long start, unsigned long end, int advice, unsigned long *vm_flags) { @@ -2492,16 +2511,9 @@ int ksm_madvise(struct vm_area_struct *vma, unsigned long start, break; case MADV_UNMERGEABLE: - if (!(*vm_flags & VM_MERGEABLE)) - return 0; /* just ignore the advice */ - - if (vma->anon_vma) { - err = unmerge_ksm_pages(vma, start, end); - if (err) - return err; - } - - *vm_flags &= ~VM_MERGEABLE; + err = ksm_leave(vma, start, end, vm_flags); + if (err) + return err; break; } -- 2.21.0