* Changes to XFS patch integration process @ 2025-03-03 10:42 Carlos Maiolino 2025-03-03 14:05 ` Christoph Hellwig 0 siblings, 1 reply; 9+ messages in thread From: Carlos Maiolino @ 2025-03-03 10:42 UTC (permalink / raw) To: linux-xfs; +Cc: hch, david, djwong, sandeen, bfoster, aalbersh, axboe Hello, Following recent events, I decided to improve (hopefully it will be an imporvement), how XFS integration flows. For a while, XFS integration follows a process where we stack patches on for-next for a few days (in a good moment a couple weeks), and let them cook there before sending them to Linus. This works but has a big down side. Patches for the next merge window are kept in my trees locally, and although I test them from time to time, they only hit linux-next late in the cycle, also, it's hard for others to know what is queued or not (and to develop work on top of that). The main change I'm going to do, is in for-next branch. Currently I push patches there only when I've selected which patches I'm going to send to Linus on the next batch, whether it's a -RC or the next merge window. I'll change it, by pushing to for-next everything that has been reviewed and smoke tested, whether it's for a -RC or next merge window. This will enable xfs patches to stay in linux-next as much as possible before they get sent to Linus. The biggest change here is that for-next will likely need to be rebased more often than today. But also patches will spend more time under testings in linux-next and everybody will have a more updated tree to work on. Also, I'm still thinking how to handle pull requests I receive. I try hard to not change the commit hashes from the PRs, so I'm still not sure how feasible it will be to keep the same hash ids from PRs giving more often than not I'll need to rebase the next merge tree on the top of fixes for the current -RC and in some cases, on top of other trees with dependencies. I'm sending this information now as if you have any concern, please let me know. By now, I'm creating a new branch named xfs-6.15-merge to aggregate everything I already have for 6.15, and later this week I'll be merging it into for-next Hopefully, for the majority of xfs tree users, this should be mostly transparent. Only those who watch the development really close may notice differences. Cheers, Carlos ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-03 10:42 Changes to XFS patch integration process Carlos Maiolino @ 2025-03-03 14:05 ` Christoph Hellwig 2025-03-03 15:00 ` Carlos Maiolino 0 siblings, 1 reply; 9+ messages in thread From: Christoph Hellwig @ 2025-03-03 14:05 UTC (permalink / raw) To: Carlos Maiolino Cc: linux-xfs, hch, david, djwong, sandeen, bfoster, aalbersh, axboe On Mon, Mar 03, 2025 at 11:42:12AM +0100, Carlos Maiolino wrote: > The biggest change here is that for-next will likely need to be rebased > more often than today. But also patches will spend more time under testings > in linux-next and everybody will have a more updated tree to work on. FYI, what other trees do is to keep separate branches for the current and next release, i.e. right now: for-6.14 and for-6.15 and merge those into the for-next or have both of them in linux-next (e.g. for-linus and for-next). In that case most of the time you don't need to rebase at all. Instead you might occasionally need to merge the current into the next tree to resolve conflicts, and Linus is fine with that if you document the reason for that merge. > > Also, I'm still thinking how to handle pull requests I receive. I try > hard to not change the commit hashes from the PRs, so I'm still not sure > how feasible it will be to keep the same hash ids from PRs giving more often > than not I'll need to rebase the next merge tree on the top of fixes for the > current -RC and in some cases, on top of other trees with dependencies. With the above you just keep the pull requests as-is. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-03 14:05 ` Christoph Hellwig @ 2025-03-03 15:00 ` Carlos Maiolino 2025-03-03 15:24 ` Christoph Hellwig 2025-03-04 20:20 ` Darrick J. Wong 0 siblings, 2 replies; 9+ messages in thread From: Carlos Maiolino @ 2025-03-03 15:00 UTC (permalink / raw) To: Christoph Hellwig Cc: linux-xfs, david, djwong, sandeen, bfoster, aalbersh, axboe On Mon, Mar 03, 2025 at 03:05:47PM +0100, Christoph Hellwig wrote: > On Mon, Mar 03, 2025 at 11:42:12AM +0100, Carlos Maiolino wrote: > > The biggest change here is that for-next will likely need to be rebased > > more often than today. But also patches will spend more time under testings > > in linux-next and everybody will have a more updated tree to work on. > > FYI, what other trees do is to keep separate branches for the current > and next release, i.e. right now: for-6.14 and for-6.15 and merge those > into the for-next or have both of them in linux-next (e.g. for-linus and > for-next). In that case most of the time you don't need to rebase at > all. Instead you might occasionally need to merge the current into the > next tree to resolve conflicts, and Linus is fine with that if you > document the reason for that merge. This is pretty much aligned with my intentions, I haven't looked close yet how other subsystems deals with it, but by a few releases now, I keep a xfs-fixes-$ver branch which I collect patches for the current version, so adding a new branch for the next merge window is what I aimed to do with xfs-6.15-merge. The question for me now lies exactly on how to synchronize both. You partially answered my question, although merging the current into next sounds weird to me. If I merge current into next, and send Linus a PR for each (let's say for -rc7 and in sequence for the next merge window), Linus will receive two PRs with possibly the same patches, and yet, on the merge window PR, there will also be a merge commit from -current, is this what you're describing? Thanks for the input. > > > > > Also, I'm still thinking how to handle pull requests I receive. I try > > hard to not change the commit hashes from the PRs, so I'm still not sure > > how feasible it will be to keep the same hash ids from PRs giving more often > > than not I'll need to rebase the next merge tree on the top of fixes for the > > current -RC and in some cases, on top of other trees with dependencies. > > With the above you just keep the pull requests as-is. > > Sounds reasonable ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-03 15:00 ` Carlos Maiolino @ 2025-03-03 15:24 ` Christoph Hellwig 2025-03-04 20:20 ` Darrick J. Wong 1 sibling, 0 replies; 9+ messages in thread From: Christoph Hellwig @ 2025-03-03 15:24 UTC (permalink / raw) To: Carlos Maiolino Cc: Christoph Hellwig, linux-xfs, david, djwong, sandeen, bfoster, aalbersh, axboe On Mon, Mar 03, 2025 at 04:00:39PM +0100, Carlos Maiolino wrote: > This is pretty much aligned with my intentions, I haven't looked close yet how > other subsystems deals with it, but by a few releases now, I keep a > xfs-fixes-$ver branch which I collect patches for the current version, so adding > a new branch for the next merge window is what I aimed to do with > xfs-6.15-merge. > > The question for me now lies exactly on how to synchronize both. You partially > answered my question, although merging the current into next sounds weird to me. for-next really is the convention for what goes into linux-next. For dma-mapping I kept a separate for-linus instead of merging the current one into for-next which also works, but you still might have to merge them occasionally. > > If I merge current into next, and send Linus a PR for each (let's say for -rc7 > and in sequence for the next merge window), Linus will receive two PRs with > possibly the same patches, and yet, on the merge window PR, there will also be a > merge commit from -current, is this what you're describing? Yes, but only if you really need the merge because the code for the next merge window requires it to base new patches onto it. If the merge is a no-op you don't need to merge, and if it is not required for code added Linus prefers to to the merge himself, possible with a little bit of guidance. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-03 15:00 ` Carlos Maiolino 2025-03-03 15:24 ` Christoph Hellwig @ 2025-03-04 20:20 ` Darrick J. Wong 2025-03-06 7:50 ` Carlos Maiolino 1 sibling, 1 reply; 9+ messages in thread From: Darrick J. Wong @ 2025-03-04 20:20 UTC (permalink / raw) To: Carlos Maiolino Cc: Christoph Hellwig, linux-xfs, david, sandeen, bfoster, aalbersh, axboe On Mon, Mar 03, 2025 at 04:00:39PM +0100, Carlos Maiolino wrote: > On Mon, Mar 03, 2025 at 03:05:47PM +0100, Christoph Hellwig wrote: > > On Mon, Mar 03, 2025 at 11:42:12AM +0100, Carlos Maiolino wrote: > > > The biggest change here is that for-next will likely need to be rebased > > > more often than today. But also patches will spend more time under testings > > > in linux-next and everybody will have a more updated tree to work on. > > > > FYI, what other trees do is to keep separate branches for the current > > and next release, i.e. right now: for-6.14 and for-6.15 and merge those > > into the for-next or have both of them in linux-next (e.g. for-linus and > > for-next). In that case most of the time you don't need to rebase at > > all. Instead you might occasionally need to merge the current into the > > next tree to resolve conflicts, and Linus is fine with that if you > > document the reason for that merge. Separate branches for 6.14 and 6.15 that then get merged into a for-next is what I did when I had separate trains running at the same time. Most of the time I just rolled the post-rc6 fixes into the next release, so I usually only dealt with one at a time. (to some grumbling) > This is pretty much aligned with my intentions, I haven't looked close yet how > other subsystems deals with it, but by a few releases now, I keep a > xfs-fixes-$ver branch which I collect patches for the current version, so adding > a new branch for the next merge window is what I aimed to do with > xfs-6.15-merge. > > The question for me now lies exactly on how to synchronize both. You partially > answered my question, although merging the current into next sounds weird to me. > > If I merge current into next, and send Linus a PR for each (let's say for -rc7 > and in sequence for the next merge window), Linus will receive two PRs with > possibly the same patches, and yet, on the merge window PR, there will also be a > merge commit from -current, is this what you're describing? If I had a for-6.14 and a for-6.15 branch, I'd base the PRs off of those branches, not the for-next branch itself. > Thanks for the input. > > > > > > > > > Also, I'm still thinking how to handle pull requests I receive. I try > > > hard to not change the commit hashes from the PRs, so I'm still not sure > > > how feasible it will be to keep the same hash ids from PRs giving more often > > > than not I'll need to rebase the next merge tree on the top of fixes for the > > > current -RC and in some cases, on top of other trees with dependencies. > > > > With the above you just keep the pull requests as-is. > > > > > > Sounds reasonable Or you can ask the PR submitter to rebase off latest for-6.15 and handle the merge themselves. --D ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-04 20:20 ` Darrick J. Wong @ 2025-03-06 7:50 ` Carlos Maiolino 2025-03-06 17:08 ` Christoph Hellwig 0 siblings, 1 reply; 9+ messages in thread From: Carlos Maiolino @ 2025-03-06 7:50 UTC (permalink / raw) To: Darrick J. Wong Cc: Christoph Hellwig, linux-xfs, david, sandeen, bfoster, aalbersh, axboe On Tue, Mar 04, 2025 at 12:20:59PM -0800, Darrick J. Wong wrote: > On Mon, Mar 03, 2025 at 04:00:39PM +0100, Carlos Maiolino wrote: > > On Mon, Mar 03, 2025 at 03:05:47PM +0100, Christoph Hellwig wrote: > > > On Mon, Mar 03, 2025 at 11:42:12AM +0100, Carlos Maiolino wrote: > > > > The biggest change here is that for-next will likely need to be rebased > > > > more often than today. But also patches will spend more time under testings > > > > in linux-next and everybody will have a more updated tree to work on. > > > > > > FYI, what other trees do is to keep separate branches for the current > > > and next release, i.e. right now: for-6.14 and for-6.15 and merge those > > > into the for-next or have both of them in linux-next (e.g. for-linus and > > > for-next). In that case most of the time you don't need to rebase at > > > all. Instead you might occasionally need to merge the current into the > > > next tree to resolve conflicts, and Linus is fine with that if you > > > document the reason for that merge. > > Separate branches for 6.14 and 6.15 that then get merged into a for-next > is what I did when I had separate trains running at the same time. Most > of the time I just rolled the post-rc6 fixes into the next release, so I > usually only dealt with one at a time. > > (to some grumbling) > > > This is pretty much aligned with my intentions, I haven't looked close yet how > > other subsystems deals with it, but by a few releases now, I keep a > > xfs-fixes-$ver branch which I collect patches for the current version, so adding > > a new branch for the next merge window is what I aimed to do with > > xfs-6.15-merge. > > > > The question for me now lies exactly on how to synchronize both. You partially > > answered my question, although merging the current into next sounds weird to me. > > > > If I merge current into next, and send Linus a PR for each (let's say for -rc7 > > and in sequence for the next merge window), Linus will receive two PRs with > > possibly the same patches, and yet, on the merge window PR, there will also be a > > merge commit from -current, is this what you're describing? > > If I had a for-6.14 and a for-6.15 branch, I'd base the PRs off of those > branches, not the for-next branch itself. I see what you mean, but from another POV, you'd be basing a PR on top of one series of patches, not on top of everything. Today, what we have, is a relatively stable for-next branch, where we just really rebase when something goes wrong, so, usually, when I push things into for-next, I've had it tested for a big while. Per my conversations off-list (specially with hch), is that this shouldn't be the purpose at all of for-next, but a testing branch where (almost anything) can go wrong, within reason of course. Please correct me if I'm wrong here. At the same time, I wish we have a branch that everybody can work with, which contains 'everything' staged, ready to go, so I'd do all the merge between current and next release myself into such branch. I think having a branch ready for people to work with is a maintainer's job, and people shouldn't be bothered by trying to figure out which branch they should use to base their patches on top. I'm hoping to use the master's branch for that if nobody has any objection. Carlos > > > Thanks for the input. > > > > > > > > > > > > > Also, I'm still thinking how to handle pull requests I receive. I try > > > > hard to not change the commit hashes from the PRs, so I'm still not sure > > > > how feasible it will be to keep the same hash ids from PRs giving more often > > > > than not I'll need to rebase the next merge tree on the top of fixes for the > > > > current -RC and in some cases, on top of other trees with dependencies. > > > > > > With the above you just keep the pull requests as-is. > > > > > > > > > > Sounds reasonable > > Or you can ask the PR submitter to rebase off latest for-6.15 and handle > the merge themselves. > > --D ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-06 7:50 ` Carlos Maiolino @ 2025-03-06 17:08 ` Christoph Hellwig 2025-03-06 17:40 ` Darrick J. Wong 0 siblings, 1 reply; 9+ messages in thread From: Christoph Hellwig @ 2025-03-06 17:08 UTC (permalink / raw) To: Carlos Maiolino Cc: Darrick J. Wong, Christoph Hellwig, linux-xfs, david, sandeen, bfoster, aalbersh, axboe On Thu, Mar 06, 2025 at 08:50:51AM +0100, Carlos Maiolino wrote: > > If I had a for-6.14 and a for-6.15 branch, I'd base the PRs off of those > > branches, not the for-next branch itself. > > I see what you mean, but from another POV, you'd be basing a PR on top of one > series of patches, not on top of everything. Well, while some subsystems have tons of topic branches that turns into a mess really quickly. So what Darrick said makes the most sense in general. There might be occasional corner cases where you'd want to be more fine grained, but they should be very rare. > > Today, what we have, is a relatively stable for-next branch, where we just > really rebase when something goes wrong, so, usually, when I push things into > for-next, I've had it tested for a big while. > > Per my conversations off-list (specially with hch), is that this shouldn't be > the purpose at all of for-next, but a testing branch where (almost anything) can > go wrong, within reason of course. Please correct me if I'm wrong here. I would expect for-next to have some amount of sanity testing. But the idea is indeed to have the code integrated with other kernel changes rather sooner than later. > > At the same time, I wish we have a branch that everybody can work with, which > contains 'everything' staged, ready to go, so I'd do all the merge between > current and next release myself into such branch. I think having a branch ready > for people to work with is a maintainer's job, and people shouldn't be bothered > by trying to figure out which branch they should use to base their patches on > top. > > I'm hoping to use the master's branch for that if nobody has any objection. Using master is really confusing. As I said earlier and Darrick also said the most usual thing is to have one branch for $CURRELEASE fixes and one for $NEXTRELEASE development work. for-next is then a temporary merge of those two. If you need $CURRELEASE changes in $NEXTRELEASE to avoid a mess, you either rebase $NEXTRELEASE (usually earlier in the merge window) or pull the $CURRELEASE into $NEXTRELEASE with a well-documented merge commit message documenting why it had to be done. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-06 17:08 ` Christoph Hellwig @ 2025-03-06 17:40 ` Darrick J. Wong 2025-03-10 10:36 ` Christoph Hellwig 0 siblings, 1 reply; 9+ messages in thread From: Darrick J. Wong @ 2025-03-06 17:40 UTC (permalink / raw) To: Christoph Hellwig Cc: Carlos Maiolino, linux-xfs, david, sandeen, bfoster, aalbersh, axboe On Thu, Mar 06, 2025 at 06:08:41PM +0100, Christoph Hellwig wrote: > On Thu, Mar 06, 2025 at 08:50:51AM +0100, Carlos Maiolino wrote: > > > If I had a for-6.14 and a for-6.15 branch, I'd base the PRs off of those > > > branches, not the for-next branch itself. > > > > I see what you mean, but from another POV, you'd be basing a PR on top of one > > series of patches, not on top of everything. > > Well, while some subsystems have tons of topic branches that turns into > a mess really quickly. So what Darrick said makes the most sense in > general. There might be occasional corner cases where you'd want to > be more fine grained, but they should be very rare. > > > > > Today, what we have, is a relatively stable for-next branch, where we just > > really rebase when something goes wrong, so, usually, when I push things into > > for-next, I've had it tested for a big while. > > > > Per my conversations off-list (specially with hch), is that this shouldn't be > > the purpose at all of for-next, but a testing branch where (almost anything) can > > go wrong, within reason of course. Please correct me if I'm wrong here. > > I would expect for-next to have some amount of sanity testing. But the > idea is indeed to have the code integrated with other kernel changes > rather sooner than later. > > > > > At the same time, I wish we have a branch that everybody can work with, which > > contains 'everything' staged, ready to go, so I'd do all the merge between > > current and next release myself into such branch. I think having a branch ready > > for people to work with is a maintainer's job, and people shouldn't be bothered > > by trying to figure out which branch they should use to base their patches on > > top. > > > > I'm hoping to use the master's branch for that if nobody has any objection. > > Using master is really confusing. > > As I said earlier and Darrick also said the most usual thing is > to have one branch for $CURRELEASE fixes and one for $NEXTRELEASE > development work. for-next is then a temporary merge of those two. > If you need $CURRELEASE changes in $NEXTRELEASE to avoid a mess, you > either rebase $NEXTRELEASE (usually earlier in the merge window) or > pull the $CURRELEASE into $NEXTRELEASE with a well-documented > merge commit message documenting why it had to be done. Eliminating the possibility of such messes is also why I avoided doing bugfixes and merge window prep whenever I could. ;) --D ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes to XFS patch integration process 2025-03-06 17:40 ` Darrick J. Wong @ 2025-03-10 10:36 ` Christoph Hellwig 0 siblings, 0 replies; 9+ messages in thread From: Christoph Hellwig @ 2025-03-10 10:36 UTC (permalink / raw) To: Darrick J. Wong Cc: Christoph Hellwig, Carlos Maiolino, linux-xfs, david, sandeen, bfoster, aalbersh, axboe On Thu, Mar 06, 2025 at 09:40:12AM -0800, Darrick J. Wong wrote: > Eliminating the possibility of such messes is also why I avoided doing > bugfixes and merge window prep whenever I could. ;) Thats a good idea in general, but xfs took it a bit too far. We really should hae had major changes in linux-next for a ew weeks and not in the last minute. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-03-10 10:36 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-03-03 10:42 Changes to XFS patch integration process Carlos Maiolino 2025-03-03 14:05 ` Christoph Hellwig 2025-03-03 15:00 ` Carlos Maiolino 2025-03-03 15:24 ` Christoph Hellwig 2025-03-04 20:20 ` Darrick J. Wong 2025-03-06 7:50 ` Carlos Maiolino 2025-03-06 17:08 ` Christoph Hellwig 2025-03-06 17:40 ` Darrick J. Wong 2025-03-10 10:36 ` Christoph Hellwig
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox