On 31.10.22 17:14, Jason Gunthorpe wrote:
On Mon, Oct 31, 2022 at 04:25:24PM +0100, David Hildenbrand wrote:
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Cc: Peter Xu <peterx@xxxxxxxxxx>
Cc: John Hubbard <jhubbard@xxxxxxxxxx>
Cc: Jason Gunthorpe <jgg@xxxxxxxxxx>
Reported-by: syzbot+f0b97304ef90f0d0b1dc@xxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
---
I assume this has been broken at least since 2014, when mm/gup.c came to
life. I failed to come up with a suitable Fixes tag quickly.
I'm worried this would break RDMA over hugetlbfs maps - which is a
real thing people do.
MikeK do you have test cases?
This patch here only silences the warning. The warning+failing is
already in 6.0, and so far nobody (besides syzbot) complained.
RDMA (due to FOLL_FORCE) would now fail (instead of doing something
wrong) on MAP_PRIVATE hugetlb mappings that are R/O. Do we have any
actual examples of such RDMA usage? I was able to understand why this
case (MAP_PRIVATE, PROT_READ) is important for !hugetlb, but I don't
immediately see under which situations this would apply to hugetlb.
While we could implement FOLL_FORCE for hugetlb, at least for RDMA we
will be moving away from FOLL_FORCE instead --- I'll be posting these
patches shortly.
So considering upcoming changes, at least RDMA is rather a bad excuse
for more widespread FOLL_FORCE support.
--
Thanks,
David / dhildenb