2021-05-13 04:48:58

by Andrew Morton

[permalink] [raw]
Subject: mmotm 2021-05-12-21-46 uploaded

The mm-of-the-moment snapshot 2021-05-12-21-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.13-rc1:
(patches marked "*" will be included in linux-next)

origin.patch
* mm-hugetlb-fix-f_seal_future_write.patch
* mm-hugetlb-fix-cow-where-page-writtable-in-child.patch
* mm-slub-move-slub_debug-static-key-enabling-outside-slab_mutex.patch
* kernel-resource-fix-return-code-check-in-__request_free_mem_region.patch
* squashfs-fix-divide-error-in-calculate_skip.patch
* userfaultfd-release-page-in-error-path-to-avoid-bug_on.patch
* ksm-revert-use-get_ksm_page_nolock-to-get-ksm-page-in-remove_rmap_item_from_tree.patch
* mm-fix-struct-page-layout-on-32-bit-systems.patch
* kasan-fix-unit-tests-with-config_ubsan_local_bounds-enabled.patch
* mm-filemap-fix-readahead-return-types.patch
* hfsplus-prevent-corruption-in-shrinking-truncate.patch
* docs-admin-guide-update-description-for-kernelmodprobe-sysctl.patch
* revert-mm-gup-check-page-posion-status-for-coredump.patch
* ipc-mqueue-msg-sem-avoid-relying-on-a-stack-reference-past-its-expiry.patch
* mmhwpoison-fix-race-with-compound-page-allocation.patch
* proc-kpageflags-prevent-an-integer-overflow-in-stable_page_flags.patch
* proc-kpageflags-do-not-use-uninitialized-struct-pages.patch
* ia64-headers-drop-duplicated-words.patch
* streamline_configpl-make-spacing-consistent.patch
* streamline_configpl-add-softtabstop=4-for-vim-users.patch
* ocfs2-remove-unnecessary-init_list_head.patch
* ocfs2-fix-snprintf-checking.patch
* ocfs2-clear-links-count-in-ocfs2_mknod-if-an-error-occurs.patch
* ocfs2-fix-ocfs2-corrupt-when-iputting-an-inode.patch
* kernel-watchdog-modify-the-explanation-related-to-watchdog-thread.patch
* doc-watchdog-modify-the-explanation-related-to-watchdog-thread.patch
* doc-watchdog-modify-the-doc-related-to-watchdog-%u.patch
mm.patch
* kunit-make-test-lock-irq-safe.patch
* mm-slub-kunit-add-a-kunit-test-for-slub-debugging-functionality.patch
* mm-slub-kunit-add-a-kunit-test-for-slub-debugging-functionality-fix.patch
* mm-slub-kunit-add-a-kunit-test-for-slub-debugging-functionality-fix-2.patch
* slub-remove-resiliency_test-function.patch
* tools-vm-page_owner_sortc-fix-the-potential-stack-overflow-risk.patch
* mm-page-writeback-kill-get_writeback_state-comments.patch
* mm-page-writeback-fix-performance-when-bdis-share-of-ratio-is-0.patch
* mm-page-writeback-update-the-comment-of-dirty-position-control.patch
* mm-page-writeback-use-__this_cpu_inc-in-account_page_dirtied.patch
* mm-gup_benchmark-support-threading.patch
* mm-gup-allow-foll_pin-to-scale-in-smp.patch
* mm-gup-pack-has_pinned-in-mmf_has_pinned.patch
* mm-gup-pack-has_pinned-in-mmf_has_pinned-checkpatch-fixes.patch
* mm-gup-pack-has_pinned-in-mmf_has_pinned-fix.patch
* mm-swapfile-use-percpu_ref-to-serialize-against-concurrent-swapoff.patch
* swap-fix-do_swap_page-race-with-swapoff.patch
* mm-swap-remove-confusing-checking-for-non_swap_entry-in-swap_ra_info.patch
* mm-shmem-fix-shmem_swapin-race-with-swapoff.patch
* mm-memcg-move-mod_objcg_state-to-memcontrolc.patch
* mm-memcg-cache-vmstat-data-in-percpu-memcg_stock_pcp.patch
* mm-memcg-improve-refill_obj_stock-performance.patch
* mm-memcg-optimize-user-context-object-stock-access.patch
* mm-memcg-optimize-user-context-object-stock-access-checkpatch-fixes.patch
* mm-memcg-slab-properly-set-up-gfp-flags-for-objcg-pointer-array.patch
* mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches.patch
* mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-fix.patch
* mm-memcg-slab-create-a-new-set-of-kmalloc-cg-n-caches-v5.patch
* mm-memcg-slab-disable-cache-merging-for-kmalloc_normal-caches.patch
* mm-memcontrol-fix-root_mem_cgroup-charging.patch
* mm-memcontrol-fix-page-charging-in-page-replacement.patch
* mm-memcontrol-bail-out-early-when-mm-in-get_mem_cgroup_from_mm.patch
* mm-memcontrol-remove-the-pgdata-parameter-of-mem_cgroup_page_lruvec.patch
* mm-memcontrol-simplify-lruvec_holds_page_lru_lock.patch
* mm-memcontrol-rename-lruvec_holds_page_lru_lock-to-page_matches_lruvec.patch
* mm-memcontrol-simplify-the-logic-of-objcg-pinning-memcg.patch
* mm-memcontrol-move-obj_cgroup_uncharge_pages-out-of-css_set_lock.patch
* mm-vmscan-remove-noinline_for_stack.patch
* mm-improve-mprotectrw-efficiency-on-pages-referenced-once.patch
* mm-improve-mprotectrw-efficiency-on-pages-referenced-once-fix.patch
* perf-map_executable-does-not-indicate-vm_mayexec.patch
* binfmt-remove-in-tree-usage-of-map_executable.patch
* binfmt-remove-in-tree-usage-of-map_executable-fix.patch
* mm-ignore-map_executable-in-ksys_mmap_pgoff.patch
* mm-mmapc-logic-of-find_vma_intersection-repeated-in-__do_munmap.patch
* mm-mmap-introduce-unlock_range-for-code-cleanup.patch
* mm-mmap-introduce-unlock_range-for-code-cleanup-fix.patch
* mm-mmap-use-find_vma_intersection-in-do_mmap-for-overlap.patch
* selftest-mremap_test-update-the-test-to-handle-pagesize-other-than-4k.patch
* selftest-mremap_test-avoid-crash-with-static-build.patch
* mm-mremap-use-pmd-pud_poplulate-to-update-page-table-entries.patch
* powerpc-mm-book3s64-fix-possible-build-error.patch
* powerpc-mm-book3s64-update-tlb-flush-routines-to-take-a-page-walk-cache-flush-argument.patch
* mm-mremap-use-range-flush-that-does-tlb-and-page-walk-cache-flush.patch
* mm-mremap-move-tlb-flush-outside-page-table-lock.patch
* mm-mremap-allow-arch-runtime-override.patch
* powerpc-mm-enable-move-pmd-pud.patch
* printk-introduce-dump_stack_lvl.patch
* kasan-use-dump_stack_lvlkern_err-to-print-stacks.patch
* mm-page_alloc-__alloc_pages_bulk-do-bounds-check-before-accessing-array.patch
* mm-mmzoneh-simplify-is_highmem_idx.patch
* mm-make-__dump_page-static.patch
* mm-debug-factor-pagepoisoned-out-of-__dump_page.patch
* mm-page_owner-constify-dump_page_owner.patch
* mm-make-compound_head-const-preserving.patch
* mm-constify-get_pfnblock_flags_mask-and-get_pfnblock_migratetype.patch
* mm-constify-page_count-and-page_ref_count.patch
* mm-optimise-nth_page-for-contiguous-memmap.patch
* mm-page_alloc-switch-to-pr_debug.patch
* mm-page_alloc-split-per-cpu-page-lists-and-zone-stats.patch
* mm-page_alloc-convert-per-cpu-list-protection-to-local_lock.patch
* mm-vmstat-convert-numa-statistics-to-basic-numa-counters.patch
* mm-vmstat-inline-numa-event-counter-updates.patch
* mm-page_alloc-batch-the-accounting-updates-in-the-bulk-allocator.patch
* mm-page_alloc-reduce-duration-that-irqs-are-disabled-for-vm-counters.patch
* mm-page_alloc-explicitly-acquire-the-zone-lock-in-__free_pages_ok.patch
* mm-page_alloc-avoid-conflating-irqs-disabled-with-zone-lock.patch
* mm-page_alloc-update-pgfree-outside-the-zone-lock-in-__free_pages_ok.patch
* mmhwpoison-make-get_hwpoison_page-call-get_any_page.patch
* mm-memory_hotplug-factor-out-bootmem-core-functions-to-bootmem_infoc.patch
* mm-hugetlb-introduce-a-new-config-hugetlb_page_free_vmemmap.patch
* mm-hugetlb-gather-discrete-indexes-of-tail-page.patch
* mm-hugetlb-free-the-vmemmap-pages-associated-with-each-hugetlb-page.patch
* mm-hugetlb-defer-freeing-of-hugetlb-pages.patch
* mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page.patch
* mm-hugetlb-add-a-kernel-parameter-hugetlb_free_vmemmap.patch
* mm-memory_hotplug-disable-memmap_on_memory-when-hugetlb_free_vmemmap-enabled.patch
* mm-memory_hotplug-disable-memmap_on_memory-when-hugetlb_free_vmemmap-enabled-fix.patch
* mm-hugetlb-introduce-nr_free_vmemmap_pages-in-the-struct-hstate.patch
* mm-debug_vm_pgtable-move-pmd-pud_huge_tests-out-of-config_transparent_hugepage.patch
* mm-debug_vm_pgtable-remove-redundant-pfn_pmd-pte-and-fix-one-comment-mistake.patch
* mm-huge_memoryc-remove-dedicated-macro-hpage_cache_index_mask.patch
* mm-huge_memoryc-use-page-deferred_list.patch
* mm-huge_memoryc-add-missing-read-only-thp-checking-in-transparent_hugepage_enabled.patch
* mm-huge_memoryc-remove-unnecessary-tlb_remove_page_size-for-huge-zero-pmd.patch
* mm-huge_memoryc-dont-discard-hugepage-if-other-processes-are-mapping-it.patch
* mm-hugetlb-change-parameters-of-arch_make_huge_pte.patch
* mm-pgtable-add-stubs-for-pmd-pub_set-clear_huge.patch
* mm-vmalloc-enable-mapping-of-huge-pages-at-pte-level-in-vmap.patch
* mm-vmalloc-enable-mapping-of-huge-pages-at-pte-level-in-vmalloc.patch
* powerpc-8xx-add-support-for-huge-pages-on-vmap-and-vmalloc.patch
* userfaultfd-selftests-use-user-mode-only.patch
* userfaultfd-selftests-remove-the-time-check-on-delayed-uffd.patch
* userfaultfd-selftests-dropping-verify-check-in-locking_thread.patch
* userfaultfd-selftests-only-dump-counts-if-mode-enabled.patch
* userfaultfd-selftests-unify-error-handling.patch
* mm-thp-simplify-copying-of-huge-zero-page-pmd-when-fork.patch
* mm-userfaultfd-fix-uffd-wp-special-cases-for-fork.patch
* mm-userfaultfd-fix-a-few-thp-pmd-missing-uffd-wp-bit.patch
* mm-userfaultfd-fail-uffd-wp-registeration-if-not-supported.patch
* mm-pagemap-export-uffd-wp-protection-information.patch
* userfaultfd-selftests-add-pagemap-uffd-wp-test.patch
* userfaultfd-shmem-combine-shmem_mcopy_atomicmfill_zeropage_pte.patch
* userfaultfd-shmem-support-minor-fault-registration-for-shmem.patch
* userfaultfd-shmem-support-uffdio_continue-for-shmem.patch
* userfaultfd-shmem-advertise-shmem-minor-fault-support.patch
* userfaultfd-shmem-modify-shmem_mfill_atomic_pte-to-use-install_pte.patch
* userfaultfd-selftests-use-memfd_create-for-shmem-test-type.patch
* userfaultfd-selftests-create-alias-mappings-in-the-shmem-test.patch
* userfaultfd-selftests-reinitialize-test-context-in-each-test.patch
* userfaultfd-selftests-exercise-minor-fault-handling-shmem-support.patch
* mm-move-holes_in_zone-into-mm.patch
* docs-procrst-meminfo-briefly-describe-gaps-in-memory-accounting.patch
* include-linux-mmzoneh-add-documentation-for-pfn_valid.patch
* memblock-update-initialization-of-reserved-pages.patch
* arm64-decouple-check-whether-pfn-is-in-linear-map-from-pfn_valid.patch
* arm64-drop-pfn_valid_within-and-simplify-pfn_valid.patch
* arm64-drop-pfn_valid_within-and-simplify-pfn_valid-fix.patch
* mm-thp-relax-the-vm_denywrite-constraint-on-file-backed-thps.patch
* nommu-remove-__gfp_highmem-in-vmalloc-vzalloc.patch
* nommu-remove-__gfp_highmem-in-vmalloc-vzalloc-checkpatch-fixes.patch
* mm-make-variable-names-for-populate_vma_page_range-consistent.patch
* mm-madvise-introduce-madv_populate_readwrite-to-prefault-page-tables.patch
* mm-madvise-introduce-madv_populate_readwrite-to-prefault-page-tables-checkpatch-fixes.patch
* maintainers-add-tools-testing-selftests-vm-to-memory-management.patch
* selftests-vm-add-protection_keys_32-protection_keys_64-to-gitignore.patch
* selftests-vm-add-test-for-madv_populate_readwrite.patch
* mm-memory_hotplug-rate-limit-page-migration-warnings.patch
* mm-highmem-remove-deprecated-kmap_atomic.patch
* mm-fix-typos-and-grammar-error-in-comments.patch
* mm-fix-comments-mentioning-i_mutex.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
* proc-avoid-mixing-integer-types-in-mem_rw.patch
* procfs-allow-reading-fdinfo-with-ptrace_mode_read.patch
* procfs-dmabuf-add-inode-number-to-proc-fdinfo.patch
* sysctl-remove-redundant-assignment-to-first.patch
* proc-sysctl-make-protected_-world-readable.patch
* kernelh-split-out-panic-and-oops-helpers.patch
* lib-decompress_bunzip2-remove-an-unneeded-semicolon.patch
* lib-string_helpers-switch-to-use-bit-macro.patch
* lib-string_helpers-move-escape_np-check-inside-else-branch-in-a-loop.patch
* lib-string_helpers-drop-indentation-level-in-string_escape_mem.patch
* lib-string_helpers-introduce-escape_na-for-escaping-non-ascii.patch
* lib-string_helpers-introduce-escape_nap-to-escape-non-ascii-and-non-printable.patch
* lib-string_helpers-allow-to-append-additional-characters-to-be-escaped.patch
* lib-test-string_helpers-print-flags-in-hexadecimal-format.patch
* lib-test-string_helpers-get-rid-of-trailing-comma-in-terminators.patch
* lib-test-string_helpers-add-test-cases-for-new-features.patch
* maintainers-add-myself-as-designated-reviewer-for-generic-string-library.patch
* seq_file-introduce-seq_escape_mem.patch
* seq_file-add-seq_escape_str-as-replica-of-string_escape_str.patch
* seq_file-convert-seq_escape-to-use-seq_escape_str.patch
* nfsd-avoid-non-flexible-api-in-seq_quote_mem.patch
* seq_file-drop-unused-_escape_mem_ascii.patch
* lz4_decompress-declare-lz4_decompress_safe_withprefix64k-static.patch
* checkpatch-scripts-spdxcheckpy-now-requires-python3.patch
* init-print-out-unknown-kernel-parameters.patch
* hfsplus-fix-out-of-bounds-warnings-in-__hfsplus_setxattr.patch
* x86-signal-dont-do-sas_ss_reset-until-we-are-certain-that-sigframe-wont-be-abandoned.patch
* aio-simplify-read_events.patch
* ipc-sem-use-kvmalloc-for-sem_undo-allocation.patch
* ipc-use-kmalloc-for-msg_queue-and-shmid_kernel.patch
linux-next.patch
* mm-define-default-value-for-first_user_address.patch
* mm-slub-use-stackdepot-to-save-stack-trace-in-objects.patch
* mmap-make-mlock_future_check-global.patch
* riscv-kconfig-make-direct-map-manipulation-options-depend-on-mmu.patch
* set_memory-allow-set_direct_map__noflush-for-multiple-pages.patch
* set_memory-allow-querying-whether-set_direct_map_-is-actually-enabled.patch
* mm-introduce-memfd_secret-system-call-to-create-secret-memory-areas.patch
* mm-introduce-memfd_secret-system-call-to-create-secret-memory-areas-fix.patch
* mm-introduce-memfd_secret-system-call-to-create-secret-memory-areas-fix-2.patch
* mm-introduce-memfd_secret-system-call-to-create-secret-memory-areas-fix-3.patch
* pm-hibernate-disable-when-there-are-active-secretmem-users.patch
* arch-mm-wire-up-memfd_secret-system-call-where-relevant.patch
* arch-mm-wire-up-memfd_secret-system-call-where-relevant-fix.patch
* secretmem-test-add-basic-selftest-for-memfd_secret2.patch
* secretmem-test-add-basic-selftest-for-memfd_secret2-fix.patch
* buildid-only-consider-gnu-notes-for-build-id-parsing.patch
* buildid-add-api-to-parse-build-id-out-of-buffer.patch
* buildid-stash-away-kernels-build-id-on-init.patch
* dump_stack-add-vmlinux-build-id-to-stack-traces.patch
* module-add-printk-formats-to-add-module-build-id-to-stacktraces.patch
* module-add-printk-formats-to-add-module-build-id-to-stacktraces-fix.patch
* arm64-stacktrace-use-%psb-for-backtrace-printing.patch
* x86-dumpstack-use-%psb-%pbb-for-backtrace-printing.patch
* scripts-decode_stacktracesh-support-debuginfod.patch
* scripts-decode_stacktracesh-silence-stderr-messages-from-addr2line-nm.patch
* scripts-decode_stacktracesh-indicate-auto-can-be-used-for-base-path.patch
* buildid-mark-some-arguments-const.patch
* buildid-fix-kernel-doc-notation.patch
* kdump-use-vmlinux_build_id-to-simplify.patch
* makefile-extend-32b-aligned-debug-option-to-64b-aligned.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


