On Mon, 9 Jun 2014, Kirill A. Shutemov wrote: > To be able to split huge page at any point we have to track which tail > page was pinned. It leads to tricky and expensive get_page() on tail pages > and also occupy tail_page->_mapcount. Maybe we should give up the requirement to be able to split a huge page at any point? This got us into the mess AFAICT. Instead we could use the locking mechanisms that we have to stop all access to the page and then do the conversion? Page migration can do that so it should be fine with refcounting for huge pages exclusively in the head page exactly like a regular page. The problem is then dealing with the locations where we now do rely on the ability to split at "any point" (notion is weird in itself and suggests issues with synchronization). Use the standard locking schemes for pages instead? I thought the idea was that we would modify the relevant code and that at some point this requirement could go away? Huge pages (and other larger order pages) will become increasingly difficult to handle if relevant page state has to be maintained in tail pages and if it differs significantly from regular pages. -- 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>