Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5975953imu; Mon, 21 Jan 2019 00:40:40 -0800 (PST) X-Google-Smtp-Source: ALg8bN6dY6hY5QKWi2Xj0YdEBrziY1EFyuD/29PeUn2dZ09tZFoCJ7kPVPNq6WEKt/q/TW6Tv9Dy X-Received: by 2002:a62:1b50:: with SMTP id b77mr29038321pfb.36.1548060040926; Mon, 21 Jan 2019 00:40:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548060040; cv=none; d=google.com; s=arc-20160816; b=XwhMqhN6LqJQwZJ/Abnz3hWD+MMz0vMVZuL67hprnkzeemwVsgdgWbR0pTrF9laDsH td5rtVLUQFMWUa0ZvqhA2sSw+mm0Eujct9bISgzbUT3YIIhbZIf4rICTgxYFAMH6J92a NSzt6vNJd9FrPbF0a6tFORlIlHZhjBi1pJKaE5XAqJyuMiupZkiMVDjhVjmwwB2+hfzv HXOToCw/7WSmV3FKfKRd8mF9XBlFuoBAX12JklGlL9jz9AKtdZodM+Ub9O7sDnLkzZ+M HCF7/85JPPuNFbLnnpHxGZiXmwhK83oSscHJE+YMNe6Ayq8cUVlNxtPiIB+Rzzv4tNqa EF8w== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=ucO+mEyukstSZOvX/DChuy7j9sUdkEFCR7xKzTtgKxM=; b=cK+91qgfCzlZlL3tCNSRpfoeJS+JyDLcIcOJoXH+hmmG616Kig4SC+rpY/GGzdgMw/ x4VCki50THVn/E788K+mr4P5VXDFgyYSgNVI5GecIcdbxPKEnaURbCzyrYLNSIr408d2 16ReLlRCjDAl76vqVrIinq7qAZ+OL3IGKCTJdJyitXb0byqxaXYRmVgZciFEjkdIIFXZ NeARrStrnOv0PWurpCVgCrMmEx6bql5+NSyJYrrqHMjYzwLbGzyn61t4fbYUMaih5sOd ZP+ipKF538l03yXPxtDuEog3DgT00fKTor3psen1JjdE8I0UBv+KGgW3wbNz8a7GhrAc V8Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=vOEFLvDi; 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=NONE dis=NONE) header.from=android.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j20si12028011pgh.224.2019.01.21.00.40.25; Mon, 21 Jan 2019 00:40:40 -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=@android.com header.s=20161025 header.b=vOEFLvDi; 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=NONE dis=NONE) header.from=android.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729691AbfAUIiK (ORCPT + 99 others); Mon, 21 Jan 2019 03:38:10 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:36926 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728910AbfAUIiK (ORCPT ); Mon, 21 Jan 2019 03:38:10 -0500 Received: by mail-pl1-f195.google.com with SMTP id b5so9480992plr.4 for ; Mon, 21 Jan 2019 00:38:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ucO+mEyukstSZOvX/DChuy7j9sUdkEFCR7xKzTtgKxM=; b=vOEFLvDifGw5avCbsCCz5QvbSdVOTDHlqRwfyD0Q1kaXsSRKWzVCqVd5gSoTO1Ph0o YzMoo3aLurhTaVY+G7Z2RdAlZKLaWyqllQCct4kQnVsGWK5kHJAysUEjR5idEIKTN9aJ b/vDe+L2zL2D5Zl0vIy6N4mM2ulQK6XHPv+pJC81HP42MqGxGwIm8u6doeoKpyfduQWX 6mBDU/gyALKpAOgPoihX4FyTLECy3P+iZCFS9wKVEczm4WSDJcAy0M8uzg2Kn1nf3l1E hRlRFGKLqfIaKtwgjDrVNToTEvB8jim9Sb3yd7HeZC39rOJK81qPfsvbZtl6enGa3DXt clKA== 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:mime-version :content-transfer-encoding; bh=ucO+mEyukstSZOvX/DChuy7j9sUdkEFCR7xKzTtgKxM=; b=gK/GleCRWdy6FJkS189yFIBtIVD2cac5qgvAfLSlmVTXKcj/Oz/T3Nxj/wrY/kUaBU L8PEVacZn+kwixbo7HlajV1csYUEiMm3Cmyao9Xk9K3YXCJMcJG0CHcq5gkjXMoKWho7 KUKi5dj2sYEoXfweP74xgdXK/J2T1edsPXceYA2ZwQXr9OO2isYK+PaYjFfQd2gkRLzU FFn4bOGkrfDWqTghhiTOqy2Qbxl2hXhO/a4enZKrd7e5xuwRZPzs8VmnLZo255Kuz6oZ PJrXabNcsxfscxUwJn/z4rusL7Tu6X1EgnjQYTMLDWk/+xxCm1kjtWhU0IjsntSdaGv6 /xSg== X-Gm-Message-State: AJcUukf+EA8qney5FAE5keK/ZW2X04qTC02+VLDpXhPMszIDZfXg+Ehs tvTbKAV8DxFM9pLGb83irkHCyQgSmzo= X-Received: by 2002:a17:902:be11:: with SMTP id r17mr6240646pls.308.1548033050922; Sun, 20 Jan 2019 17:10:50 -0800 (PST) Received: from sspatil-glaptop2.roam.corp.google.com (c-73-170-36-70.hsd1.ca.comcast.net. [73.170.36.70]) by smtp.gmail.com with ESMTPSA id 4sm13985132pfq.10.2019.01.20.17.10.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Jan 2019 17:10:50 -0800 (PST) From: Sandeep Patil To: vbabka@suse.cz, adobriyan@gmail.com, akpm@linux-foundation.org, avagin@openvz.org Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, kernel-team@android.com, dancol@google.com Subject: [PATCH] mm: proc: smaps_rollup: Fix pss_locked calculation Date: Sun, 20 Jan 2019 17:10:49 -0800 Message-Id: <20190121011049.160505-1-sspatil@android.com> X-Mailer: git-send-email 2.20.1.321.g9e740568ce-goog 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 The 'pss_locked' field of smaps_rollup was being calculated incorrectly as it accumulated the current pss everytime a locked VMA was found. Fix that by making sure we record the current pss value before each VMA is walked. So, we can only add the delta if the VMA was found to be VM_LOCKED. Fixes: 493b0e9d945f ("mm: add /proc/pid/smaps_rollup") Cc: stable@vger.kernel.org # 4.14.y 4.19.y Signed-off-by: Sandeep Patil --- fs/proc/task_mmu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index f0ec9edab2f3..51a00a2b4733 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -709,6 +709,7 @@ static void smap_gather_stats(struct vm_area_struct *vma, #endif .mm = vma->vm_mm, }; + unsigned long pss; smaps_walk.private = mss; @@ -737,11 +738,12 @@ static void smap_gather_stats(struct vm_area_struct *vma, } } #endif - + /* record current pss so we can calculate the delta after page walk */ + pss = mss->pss; /* mmap_sem is held in m_start */ walk_page_vma(vma, &smaps_walk); if (vma->vm_flags & VM_LOCKED) - mss->pss_locked += mss->pss; + mss->pss_locked += mss->pss - pss; } #define SEQ_PUT_DEC(str, val) \ -- 2.20.1.321.g9e740568ce-goog