2023-04-18 17:32:46

by Mark Brown

[permalink] [raw]
Subject: linux-next: build failure after merge of the hyperv tree

Hi all,

After merging the hyperv tree, today's linux-next build (x86 allmodconfig)
failed like this:

/tmp/next/build/drivers/hv/connection.c: In function 'vmbus_connect':
/tmp/next/build/drivers/hv/connection.c:228:53: error: implicit
declaration of function 'hv_alloc_hyperv_page'; did you mean 'hv_free_hyperv_page'? [-Werror=implicit-function-declaration]
228 | vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_page();
| ^~~~~~~~~~~~~~~~~~~~
| hv_free_hyperv_page
/tmp/next/build/drivers/hv/connection.c:228:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
228 | vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_page();
| ^
/tmp/next/build/drivers/hv/connection.c:229:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
229 | vmbus_connection.monitor_pages[1] = (void *)hv_alloc_hyperv_page();
| ^
cc1: all warnings being treated as errors

Caused by commit

4dbdcfe1c5db80edca ("Drivers: hv: move panic report code from vmbus to hv early init code")

I will use the hyperv tree from yesterday instead.


2023-04-18 18:40:34

by Wei Liu

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the hyperv tree

On Tue, Apr 18, 2023 at 06:31:57PM +0100, [email protected] wrote:
> Hi all,
>
> After merging the hyperv tree, today's linux-next build (x86 allmodconfig)
> failed like this:
>
> /tmp/next/build/drivers/hv/connection.c: In function 'vmbus_connect':
> /tmp/next/build/drivers/hv/connection.c:228:53: error: implicit
> declaration of function 'hv_alloc_hyperv_page'; did you mean 'hv_free_hyperv_page'? [-Werror=implicit-function-declaration]
> 228 | vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_page();
> | ^~~~~~~~~~~~~~~~~~~~
> | hv_free_hyperv_page
> /tmp/next/build/drivers/hv/connection.c:228:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> 228 | vmbus_connection.monitor_pages[0] = (void *)hv_alloc_hyperv_page();
> | ^
> /tmp/next/build/drivers/hv/connection.c:229:45: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> 229 | vmbus_connection.monitor_pages[1] = (void *)hv_alloc_hyperv_page();
> | ^
> cc1: all warnings being treated as errors
>
> Caused by commit
>
> 4dbdcfe1c5db80edca ("Drivers: hv: move panic report code from vmbus to hv early init code")
>
> I will use the hyperv tree from yesterday instead.

This has been fixed by removing the problematic commit.

Thanks,
Wei.

2023-08-07 05:21:39

by Wei Liu

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the hyperv tree

On Mon, Aug 07, 2023 at 02:22:38PM +1000, Stephen Rothwell wrote:
> Hi all,
>
> After merging the hyperv tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/pci/controller/pci-hyperv.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> drivers/hv/hv_balloon.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> drivers/hv/hv_vmbus.o: warning: objtool: .altinstr_replacement+0x3: weirdly overlapping alternative! 10 != 5
> vmlinux.o: warning: objtool: .altinstr_replacement+0x633: weirdly overlapping alternative! 11 != 6
> incomplete ORC unwind tables in file: vmlinux
> Failed to sort kernel tables
>
> I have no idea what caused this.
>

/me scratches head.

> I have used the hyperv tree from next-20230804 for today.

I've reverted that series from my tree. Thanks for the heads up.

Thanks,
Wei.

2023-08-08 03:03:41

by Dexuan-Linux Cui

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the hyperv tree

