Hi Thomas, Thanks for the link. I will patch it when necessary. William
On Sun, Oct 23, 2016 at 8:53 AM, Thomas Graf <[email protected]> wrote: > FYI, > > I'm observing more instruction reordering with >=3.9 as compared to > 3.8 for the same code. You might need the following fix: > > http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=57a09bf0a416700676e77102c28f9cfcb48267e0 > > On Sun, Oct 23, 2016 at 4:35 PM, William Tu via iovisor-dev > <[email protected]> wrote: >> Thanks! I upgrade LLVM to 4.0.0 and this error no longer shows up. >> William >> >> On Sat, Oct 22, 2016 at 8:33 AM, Alexei Starovoitov >> <[email protected]> wrote: >>> On Fri, Oct 21, 2016 at 11:38 PM, William Tu via iovisor-dev >>> <[email protected]> wrote: >>>> Hi, >>>> I'm running into this LLVM ERROR at compile time. Does anyone seem >>>> this before or can give me some suggestions? thanks! >>>> >>>> ------- >>>> LLVM ERROR: Cannot select: 0x3bafa28: ch = brind 0x3bc98f0:1, >>>> 0x3bc98f0 [ORD=1] [ID=9] >>>> 0x3bc98f0: i64,ch = load 0x3bb0db0:1, 0x3baf588, >>>> 0x3bc8c58<LD8[JumpTable]> [ORD=1] [ID=8] >>>> 0x3baf588: i64 = add 0x3bade48, 0x3bb06c0 [ORD=1] [ID=7] >>>> 0x3bade48: i64 = shl 0x3bb0db0, 0x3bb0470 [ORD=1] [ID=6] >>>> 0x3bb0db0: i64,ch = CopyFromReg 0x3b78a00, 0x3bad2b8 [ORD=1] [ID=5] >>>> 0x3bad2b8: i64 = Register %vreg1 [ID=1] >>>> 0x3bb0470: i64 = Constant<3> [ID=4] >>>> 0x3bb06c0: i64 = JumpTable<0> [ID=2] >>>> 0x3bc8c58: i64 = Constant<0> [ID=3] >>>> In function: main_proto >>>> samples/bpf/Makefile:128: recipe for target 'samples/bpf/sockex3_kern.o' >>>> failed >>>> >>>> My C code is below: >>>> ---------------------------------- >>>> SEC("socket/0") >>>> static int main_proto(struct __sk_buff *skb) >>>> { >>>> u32 proto2 = skb->cb[1]; >>>> switch (proto2) { >>>> case 0: >>>> skb->cb[2]= 0; >>>> break; >>>> case 1: >>>> skb->cb[2]= 1; >>>> break; >>>> case 2: >>>> skb->cb[2]= 2; >>>> break; >>>> case 3: >>>> skb->cb[2]= 3; >>>> break; >>>> default: >>>> break; >>>> } >>>> return 0; >>>> } >>>> >>>> I found that removing "case 3" will prevent the error, but then I >>>> could only have 3 cases. >>>> [root@vm-dev bpf]# clang --version >>>> clang version 3.7.0 (tags/RELEASE_370/final) >>>> [root@vm-dev lib]# llc --version >>>> LLVM (http://llvm.org/): >>>> LLVM version 3.7.0 >>> >>> 3.7.0 has several known bugs. Please upgrade to 3.7.1 or higher. >>> jumptable should have been converted to branches by backend... >> _______________________________________________ >> iovisor-dev mailing list >> [email protected] >> https://lists.iovisor.org/mailman/listinfo/iovisor-dev _______________________________________________ iovisor-dev mailing list [email protected] https://lists.iovisor.org/mailman/listinfo/iovisor-dev
