LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* mmotm 2021-08-05-19-46 uploaded
@ 2021-08-06  2:46 akpm
  2021-08-06  5:00 ` mmotm 2021-08-05-19-46 uploaded (mm/filemap.c) Randy Dunlap
  0 siblings, 1 reply; 7+ messages in thread
From: akpm @ 2021-08-06  2:46 UTC (permalink / raw)
  To: broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
	mhocko, mm-commits, sfr

The mm-of-the-moment snapshot 2021-08-05-19-46 has been uploaded to

   https://www.ozlabs.org/~akpm/mmotm/

mmotm-readme.txt says

README for mm-of-the-moment:

https://www.ozlabs.org/~akpm/mmotm/

This is a snapshot of my -mm patch queue.  Uploaded at random hopefully
more than once a week.

You will need quilt to apply these patches to the latest Linus release (5.x
or 5.x-rcY).  The series file is in broken-out.tar.gz and is duplicated in
https://ozlabs.org/~akpm/mmotm/series

The file broken-out.tar.gz contains two datestamp files: .DATE and
.DATE-yyyy-mm-dd-hh-mm-ss.  Both contain the string yyyy-mm-dd-hh-mm-ss,
followed by the base kernel version against which this patch series is to
be applied.

This tree is partially included in linux-next.  To see which patches are
included in linux-next, consult the `series' file.  Only the patches
within the #NEXT_PATCHES_START/#NEXT_PATCHES_END markers are included in
linux-next.


A full copy of the full kernel tree with the linux-next and mmotm patches
already applied is available through git within an hour of the mmotm
release.  Individual mmotm releases are tagged.  The master branch always
points to the latest release, so it's constantly rebasing.

	https://github.com/hnaz/linux-mm

The directory https://www.ozlabs.org/~akpm/mmots/ (mm-of-the-second)
contains daily snapshots of the -mm tree.  It is updated more frequently
than mmotm, and is untested.

A git copy of this tree is also available at

	https://github.com/hnaz/linux-mm



This mmotm tree contains the following patches against 5.14-rc4:
(patches marked "*" will be included in linux-next)

  origin.patch
* procfs-prevent-unpriveleged-processes-accessing-fdinfo-dir.patch
* slub-fix-kmalloc_pagealloc_invalid_free-unit-test.patch
* mm-slub-fix-slub_debug-disablement-for-list-of-slabs.patch
* mm-madvise-report-sigbus-as-efault-for-madv_populate_readwrite.patch
* mm-memcg-fix-incorrect-flushing-of-lruvec-data-in-obj_stock.patch
* lib-use-pfn_phys-in-devmem_is_allowed.patch
* shmem_swapin_page-fix-error-processing-for-get_swap_device.patch
* kasan-kmemleak-reset-tags-when-scanning-block.patch
* kasan-slub-reset-tag-when-printing-address.patch
* proc-kpageflags-prevent-an-integer-overflow-in-stable_page_flags.patch
* proc-kpageflags-do-not-use-uninitialized-struct-pages.patch
* init-move-usermodehelper_enable-to-populate_rootfs.patch
* ocfs2-remove-an-unnecessary-condition.patch
* ocfs2-reflink-deadlock-when-clone-file-to-the-same-directory-simultaneously.patch
* ocfs2-clear-links-count-in-ocfs2_mknod-if-an-error-occurs.patch
* ocfs2-fix-ocfs2-corrupt-when-iputting-an-inode.patch
* lib-fix-bugoncocci-warnings.patch
  mm.patch