On Sun, Aug 6, 2023 at 10:39 PM Wei Liu <[email protected]> wrote:
>
> On Mon, Aug 07, 2023 at 02:22:38PM +1000, Stephen Rothwell wrote:
> > Hi all,
> >
> > After merging the hyperv tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > drivers/pci/controller/pci-hyperv.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> > drivers/hv/hv_balloon.o: warning: objtool: .altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
> > drivers/hv/hv_vmbus.o: warning: objtool: .altinstr_replacement+0x3: weirdly overlapping alternative! 10 != 5
> > vmlinux.o: warning: objtool: .altinstr_replacement+0x633: weirdly overlapping alternative! 11 != 6
> > incomplete ORC unwind tables in file: vmlinux
> > Failed to sort kernel tables
> >
> > I have no idea what caused this.

Hi Stephen,
My kernel source was checked out from the Hyper-V tree's hyperv-next
branch last Friday, which had Tianyu's 8 patches.

I'm able to repro the same build failure in a Ubuntu 22.04 VM with
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4:

I run the below commands:
make mrproper
make allmodconfig
make -j128
make -j128

...
LD [M] net/qrtr/qrtr-tun.ko
LD [M] net/qrtr/qrtr-mhi.ko
LD [M] virt/lib/irqbypass.ko
LD [M] arch/x86/video/fbdev.ko
make: *** [Makefile:234: __sub-make] Error 2

make -j128
DESCEND objtool
INSTALL libsubcmd_headers
CALL scripts/checksyscalls.sh
CHK kernel/kheaders_data.tar.xz
UPD include/generated/utsversion.h
CC init/version-timestamp.o
LD .tmp_vmlinux.kallsyms1
NM .tmp_vmlinux.kallsyms1.syms
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
NM .tmp_vmlinux.kallsyms2.syms
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD vmlinux
NM System.map
SORTTAB vmlinux
incomplete ORC unwind tables in file: vmlinux
Failed to sort kernel tables
make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
make[2]: *** Deleting file 'vmlinux'
make[1]: *** [/opt/linux-next/Makefile:1250: vmlinux] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:234: __sub-make] Error 2

If I revert Tianyu's patches by "git diff v6.5-rc4 | patch -Rp1",
the build can succeed.

If I apply the the patches, I get the same failure:

drivers/hv/hv_balloon.o: warning: objtool: .altinstr_replacement+0x0:
weirdly overlapping alternative! 11 != 6
...
drivers/pci/controller/pci-hyperv.o: warning: objtool:
.altinstr_replacement+0x0: weirdly overlapping alternative! 11 != 6
...
drivers/hv/hv_vmbus.o: warning: objtool: .altinstr_replacement+0x3:
weirdly overlapping alternative! 10 != 5
...
AR built-in.a
AR vmlinux.a
LD vmlinux.o
vmlinux.o: warning: objtool: .altinstr_replacement+0x633: weirdly
overlapping alternative! 11 != 6
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
GEN .vmlinux.objs
MODPOST Module.symvers
CC .vmlinux.export.o
UPD include/generated/utsversion.h
CC init/version-timestamp.o
LD .tmp_vmlinux.kallsyms1
NM .tmp_vmlinux.kallsyms1.syms
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
NM .tmp_vmlinux.kallsyms2.syms
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD vmlinux
NM System.map
SORTTAB vmlinux
incomplete ORC unwind tables in file: vmlinux
Failed to sort kernel tables
make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
make[2]: *** Deleting file 'vmlinux'
make[1]: *** [/opt/linux-next/Makefile:1250: vmlinux] Error 2
make[1]: *** Waiting for unfinished jobs....
...
make: *** [Makefile:234: __sub-make] Error 2

It turns out that I already made a fix
https://github.com/dcui/linux/commit/c4db45f6256248435b2a303b264ecbb41320c41d
which can fix the build failure and fix a crash issue (see
https://lwn.net/ml/linux-kernel/SA1PR21MB1335A21D5D037FE88D9CF820BF0EA@SA1PR21MB1335.namprd21.prod.outlook.com/
)

Thanks,
Dexuan

> /me scratches head.
>
> > I have used the hyperv tree from next-20230804 for today.
>
> I've reverted that series from my tree. Thanks for the heads up.
>
> Thanks,
> Wei.