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
| ||
|
Message-ID: <20181221202136.crrwojz3k7muvyrh@kshutemo-mobl1> Date: Fri, 21 Dec 2018 23:21:37 +0300 From: "Kirill A. Shutemov" <kirill@...temov.name> To: Mike Kravetz <mike.kravetz@...cle.com> Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org, Michal Hocko <mhocko@...nel.org>, Hugh Dickins <hughd@...gle.com>, Naoya Horiguchi <n-horiguchi@...jp.nec.com>, "Aneesh Kumar K . V" <aneesh.kumar@...ux.vnet.ibm.com>, Andrea Arcangeli <aarcange@...hat.com>, "Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>, Davidlohr Bueso <dave@...olabs.net>, Prakash Sangappa <prakash.sangappa@...cle.com>, Andrew Morton <akpm@...ux-foundation.org>, stable@...r.kernel.org Subject: Re: [PATCH v2 2/2] hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race On Fri, Dec 21, 2018 at 10:28:25AM -0800, Mike Kravetz wrote: > On 12/21/18 2:28 AM, Kirill A. Shutemov wrote: > > On Tue, Dec 18, 2018 at 02:35:57PM -0800, Mike Kravetz wrote: > >> Instead of writing the required complicated code for this rare > >> occurrence, just eliminate the race. i_mmap_rwsem is now held in read > >> mode for the duration of page fault processing. Hold i_mmap_rwsem > >> longer in truncation and hold punch code to cover the call to > >> remove_inode_hugepages. > > > > One of remove_inode_hugepages() callers is noticeably missing -- > > hugetlbfs_evict_inode(). Why? > > > > It at least deserves a comment on why the lock rule doesn't apply to it. > > In the case of hugetlbfs_evict_inode, the vfs layer guarantees there are > no more users of the inode/file. I'm not convinced that it is true. See documentation for ->evict_inode() in Documentation/filesystems/porting: Caller does *not* evict the pagecache or inode-associated metadata buffers; the method has to use truncate_inode_pages_final() to get rid of those. Is hugetlbfs special here? -- Kirill A. Shutemov
Powered by blists - more mailing lists