2021-05-13 05:31:55

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (mm/memory_failure.c)

On 5/12/21 9:47 PM, [email protected] wrote:
> The mm-of-the-moment snapshot 2021-05-12-21-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.

on x86_64:
# CONFIG_HUGETLBFS is not set

../mm/memory-failure.c: In function ‘__get_hwpoison_page’:
../mm/memory-failure.c:962:15: error: ‘hugetlb_lock’ undeclared (first use in this function); did you mean ‘huge_pte_lock’?
spin_lock(&hugetlb_lock);
^~~~~~~~~~~~

--
~Randy
Reported-by: Randy Dunlap <[email protected]>

Subject: Re: mmotm 2021-05-12-21-46 uploaded (mm/memory_failure.c)

On Wed, May 12, 2021 at 10:28:29PM -0700, Randy Dunlap wrote:
> On 5/12/21 9:47 PM, [email protected] wrote:
> > The mm-of-the-moment snapshot 2021-05-12-21-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.
>
> on x86_64:
> # CONFIG_HUGETLBFS is not set
>
> ../mm/memory-failure.c: In function ‘__get_hwpoison_page’:
> ../mm/memory-failure.c:962:15: error: ‘hugetlb_lock’ undeclared (first use in this function); did you mean ‘huge_pte_lock’?
> spin_lock(&hugetlb_lock);
> ^~~~~~~~~~~~
>
> --
> ~Randy
> Reported-by: Randy Dunlap <[email protected]>

Thanks, we need "#ifdef CONFIG_HUGETLB_PAGE" for the added code.
And this patch is still under discussion and needs to be updated.
So Andrew, could you drop the following patches from linux-mm?

mmhwpoison-make-get_hwpoison_page-call-get_any_page.patch added to -mm tree
mmhwpoison-fix-race-with-compound-page-allocation.patch added to -mm tree

- Naoya

2021-05-13 15:56:12

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)

On 5/12/21 9:47 PM, [email protected] wrote:
> The mm-of-the-moment snapshot 2021-05-12-21-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


on i386:

../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
^~~~~~~~~~~~
In file included from ../include/linux/mm.h:33:0,
from ../arch/x86/mm/pgtable.c:2:
../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
^~~~~~~~~~~~
../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
int pud_clear_huge(pud_t *pud)
^~~~~~~~~~~~~~
In file included from ../include/linux/mm.h:33:0,
from ../arch/x86/mm/pgtable.c:2:
../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
static inline int pud_clear_huge(pud_t *pud)
^~~~~~~~~~~~~~


Full randconfig file is attached.


--
~Randy
Reported-by: Randy Dunlap <[email protected]>


Attachments:
config-r9303.gz (26.84 kB)

2021-05-13 22:39:31

by Christophe Leroy

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)



