Re: [PATCH v2 13/15] mm/vma: make MAP_PRIVATE-mapped /dev/zero mappings truly anonymous
From: Mark Brown
Date: Mon Jul 27 2026 - 07:50:08 EST
On Mon, Jul 20, 2026 at 03:38:39PM +0100, Lorenzo Stoakes (ARM) wrote:
> When mapping /dev/zero with MAP_PRIVATE, one ends up with strange VMAs
> originating from Linux's distant past.
>
> These have vma->vm_file set but NULL vma->vm_ops, meaning they satisfy
> vma_is_anonymous() but otherwise resemble a file-backed VMA.
I'm seeing a test failure in the proc proc-self-map-files-0002 kselftest
which bisects to this change in -next. The test just says:
# selftests: proc: proc-self-map-files-002
not ok 11 selftests: proc: proc-self-map-files-002 # exit=1
which isn't super informative. Full log at:
https://lava.sirena.org.uk/scheduler/job/3030495#L13846
bisect log:
# bad: [c5e32e86ca02b003f86e095d379b38148999293d] Add linux-next specific files for 20260726
# good: [692519a077bfb1a66d209e713d2210bb1d9adcaf] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git
# good: [ef4f2357df6e9dd6213ce00d01253f3c458d5df0] regmap: clean up kernel-doc comments
# good: [86e9ba573c353afd1a46816682f4cc3dbabeeb23] irqchip/irq-imgpdc: Remove unused driver
git bisect start 'c5e32e86ca02b003f86e095d379b38148999293d' '692519a077bfb1a66d209e713d2210bb1d9adcaf' 'ef4f2357df6e9dd6213ce00d01253f3c458d5df0' '86e9ba573c353afd1a46816682f4cc3dbabeeb23'
# test job: [ef4f2357df6e9dd6213ce00d01253f3c458d5df0] https://lava.sirena.org.uk/scheduler/job/3020719
# test job: [86e9ba573c353afd1a46816682f4cc3dbabeeb23] https://lava.sirena.org.uk/scheduler/job/2955047
# test job: [c5e32e86ca02b003f86e095d379b38148999293d] https://lava.sirena.org.uk/scheduler/job/3030495
# bad: [c5e32e86ca02b003f86e095d379b38148999293d] Add linux-next specific files for 20260726
git bisect bad c5e32e86ca02b003f86e095d379b38148999293d
# test job: [673a43d4e283e8fc3bee7a874766278427263bc1] https://lava.sirena.org.uk/scheduler/job/3030777
# bad: [673a43d4e283e8fc3bee7a874766278427263bc1] Merge branch 'libcrypto-next' of https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git
git bisect bad 673a43d4e283e8fc3bee7a874766278427263bc1
# test job: [5dd91aac4216c19e9eeea6e0c1a04bcb3e43a876] https://lava.sirena.org.uk/scheduler/job/3031099
# bad: [5dd91aac4216c19e9eeea6e0c1a04bcb3e43a876] Merge branch 'xtensa-for-next' of https://github.com/jcmvbkbc/linux-xtensa.git
git bisect bad 5dd91aac4216c19e9eeea6e0c1a04bcb3e43a876
# test job: [457b365bc545636d75f65067d18afa86f6ced162] https://lava.sirena.org.uk/scheduler/job/3031248
# bad: [457b365bc545636d75f65067d18afa86f6ced162] Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
git bisect bad 457b365bc545636d75f65067d18afa86f6ced162
# test job: [a8fa5c7be42a37866fcc315470df3307f0583c47] https://lava.sirena.org.uk/scheduler/job/3031351
# good: [a8fa5c7be42a37866fcc315470df3307f0583c47] mm/vma: update create_init_stack_vma() to use vma_flags_t
git bisect good a8fa5c7be42a37866fcc315470df3307f0583c47
# test job: [5c9f41c7115f0e16b7e133abca791a4860bee0b6] https://lava.sirena.org.uk/scheduler/job/3031429
# bad: [5c9f41c7115f0e16b7e133abca791a4860bee0b6] Merge branch 'kbuild-for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git
git bisect bad 5c9f41c7115f0e16b7e133abca791a4860bee0b6
# test job: [c68210527d235e59afa54bc6aba6ecc532488a82] https://lava.sirena.org.uk/scheduler/job/3031482
# bad: [c68210527d235e59afa54bc6aba6ecc532488a82] mm: page_alloc: fix non-movable reclaim storm in defrag_mode
git bisect bad c68210527d235e59afa54bc6aba6ecc532488a82
# test job: [497078da29fbfe6ae057c020f1e5717ded142471] https://lava.sirena.org.uk/scheduler/job/3031540
# good: [497078da29fbfe6ae057c020f1e5717ded142471] mm/huge_memory: fold split_folio_to_list_to_order() into split_folio_to_order()
git bisect good 497078da29fbfe6ae057c020f1e5717ded142471
# test job: [2afd297a9a621ad41892bc0a05481110f46ebfc2] https://lava.sirena.org.uk/scheduler/job/3031619
# bad: [2afd297a9a621ad41892bc0a05481110f46ebfc2] tools/testing/vma: add test to assert MAP_PRIVATE-/dev/zero is anon
git bisect bad 2afd297a9a621ad41892bc0a05481110f46ebfc2
# test job: [a4beb459e21af80c1d8c37b079686753c21932ca] https://lava.sirena.org.uk/scheduler/job/3031661
# good: [a4beb459e21af80c1d8c37b079686753c21932ca] mm/vma: introduce VMA virtual page offset field and add helpers
git bisect good a4beb459e21af80c1d8c37b079686753c21932ca
# test job: [84bd1aceb0233c3de9064028d31a16ecf50070d9] https://lava.sirena.org.uk/scheduler/job/3031711
# good: [84bd1aceb0233c3de9064028d31a16ecf50070d9] mm/rmap: track whether the page VMA mapped walk is anonymous
git bisect good 84bd1aceb0233c3de9064028d31a16ecf50070d9
# test job: [880b6fe7442df760fe0a726b5f5e568bc6b450b6] https://lava.sirena.org.uk/scheduler/job/3031752
# good: [880b6fe7442df760fe0a726b5f5e568bc6b450b6] tools/testing/vma: expand VMA merge tests to assert virt pgoff
git bisect good 880b6fe7442df760fe0a726b5f5e568bc6b450b6
# test job: [e2ad1c5a1f0a96a4a0435213b0a5cb963dc501c5] https://lava.sirena.org.uk/scheduler/job/3031804
# good: [e2ad1c5a1f0a96a4a0435213b0a5cb963dc501c5] mm/vma: only permit MAP_PRIVATE /dev/zero to be mapped anonymous
git bisect good e2ad1c5a1f0a96a4a0435213b0a5cb963dc501c5
# test job: [9f2782812095787d87ee6b742899ae37966ef0f5] https://lava.sirena.org.uk/scheduler/job/3031854
# bad: [9f2782812095787d87ee6b742899ae37966ef0f5] mm/vma: make MAP_PRIVATE-mapped /dev/zero mappings truly anonymous
git bisect bad 9f2782812095787d87ee6b742899ae37966ef0f5
# first bad commit: [9f2782812095787d87ee6b742899ae37966ef0f5] mm/vma: make MAP_PRIVATE-mapped /dev/zero mappings truly anonymous
Attachment:
signature.asc
Description: PGP signature