2024-03-27 19:58:03

by Björn Töpel

[permalink] [raw]
Subject: RISC-V for-next/fixes (cont'd from PW sync)

Hi,

I figured I'd put some words on the "how to update the RISC-V
for-next/fixes branches [1]" that came up on the patchwork call today.

In RISC-V land, the for-next branch is used for features, and typically
sent as a couple of PRs to Linus when the merge window is open. The
fixes branch is sent as PR(s) between the RCs of a release.

Today, the baseline for for-next/fixes is the CURRENT_RELEASE-rc1, and
features/fixes are based on that.

This has IMO a couple of issues:

1. fixes is missing the non-RISC-V fixes from releases later than
-rc1, which makes it harder for contributors.
2. for-next does not have the fixes from RISC-V/rest of the kernel,
and it's hard for contributors to test the work on for-next (buggy,
no fixes, and sometime missing deps).

I used to spend a whole lot of mine time in the netdev tree of the
kernel, and this is how they manage it (Thanks Kuba!):

Netdev (here exchanged to RISC-V trees), fast-forward fixes, and then
cross-merge fixes into for-next -- for every -rc.

E.g., say fixes is submitted for -rc2 to Linus, once he pulls, do:

git push --delete origin $SOMETAG
git tag -d $SOMETAG
git pull --ff-only --tags git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
build / test / push out.

Then pull fixes into for-next:

git pull --tags git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linuxgit fixes


Personally (obviously biased), I think this would be easier for
contributors. Any downsides from a RISC-V perspective?


Björn


[1] git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git


2024-03-27 20:50:40

by Conor Dooley

[permalink] [raw]
Subject: Re: RISC-V for-next/fixes (cont'd from PW sync)

On Wed, Mar 27, 2024 at 08:57:50PM +0100, Bj?rn T?pel wrote:
> Hi,
>
> I figured I'd put some words on the "how to update the RISC-V
> for-next/fixes branches [1]" that came up on the patchwork call today.
>
> In RISC-V land, the for-next branch is used for features, and typically
> sent as a couple of PRs to Linus when the merge window is open. The
> fixes branch is sent as PR(s) between the RCs of a release.
>
> Today, the baseline for for-next/fixes is the CURRENT_RELEASE-rc1, and
> features/fixes are based on that.
>
> This has IMO a couple of issues:
>
> 1. fixes is missing the non-RISC-V fixes from releases later than
> -rc1, which makes it harder for contributors.
> 2. for-next does not have the fixes from RISC-V/rest of the kernel,
> and it's hard for contributors to test the work on for-next (buggy,
> no fixes, and sometime missing deps).
>
> I used to spend a whole lot of mine time in the netdev tree of the
> kernel, and this is how they manage it (Thanks Kuba!):
>
> Netdev (here exchanged to RISC-V trees), fast-forward fixes, and then
> cross-merge fixes into for-next -- for every -rc.
>
> E.g., say fixes is submitted for -rc2 to Linus, once he pulls, do:
>
> git push --delete origin $SOMETAG
> git tag -d $SOMETAG
> git pull --ff-only --tags git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> build / test / push out.
>
> Then pull fixes into for-next:
>
> git pull --tags git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git fixes
>
>
> Personally (obviously biased), I think this would be easier for
> contributors. Any downsides from a RISC-V perspective?

After you left, Palmer said he'd go for merging his fixes tag into
for-next after they got merged by Linus. At least I think it was that,
rather than Linus' -rcs...


Attachments:
(No filename) (1.81 kB)
signature.asc (235.00 B)
Download all attachments

2024-03-29 06:57:07

by Alexandre Ghiti

[permalink] [raw]
Subject: Re: RISC-V for-next/fixes (cont'd from PW sync)

On Wed, Mar 27, 2024 at 9:32 PM Conor Dooley <[email protected]> wrote:
>
> On Wed, Mar 27, 2024 at 08:57:50PM +0100, Björn Töpel wrote:
> > Hi,
> >
> > I figured I'd put some words on the "how to update the RISC-V
> > for-next/fixes branches [1]" that came up on the patchwork call today.
> >
> > In RISC-V land, the for-next branch is used for features, and typically
> > sent as a couple of PRs to Linus when the merge window is open. The
> > fixes branch is sent as PR(s) between the RCs of a release.
> >
> > Today, the baseline for for-next/fixes is the CURRENT_RELEASE-rc1, and
> > features/fixes are based on that.
> >
> > This has IMO a couple of issues:
> >
> > 1. fixes is missing the non-RISC-V fixes from releases later than
> > -rc1, which makes it harder for contributors.

The syzbot report [1] requires fixes in mm [2], if we don't update
fixes on top of the latest -rcX, we'll keep hitting this bug, so
rebasing -fixes on top of the latest -rcX is necessary to me.

[1] https://lore.kernel.org/linux-riscv/00000000000070a2660614b83885@googlecom/T/#t
[2] https://lore.kernel.org/all/[email protected]/

> > 2. for-next does not have the fixes from RISC-V/rest of the kernel,
> > and it's hard for contributors to test the work on for-next (buggy,
> > no fixes, and sometime missing deps).
> >
> > I used to spend a whole lot of mine time in the netdev tree of the
> > kernel, and this is how they manage it (Thanks Kuba!):
> >
> > Netdev (here exchanged to RISC-V trees), fast-forward fixes, and then
> > cross-merge fixes into for-next -- for every -rc.
> >
> > E.g., say fixes is submitted for -rc2 to Linus, once he pulls, do:
> >
> > git push --delete origin $SOMETAG
> > git tag -d $SOMETAG
> > git pull --ff-only --tags git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > build / test / push out.
> >
> > Then pull fixes into for-next:
> >
> > git pull --tags git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git fixes
> >
> >
> > Personally (obviously biased), I think this would be easier for
> > contributors. Any downsides from a RISC-V perspective?
>
> After you left, Palmer said he'd go for merging his fixes tag into
> for-next after they got merged by Linus. At least I think it was that,
> rather than Linus' -rcs...

