Re: [PATCH 6.9 073/281] drm/xe: Use ordered WQ for G2H handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 27, 2024 at 06:32:37PM -0500, Lucas De Marchi wrote:
> On Tue, Jun 25, 2024 at 10:12:05PM GMT, Greg Kroah-Hartman wrote:
> > On Tue, Jun 25, 2024 at 03:02:02PM -0400, Rodrigo Vivi wrote:
> > > > > >> >
> > > > > >> > > > (cherry picked from commit 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de)
> > > > > >> >
> > > > > >> > Would help out here, but it doesn't.
> > > > > >>
> > > > > >> I wonder if there would be a way of automate this on stable scripts
> > > > > >> to avoid attempting a cherry pick that is already there.
> > > > > >
> > > > > > Please tell me how to do so.
> > > > > >
> > > > > >> But I do understand that any change like this would cause a 'latency'
> > > > > >> on the scripts and slow down everything.
> > > > > >
> > > > > > Depends, I already put a huge latency on drm stable patches because of
> > > > > > this mess.  And I see few, if any, actual backports for when I report
> > > > > > FAILED stable patches, so what is going to get slower than it currently
> > > > > > is?
> > > 
> > > My thought was on the stable scripts doing something like that.
> > > 
> > > For each candidate commit, check if it has the tag line
> > > (cherry picked from commit <original-hash>)
> > 
> > Right there, that fails with how the drm tree works.  So you are going
> > to have to come up with something else for how to check this.  Or fix
> > your process to make this work.
> > 
> > Look at the commits tagged for stable in the -rc1 merge window.  They
> > don't have the "cherry picked" wording as they were not cherry picked!
> > They were the "originals" that were cherry picked from.
> > 
> > > if so, then something like:
> > >  if git rev-parse --quiet --verify <original-hash> || \
> > >     git log --grep="cherry picked from commit <original-hash> -E --oneline >/dev/null; then
> > >             echo "One version of this patch is already in tree. Skipping..."
> > > 	    # send-email?!
> > >         else
> > >             #attempt to apply the candidate commit...
> > > 
> > > > > > Normally you all tag these cherry-picks as such.  You didn't do that
> > > > > > here or either place, so there was no way for anyone to know.  Please
> > > > > > fix that.
> > > 
> > > I'm afraid this is not accurate. Our tooling is taking care of that for us.
> > 
> > Then your tooling needs to be fixed.
> > 
> > > > > To be fair, this one seems to have been an accident. The same commit was
> > > > > cherry-picked to *two* different branches by two different people
> > > > > [1][2], and this is something we try not to do. Any cherry-picks should
> > > > > go to one tree only, it's checked by our scripts, but it's not race free
> > > > > when two people are doing this roughly at the same time.
> > > 
> > > Also I don't believe there's anything wrong here. It was a coincidence on
> > > the timing, but one is
> > > drm-xe-next-fixes-2024-05-09-1
> > > and the other
> > > drm-xe-fixes-2024-05-09
> > > 
> > > both maintained by different people at that time.
> > > 
> > > >
> > > > any cherry-pick SHOULD have the git id referenced when they are
> > > > cherry-picked, that's what the id is there for.  Please always do that.
> > > 
> > > Original commit hash is 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de
> > > 50aec9665e0b ("drm/xe: Use ordered WQ for G2H handler")
> > 
> > And that's not in Linus's tree.
> > 
> > > drm-xe-next-fixes-2024-05-09-1
> > > has commit 2d9c72f676e6 ("drm/xe: Use ordered WQ for G2H handler")
> > > which contains:
> > > (cherry picked from commit 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de)
> > > Signed-off-by: Thomas Hellström <thomas.hellstrom@xxxxxxxxxxxxxxx>
> > > 
> > > drm-xe-fixes-2024-05-09
> > > has commit c002bfe644a2 ("drm/xe: Use ordered WQ for G2H handler")
> > > which contains:
> > > (cherry picked from commit 50aec9665e0babd62b9eee4e613d9a1ef8d2b7de)
> > > Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
> > 
> > Ok, but again, the original is not in Linus's tree.
> 
> current workflow is:
> 
> All patches go to drm-xe-next which may be targeting the next kernel
> release or the next->next. Then the fixes (and less frequently, other
> commits which are not important here) are cherry-picked by maintainers
> to the current or next kernel release. In other words, the cherry-pick
> always targets a version 1 less than the original patch.

That's fine, as long as that cherry-pick references the git id of the
original one.  Which did not happen here, and does NOT happen at all for
all drm branches (like AMD right now).

> couple of issues I see:
> 
> 1) original commit not being in Linus's tree
> 
> If you are traversing the branch and you have a "Fixes: XXXX" where XXXX
> is from a previous release, you will most likely see the "cherry picked
> from <original>" *before* the <original> commit showing up in that tree.
> 
> Examples looking at the most recent fixes in Linus's tree with
> 
> 	$ git rev-parse origin/master
> 	6d6444ba82053c716fb5ac83346202659023044e
> 
> 	$ git log --format="%h %s%n%(trailers)" -n3 --grep "^Fixes:" \
> 		6d6444ba82053c716fb5ac83346202659023044e \
> 		-- drivers/gpu/drm/xe
> 
> d21d44dbdde8 in v6.10-rc5, fixes aef4eb7c7dec from v6.9
> but f0ccd2d805e55e12b430d5d6b9acd9f891af455e is not in any tag.
> 
> 2470b141bfae in v6.10-rc4, fixes 975e4a3795d4 from v6.8
> but 6800e63cf97bae62bca56d8e691544540d945f53 is not in any tag.
> 
> cd554e1e118a in v6.10-rc4, fixes 0698ff57bf32 from v6.10-rc3
> but b321cb83a375bcc18cd0a4b62bdeaf6905cca769 is not in any tag.
> 
> Without a change in the workflow, I don't think you can rely on the
> original commit hash being present in Linus's tree, unless you wait one
> entire kernel release cycle.

Which you obviously do not want me to do as you wanted that fix in the
tree sooner.

So this is a pain, but I'm kind of used to it by now as you all seem to
like this workflow for whatever reason...

> 2) Duplicate commits with "cherry picked from ... "
> 
> This only happened because it was cherry-picked in 2 branches, both for
> current and for next kernel releases. This can only happen during the
> last rcN as drm-xe-next-fixes is only used there.
> 
> I think (2) is easier to fix: we should really add more checks in dim
> to avoid that:  if a commit is a candidate to drm-xe-fixes it should
> never be a candidate to drm-xe-next-fixes.

Please fix.

> As for (1), I don't see how it could be fixed without a workflow change.
> That would require committers to add the commits to the right branch
> rather than relying on maintainers to cherry-pick them to the -fixes
> branch after they are merged in drm-xe-next.  What dim could do is to
> automate that for the committer and figure out the branch by itself
> based on the 2 commit hashes.
> 
> For all the above I used drm-xe-* as example, but it applies to
> drm-intel-* too.
> 
> Without the fix to (2) and workflow change from (1), this situation can be
> avoided from the -stable scripts by checking if the commit or any
> cherry-pick thereof is already in the stable tree:
> 
> 	git merge-base --is-ancestor $original_commit HEAD
> 	git log -n1 --grep "^(cherry picked from commit $original_commit)"
> 
> the second search is very expensive though.... probably need to find a
> way to limit the search space.

That's still a major pain, as is your current workflow.  So until you
all fix this up, I will continue to complain as the existing way drm
patches flow into stable trees is a major pain which causes me to dread
looking at them every time.

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux