Message ID | mhng-d12081f2-1ff7-4f68-b320-f3aa5c458365@palmer-ri-x1c9 (mailing list archive) |
---|---|
State | Accepted |
Commit | e0152e7481c6c63764d6ea8ee41af5cf9dfac5e9 |
Headers | show |
Series | [GIT,PULL] RISC-V Patches for the 6.6 Merge Window, Part 1 | expand |
Context | Check | Description |
---|---|---|
conchuod/tree_selection | success | Pull request for for-next |
conchuod/maintainers_pattern | success | MAINTAINERS pattern errors before the patch: 2 and now 2 |
conchuod/verify_signedoff | success | Signed-off-by tag matches author and committer |
conchuod/build_rv64_clang_allmodconfig | success | Errors and warnings before: 2472 this patch: 2471 |
conchuod/build_rv64_gcc_allmodconfig | success | Errors and warnings before: 1058 this patch: 1058 |
conchuod/build_rv32_defconfig | success | Build OK |
conchuod/dtb_warn_rv64 | success | Errors and warnings before: 39 this patch: 39 |
conchuod/build_rv64_nommu_k210_defconfig | success | Build OK |
conchuod/verify_fixes | success | Fixes tag looks correct |
conchuod/build_rv64_nommu_virt_defconfig | success | Build OK |
On Fri, 1 Sept 2023 at 07:41, Palmer Dabbelt <palmer@rivosinc.com> wrote: > > for the other the result I ended up with was > > extern pgd_t early_pg_dir[PTRS_PER_PGD]; > static pgd_t tmp_pg_dir[PTRS_PER_PGD] __page_aligned_bss; > static p4d_t tmp_p4d[PTRS_PER_P4D] __page_aligned_bss; > static pud_t tmp_pud[PTRS_PER_PUD] __page_aligned_bss; That's wrong, you should have removed the 'early_pg_dir' declaration that is now in <asm/pgtable.h>, as done by commit d2402048bc8a ("riscv: mm: fix 2 instances of -Wmissing-variable-declarations"). > though that's not showing up in the git diff, so I may have something odd going > on here. So what's going on is that you resolved the merge conflict by taking everything from one side (not correct, as above), and then git no longer considers it a conflict after-the-fact. Side n ote in case you care about the actual git logic: The git rules for merge conflicts are different when doing the merge and when showing the result after doing a merge. When doing the merge, git will do the expensive history calculations to figure out the merge base and do a 3-way merge of the base and the two sides. So at merge time, git looks back in the history from the two merge heads, and does the three-way diff based on the history leading up to the two points. But after the merge, "git show" will basically do the reverse: it won't look back in the history, but look at the *result* of the merge. You are, after all, asking it to show the merge itself. So then it will again do a three-way diff, but not of the merge base, but of the merge _result_ and the two sides. And if the merge result is the same as one of the sides, there's no conflict remaining, and so no three-way diff. So that's how conflicts sometimes "disappear" after the merge. Linus
The pull request you sent on Fri, 01 Sep 2023 07:41:21 -0700 (PDT):
> git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.6-mw1
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/e0152e7481c6c63764d6ea8ee41af5cf9dfac5e9
Thank you!
On Fri, 01 Sep 2023 08:21:35 PDT (-0700), Linus Torvalds wrote: > On Fri, 1 Sept 2023 at 07:41, Palmer Dabbelt <palmer@rivosinc.com> wrote: >> >> for the other the result I ended up with was >> >> extern pgd_t early_pg_dir[PTRS_PER_PGD]; >> static pgd_t tmp_pg_dir[PTRS_PER_PGD] __page_aligned_bss; >> static p4d_t tmp_p4d[PTRS_PER_P4D] __page_aligned_bss; >> static pud_t tmp_pud[PTRS_PER_PUD] __page_aligned_bss; > > That's wrong, you should have removed the 'early_pg_dir' declaration > that is now in <asm/pgtable.h>, as done by commit d2402048bc8a > ("riscv: mm: fix 2 instances of -Wmissing-variable-declarations"). Thanks, Nick had pointed that out too but looks like I missed it. >> though that's not showing up in the git diff, so I may have something odd going >> on here. > > So what's going on is that you resolved the merge conflict by taking > everything from one side (not correct, as above), and then git no > longer considers it a conflict after-the-fact. > > Side n ote in case you care about the actual git logic: Ya, I'm always interested to hear -- as I'm sure you can tell it's still a bit of a mystery on my end, but I'd rather learn when I get lost than just keep being lost ;) > The git rules for merge conflicts are different when doing the merge > and when showing the result after doing a merge. > > When doing the merge, git will do the expensive history calculations > to figure out the merge base and do a 3-way merge of the base and the > two sides. > > So at merge time, git looks back in the history from the two merge > heads, and does the three-way diff based on the history leading up to > the two points. > > But after the merge, "git show" will basically do the reverse: it > won't look back in the history, but look at the *result* of the merge. > You are, after all, asking it to show the merge itself. > > So then it will again do a three-way diff, but not of the merge base, > but of the merge _result_ and the two sides. > > And if the merge result is the same as one of the sides, there's no > conflict remaining, and so no three-way diff. > > So that's how conflicts sometimes "disappear" after the merge. OK, that explains why I get such different results between the pre and post merge output -- my workflow involves commiting a merge and then pushing it up to the test builders, so I guess I should just be double-checking the pre-merge rather than trying to figure things out after the fact from just looking at the merge. > Linus
Hello: This pull request was applied to riscv/linux.git (fixes) by Linus Torvalds <torvalds@linux-foundation.org>: On Fri, 01 Sep 2023 07:41:21 -0700 (PDT) you wrote: > The following changes since commit 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5: > > Linux 6.5-rc1 (2023-07-09 13:53:13 -0700) > > are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.6-mw1 > > [...] Here is the summary with links: - [GIT,PULL] RISC-V Patches for the 6.6 Merge Window, Part 1 https://git.kernel.org/riscv/c/e0152e7481c6 You are awesome, thank you!