* mm-move-kvmalloc-related-functions-to-slabh.patch
* mm-slub-dont-call-flush_all-from-slab_debug_trace_open.patch
* mm-slub-allocate-private-object-map-for-debugfs-listings.patch
* mm-slub-allocate-private-object-map-for-validate_slab_cache.patch
* mm-slub-dont-disable-irq-for-debug_check_no_locks_freed.patch
* mm-slub-remove-redundant-unfreeze_partials-from-put_cpu_partial.patch
* mm-slub-unify-cmpxchg_double_slab-and-__cmpxchg_double_slab.patch
* mm-slub-extract-get_partial-from-new_slab_objects.patch
* mm-slub-dissolve-new_slab_objects-into-___slab_alloc.patch
* mm-slub-return-slab-page-from-get_partial-and-set-c-page-afterwards.patch
* mm-slub-restructure-new-page-checks-in-___slab_alloc.patch
* mm-slub-simplify-kmem_cache_cpu-and-tid-setup.patch
* mm-slub-move-disabling-enabling-irqs-to-___slab_alloc.patch
* mm-slub-do-initial-checks-in-___slab_alloc-with-irqs-enabled.patch
* mm-slub-move-disabling-irqs-closer-to-get_partial-in-___slab_alloc.patch
* mm-slub-restore-irqs-around-calling-new_slab.patch
* mm-slub-validate-slab-from-partial-list-or-page-allocator-before-making-it-cpu-slab.patch
* mm-slub-check-new-pages-with-restored-irqs.patch
* mm-slub-stop-disabling-irqs-around-get_partial.patch
* mm-slub-move-reset-of-c-page-and-freelist-out-of-deactivate_slab.patch
* mm-slub-make-locking-in-deactivate_slab-irq-safe.patch
* mm-slub-call-deactivate_slab-without-disabling-irqs.patch
* mm-slub-move-irq-control-into-unfreeze_partials.patch
* mm-slub-discard-slabs-in-unfreeze_partials-without-irqs-disabled.patch
* mm-slub-detach-whole-partial-list-at-once-in-unfreeze_partials.patch
* mm-slub-separate-detaching-of-partial-list-in-unfreeze_partials-from-unfreezing.patch
* mm-slub-only-disable-irq-with-spin_lock-in-__unfreeze_partials.patch
* mm-slub-dont-disable-irqs-in-slub_cpu_dead.patch
* mm-slab-make-flush_slab-possible-to-call-with-irqs-enabled.patch
* mm-slub-move-flush_cpu_slab-invocations-__free_slab-invocations-out-of-irq-context.patch
* mm-slub-make-object_map_lock-a-raw_spinlock_t.patch
* mm-slub-optionally-save-restore-irqs-in-slab_lock.patch
* mm-slub-make-slab_lock-disable-irqs-with-preempt_rt.patch
* mm-slub-protect-put_cpu_partial-with-disabled-irqs-instead-of-cmpxchg.patch
* mm-slub-use-migrate_disable-on-preempt_rt.patch
* mm-slub-convert-kmem_cpu_slab-protection-to-local_lock.patch
* mm-debug_vm_pgtable-introduce-struct-pgtable_debug_args.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-basic-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-leaf-and-savewrite-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-protnone-and-devmap-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-soft_dirty-and-swap-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-migration-and-thp-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-pte-modifying-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-pmd-modifying-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-pud-modifying-tests.patch
* mm-debug_vm_pgtable-use-struct-pgtable_debug_args-in-pgd-and-p4d-modifying-tests.patch
* mm-debug_vm_pgtable-remove-unused-code.patch
* mm-debug_vm_pgtable-fix-corrupted-page-flag.patch
* mm-report-a-more-useful-address-for-reclaim-acquisition.patch
* mm-mark-idle-page-tracking-as-broken.patch
* writeback-track-number-of-inodes-under-writeback.patch
* writeback-reliably-update-bandwidth-estimation.patch
* writeback-fix-bandwidth-estimate-for-spiky-workload.patch
* writeback-fix-bandwidth-estimate-for-spiky-workload-fix.patch
* writeback-rename-domain_update_bandwidth.patch
* writeback-use-read_once-for-unlocked-reads-of-writeback-stats.patch
* mm-remove-irqsave-restore-locking-from-contexts-with-irqs-enabled.patch
* fs-drop_caches-fix-skipping-over-shadow-cache-inodes.patch
* fs-inode-count-invalidated-shadow-pages-in-pginodesteal.patch
* vfs-keep-inodes-with-page-cache-off-the-inode-shrinker-lru.patch
* writeback-memcg-simplify-cgroup_writeback_by_id.patch
* fs-mm-fix-race-in-unlinking-swapfile.patch
* mm-delete-unused-get_kernel_page.patch
* mm-memcg-add-mem_cgroup_disabled-checks-in-vmpressure-and-swap-related-functions.patch
* mm-memcg-inline-mem_cgroup_charge-uncharge-to-improve-disabled-memcg-config.patch
* mm-memcg-inline-swap-related-functions-to-improve-disabled-memcg-config.patch
* memcg-enable-accounting-for-pids-in-nested-pid-namespaces.patch
* memcg-switch-lruvec-stats-to-rstat.patch
* memcg-infrastructure-to-flush-memcg-stats.patch
* memcg-infrastructure-to-flush-memcg-stats-v5.patch
* memcg-charge-fs_context-and-legacy_fs_context.patch
* memcg-enable-accounting-for-mnt_cache-entries.patch
* memcg-enable-accounting-for-pollfd-and-select-bits-arrays.patch
* memcg-enable-accounting-for-file-lock-caches.patch
* memcg-enable-accounting-for-fasync_cache.patch
* memcg-enable-accounting-for-new-namesapces-and-struct-nsproxy.patch
* memcg-enable-accounting-of-ipc-resources.patch
* memcg-enable-accounting-for-signals.patch
* memcg-enable-accounting-for-posix_timers_cache-slab.patch
* memcg-enable-accounting-for-ldt_struct-objects.patch
* memcg-cleanup-racy-sum-avoidance-code.patch
* memcg-replace-in_interrupt-by-in_task-in-active_memcg.patch
* mm-memcontrol-set-the-correct-memcg-swappiness-restriction.patch
* lazy-tlb-introduce-lazy-mm-refcount-helper-functions.patch
* lazy-tlb-introduce-lazy-mm-refcount-helper-functions-fix.patch
* lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable.patch
* lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable-fix.patch
* lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable-fix-2.patch
* lazy-tlb-shoot-lazies-a-non-refcounting-lazy-tlb-option.patch
* lazy-tlb-shoot-lazies-a-non-refcounting-lazy-tlb-option-fix.patch
* powerpc-64s-enable-mmu_lazy_tlb_shootdown.patch
* mmc-jz4740-remove-the-flush_kernel_dcache_page-call-in-jz4740_mmc_read_data.patch
* mmc-mmc_spi-replace-flush_kernel_dcache_page-with-flush_dcache_page.patch
* scatterlist-replace-flush_kernel_dcache_page-with-flush_dcache_page.patch
* mm-remove-flush_kernel_dcache_page.patch
* mmdo_huge_pmd_numa_page-remove-unnecessary-tlb-flushing-code.patch
* mm-change-fault_in_pages_-to-have-an-unsigned-size-parameter.patch
* add-mmap_assert_locked-annotations-to-find_vma.patch
* add-mmap_assert_locked-annotations-to-find_vma-fix.patch
* mm-mremap-fix-memory-account-on-do_munmap-failure.patch
* mm-mremap-dont-account-pages-in-vma_to_resize.patch
* mm-sparse-pass-section_nr-to-section_mark_present.patch
* mm-sparse-pass-section_nr-to-find_memory_block.patch
* mm-sparse-remove-__section_nr-function.patch
* mm-sparse-set-section_nid_shift-to-6.patch
* avoid-a-warning-in-sparse-memory-support.patch
* mm-sparse-clarify-pgdat_to_phys.patch
* mm-vmalloc-use-batched-page-requests-in-bulk-allocator.patch
* mm-vmalloc-remove-gfpflags_allow_blocking-check.patch
* lib-test_vmallocc-add-a-new-nr_pages-parameter.patch
* mm-vmalloc-fix-wrong-behavior-in-vread.patch
* mm-kasan-move-kasanfault-to-mm-kasan-reportc.patch
* mm-page_alloc-always-initialize-memory-map-for-the-holes.patch
* mm-page_alloc-always-initialize-memory-map-for-the-holes-fix.patch
* microblaze-simplify-pte_alloc_one_kernel.patch
* mm-introduce-memmap_alloc-to-unify-memory-map-allocation.patch
* memblock-stop-poisoning-raw-allocations.patch
* fix-zone_id-may-be-used-uninitialized-in-this-function-warning.patch
* mm-page_alloc-make-alloc_node_mem_map-__init-rather-than-__ref.patch
* hugetlb-simplify-prep_compound_gigantic_page-ref-count-racing-code.patch
* hugetlb-drop-ref-count-earlier-after-page-allocation.patch
* hugetlb-before-freeing-hugetlb-page-set-dtor-to-appropriate-value.patch
* mm-numa-automatically-generate-node-migration-order.patch
* mm-migrate-update-node-demotion-order-on-hotplug-events.patch
* mm-migrate-enable-returning-precise-migrate_pages-success-count.patch
* mm-migrate-demote-pages-during-reclaim.patch
* mm-migrate-demote-pages-during-reclaim-v11.patch
* mm-vmscan-add-page-demotion-counter.patch
* mm-vmscan-add-helper-for-querying-ability-to-age-anonymous-pages.patch
* mm-vmscan-add-helper-for-querying-ability-to-age-anonymous-pages-v11.patch
* mm-vmscan-consider-anonymous-pages-without-swap.patch
* mm-vmscan-consider-anonymous-pages-without-swap-v11.patch
* mm-vmscan-never-demote-for-memcg-reclaim.patch
* mm-migrate-add-sysfs-interface-to-enable-reclaim-migration.patch
* mm-vmpressure-replace-vmpressure_to_css-with-vmpressure_to_memcg.patch
* mm-vmscan-remove-the-pagedirty-check-after-madv_free-pages-are-page_ref_freezed.patch
* mm-vmscan-remove-misleading-setting-to-sc-priority.patch
* mm-vmscan-remove-unneeded-return-value-of-kswapd_run.patch
* mm-vmscan-add-else-to-remove-check_pending-label.patch
* mm-compaction-optimize-proactive-compaction-deferrals.patch
* mm-compaction-optimize-proactive-compaction-deferrals-fix.patch
* mm-compaction-support-triggering-of-proactive-compaction-by-user.patch
* mm-compaction-support-triggering-of-proactive-compaction-by-user-fix.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt-fix.patch
* mm-mempolicy-use-readable-numa_no_node-macro-instead-of-magic-numer.patch
* mm-mempolicy-add-mpol_preferred_many-for-multiple-preferred-nodes.patch
* mm-memplicy-add-page-allocation-function-for-mpol_preferred_many-policy.patch
* mm-hugetlb-add-support-for-mempolicy-mpol_preferred_many.patch
* mm-mempolicy-advertise-new-mpol_preferred_many.patch
* mm-mempolicy-unify-the-create-func-for-bind-interleave-prefer-many-policies.patch
* memblock-make-memblock_find_in_range-method-private.patch
* oom_kill-oom_score_adj-broken-for-processes-with-small-memory-usage.patch
* mm-thp-make-alloc_split_ptlocks-dependent-on-use_split_pte_ptlocks.patch
* selftests-vm-add-ksm-merge-test.patch
* selftests-vm-add-ksm-unmerge-test.patch
* selftests-vm-add-ksm-zero-page-merging-test.patch
* selftests-vm-add-ksm-merging-across-nodes-test.patch
* selftests-vm-add-ksm-merging-time-test.patch
* selftests-vm-add-cow-time-test-for-ksm-pages.patch
* mm-vmstat-correct-some-wrong-comments.patch
* mm-vmstat-simplify-the-array-size-calculation.patch
* mm-vmstat-remove-unneeded-return-value.patch
* preempt-provide-preempt__nort-variants.patch
* mm-madvise-add-madv_willneed-to-process_madvise.patch
* memory-hotplugrst-remove-locking-details-from-admin-guide.patch
* memory-hotplugrst-complete-admin-guide-overhaul.patch
* mm-remove-pfn_valid_within-and-config_holes_in_zone.patch
* mm-memory_hotplug-cleanup-after-removal-of-pfn_valid_within.patch
* mm-memory_hotplug-use-unsigned-long-for-pfn-in-zone_for_pfn_range.patch
* mm-memory_hotplug-remove-nid-parameter-from-arch_remove_memory.patch
* mm-memory_hotplug-remove-nid-parameter-from-remove_memory-and-friends.patch
* acpi-memhotplug-memory-resources-cannot-be-enabled-yet.patch
* mm-track-present-early-pages-per-zone.patch
* mm-memory_hotplug-introduce-auto-movable-online-policy.patch
* drivers-base-memory-introduce-memory-groups-to-logically-group-memory-blocks.patch
* mm-memory_hotplug-track-present-pages-in-memory-groups.patch
* acpi-memhotplug-use-a-single-static-memory-group-for-a-single-memory-device.patch
* dax-kmem-use-a-single-static-memory-group-for-a-single-probed-unit.patch
* virtio-mem-use-a-single-dynamic-memory-group-for-a-single-virtio-mem-device.patch
* mm-memory_hotplug-memory-group-aware-auto-movable-online-policy.patch
* mm-memory_hotplug-memory-group-aware-auto-movable-online-policy-fix.patch
* mm-memory_hotplug-improved-dynamic-memory-group-aware-auto-movable-online-policy.patch
* mm-rmap-convert-from-atomic_t-to-refcount_t-on-anon_vma-refcount.patch
* mm-zsmallocc-close-race-window-between-zs_pool_dec_isolated-and-zs_unregister_migration.patch
* mm-zsmallocc-combine-two-atomic-ops-in-zs_pool_dec_isolated.patch
* mm-highmem-remove-deprecated-kmap_atomic.patch
* kfence-show-cpu-and-timestamp-in-alloc-free-info.patch
* mm-introduce-data-access-monitor-damon.patch
* mm-damon-core-implement-region-based-sampling.patch
* mm-damon-adaptively-adjust-regions.patch
* mm-idle_page_tracking-make-pg_idle-reusable.patch
* mm-damon-implement-primitives-for-the-virtual-memory-address-spaces.patch
* mm-damon-implement-primitives-for-the-virtual-memory-address-spaces-fix.patch
* mm-damon-add-a-tracepoint.patch
* mm-damon-implement-a-debugfs-based-user-space-interface.patch
* mm-damon-implement-a-debugfs-based-user-space-interface-fix.patch
* mm-damon-implement-a-debugfs-based-user-space-interface-fix-fix.patch
* mm-damon-dbgfs-export-kdamond-pid-to-the-user-space.patch
* mm-damon-dbgfs-support-multiple-contexts.patch
* documentation-add-documents-for-damon.patch
* mm-damon-add-kunit-tests.patch
* mm-damon-add-user-space-selftests.patch
* maintainers-update-for-damon.patch
* info-task-hung-in-generic_file_write_iter.patch
* info-task-hung-in-generic_file_write-fix.patch
* kernel-hung_taskc-monitor-killed-tasks.patch
* percpu-remove-export-of-pcpu_base_addr.patch
* fs-proc-kcorec-add-mmap-interface.patch
* connector-send-event-on-write-to-proc-comm.patch
* proc-sysctl-make-protected_-world-readable.patch
* arch-kconfig-fix-spelling-mistake-seperate-separate.patch
* once-fix-trivia-typo-not-note.patch
* acct-use-dedicated-helper-to-access-rlimit-values.patch
* math-make-rational-tristate.patch
* math-rational_kunit_test-should-depend-on-rational-instead-of-selecting-it.patch
* lib-string-optimized-memcpy.patch
* lib-string-optimized-memmove.patch
* lib-string-optimized-memset.patch
* lib-test-convert-test_sortc-to-use-kunit.patch
* checkpatch-support-wide-strings.patch
* fs-epoll-use-a-per-cpu-counter-for-users-watches-count.patch
* fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix.patch
* fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix-fix.patch
* init-mainc-silence-some-wunused-parameter-warnings.patch
* nilfs2-fix-memory-leak-in-nilfs_sysfs_create_device_group.patch
* nilfs2-fix-null-pointer-in-nilfs_name_attr_release.patch
* nilfs2-fix-memory-leak-in-nilfs_sysfs_create_name_group.patch
* nilfs2-fix-memory-leak-in-nilfs_sysfs_delete_name_group.patch
* nilfs2-fix-memory-leak-in-nilfs_sysfs_create_snapshot_group.patch
* nilfs2-fix-memory-leak-in-nilfs_sysfs_delete_snapshot_group.patch
* hfsplus-fix-out-of-bounds-warnings-in-__hfsplus_setxattr.patch
* log-if-a-core-dump-is-aborted-due-to-changed-file-permissions.patch
* log-if-a-core-dump-is-aborted-due-to-changed-file-permissions-fix.patch
* pid-cleanup-the-stale-comment-mentioning-pidmap_init.patch
* prctl-allow-to-setup-brk-for-et_dyn-executables.patch
* configs-remove-the-obsolete-config_input_polldev.patch
* selftests-memfd-remove-unused-variable.patch
  linux-next.patch
  linux-next-rejects.patch
  linux-next-git-rejects.patch
