Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1582686imu; Tue, 6 Nov 2018 00:37:52 -0800 (PST) X-Google-Smtp-Source: AJdET5d6ST8+Rrp9QX5yb2ffQv3jMFOmnNG7jIBpJtWgdvBNXNY/+ibLuK9ID2Nxm4rGhr7+3i/4 X-Received: by 2002:a63:f547:: with SMTP id e7mr23495316pgk.182.1541493472462; Tue, 06 Nov 2018 00:37:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541493472; cv=none; d=google.com; s=arc-20160816; b=vqkH9zjI3hp4YAjHMpB3BkJiOIWWnF/Iv/acyuwdx3QcP0KqZZNeGr8qoIMy8Vj6z7 1NLTa4b7vsP50wjJgloOoxfXH86eKUaNLLNoRJ+a1hOjCVgUSve4hVj4S1/qRbNrm/1o kBh3l0vq+lEIozrg+UlPDm1vzj9L2TZsYEzqhRa5Fgjm8YYHdXU6sD1hMIQO2zBCLuIX aBtFHcu/EhKtL/6bb8wEFHi/iO04BvETnF3EoN/9FkRAGKVeRwHhpEsOTi0637Ugesp7 nCU7oIg74JW/misJ1LgLK8CHOEtAytbnTs1V+2wZFTbSz4vBea1JK0aSv+GW2/BIdvZh B+VQ== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :dkim-signature; bh=OmYO3Z+IlR1JNSOQCDGaJvLT/HHOibtlD+D2YWak4bI=; b=U0c/CxYHg0Vuaz2Cz3GA4XGVb0UlkFljLlr2yo+YLmXKbeWA0lo2smt8JPLDiT3mKV ApCpV0vHX6TxuDL8kemKTWH2TRRTvLRl6al8EvR4h9gALftWtdQ2gfuguEJosznn+D1F cE6U/NP9V5dgbMdxtG3L9jO7xBDrA5diLHyqex9FD+N3beI3/WeuWYdAJ6IeISdB7cSR s1xpHVROnhUIMyffKvj1tDRF/nkwpxF7cN2FtqAoQiiWqjpHYpFjL19m7BQNzGA9ZX0u nDbwBHvfwFD00yQXDLXuKb8BPrVydcfws/AxP3I+oWtXQ0xyxNLnC8W0cbBOb3Iu9ZXi RmeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b=i5IEajls; dkim=pass header.i=@yandex-team.ru header.s=default header.b=i5IEajls; 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=yandex-team.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x32si22362495pgk.309.2018.11.06.00.37.37; Tue, 06 Nov 2018 00:37:52 -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=@yandex-team.ru header.s=default header.b=i5IEajls; dkim=pass header.i=@yandex-team.ru header.s=default header.b=i5IEajls; 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=yandex-team.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729887AbeKFSBN (ORCPT + 99 others); Tue, 6 Nov 2018 13:01:13 -0500 Received: from forwardcorp1g.cmail.yandex.net ([87.250.241.190]:52737 "EHLO forwardcorp1g.cmail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729021AbeKFSBN (ORCPT ); Tue, 6 Nov 2018 13:01:13 -0500 Received: from mxbackcorp1o.mail.yandex.net (mxbackcorp1o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::301]) by forwardcorp1g.cmail.yandex.net (Yandex) with ESMTP id 98F3A21809; Tue, 6 Nov 2018 11:37:03 +0300 (MSK) Received: from smtpcorp1p.mail.yandex.net (smtpcorp1p.mail.yandex.net [2a02:6b8:0:1472:2741:0:8b6:10]) by mxbackcorp1o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id pD5yWTlU6w-b37uWSqT; Tue, 06 Nov 2018 11:37:03 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1541493423; bh=OmYO3Z+IlR1JNSOQCDGaJvLT/HHOibtlD+D2YWak4bI=; h=Subject:To:Cc:References:From:Message-ID:Date:In-Reply-To; b=i5IEajlsxnnpzoHMjvjIxpjleVuuPl4K1tOzWvjVpdH40LibPVrJRqGU35W/FMApH GXGWfQgUJ7umXA7BSi37UbdLVmxa9TepwxkGFeyR2M04QfRDRoF4aMqkbmqerXw+83 WpxExmiEjx89GTFzzl4NUIFCIxCSFEcj7kNFTqVE= Received: from dynamic-red.dhcp.yndx.net (dynamic-red.dhcp.yndx.net [2a02:6b8:0:40c:2501:1cc0:44e4:e39a]) by smtpcorp1p.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id E6CA17CU45-b2J8kBRN; Tue, 06 Nov 2018 11:37:03 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1541493423; bh=OmYO3Z+IlR1JNSOQCDGaJvLT/HHOibtlD+D2YWak4bI=; h=Subject:To:Cc:References:From:Message-ID:Date:In-Reply-To; b=i5IEajlsxnnpzoHMjvjIxpjleVuuPl4K1tOzWvjVpdH40LibPVrJRqGU35W/FMApH GXGWfQgUJ7umXA7BSi37UbdLVmxa9TepwxkGFeyR2M04QfRDRoF4aMqkbmqerXw+83 WpxExmiEjx89GTFzzl4NUIFCIxCSFEcj7kNFTqVE= Authentication-Results: smtpcorp1p.mail.yandex.net; dkim=pass header.i=@yandex-team.ru Subject: Re: [PATCH v1 0/4]mm: convert totalram_pages, totalhigh_pages and managed pages to atomic To: Arun KS Cc: keescook@chromium.org, minchan@kernel.org, getarunks@gmail.com, gregkh@linuxfoundation.org, akpm@linux-foundation.org, mhocko@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org, linux-mm@kvack.org, julia.lawall@lip6.fr References: <1540551662-26458-1-git-send-email-arunks@codeaurora.org> <9b210d4cc9925caf291412d7d45f16d7@codeaurora.org> <63d9f48c-e39f-d345-0fb6-2f04afe769a2@yandex-team.ru> <08a61c003eed0280fd82f6200debcbca@codeaurora.org> From: Konstantin Khlebnikov Message-ID: <10c88df6-dbb1-7490-628c-055d59b5ad8e@yandex-team.ru> Date: Tue, 6 Nov 2018 11:37:02 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <08a61c003eed0280fd82f6200debcbca@codeaurora.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-CA Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06.11.2018 11:30, Arun KS wrote: > On 2018-11-06 13:47, Konstantin Khlebnikov wrote: >> On 06.11.2018 8:38, Arun KS wrote: >>> Any comments? >> >> Looks good. >> Except unclear motivation behind this change. >> This should be in comment of one of patch. > > totalram_pages, zone->managed_pages and totalhigh_pages are sometimes modified outside managed_page_count_lock. Hence convert these variable > to atomic to avoid readers potentially seeing a store tear. So, this is just theoretical issue or splat from sanitizer. After boot memory online\offline are strictly serialized by rw-semaphore. > > Will update the comment. > > Regards, > Arun > >> >> Reviewed-by: Konstantin Khlebnikov >> >>> >>> Regards, >>> Arun >>> >>> On 2018-10-26 16:30, Arun KS wrote: >>>> This series convert totalram_pages, totalhigh_pages and >>>> zone->managed_pages to atomic variables. >>>> >>>> The patch was comiple tested on x86(x86_64_defconfig & i386_defconfig) >>>> on tip of linux-mmotm. And memory hotplug tested on arm64, but on an >>>> older version of kernel. >>>> >>>> Arun KS (4): >>>>   mm: Fix multiple evaluvations of totalram_pages and managed_pages >>>>   mm: Convert zone->managed_pages to atomic variable >>>>   mm: convert totalram_pages and totalhigh_pages variables to atomic >>>>   mm: Remove managed_page_count spinlock >>>> >>>>  arch/csky/mm/init.c                           |  4 +- >>>>  arch/powerpc/platforms/pseries/cmm.c          | 10 ++-- >>>>  arch/s390/mm/init.c                           |  2 +- >>>>  arch/um/kernel/mem.c                          |  3 +- >>>>  arch/x86/kernel/cpu/microcode/core.c          |  5 +- >>>>  drivers/char/agp/backend.c                    |  4 +- >>>>  drivers/gpu/drm/amd/amdkfd/kfd_crat.c         |  2 +- >>>>  drivers/gpu/drm/i915/i915_gem.c               |  2 +- >>>>  drivers/gpu/drm/i915/selftests/i915_gem_gtt.c |  4 +- >>>>  drivers/hv/hv_balloon.c                       | 19 +++---- >>>>  drivers/md/dm-bufio.c                         |  2 +- >>>>  drivers/md/dm-crypt.c                         |  2 +- >>>>  drivers/md/dm-integrity.c                     |  2 +- >>>>  drivers/md/dm-stats.c                         |  2 +- >>>>  drivers/media/platform/mtk-vpu/mtk_vpu.c      |  2 +- >>>>  drivers/misc/vmw_balloon.c                    |  2 +- >>>>  drivers/parisc/ccio-dma.c                     |  4 +- >>>>  drivers/parisc/sba_iommu.c                    |  4 +- >>>>  drivers/staging/android/ion/ion_system_heap.c |  2 +- >>>>  drivers/xen/xen-selfballoon.c                 |  6 +-- >>>>  fs/ceph/super.h                               |  2 +- >>>>  fs/file_table.c                               |  7 +-- >>>>  fs/fuse/inode.c                               |  2 +- >>>>  fs/nfs/write.c                                |  2 +- >>>>  fs/nfsd/nfscache.c                            |  2 +- >>>>  fs/ntfs/malloc.h                              |  2 +- >>>>  fs/proc/base.c                                |  2 +- >>>>  include/linux/highmem.h                       | 28 ++++++++++- >>>>  include/linux/mm.h                            | 27 +++++++++- >>>>  include/linux/mmzone.h                        | 15 +++--- >>>>  include/linux/swap.h                          |  1 - >>>>  kernel/fork.c                                 |  5 +- >>>>  kernel/kexec_core.c                           |  5 +- >>>>  kernel/power/snapshot.c                       |  2 +- >>>>  lib/show_mem.c                                |  2 +- >>>>  mm/highmem.c                                  |  4 +- >>>>  mm/huge_memory.c                              |  2 +- >>>>  mm/kasan/quarantine.c                         |  2 +- >>>>  mm/memblock.c                                 |  6 +-- >>>>  mm/memory_hotplug.c                           |  4 +- >>>>  mm/mm_init.c                                  |  2 +- >>>>  mm/oom_kill.c                                 |  2 +- >>>>  mm/page_alloc.c                               | 71 +++++++++++++-------------- >>>>  mm/shmem.c                                    |  7 +-- >>>>  mm/slab.c                                     |  2 +- >>>>  mm/swap.c                                     |  2 +- >>>>  mm/util.c                                     |  2 +- >>>>  mm/vmalloc.c                                  |  4 +- >>>>  mm/vmstat.c                                   |  4 +- >>>>  mm/workingset.c                               |  2 +- >>>>  mm/zswap.c                                    |  4 +- >>>>  net/dccp/proto.c                              |  7 +-- >>>>  net/decnet/dn_route.c                         |  2 +- >>>>  net/ipv4/tcp_metrics.c                        |  2 +- >>>>  net/netfilter/nf_conntrack_core.c             |  7 +-- >>>>  net/netfilter/xt_hashlimit.c                  |  5 +- >>>>  net/sctp/protocol.c                           |  7 +-- >>>>  security/integrity/ima/ima_kexec.c            |  2 +- >>>>  58 files changed, 195 insertions(+), 144 deletions(-)