forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【跟踪】6.12 系列合并 6.6 补丁情况一览 #11
Comments
MingcongBai
pushed a commit
that referenced
this issue
Nov 18, 2024
Disable strict aliasing, as has been done in the kernel proper for decades (literally since before git history) to fix issues where gcc will optimize away loads in code that looks 100% correct, but is _technically_ undefined behavior, and thus can be thrown away by the compiler. E.g. arm64's vPMU counter access test casts a uint64_t (unsigned long) pointer to a u64 (unsigned long long) pointer when setting PMCR.N via u64p_replace_bits(), which gcc-13 detects and optimizes away, i.e. ignores the result and uses the original PMCR. The issue is most easily observed by making set_pmcr_n() noinline and wrapping the call with printf(), e.g. sans comments, for this code: printf("orig = %lx, next = %lx, want = %lu\n", pmcr_orig, pmcr, pmcr_n); set_pmcr_n(&pmcr, pmcr_n); printf("orig = %lx, next = %lx, want = %lu\n", pmcr_orig, pmcr, pmcr_n); gcc-13 generates: 0000000000401c90 <set_pmcr_n>: 401c90: f9400002 ldr x2, [x0] 401c94: b3751022 bfi x2, x1, #11, #5 401c98: f9000002 str x2, [x0] 401c9c: d65f03c0 ret 0000000000402660 <test_create_vpmu_vm_with_pmcr_n>: 402724: aa1403e3 mov x3, x20 402728: aa1503e2 mov x2, x21 40272c: aa1603e0 mov x0, x22 402730: aa1503e1 mov x1, x21 402734: 940060ff bl 41ab30 <_IO_printf> 402738: aa1403e1 mov x1, x20 40273c: 910183e0 add x0, sp, #0x60 402740: 97fffd54 bl 401c90 <set_pmcr_n> 402744: aa1403e3 mov x3, x20 402748: aa1503e2 mov x2, x21 40274c: aa1503e1 mov x1, x21 402750: aa1603e0 mov x0, x22 402754: 940060f7 bl 41ab30 <_IO_printf> with the value stored in [sp + 0x60] ignored by both printf() above and in the test proper, resulting in a false failure due to vcpu_set_reg() simply storing the original value, not the intended value. $ ./vpmu_counter_access Random seed: 0x6b8b4567 orig = 3040, next = 3040, want = 0 orig = 3040, next = 3040, want = 0 ==== Test Assertion Failure ==== aarch64/vpmu_counter_access.c:505: pmcr_n == get_pmcr_n(pmcr) pid=71578 tid=71578 errno=9 - Bad file descriptor 1 0x400673: run_access_test at vpmu_counter_access.c:522 2 (inlined by) main at vpmu_counter_access.c:643 3 0x4132d7: __libc_start_call_main at libc-start.o:0 4 0x413653: __libc_start_main at ??:0 5 0x40106f: _start at ??:0 Failed to update PMCR.N to 0 (received: 6) Somewhat bizarrely, gcc-11 also exhibits the same behavior, but only if set_pmcr_n() is marked noinline, whereas gcc-13 fails even if set_pmcr_n() is inlined in its sole caller. Cc: [email protected] Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116912 Signed-off-by: Sean Christopherson <[email protected]>
deepin-community/kernel#461 已合入6.12版本 不需要了 |
deepin-community/kernel#348 has merged upstream. And linux-stable has picked it to 4.19/5.4/5.10/5.15/6.1/6.6 :-) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
本工单用于跟踪从 6.6 分支引入的厂商补丁的移植情况,本次移植后,补丁后续将以 cherry-pick 的形式变基到各 rolling-stable 最新分支
下方缩进项指代顶层依赖项
当前代码基础
6.12.1
外设支持类(显卡)
外设支持类(网卡)
[Deepin-Kernel-SIG] [linux 6.6-y] rtw-improve kernel#461(上游已于 6.12 合并)[Deepin-Kernel-SIG] [linux-6.6.y] [Upstream] Bluetooth: btintel: Add support for Whale Peak2 kernel#478(上游已于 6.11-rc1 合并)[Deepin-Kernel-SIG] [linux-6.6.y] [Upstream] Bluetooth: btintel: id update kernel#479(上游已于 6.11-rc1 合并)[Deepin-Kernel-SIG] [linux-6.6.y] wifi: rtw89: get release driver version via more convenient method kernel#480(与上游代码结构不同)[Deepin-Kernel-SIG] [Upstream] [linux 6.6-y] bluetooth suspend fixes kernel#483(上游已于 6.12-rc4 合并)[Deepin-Kernel-SIG] [linux-6.6.y] wifi: rtw89: Fix initializer element is not constant build err kernel#484(无需合并)外设支持类(输入)
HID: multitouch: Add quirk for HONOR MagicBook Art 14 touchpad kernel#431(上游已于 6.12 合并)外设支持类(存储)
平台支持类(飞腾)
net:add phytium DWMAC driver support kernel#118net/stmmac: Add phytium old dwmac acpi_device_id kernel#120usb:xHCI: add XHCI_RESET_ON_RESUME quirk for phytium kernel#128(上游已于 6.12 合并 118ecef)i3c: Add Phytium i3c controller support kernel#144Revert "i3c: Add Phytium i3c controller support" kernel#240平台支持类(鲲鹏)
平台支持类(AArch64 通用)
iommu/arm-smmu-v3: Add suspend and resume support kernel#236(上游已于 6.10 合并)平台支持类(龙架构)
LoongArch: add old BPI compatibility (Once again) kernel#130已由 AOSC 补丁集替代LoongArch: fix some known issue and update defconfig kernel#241LoongArch: Fix some issues and update interrupt registration policy kernel#269(已由 AOSC 补丁集替代)LoongArch: stmmac: Add Loongson platform support kernel#287(取用上游 v13)add loongarch kvm support for Linux 6.6.y kernel#290(上游已于 6.7 合并)LoongArch: Add kernel livepatching support kernel#307(上游已于 6.9 合并)LoongArch: Revert "irqchip/loongson-eiointc: fix gsi register error" kernel#338(已由 AOSC 补丁集替代)[Deepin Kernel SIG] LoongArch: KVM: Remove unnecessary definition of KVM_PRIVATE_MEM_SLOTS and Remove undefined a6 argument comment for kvm_hypercall() kernel#422(上游已于 6.11 合并)平台支持类(海光)
平台支持类(兆芯)
[next] i2c/zhaoxin: switch i2c registration to devm functions kernel#387(上游已于 6.10 合并,驱动名为 i2c-via-zhaoxin)[linux-6.6.y] Add support for Zhaoxin I2C controller kernel#268平台支持类(Intel)
[Deepin Kernel SIG] x86/cpu: Clarify the error message when BIOS does not support SGX kernel#423(上游已于 6.12 合并)平台支持类(其他 x86 厂商)
平台支持类(x86 通用)
[linux-6.6.y] x86/cpu: Remove pointless evaluation of x86_coreid_bits kernel#279(上游已于 6.8 合并)[linux-6.6.y] fs/address_space: move i_mmap_rwsem to mitigate a false sharing with i_mmap. kernel#283(上游已于 6.8 合并)ASoC: amd: yc: fix internal mic on Xiaomi Book Pro 14 2022 kernel#450(上游已于 6.12 合并)平台支持类(RISC-V 通用)
[RISCV] fix: Use WRITE_ONCE() when setting page table entries kernel#398(上游已于 6.9 合并)[RISCV] feat: add kernel fpu to support rdna graphics card kernel#400(上游已于 6.10 合并,补丁内容有差异,待测)riscv: dts: starfive: visionfive 2: Remove non-existing I2S hardware kernel#416(上游已于 6.10 合并:e0503d47e93d)平台支持类(申威)
[WIP] [SW64] Add sw64 architecture basic support kernel#439(不在支持范围内)平台支持类(MIPS)
平台支持类(通用)
[Deepin-Kernel-SIG] [linux-6.6.y] [Upstream] exfat: Implement sops->shutdown and ioctl kernel#476(上游已于 6.12-rc1 合并)发布管理类
[Deepin Kernel SIG] kABI: Introduce generic kABI macros to use for kABI workarounds kernel#388(主线不跟踪 kABI)KABI: Init reservation for x86 arch kernel#389(主线不跟踪 kABI)deepin: workflow: disable backup-to-gitlabwh kernel#419(未引入 GitLab 备份)[Deepin Kernel SIG] deepin: KABI: KABI reservation for dentry kernel#438(主线不跟踪 kABI)The text was updated successfully, but these errors were encountered: