* 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 related [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 related [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 related [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).