Hey Drew, I would like to better understand the current upstream status. I am not so much familiar with the kernel development process, so I am going to ask you some very stupid questions now - feel free to answer, whenever you have the time and leisure
So first of all, why did you post Palmer Dabbelt’s and Conor Dooley’s Git repos here? Because they are maintainser of RISC-V ARCHITECTURE, and device tree, RISC-V MISC SOC SUPPORT respectively? So if anyone would want to submit patches, they should base these patches on Palmer’s and Conor’s repositories, because they have the most current status regarding the TH1520 support?
Then you post some “mainline patch series”, which I guess are patches commited to the mailing list, which are currently discussed and not yet accepted? So if anybody would want to know their current status, they would have to observer the patches’s threads on the mailing list? Then you also post some patches which are now mainline? I tried to retrace one of your patch series:
You submitted them to the mailing lists “linux-riscv, devicetree, linux-kernel”, correct? A few days later, Conor Dooley did then commit the v3 of your patch series into his git repository: kernel/git/conor/linux.git - conor's fork of linux.git
Again a few days later, Arnd Bergmann takes you changes and combines them with other changes to this here, again in Conor Dooley’s repository: kernel/git/conor/linux.git - conor's fork of linux.git What exactly is that? A new commit, I guess, with a specific preamble (“Merge Tag”) to mark this as “to be merged” into the linux kernel?
These all good questions and the flow of patches into the final release from Linus is quite complex. Also, I have done a bad job keeping this page updated. Furthermore, upon revisiting this page, I think this are changes I can make to make it more useful and easier to understand.
Also, I wrote a more recent post that covers some upstreaming aspects:
This is general advice though. There may be situations in which it is simpler to base a patch series on some other public branch because it has prerequisite patches.
Anyways, maintainers like Conor and Palmer will probably reply that one needs to rebase their patches if the currently used base for the patches is causing problems.
I’ve done a bad job updating the table. It should be more clear which have just been posted, which have been applied by a maintainer, and which are actually in a kernel release now.
That is a merge commit which shows what patches were pulled in by the sub-maintainers. In this case, Conor took the individual patches from the mailing list and applied them to their tree they use for pull requests. Then Conor sends a pull request to Arnd. Arnd ultimately does a pull request for all of SoC to Linus Torvalds.
Yes, I would it is “upstream” once Linus accepts a pull request containing the commit(s) and merges it into his master branch.
The main time when this takes place is during the merge window. This is the 2 weeks following the release of a new linux kernel.
The first release candidate (rc) should happen at the end of the merge window. The marks the first real release that contains the new commits. Technically, the new commits are not officially in Linux until the release candidate (rc) releases conclude and Linus officially releases the new kernel.