On Tue, Mar 12, 2019 at 02:52:14PM -0700, Andrew Morton wrote: > On Tue, 12 Mar 2019 12:30:52 -0700 Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > > > On Tue, Mar 12, 2019 at 12:06 PM Jerome Glisse <jglisse@xxxxxxxxxx> wrote: > > > On Tue, Mar 12, 2019 at 09:06:12AM -0700, Dan Williams wrote: > > > > On Tue, Mar 12, 2019 at 8:26 AM Jerome Glisse <jglisse@xxxxxxxxxx> wrote: > > [..] > > > > > Spirit of the rule is better than blind application of rule. > > > > > > > > Again, I fail to see why HMM is suddenly unable to make forward > > > > progress when the infrastructure that came before it was merged with > > > > consumers in the same development cycle. > > > > > > > > A gate to upstream merge is about the only lever a reviewer has to > > > > push for change, and these requests to uncouple the consumer only > > > > serve to weaken that review tool in my mind. > > > > > > Well let just agree to disagree and leave it at that and stop > > > wasting each other time > > > > I'm fine to continue this discussion if you are. Please be specific > > about where we disagree and what aspect of the proposed rules about > > merge staging are either acceptable, painful-but-doable, or > > show-stoppers. Do you agree that HMM is doing something novel with > > merge staging, am I off base there? > > You're correct. We chose to go this way because the HMM code is so > large and all-over-the-place that developing it in a standalone tree > seemed impractical - better to feed it into mainline piecewise. > > This decision very much assumed that HMM users would definitely be > merged, and that it would happen soon. I was skeptical for a long time > and was eventually persuaded by quite a few conversations with various > architecture and driver maintainers indicating that these HMM users > would be forthcoming. > > In retrospect, the arrival of HMM clients took quite a lot longer than > was anticipated and I'm not sure that all of the anticipated usage > sites will actually be using it. I wish I'd kept records of > who-said-what, but I didn't and the info is now all rather dissipated. > > So the plan didn't really work out as hoped. Lesson learned, I would > now very much prefer that new HMM feature work's changelogs include > links to the driver patchsets which will be using those features and > acks and review input from the developers of those driver patchsets. This is what i am doing now and this patchset falls into that. I did post the ODP and nouveau bits to use the 2 new functions (dma map and unmap). I expect to merge both ODP and nouveau bits for that during the next merge window. Also with 5.1 everything that is upstream is use by nouveau at least. They are posted patches to use HMM for AMD, Intel, Radeon, ODP, PPC. Some are going through several revisions so i do not know exactly when each will make it upstream but i keep working on all this. So the guideline we agree on: - no new infrastructure without user - device driver maintainer for which new infrastructure is done must either sign off or review of explicitly say that they want the feature I do not expect all driver maintainer will have the bandwidth to do proper review of the mm part of the infra- structure and it would not be fair to ask that from them. They can still provide feedback on the API expose to the device driver. - driver bits must be posted at the same time as the new infra- structure even if they target the next release cycle to avoid inter-tree dependency - driver bits must be merge as soon as possible Thing we do not agree on: - If driver bits miss for any reason the +1 target directly revert the new infra-structure. I think it should not be black and white and the reasons why the driver bit missed the merge window should be taken into account. If the feature is still wanted and the driver bits missed the window for simple reasons then it means that we push everything by 2 release ie the revert is done in +1 then we reupload the infra-structure in +2 and finaly repush the driver bit in +3 so we loose 1 cycle. Hence why i would rather that the revert would only happen if it is clear that the infrastructure is not ready or can not be use in timely (over couple kernel release) fashion by any drivers. Cheers, Jérôme