On Tue, Oct 19, 2021 at 02:16:27AM +0300, Kirill A. Shutemov wrote: > On Mon, Oct 18, 2021 at 05:56:34PM -0400, Johannes Weiner wrote: > > > I don't think there will ever be consensus as long as you don't take > > > the concerns of other MM developers seriously. On Friday's call, several > > > people working on using large pages for anon memory told you that using > > > folios for anon memory would make their lives easier, and you didn't care. > > > > Nope, one person claimed that it would help, and I asked how. Not > > because I'm against typesafety, but because I wanted to know if there > > is an aspect in there that would specifically benefit from a shared > > folio type. I don't remember there being one, and I'm not against type > > safety for anon pages. > > > > What several people *did* say at this meeting was whether you could > > drop the anon stuff for now until we have consensus. > > My read on the meeting was that most of people had nothing against anon > stuff, but asked if Willy could drop anon parts to get past your > objections to move forward. > > You was the only person who was vocal against including anon pars. (Hugh > nodded to some of your points, but I don't really know his position on > folios in general and anon stuff in particular). Nobody likes to be the crazy person on the soapbox, so I asked Hugh in private a few weeks back. Quoting him, with permission: : To the first and second order of approximation, you have been : speaking for me: but in a much more informed and constructive and : coherent and rational way than I would have managed myself. It's a broad and open-ended proposal with far reaching consequences, and not everybody has the time (or foolhardiness) to engage on that. I wouldn't count silence as approval - just like I don't see approval as a sign that a person took a hard look at all the implications. My only effort from the start has been working out unanswered questions in this proposal: Are compound pages the reliable, scalable, and memory-efficient way to do bigger page sizes? What's the scope of remaining tailpages where typesafety will continue to lack? How do we implement code and properties shared by folios and non-folio types (like mmap/fault code for folio and network and driver pages)? There are no satisfying answers to any of these questions, but that also isn't very surprising: it's a huge scope. Lack of answers isn't failure, it's just a sign that the step size is too large and too dependent on a speculative future. It would have been great to whittle things down to a more incremental and concrete first step, which would have allowed us to keep testing the project against reality as we go through all the myriad of uses and cornercases of struct page that no single person can keep straight in their head. I'm grateful for the struct slab spinoff, I think it's exactly all of the above. I'm in full support of it and have dedicated time, effort and patches to help work out kinks that immediately and inevitably surfaced around the slab<->page boundary. I only hoped we could do the same for file pages first, learn from that, and then do anon pages; if they come out looking the same in the process, a unified folio would be a great trailing refactoring step. But alas here we are months later at the same impasse with the same open questions, and still talking in circles about speculative code. I don't have more time to invest into this, and I'm tired of the vitriol and ad-hominems both in public and in private channels. I'm not really sure how to exit this. The reasons for my NAK are still there. But I will no longer argue or stand in the way of the patches.