From: Arun KS <arunks@codeaurora.org>
To: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
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
Subject: Re: [PATCH v1 0/4]mm: convert totalram_pages, totalhigh_pages and managed pages to atomic
Date: Tue, 06 Nov 2018 14:00:14 +0530 [thread overview]
Message-ID: <08a61c003eed0280fd82f6200debcbca@codeaurora.org> (raw)
In-Reply-To: <63d9f48c-e39f-d345-0fb6-2f04afe769a2@yandex-team.ru>
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.
Will update the comment.
Regards,
Arun
>
> Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
>
>>
>> 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):
>>> A mm: Fix multiple evaluvations of totalram_pages and managed_pages
>>> A mm: Convert zone->managed_pages to atomic variable
>>> A mm: convert totalram_pages and totalhigh_pages variables to atomic
>>> A mm: Remove managed_page_count spinlock
>>>
>>> A arch/csky/mm/init.cA A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A arch/powerpc/platforms/pseries/cmm.cA A A A A A A A A | 10 ++--
>>> A arch/s390/mm/init.cA A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A arch/um/kernel/mem.cA A A A A A A A A A A A A A A A A A A A A A A A A |A 3 +-
>>> A arch/x86/kernel/cpu/microcode/core.cA A A A A A A A A |A 5 +-
>>> A drivers/char/agp/backend.cA A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A drivers/gpu/drm/amd/amdkfd/kfd_crat.cA A A A A A A A |A 2 +-
>>> A drivers/gpu/drm/i915/i915_gem.cA A A A A A A A A A A A A A |A 2 +-
>>> A drivers/gpu/drm/i915/selftests/i915_gem_gtt.c |A 4 +-
>>> A drivers/hv/hv_balloon.cA A A A A A A A A A A A A A A A A A A A A A | 19 +++----
>>> A drivers/md/dm-bufio.cA A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A drivers/md/dm-crypt.cA A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A drivers/md/dm-integrity.cA A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A drivers/md/dm-stats.cA A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A drivers/media/platform/mtk-vpu/mtk_vpu.cA A A A A |A 2 +-
>>> A drivers/misc/vmw_balloon.cA A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A drivers/parisc/ccio-dma.cA A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A drivers/parisc/sba_iommu.cA A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A drivers/staging/android/ion/ion_system_heap.c |A 2 +-
>>> A drivers/xen/xen-selfballoon.cA A A A A A A A A A A A A A A A |A 6 +--
>>> A fs/ceph/super.hA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A fs/file_table.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 7 +--
>>> A fs/fuse/inode.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A fs/nfs/write.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A fs/nfsd/nfscache.cA A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A fs/ntfs/malloc.hA A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A fs/proc/base.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A include/linux/highmem.hA A A A A A A A A A A A A A A A A A A A A A | 28 ++++++++++-
>>> A include/linux/mm.hA A A A A A A A A A A A A A A A A A A A A A A A A A A | 27 +++++++++-
>>> A include/linux/mmzone.hA A A A A A A A A A A A A A A A A A A A A A A | 15 +++---
>>> A include/linux/swap.hA A A A A A A A A A A A A A A A A A A A A A A A A |A 1 -
>>> A kernel/fork.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 5 +-
>>> A kernel/kexec_core.cA A A A A A A A A A A A A A A A A A A A A A A A A A |A 5 +-
>>> A kernel/power/snapshot.cA A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A lib/show_mem.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/highmem.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A mm/huge_memory.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/kasan/quarantine.cA A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/memblock.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 6 +--
>>> A mm/memory_hotplug.cA A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A mm/mm_init.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/oom_kill.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/page_alloc.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A | 71
>>> +++++++++++++--------------
>>> A mm/shmem.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 7 +--
>>> A mm/slab.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/swap.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/util.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/vmalloc.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A mm/vmstat.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A mm/workingset.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A mm/zswap.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 4 +-
>>> A net/dccp/proto.cA A A A A A A A A A A A A A A A A A A A A A A A A A A A A |A 7 +--
>>> A net/decnet/dn_route.cA A A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A net/ipv4/tcp_metrics.cA A A A A A A A A A A A A A A A A A A A A A A |A 2 +-
>>> A net/netfilter/nf_conntrack_core.cA A A A A A A A A A A A |A 7 +--
>>> A net/netfilter/xt_hashlimit.cA A A A A A A A A A A A A A A A A |A 5 +-
>>> A net/sctp/protocol.cA A A A A A A A A A A A A A A A A A A A A A A A A A |A 7 +--
>>> A security/integrity/ima/ima_kexec.cA A A A A A A A A A A |A 2 +-
>>> A 58 files changed, 195 insertions(+), 144 deletions(-)
WARNING: multiple messages have this Message-ID (diff)
From: Arun KS <arunks@codeaurora.org>
To: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
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
Subject: Re: [PATCH v1 0/4]mm: convert totalram_pages, totalhigh_pages and managed pages to atomic
Date: Tue, 06 Nov 2018 14:00:14 +0530 [thread overview]
Message-ID: <08a61c003eed0280fd82f6200debcbca@codeaurora.org> (raw)
In-Reply-To: <63d9f48c-e39f-d345-0fb6-2f04afe769a2@yandex-team.ru>
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.
Will update the comment.
Regards,
Arun
>
> Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
>
>>
>> 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(-)
next prev parent reply other threads:[~2018-11-06 8:30 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-26 11:00 [PATCH v1 0/4]mm: convert totalram_pages, totalhigh_pages and managed pages to atomic Arun KS
2018-10-26 11:00 ` Arun KS
2018-10-26 11:00 ` [PATCH v1 1/4] mm: Fix multiple evaluvations of totalram_pages and managed_pages Arun KS
2018-10-26 11:00 ` Arun KS
2018-10-26 11:01 ` [PATCH v1 2/4] mm: Convert zone->managed_pages to atomic variable Arun KS
2018-10-26 11:01 ` Arun KS
2018-10-26 11:01 ` [PATCH v1 3/4] mm: convert totalram_pages and totalhigh_pages variables to atomic Arun KS
2018-10-26 11:01 ` Arun KS
[not found] ` <20181106141438.GQ27423@dhcp22.suse.cz>
2018-11-07 10:38 ` Michal Hocko
2018-11-07 10:38 ` Michal Hocko
2018-10-26 11:01 ` [PATCH v1 4/4] mm: Remove managed_page_count spinlock Arun KS
2018-10-26 11:01 ` Arun KS
[not found] ` <20181106141732.GR27423@dhcp22.suse.cz>
2018-11-07 10:36 ` Michal Hocko
2018-11-07 10:36 ` Michal Hocko
2018-11-07 11:50 ` Vlastimil Babka
2018-11-06 5:38 ` [PATCH v1 0/4]mm: convert totalram_pages, totalhigh_pages and managed pages to atomic Arun KS
2018-11-06 8:17 ` Konstantin Khlebnikov
2018-11-06 8:17 ` Konstantin Khlebnikov
2018-11-06 8:30 ` Arun KS [this message]
2018-11-06 8:30 ` Arun KS
2018-11-06 8:37 ` Konstantin Khlebnikov
2018-11-06 8:37 ` Konstantin Khlebnikov
2018-11-06 8:43 ` Arun KS
2018-11-06 8:43 ` Arun KS
2018-11-07 7:02 ` Konstantin Khlebnikov
2018-11-07 7:02 ` Konstantin Khlebnikov
2018-11-07 8:50 ` Vlastimil Babka
2018-11-07 10:28 ` Michal Hocko
2018-11-07 10:39 ` Michal Hocko
2018-11-07 0:22 ` Andrew Morton
2018-11-07 6:19 ` Arun KS
-- strict thread matches above, loose matches on Subject: below --
2018-10-26 11:00 Arun KS
2018-10-26 11:00 ` Arun KS
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=08a61c003eed0280fd82f6200debcbca@codeaurora.org \
--to=arunks@codeaurora.org \
--cc=akpm@linux-foundation.org \
--cc=getarunks@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=julia.lawall@lip6.fr \
--cc=keescook@chromium.org \
--cc=khlebnikov@yandex-team.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.