Le 13/05/2021 à 17:54, Randy Dunlap a écrit :
> On 5/12/21 9:47 PM, [email protected] wrote:
>> The mm-of-the-moment snapshot 2021-05-12-21-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
>
>
> on i386:
>
> ../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
> int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> ^~~~~~~~~~~~
> In file included from ../include/linux/mm.h:33:0,
> from ../arch/x86/mm/pgtable.c:2:
> ../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
> static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> ^~~~~~~~~~~~
> ../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
> int pud_clear_huge(pud_t *pud)
> ^~~~~~~~~~~~~~
> In file included from ../include/linux/mm.h:33:0,
> from ../arch/x86/mm/pgtable.c:2:
> ../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
> static inline int pud_clear_huge(pud_t *pud)
> ^~~~~~~~~~~~~~

Hum ...

Comes from my patch
https://patchwork.ozlabs.org/project/linuxppc-dev/patch/5ac5976419350e8e048d463a64cae449eb3ba4b0.1620795204.git.christophe.leroy@csgroup.eu/

But, that happens only if x86 defines __PAGETABLE_PUD_FOLDED. And if PUD is folded, then I can't
understand my it has pud_set_huge() and pud_clear_huge() functions.

Christophe

2021-05-14 00:38:18

by Andrew Morton

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)

On Thu, 13 May 2021 19:09:23 +0200 Christophe Leroy <[email protected]> wrote:

>
>
> > on i386:
> >
> > ../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
> > int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> > ^~~~~~~~~~~~
> > In file included from ../include/linux/mm.h:33:0,
> > from ../arch/x86/mm/pgtable.c:2:
> > ../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
> > static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> > ^~~~~~~~~~~~
> > ../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
> > int pud_clear_huge(pud_t *pud)
> > ^~~~~~~~~~~~~~
> > In file included from ../include/linux/mm.h:33:0,
> > from ../arch/x86/mm/pgtable.c:2:
> > ../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
> > static inline int pud_clear_huge(pud_t *pud)
> > ^~~~~~~~~~~~~~
>
> Hum ...
>
> Comes from my patch
> https://patchwork.ozlabs.org/project/linuxppc-dev/patch/5ac5976419350e8e048d463a64cae449eb3ba4b0.1620795204.git.christophe.leroy@csgroup.eu/
>
> But, that happens only if x86 defines __PAGETABLE_PUD_FOLDED. And if PUD is folded, then I can't
> understand my it has pud_set_huge() and pud_clear_huge() functions.

Probably because someone messed something up ;)

Let's try this.

--- a/arch/x86/mm/pgtable.c~mm-pgtable-add-stubs-for-pmd-pub_set-clear_huge-fix
+++ a/arch/x86/mm/pgtable.c
@@ -682,6 +682,7 @@ int p4d_clear_huge(p4d_t *p4d)
}
#endif

