On Fri, 7 Aug 2015, Kirill A. Shutemov wrote: > On Thu, Aug 06, 2015 at 03:45:31PM -0500, Christoph Lameter wrote: > > On Thu, 6 Aug 2015, Hugh Dickins wrote: > > > > > > I know a patchset which solves this! ;) > > > > > > Oh, and I know a patchset which avoids these problems completely, > > > by not using compound pages at all ;) > > > > Another dumb idea: Stop the insanity of splitting pages on the fly? > > Splitting pages should work like page migration: Lock everything down and > > ensure no one is using the page and then do it. That way the compound pages > > and its metadata are as stable as a regular page. > > That's what I do in refcounting patchset. Looks like you make refcounting easier and avoid splitting in some cases maybe only splitting the pmd. But the fundamental issue still remains. Complexity is high since individual pages of a compound can be mapped and unmapped in multiple processes. The compound would need to be always treated as a single order N entity in order to really get things simplified and make code cleaner. Either all pages are mapped or none. Otherwise you have to manage the a schizoprenic view of pages. Sometimes an order N size entity is managed and sometimes a base page size page which is a fraction of the whole. Such a view of a memory object is pretty difficult to manage. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>