2024-03-29 07:29:44

by Conor Dooley

[permalink] [raw]
Subject: Re: RISC-V for-next/fixes (cont'd from PW sync)

On Fri, Mar 29, 2024 at 07:46:38AM +0100, Alexandre Ghiti wrote:
> On Wed, Mar 27, 2024 at 9:32 PM Conor Dooley <[email protected]> wrote:
> >
> > On Wed, Mar 27, 2024 at 08:57:50PM +0100, Björn Töpel wrote:
> > > Hi,
> > >
> > > I figured I'd put some words on the "how to update the RISC-V
> > > for-next/fixes branches [1]" that came up on the patchwork call today.
> > >
> > > In RISC-V land, the for-next branch is used for features, and typically
> > > sent as a couple of PRs to Linus when the merge window is open. The
> > > fixes branch is sent as PR(s) between the RCs of a release.
> > >
> > > Today, the baseline for for-next/fixes is the CURRENT_RELEASE-rc1, and
> > > features/fixes are based on that.
> > >
> > > This has IMO a couple of issues:
> > >
> > > 1. fixes is missing the non-RISC-V fixes from releases later than
> > > -rc1, which makes it harder for contributors.
>
> The syzbot report [1] requires fixes in mm [2], if we don't update
> fixes on top of the latest -rcX, we'll keep hitting this bug, so
> rebasing -fixes on top of the latest -rcX is necessary to me.

No non-ff rebasing of branches unless its 101% required, please. This
seems like a justifiable reason to merge the rc it appears in into the
riscv branches though.

> [1] https://lore.kernel.org/linux-riscv/[email protected]/T/#t
> [2] https://lore.kernel.org/all/[email protected]/


Attachments:
(No filename) (1.42 kB)
signature.asc (235.00 B)
Download all attachments

2024-03-29 09:11:02

by Björn Töpel

[permalink] [raw]
Subject: Re: RISC-V for-next/fixes (cont'd from PW sync)

Conor Dooley <[email protected]> writes:

> On Fri, Mar 29, 2024 at 07:46:38AM +0100, Alexandre Ghiti wrote:
>> On Wed, Mar 27, 2024 at 9:32 PM Conor Dooley <[email protected]> wrote:
>> >
>> > On Wed, Mar 27, 2024 at 08:57:50PM +0100, Björn Töpel wrote:
>> > > Hi,
>> > >
>> > > I figured I'd put some words on the "how to update the RISC-V
>> > > for-next/fixes branches [1]" that came up on the patchwork call today.
>> > >
>> > > In RISC-V land, the for-next branch is used for features, and typically
>> > > sent as a couple of PRs to Linus when the merge window is open. The
>> > > fixes branch is sent as PR(s) between the RCs of a release.
>> > >
>> > > Today, the baseline for for-next/fixes is the CURRENT_RELEASE-rc1, and
>> > > features/fixes are based on that.
>> > >
>> > > This has IMO a couple of issues:
>> > >
>> > > 1. fixes is missing the non-RISC-V fixes from releases later than
>> > > -rc1, which makes it harder for contributors.
>>
>> The syzbot report [1] requires fixes in mm [2], if we don't update
>> fixes on top of the latest -rcX, we'll keep hitting this bug, so
>> rebasing -fixes on top of the latest -rcX is necessary to me.
>
> No non-ff rebasing of branches unless its 101% required, please. This
> seems like a justifiable reason to merge the rc it appears in into the
> riscv branches though.

Are you talking past each other? I'm *not* saying rebase (agree with
Conor!). I'm saying "let's move fixes up to the point to include the
merge (and whatever on Linus' tip at the point of merge), i.e.
*ff-only*.

Now, rest your eyes on this fabulous cartoon:

Linus' master
|
v
o o <-- RISC-V fixes
| |
. .
. .

Linus accepts the PR...

o <-- Merge tag 'riscv-for-linus-meh-rc7'...
|\
o o <-- RISC-V fixes
| |
. .
. .

and then move fixes, git merge --ff-only:

o <-- Merge tag 'riscv-for-linus-meh-rc7'..., RISC-V fixes
|\
o o
| |
. .
. .

Clearer?


Björn