+#ifndef __PAGETABLE_PUD_FOLDED
/**
* pud_set_huge - setup kernel PUD mapping
*
@@ -721,6 +722,22 @@ int pud_set_huge(pud_t *pud, phys_addr_t
}

/**
+ * pud_clear_huge - clear kernel PUD mapping when it is set
+ *
+ * Returns 1 on success and 0 on failure (no PUD map is found).
+ */
+int pud_clear_huge(pud_t *pud)
+{
+ if (pud_large(*pud)) {
+ pud_clear(pud);
+ return 1;
+ }
+
+ return 0;
+}
+#endif
+
+/**
* pmd_set_huge - setup kernel PMD mapping
*
* See text over pud_set_huge() above.
@@ -751,21 +768,6 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t
}

/**
- * pud_clear_huge - clear kernel PUD mapping when it is set
- *
- * Returns 1 on success and 0 on failure (no PUD map is found).
- */
-int pud_clear_huge(pud_t *pud)
-{
- if (pud_large(*pud)) {
- pud_clear(pud);
- return 1;
- }
-
- return 0;
-}
-
-/**
* pmd_clear_huge - clear kernel PMD mapping when it is set
*
* Returns 1 on success and 0 on failure (no PMD map is found).
_


2021-05-14 07:36:58

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)

On 5/13/21 1:47 PM, Andrew Morton wrote:
> On Thu, 13 May 2021 19:09:23 +0200 Christophe Leroy <[email protected]> wrote:
>
>>
>>
>>> on i386:
>>>
>>> ../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
>>> int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>>> ^~~~~~~~~~~~
>>> In file included from ../include/linux/mm.h:33:0,
>>> from ../arch/x86/mm/pgtable.c:2:
>>> ../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
>>> static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>>> ^~~~~~~~~~~~
>>> ../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
>>> int pud_clear_huge(pud_t *pud)
>>> ^~~~~~~~~~~~~~
>>> In file included from ../include/linux/mm.h:33:0,
>>> from ../arch/x86/mm/pgtable.c:2:
>>> ../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
>>> static inline int pud_clear_huge(pud_t *pud)
>>> ^~~~~~~~~~~~~~
>>
>> Hum ...
>>
>> Comes from my patch
>> https://patchwork.ozlabs.org/project/linuxppc-dev/patch/5ac5976419350e8e048d463a64cae449eb3ba4b0.1620795204.git.christophe.leroy@csgroup.eu/
>>
>> But, that happens only if x86 defines __PAGETABLE_PUD_FOLDED. And if PUD is folded, then I can't
>> understand my it has pud_set_huge() and pud_clear_huge() functions.
>
> Probably because someone messed something up ;)
>
> Let's try this.
>
> --- a/arch/x86/mm/pgtable.c~mm-pgtable-add-stubs-for-pmd-pub_set-clear_huge-fix
> +++ a/arch/x86/mm/pgtable.c

That also works_for_me.

Acked-by: Randy Dunlap <[email protected]> # build-tested

thanks.
--
~Randy


2021-05-14 15:40:39

by Naresh Kamboju

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)

On Fri, 14 May 2021 at 02:38, Randy Dunlap <[email protected]> wrote:
>
> On 5/13/21 1:47 PM, Andrew Morton wrote:
> > On Thu, 13 May 2021 19:09:23 +0200 Christophe Leroy <[email protected]> wrote:
> >
> >>
> >>
> >>> on i386:
> >>>
> >>> ../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
> >>> int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> >>> ^~~~~~~~~~~~
> >>> In file included from ../include/linux/mm.h:33:0,
> >>> from ../arch/x86/mm/pgtable.c:2:
> >>> ../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
> >>> static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> >>> ^~~~~~~~~~~~
> >>> ../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
> >>> int pud_clear_huge(pud_t *pud)
> >>> ^~~~~~~~~~~~~~
> >>> In file included from ../include/linux/mm.h:33:0,
> >>> from ../arch/x86/mm/pgtable.c:2:
> >>> ../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
> >>> static inline int pud_clear_huge(pud_t *pud)

These errors are noticed on linux next 20210514 tag on arm64.
Regressions found on arm64 for the following configs.

- build/gcc-9-defconfig-904271f2
- build/gcc-9-tinyconfig
- build/gcc-8-allnoconfig
- build/gcc-10-allnoconfig
- build/clang-11-allnoconfig
- build/clang-10-allnoconfig
- build/clang-12-tinyconfig
- build/gcc-10-tinyconfig
- build/clang-10-tinyconfig
- build/clang-11-tinyconfig
- build/clang-12-allnoconfig
- build/gcc-8-tinyconfig
- build/gcc-9-allnoconfig

make --silent --keep-going --jobs=8
O=/home/tuxbuild/.cache/tuxmake/builds/current ARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu- 'CC=sccache aarch64-linux-gnu-gcc'
'HOSTCC=sccache gcc'
/builds/linux/arch/arm64/mm/mmu.c:1341:5: error: redefinition of 'pud_set_huge'
1341 | int pud_set_huge(pud_t *pudp, phys_addr_t phys, pgprot_t prot)
| ^~~~~~~~~~~~
In file included from /builds/linux/include/linux/mm.h:33,
from /builds/linux/include/linux/pid_namespace.h:7,
from /builds/linux/include/linux/ptrace.h:10,
from /builds/linux/include/linux/elfcore.h:11,
from /builds/linux/include/linux/crash_core.h:6,
from /builds/linux/include/linux/kexec.h:18,
from /builds/linux/arch/arm64/mm/mmu.c:15:
/builds/linux/include/linux/pgtable.h:1387:19: note: previous
definition of 'pud_set_huge' was here
1387 | static inline int pud_set_huge(pud_t *pud, phys_addr_t addr,
pgprot_t prot)
| ^~~~~~~~~~~~
/builds/linux/arch/arm64/mm/mmu.c:1369:5: error: redefinition of
'pud_clear_huge'
1369 | int pud_clear_huge(pud_t *pudp)
| ^~~~~~~~~~~~~~
In file included from /builds/linux/include/linux/mm.h:33,
from /builds/linux/include/linux/pid_namespace.h:7,
from /builds/linux/include/linux/ptrace.h:10,
from /builds/linux/include/linux/elfcore.h:11,
from /builds/linux/include/linux/crash_core.h:6,
from /builds/linux/include/linux/kexec.h:18,
from /builds/linux/arch/arm64/mm/mmu.c:15:
/builds/linux/include/linux/pgtable.h:1391:19: note: previous
definition of 'pud_clear_huge' was here
1391 | static inline int pud_clear_huge(pud_t *pud)
| ^~~~~~~~~~~~~~
make[3]: *** [/builds/linux/scripts/Makefile.build:273:
arch/arm64/mm/mmu.o] Error 1


Reported-by: Naresh Kamboju <[email protected]>


Steps to reproduce:
---------------------------

#!/bin/sh

# TuxMake is a command line tool and Python library that provides
# portable and repeatable Linux kernel builds across a variety of
# architectures, toolchains, kernel configurations, and make targets.
#
# TuxMake supports the concept of runtimes.
# See https://docs.tuxmake.org/runtimes/, for that to work it requires
# that you install podman or docker on your system.
#
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.

tuxmake --runtime podman --target-arch arm64 --toolchain gcc-9
--kconfig tinyconfig


--
Linaro LKFT
https://lkft.linaro.org

2021-05-15 10:49:30

by Andrew Morton

[permalink] [raw]
Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c)

On Fri, 14 May 2021 15:15:41 +0530 Naresh Kamboju <[email protected]> wrote:

> On Fri, 14 May 2021 at 02:38, Randy Dunlap <[email protected]> wrote:
> >
> > On 5/13/21 1:47 PM, Andrew Morton wrote:
> > > On Thu, 13 May 2021 19:09:23 +0200 Christophe Leroy <[email protected]> wrote:
> > >
> > >>
> > >>
> > >>> on i386:
> > >>>
> > >>> ../arch/x86/mm/pgtable.c:703:5: error: redefinition of ‘pud_set_huge’
> > >>> int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> > >>> ^~~~~~~~~~~~
> > >>> In file included from ../include/linux/mm.h:33:0,
> > >>> from ../arch/x86/mm/pgtable.c:2:
> > >>> ../include/linux/pgtable.h:1387:19: note: previous definition of ‘pud_set_huge’ was here
> > >>> static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> > >>> ^~~~~~~~~~~~
> > >>> ../arch/x86/mm/pgtable.c:758:5: error: redefinition of ‘pud_clear_huge’
> > >>> int pud_clear_huge(pud_t *pud)
> > >>> ^~~~~~~~~~~~~~
> > >>> In file included from ../include/linux/mm.h:33:0,
> > >>> from ../arch/x86/mm/pgtable.c:2:
> > >>> ../include/linux/pgtable.h:1391:19: note: previous definition of ‘pud_clear_huge’ was here
> > >>> static inline int pud_clear_huge(pud_t *pud)
>
> These errors are noticed on linux next 20210514 tag on arm64.
> Regressions found on arm64 for the following configs.
>
> - build/gcc-9-defconfig-904271f2
> - build/gcc-9-tinyconfig
> - build/gcc-8-allnoconfig
> - build/gcc-10-allnoconfig
> - build/clang-11-allnoconfig
> - build/clang-10-allnoconfig
> - build/clang-12-tinyconfig
> - build/gcc-10-tinyconfig
> - build/clang-10-tinyconfig
> - build/clang-11-tinyconfig
> - build/clang-12-allnoconfig
> - build/gcc-8-tinyconfig
> - build/gcc-9-allnoconfig

I can't get arm64 to compile at all ;(. 5.13-rc1 base with gcc-9.3.0,
tinyconfig:

In file included from ././include/linux/compiler_types.h:65,
from <command-line>:
./include/linux/smp.h:34:26: error: requested alignment '20' is not a positive power of 2
34 | __aligned(sizeof(struct __call_single_data));
| ^~~~~~~~~~~~~~~~~~
./include/linux/compiler_attributes.h:52:68: note: in definition of macro '__aligned'
52 | #define __aligned(x) __attribute__((__aligned__(x)))
| ^
In file included from ./arch/arm64/include/asm/thread_info.h:17,
from ./include/linux/thread_info.h:59,
from ./arch/arm64/include/asm/preempt.h:5,
from ./include/linux/preempt.h:78,
from ./include/linux/smp.h:110,
from ./include/linux/lockdep.h:14,
from ./include/linux/mutex.h:17,
from ./include/linux/kernfs.h:12,
from ./include/linux/sysfs.h:16,
from ./include/linux/kobject.h:20,
from ./include/linux/of.h:17,
from ./include/linux/irqdomain.h:35,
from ./include/linux/acpi.h:13,
from ./include/acpi/apei.h:9,
from ./include/acpi/ghes.h:5,
from ./include/linux/arm_sdei.h:8,
from arch/arm64/kernel/asm-offsets.c:10:
./arch/arm64/include/asm/memory.h: In function 'kaslr_offset':
./arch/arm64/include/asm/memory.h:65:33: warning: left shift count >= width of type [-Wshift-count-overflow]
65 | #define _PAGE_END(va) (-(UL(1) << ((va) - 1)))
| ^~
./arch/arm64/include/asm/memory.h:47:31: note: in expansion of macro '_PAGE_END'
47 | #define BPF_JIT_REGION_START (_PAGE_END(VA_BITS_MIN))
| ^~~~~~~~~
./arch/arm64/include/asm/memory.h:49:29: note: in expansion of macro 'BPF_JIT_REGION_START'
49 | #define BPF_JIT_REGION_END (BPF_JIT_REGION_START + BPF_JIT_REGION_SIZE)
| ^~~~~~~~~~~~~~~~~~~~
./arch/arm64/include/asm/memory.h:51:25: note: in expansion of macro 'BPF_JIT_REGION_END'
51 | #define MODULES_VADDR (BPF_JIT_REGION_END)
| ^~~~~~~~~~~~~~~~~~
./arch/arm64/include/asm/memory.h:50:23: note: in expansion of macro 'MODULES_VADDR'
50 | #define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
| ^~~~~~~~~~~~~
./arch/arm64/include/asm/memory.h:46:24: note: in expansion of macro 'MODULES_END'
46 | #define KIMAGE_VADDR (MODULES_END)
| ^~~~~~~~~~~
./arch/arm64/include/asm/memory.h:196:24: note: in expansion of macro 'KIMAGE_VADDR'
196 | return kimage_vaddr - KIMAGE_VADDR;
| ^~~~~~~~~~~~
In file included from ./arch/arm64/include/asm/thread_info.h:17,
from ./include/linux/thread_info.h:59,
from ./arch/arm64/include/asm/preempt.h:5,
from ./include/linux/preempt.h:78,
from ./include/linux/smp.h:110,
from ./include/linux/lockdep.h:14,
from ./include/linux/mutex.h:17,
from ./include/linux/kernfs.h:12,
from ./include/linux/sysfs.h:16,
from ./include/linux/kobject.h:20,
from ./include/linux/of.h:17,
from ./include/linux/irqdomain.h:35,
from ./include/linux/acpi.h:13,
from ./include/acpi/apei.h:9,
from ./include/acpi/ghes.h:5,
from ./include/linux/arm_sdei.h:8,
from arch/arm64/kernel/asm-offsets.c:10:

and lots of other errors beside that.