* scripts-check_extable-fix-typo-in-user-error-message.patch
* kexec-move-locking-into-do_kexec_load.patch
* kexec-avoid-compat_alloc_user_space.patch
* mm-simplify-compat_sys_move_pages.patch
* mm-simplify-compat-numa-syscalls.patch
* mm-simplify-compat-numa-syscalls-fix.patch
* compat-remove-some-compat-entry-points.patch
* arch-remove-compat_alloc_user_space.patch
  make-sure-nobodys-leaking-resources.patch
  releasing-resources-with-children.patch
  mutex-subsystem-synchro-test-module.patch
  kernel-forkc-export-kernel_thread-to-modules.patch
  workaround-for-a-pci-restoring-bug.patch

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: mmotm 2021-08-05-19-46 uploaded (mm/filemap.c)
  2021-08-06  2:46 mmotm 2021-08-05-19-46 uploaded akpm
@ 2021-08-06  5:00 ` Randy Dunlap
  2021-08-06  9:22   ` SeongJae Park
  0 siblings, 1 reply; 7+ messages in thread
From: Randy Dunlap @ 2021-08-06  5:00 UTC (permalink / raw)
  To: akpm, broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
	mhocko, mm-commits, sfr, Matthew Wilcox, SeongJae Park

On 8/5/21 7:46 PM, akpm@linux-foundation.org wrote:
> The mm-of-the-moment snapshot 2021-08-05-19-46 has been uploaded to
> 
>     https://www.ozlabs.org/~akpm/mmotm/
> 
> mmotm-readme.txt says
> 
> README for mm-of-the-moment:
> 
> https://www.ozlabs.org/~akpm/mmotm/
> 
> This is a snapshot of my -mm patch queue.  Uploaded at random hopefully
> more than once a week.
> 
> You will need quilt to apply these patches to the latest Linus release (5.x
> or 5.x-rcY).  The series file is in broken-out.tar.gz and is duplicated in
> https://ozlabs.org/~akpm/mmotm/series
> 
> The file broken-out.tar.gz contains two datestamp files: .DATE and
> .DATE-yyyy-mm-dd-hh-mm-ss.  Both contain the string yyyy-mm-dd-hh-mm-ss,
> followed by the base kernel version against which this patch series is to
> be applied.

