lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZntY4jIojSrjoW1M@x1n>
Date: Tue, 25 Jun 2024 19:55:14 -0400
From: Peter Xu <peterx@...hat.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Audra Mitchell <audra@...hat.com>, viro@...iv.linux.org.uk,
	brauner@...nel.org, jack@...e.cz, aarcange@...hat.com,
	rppt@...ux.vnet.ibm.com, shli@...com, linux-fsdevel@...r.kernel.org,
	linux-kernel@...r.kernel.org, shuah@...nel.org,
	linux-kselftest@...r.kernel.org, raquini@...hat.com
Subject: Re: [PATCH v2 3/3] Turn off test_uffdio_wp if
 CONFIG_PTE_MARKER_UFFD_WP is not configured.

On Tue, Jun 25, 2024 at 04:05:58PM -0700, Andrew Morton wrote:
> On Mon, 24 Jun 2024 10:42:00 -0400 Peter Xu <peterx@...hat.com> wrote:
> 
> > >         uffdio_api.features &= ~UFFD_FEATURE_WP_HUGETLBFS_SHMEM;
> > >         uffdio_api.features &= ~UFFD_FEATURE_WP_UNPOPULATED;
> > >         uffdio_api.features &= ~UFFD_FEATURE_WP_ASYNC;
> > > #endif
> > > 
> > > If you run the userfaultfd selftests with the run_vmtests script we get
> > > several failures stemming from trying to call uffdio_regsiter with the flag 
> > > UFFDIO_REGISTER_MODE_WP. However, the kernel ensures in vma_can_userfault() 
> > > that if CONFIG_PTE_MARKER_UFFD_WP is disabled, only allow the VM_UFFD_WP -
> > > which is set when you pass the UFFDIO_REGISTER_MODE_WP flag - on 
> > > anonymous vmas.
> > > 
> > > In parse_test_type_arg() I added the features check against 
> > > UFFD_FEATURE_WP_UNPOPULATED as it seemed the most well know feature/flag. I'm 
> > > more than happy to take any suggestions and adapt them if you have any! 
> > 
> > There're documents for these features in the headers:
> > 
> > 	 * UFFD_FEATURE_WP_HUGETLBFS_SHMEM indicates that userfaultfd
> > 	 * write-protection mode is supported on both shmem and hugetlbfs.
> > 	 *
> > 	 * UFFD_FEATURE_WP_UNPOPULATED indicates that userfaultfd
> > 	 * write-protection mode will always apply to unpopulated pages
> > 	 * (i.e. empty ptes).  This will be the default behavior for shmem
> > 	 * & hugetlbfs, so this flag only affects anonymous memory behavior
> > 	 * when userfault write-protection mode is registered.
> > 
> > While in this context ("test_type != TEST_ANON") IIUC the accurate feature
> > to check is UFFD_FEATURE_WP_HUGETLBFS_SHMEM.
> > 
> > In most kernels they should behave the same indeed, but note that since
> > UNPOPULATED was introduced later than shmem/hugetlb support, it means on
> > some kernel the result of checking these two features will be different.
> 
> I'm unsure what to do with this series.  Peter, your review comments
> are unclear - do you request updates?

Yes, or some clarification from Audra would also work.

What I was trying to say is here I think the code should check against
UFFD_FEATURE_WP_HUGETLBFS_SHMEM instead.

Thanks,

-- 
Peter Xu


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