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
| ||
|
Date: Sun, 20 Mar 2016 16:59:58 -0700 From: Guenter Roeck <linux@...ck-us.net> To: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, Alexander Viro <viro@...iv.linux.org.uk>, Linus Torvalds <torvalds@...ux-foundation.org>, Christoph Lameter <cl@...ux.com>, Matthew Wilcox <willy@...ux.intel.com>, linux-kernel@...r.kernel.org, linux-mm@...ck.org, linux-fsdevel@...r.kernel.org Subject: Re: [PATCH 70/71] mm: get rid of PAGE_CACHE_* and page_cache_{get,release} macros On Sun, Mar 20, 2016 at 09:41:17PM +0300, Kirill A. Shutemov wrote: > PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time ago > with promise that one day it will be possible to implement page cache with > bigger chunks than PAGE_SIZE. > > This promise never materialized. And unlikely will. > > We have many places where PAGE_CACHE_SIZE assumed to be equal to > PAGE_SIZE. And it's constant source of confusion on whether PAGE_CACHE_* > or PAGE_* constant should be used in a particular case, especially on the > border between fs and mm. > > Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much > breakage to be doable. > > Let's stop pretending that pages in page cache are special. They are not. > > The changes are pretty straight-forward: > > - <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>; > > - PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN}; > > - page_cache_get() -> get_page(); > > - page_cache_release() -> put_page(); > > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com> > --- ... > extern pgoff_t linear_hugepage_index(struct vm_area_struct *vma, > @@ -425,7 +425,7 @@ static inline pgoff_t linear_page_index(struct vm_area_struct *vma, > return linear_hugepage_index(vma, address); > pgoff = (address - vma->vm_start) >> PAGE_SHIFT; > pgoff += vma->vm_pgoff; > - return pgoff >> (PAGE_CACHE_SHIFT - PAGE_SHIFT); > + return pgoff >> (PAGE_SHIFT - PAGE_SHIFT); ^^^^^^^^^^^^^^^^^^^^^^^^^ Guenter
Powered by blists - more mailing lists