on i386, I am seeing lots of build errors due to references to
some PAGE_ flags that are only defined for 64BIT:

In file included from ../mm/filemap.c:44:0:
../include/linux/page_idle.h: In function ‘folio_test_young’:
../include/linux/page_idle.h:25:18: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
   return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
                   ^~~~~~~~~~~~~~
                   PAGEOUTRUN
../include/linux/page_idle.h:25:18: note: each undeclared identifier is reported only once for each function it appears in
../include/linux/page_idle.h:25:43: error: dereferencing pointer to incomplete type ‘struct page_ext’
   return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
                                            ^~
../include/linux/page_idle.h: In function ‘folio_set_young’:
../include/linux/page_idle.h:35:10: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
   set_bit(PAGE_EXT_YOUNG, &page_ext->flags);
           ^~~~~~~~~~~~~~
           PAGEOUTRUN
../include/linux/page_idle.h: In function ‘folio_test_clear_young’:
../include/linux/page_idle.h:45:28: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
   return test_and_clear_bit(PAGE_EXT_YOUNG, &page_ext->flags);
                             ^~~~~~~~~~~~~~
                             PAGEOUTRUN
../include/linux/page_idle.h: In function ‘folio_test_idle’:
../include/linux/page_idle.h:55:18: error: ‘PAGE_EXT_IDLE’ undeclared (first use in this function); did you mean ‘CPU_NOT_IDLE’?
   return test_bit(PAGE_EXT_IDLE, &page_ext->flags);
                   ^~~~~~~~~~~~~
                   CPU_NOT_IDLE
   AS      arch/x86/crypto/twofish-i586-asm_32.o
   AR      arch/x86/events/zhaoxin/built-in.a
../include/linux/page_idle.h: In function ‘folio_set_idle’:
../include/linux/page_idle.h:65:10: error: ‘PAGE_EXT_IDLE’ undeclared (first use in this function); did you mean ‘CPU_NOT_IDLE’?
   set_bit(PAGE_EXT_IDLE, &page_ext->flags);
           ^~~~~~~~~~~~~
           CPU_NOT_IDLE
../include/linux/page_idle.h: In function ‘folio_clear_idle’:
../include/linux/page_idle.h:75:12: error: ‘PAGE_EXT_IDLE’ undeclared (first use in this function); did you mean ‘CPU_NOT_IDLE’?
   clear_bit(PAGE_EXT_IDLE, &page_ext->flags);
             ^~~~~~~~~~~~~
             CPU_NOT_IDLE
   CC      mm/kfence/kfence_test.o
   CC      arch/x86/events/intel/uncore_nhmex.o
   CC      arch/x86/platform/atom/punit_atom_debug.o
../include/linux/page_idle.h: In function ‘folio_test_idle’:
../include/linux/page_idle.h:56:1: error: control reaches end of non-void function [-Werror=return-type]
  }

See:
--- a/include/linux/page_ext.h~mm-idle_page_tracking-make-pg_idle-reusable
+++ a/include/linux/page_ext.h
@@ -19,7 +19,7 @@ struct page_ext_operations {
  enum page_ext_flags {
  	PAGE_EXT_OWNER,
  	PAGE_EXT_OWNER_ALLOCATED,
-#if defined(CONFIG_IDLE_PAGE_TRACKING) && !defined(CONFIG_64BIT)
+#if defined(CONFIG_PAGE_IDLE_FLAG) && !defined(CONFIG_64BIT)
  	PAGE_EXT_YOUNG,
  	PAGE_EXT_IDLE,
  #endif


-- 
~Randy
Reported-by: Randy Dunlap <rdunlap@infradead.org>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: mmotm 2021-08-05-19-46 uploaded (mm/filemap.c)
  2021-08-06  5:00 ` mmotm 2021-08-05-19-46 uploaded (mm/filemap.c) Randy Dunlap
@ 2021-08-06  9:22   ` SeongJae Park
  2021-08-06  9:51     ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT SeongJae Park
  0 siblings, 1 reply; 7+ messages in thread
From: SeongJae Park @ 2021-08-06  9:22 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: akpm, broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
	mhocko, mm-commits, sfr, Matthew Wilcox, SeongJae Park

From: SeongJae Park <sjpark@amazon.de>

Hello Randy,

On Thu, 5 Aug 2021 22:00:11 -0700 Randy Dunlap <rdunlap@infradead.org> wrote:

[...]
> 
> on i386, I am seeing lots of build errors due to references to
> some PAGE_ flags that are only defined for 64BIT:
> 
> In file included from ../mm/filemap.c:44:0:
> ../include/linux/page_idle.h: In function ‘folio_test_young’:
> ../include/linux/page_idle.h:25:18: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
>    return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
>                    ^~~~~~~~~~~~~~
>                    PAGEOUTRUN
[...]
> 
> See:
> --- a/include/linux/page_ext.h~mm-idle_page_tracking-make-pg_idle-reusable
> +++ a/include/linux/page_ext.h
> @@ -19,7 +19,7 @@ struct page_ext_operations {
>   enum page_ext_flags {
>   	PAGE_EXT_OWNER,
>   	PAGE_EXT_OWNER_ALLOCATED,
> -#if defined(CONFIG_IDLE_PAGE_TRACKING) && !defined(CONFIG_64BIT)
> +#if defined(CONFIG_PAGE_IDLE_FLAG) && !defined(CONFIG_64BIT)
>   	PAGE_EXT_YOUNG,
>   	PAGE_EXT_IDLE,
>   #endif

Thanks for this report!  However, the flag is not defined for only-64BIT but
none-64BIT.

'enum page_ext_flags' is defined when 'CONFIG_PAGE_EXTENSION' is set.  It is
automatically set for non-64BIT when 'CONFIG_IDLE_PAGE_TRACKING' or
'CONFIG_DAMON_VADDR' is set.  However, 'CONFIG_PAGE_IDLE_FLAG' doesn't.  So, if
'CONFIG_PAGE_IDLE_FLAG' is set but 'CONFIG_PAGE_EXTENSION' is not, this issue
can be reproduced.

I was able to reproduce this issue with:

    make ARCH=i386 allnoconfig
    echo 'CONFIG_PAGE_IDLE_FLAG=y' >> .config
    make olddefconfig
    make ARCH=i386

And, confirmed below change fixes it.

--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -741,6 +741,7 @@ config DEFERRED_STRUCT_PAGE_INIT
 
 config PAGE_IDLE_FLAG
 	bool "Add PG_idle and PG_young flags"
+	select PAGE_EXTENSION if !64BIT
 	help
 	  This feature adds PG_idle and PG_young flags in 'struct page'.  PTE
 	  Accessed bit writers can set the state of the bit in the flags to let

Also, below change would make more sense:

@@ -749,7 +750,6 @@ config PAGE_IDLE_FLAG
 config IDLE_PAGE_TRACKING
 	bool "Enable idle page tracking"
 	depends on SYSFS && MMU && BROKEN
-	select PAGE_EXTENSION if !64BIT
 	select PAGE_IDLE_FLAG
 	help
 	  This feature allows to estimate the amount of user pages that have
diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
index 455995152697..37024798a97c 100644
--- a/mm/damon/Kconfig
+++ b/mm/damon/Kconfig
@@ -27,7 +27,6 @@ config DAMON_KUNIT_TEST
 config DAMON_VADDR
 	bool "Data access monitoring primitives for virtual address spaces"
 	depends on DAMON && MMU
-	select PAGE_EXTENSION if !64BIT
 	select PAGE_IDLE_FLAG
 	help
 	  This builds the default data access monitoring primitives for DAMON

I will format these as patches and post soon.


Thanks,
SeongJae Park

> 
> 
> -- 
> ~Randy
> Reported-by: Randy Dunlap <rdunlap@infradead.org>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT
  2021-08-06  9:22   ` SeongJae Park
@ 2021-08-06  9:51     ` SeongJae Park
  2021-08-06  9:51       ` [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup SeongJae Park
  2021-08-07  2:01       ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT Randy Dunlap
  0 siblings, 2 replies; 7+ messages in thread
From: SeongJae Park @ 2021-08-06  9:51 UTC (permalink / raw)
  To: akpm
  Cc: SeongJae Park, rdunlap, broonie, linux-fsdevel, linux-kernel,
	linux-mm, linux-next, mhocko, mm-commits, sfr, willy,
	linux-damon

From: SeongJae Park <sjpark@amazon.de>

Commit 128fd80c4c07 ("mm/idle_page_tracking: Make PG_idle reusable") of
linux-mm[1] allows PAGE_IDLE_FLAG to be set without PAGE_EXTENSION
while 64BIT is not set.  This makes 'enum page_ext_flags' undefined, so
build fails as below for the config (!64BIT, !PAGE_EXTENSION, and
IDLE_PAGE_FLAG).

    $ make ARCH=i386 allnoconfig
    $ echo 'CONFIG_PAGE_IDLE_FLAG=y' >> .config
    $ make olddefconfig
    $ make ARCH=i386
    [...]
    ../include/linux/page_idle.h: In function ‘folio_test_young’:
    ../include/linux/page_idle.h:25:18: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
       return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
    [...]

This commit fixes this issue by making PAGE_EXTENSION to be set when
64BIT is not set and PAGE_IDLE_FLAG is set.

[1] https://github.com/hnaz/linux-mm/commit/128fd80c4c07

Fixes: 128fd80c4c07 ("mm/idle_page_tracking: Make PG_idle reusable")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: SeongJae Park <sjpark@amazon.de>
---
 mm/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/Kconfig b/mm/Kconfig
index d0b85dc12429..50ca602edeb6 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -741,6 +741,7 @@ config DEFERRED_STRUCT_PAGE_INIT
 
 config PAGE_IDLE_FLAG
 	bool "Add PG_idle and PG_young flags"
+	select PAGE_EXTENSION if !64BIT
 	help
 	  This feature adds PG_idle and PG_young flags in 'struct page'.  PTE
 	  Accessed bit writers can set the state of the bit in the flags to let
@@ -749,7 +750,6 @@ config PAGE_IDLE_FLAG
 config IDLE_PAGE_TRACKING
 	bool "Enable idle page tracking"
 	depends on SYSFS && MMU && BROKEN
-	select PAGE_EXTENSION if !64BIT
 	select PAGE_IDLE_FLAG
 	help
 	  This feature allows to estimate the amount of user pages that have
-- 
2.17.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup
  2021-08-06  9:51     ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT SeongJae Park
@ 2021-08-06  9:51       ` SeongJae Park
  2021-08-07  2:01         ` Randy Dunlap
  2021-08-07  2:01       ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT Randy Dunlap
  1 sibling, 1 reply; 7+ messages in thread
From: SeongJae Park @ 2021-08-06  9:51 UTC (permalink / raw)
  To: akpm
  Cc: SeongJae Park, rdunlap, broonie, linux-fsdevel, linux-kernel,
	linux-mm, linux-next, mhocko, mm-commits, sfr, willy,
	linux-damon

From: SeongJae Park <sjpark@amazon.de>

Commit 13d49dbd0123 ("mm/damon: implement primitives for the virtual
memory address spaces") of linux-mm[1] makes DAMON_VADDR to set
PAGE_IDLE_FLAG.  PAGE_IDLE_FLAG sets PAGE_EXTENSION if !64BIT.  However,
DAMON_VADDR do the same work again.  This commit removes the unnecessary
duplicate.

[1] https://github.com/hnaz/linux-mm/commit/13d49dbd0123

Fixes: 13d49dbd0123 ("mm/damon: implement primitives for the virtual memory address spaces")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: SeongJae Park <sjpark@amazon.de>
---
 mm/damon/Kconfig | 1 -
 1 file changed, 1 deletion(-)

diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
index 455995152697..37024798a97c 100644
--- a/mm/damon/Kconfig
+++ b/mm/damon/Kconfig
@@ -27,7 +27,6 @@ config DAMON_KUNIT_TEST
 config DAMON_VADDR
 	bool "Data access monitoring primitives for virtual address spaces"
 	depends on DAMON && MMU
-	select PAGE_EXTENSION if !64BIT
 	select PAGE_IDLE_FLAG
 	help
 	  This builds the default data access monitoring primitives for DAMON
-- 
2.17.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup
  2021-08-06  9:51       ` [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup SeongJae Park
@ 2021-08-07  2:01         ` Randy Dunlap
  0 siblings, 0 replies; 7+ messages in thread
From: Randy Dunlap @ 2021-08-07  2:01 UTC (permalink / raw)
  To: SeongJae Park, akpm
  Cc: SeongJae Park, broonie, linux-fsdevel, linux-kernel, linux-mm,
	linux-next, mhocko, mm-commits, sfr, willy, linux-damon

On 8/6/21 2:51 AM, SeongJae Park wrote:
> From: SeongJae Park <sjpark@amazon.de>
> 
> Commit 13d49dbd0123 ("mm/damon: implement primitives for the virtual
> memory address spaces") of linux-mm[1] makes DAMON_VADDR to set
> PAGE_IDLE_FLAG.  PAGE_IDLE_FLAG sets PAGE_EXTENSION if !64BIT.  However,
> DAMON_VADDR do the same work again.  This commit removes the unnecessary
> duplicate.
> 
> [1] https://github.com/hnaz/linux-mm/commit/13d49dbd0123
> 
> Fixes: 13d49dbd0123 ("mm/damon: implement primitives for the virtual memory address spaces")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: SeongJae Park <sjpark@amazon.de>

Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Thanks.

> ---
>   mm/damon/Kconfig | 1 -
>   1 file changed, 1 deletion(-)
> 
> diff --git a/mm/damon/Kconfig b/mm/damon/Kconfig
> index 455995152697..37024798a97c 100644
> --- a/mm/damon/Kconfig
> +++ b/mm/damon/Kconfig
> @@ -27,7 +27,6 @@ config DAMON_KUNIT_TEST
>   config DAMON_VADDR
>   	bool "Data access monitoring primitives for virtual address spaces"
>   	depends on DAMON && MMU
> -	select PAGE_EXTENSION if !64BIT
>   	select PAGE_IDLE_FLAG
>   	help
>   	  This builds the default data access monitoring primitives for DAMON
> 


-- 
~Randy


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT
  2021-08-06  9:51     ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT SeongJae Park
  2021-08-06  9:51       ` [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup SeongJae Park
@ 2021-08-07  2:01       ` Randy Dunlap
  1 sibling, 0 replies; 7+ messages in thread
From: Randy Dunlap @ 2021-08-07  2:01 UTC (permalink / raw)
  To: SeongJae Park, akpm
  Cc: SeongJae Park, broonie, linux-fsdevel, linux-kernel, linux-mm,
	linux-next, mhocko, mm-commits, sfr, willy, linux-damon

On 8/6/21 2:51 AM, SeongJae Park wrote:
> From: SeongJae Park <sjpark@amazon.de>
> 
> Commit 128fd80c4c07 ("mm/idle_page_tracking: Make PG_idle reusable") of
> linux-mm[1] allows PAGE_IDLE_FLAG to be set without PAGE_EXTENSION
> while 64BIT is not set.  This makes 'enum page_ext_flags' undefined, so
> build fails as below for the config (!64BIT, !PAGE_EXTENSION, and
> IDLE_PAGE_FLAG).
> 
>      $ make ARCH=i386 allnoconfig
>      $ echo 'CONFIG_PAGE_IDLE_FLAG=y' >> .config
>      $ make olddefconfig
>      $ make ARCH=i386
>      [...]
>      ../include/linux/page_idle.h: In function ‘folio_test_young’:
>      ../include/linux/page_idle.h:25:18: error: ‘PAGE_EXT_YOUNG’ undeclared (first use in this function); did you mean ‘PAGEOUTRUN’?
>         return test_bit(PAGE_EXT_YOUNG, &page_ext->flags);
>      [...]
> 
> This commit fixes this issue by making PAGE_EXTENSION to be set when
> 64BIT is not set and PAGE_IDLE_FLAG is set.
> 
> [1] https://github.com/hnaz/linux-mm/commit/128fd80c4c07
> 
> Fixes: 128fd80c4c07 ("mm/idle_page_tracking: Make PG_idle reusable")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: SeongJae Park <sjpark@amazon.de>

Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Thanks.

> ---
>   mm/Kconfig | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/Kconfig b/mm/Kconfig
> index d0b85dc12429..50ca602edeb6 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -741,6 +741,7 @@ config DEFERRED_STRUCT_PAGE_INIT
>   
>   config PAGE_IDLE_FLAG
>   	bool "Add PG_idle and PG_young flags"
> +	select PAGE_EXTENSION if !64BIT
>   	help
>   	  This feature adds PG_idle and PG_young flags in 'struct page'.  PTE
>   	  Accessed bit writers can set the state of the bit in the flags to let
> @@ -749,7 +750,6 @@ config PAGE_IDLE_FLAG
>   config IDLE_PAGE_TRACKING
>   	bool "Enable idle page tracking"
>   	depends on SYSFS && MMU && BROKEN
> -	select PAGE_EXTENSION if !64BIT
>   	select PAGE_IDLE_FLAG
>   	help
>   	  This feature allows to estimate the amount of user pages that have
> 


-- 
~Randy


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-08-07  2:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-06  2:46 mmotm 2021-08-05-19-46 uploaded akpm
2021-08-06  5:00 ` mmotm 2021-08-05-19-46 uploaded (mm/filemap.c) Randy Dunlap
2021-08-06  9:22   ` SeongJae Park
2021-08-06  9:51     ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT SeongJae Park
2021-08-06  9:51       ` [PATCH 2/2] mm/damon/Kconfig: Remove unnecessary PAGE_EXTENSION setup SeongJae Park
2021-08-07  2:01         ` Randy Dunlap
2021-08-07  2:01       ` [PATCH 1/2] mm/PAGE_IDLE_FLAG: Set PAGE_EXTENSION for none-64BIT Randy Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).