Skip to content
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

typo teh --> the #351

Closed
wants to merge 1 commit into from
Closed

typo teh --> the #351

wants to merge 1 commit into from

Conversation

byung-u
Copy link

@byung-u byung-u commented Nov 3, 2016

I think it's misspelled

@byung-u byung-u closed this Nov 3, 2016
Mic92 pushed a commit to Mic92/linux that referenced this pull request Feb 4, 2019
fengguang pushed a commit to 0day-ci/linux that referenced this pull request Jan 25, 2020
When build on, for example, x86 using `make O=... -j64` the version
in the built kernel comes from include/generated/compile.h, which is:

	#define UTS_VERSION "torvalds#351 SMP Fri Jan 24 18:46:34 EET 2020"

While at the end the x86 specific Makefile prints the contents of
the .version file:

	Kernel: arch/x86/boot/bzImage is ready  (torvalds#352)

Obviously the latter is not true. This happens because we first
check compile.h and update it and then generate new version, which is
incorrect flow:

  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  ...
  GEN     .version

In order to fix this, move the version generation from link-vmlinux.sh
to scripts/version.sh and re-use it in init/Makefile.

Additionally provide a unified way to get the current version of the build
and use this in few callers. This will respect the KBUILD_BUILD_VERSION
in case it's provided.

Signed-off-by: Andy Shevchenko <[email protected]>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Sep 17, 2023
Puranjay Mohan says:

====================
arm32, bpf: add support for cpuv4 insns

Changes in V2 -> V3
- Added comments at places where there could be confustion.
- In the patch for DIV64, fix the if-else case that would never run.
- In the same patch use a single instruction to POP caller saved regs.
- Add a patch to change maintainership of ARM32 BPF JIT.

Changes in V1 -> V2:
- Fix coding style issues.
- Don't use tmp variable for src in emit_ldsx_r() as it is redundant.
- Optimize emit_ldsx_r() when offset can fit in immediate.

Add the support for cpuv4 instructions for ARM32 BPF JIT. 64-bit division
was not supported earlier so this series adds 64-bit DIV, SDIV, MOD, SMOD
instructions as well.

This series needs any one of the patches from [1] to disable zero-extension
for BPF_MEMSX to support ldsx.

The relevant selftests have passed expect ldsx_insn which needs fentry:

Tested on BeagleBone Black (ARMv7-A):

[root@alarm del]# echo 1 > /proc/sys/net/core/bpf_jit_enable
[root@alarm del]# ./test_progs -a verifier_sdiv,verifier_movsx,verifier_ldsx,verifier_gotol,verifier_bswap
torvalds#337/1   verifier_bswap/BSWAP, 16:OK
torvalds#337/2   verifier_bswap/BSWAP, 16 @unpriv:OK
torvalds#337/3   verifier_bswap/BSWAP, 32:OK
torvalds#337/4   verifier_bswap/BSWAP, 32 @unpriv:OK
torvalds#337/5   verifier_bswap/BSWAP, 64:OK
torvalds#337/6   verifier_bswap/BSWAP, 64 @unpriv:OK
torvalds#337     verifier_bswap:OK
torvalds#351/1   verifier_gotol/gotol, small_imm:OK
torvalds#351/2   verifier_gotol/gotol, small_imm @unpriv:OK
torvalds#351     verifier_gotol:OK
torvalds#359/1   verifier_ldsx/LDSX, S8:OK
torvalds#359/2   verifier_ldsx/LDSX, S8 @unpriv:OK
torvalds#359/3   verifier_ldsx/LDSX, S16:OK
torvalds#359/4   verifier_ldsx/LDSX, S16 @unpriv:OK
torvalds#359/5   verifier_ldsx/LDSX, S32:OK
torvalds#359/6   verifier_ldsx/LDSX, S32 @unpriv:OK
torvalds#359/7   verifier_ldsx/LDSX, S8 range checking, privileged:OK
torvalds#359/8   verifier_ldsx/LDSX, S16 range checking:OK
torvalds#359/9   verifier_ldsx/LDSX, S16 range checking @unpriv:OK
torvalds#359/10  verifier_ldsx/LDSX, S32 range checking:OK
torvalds#359/11  verifier_ldsx/LDSX, S32 range checking @unpriv:OK
torvalds#359     verifier_ldsx:OK
torvalds#370/1   verifier_movsx/MOV32SX, S8:OK
torvalds#370/2   verifier_movsx/MOV32SX, S8 @unpriv:OK
torvalds#370/3   verifier_movsx/MOV32SX, S16:OK
torvalds#370/4   verifier_movsx/MOV32SX, S16 @unpriv:OK
torvalds#370/5   verifier_movsx/MOV64SX, S8:OK
torvalds#370/6   verifier_movsx/MOV64SX, S8 @unpriv:OK
torvalds#370/7   verifier_movsx/MOV64SX, S16:OK
torvalds#370/8   verifier_movsx/MOV64SX, S16 @unpriv:OK
torvalds#370/9   verifier_movsx/MOV64SX, S32:OK
torvalds#370/10  verifier_movsx/MOV64SX, S32 @unpriv:OK
torvalds#370/11  verifier_movsx/MOV32SX, S8, range_check:OK
torvalds#370/12  verifier_movsx/MOV32SX, S8, range_check @unpriv:OK
torvalds#370/13  verifier_movsx/MOV32SX, S16, range_check:OK
torvalds#370/14  verifier_movsx/MOV32SX, S16, range_check @unpriv:OK
torvalds#370/15  verifier_movsx/MOV32SX, S16, range_check 2:OK
torvalds#370/16  verifier_movsx/MOV32SX, S16, range_check 2 @unpriv:OK
torvalds#370/17  verifier_movsx/MOV64SX, S8, range_check:OK
torvalds#370/18  verifier_movsx/MOV64SX, S8, range_check @unpriv:OK
torvalds#370/19  verifier_movsx/MOV64SX, S16, range_check:OK
torvalds#370/20  verifier_movsx/MOV64SX, S16, range_check @unpriv:OK
torvalds#370/21  verifier_movsx/MOV64SX, S32, range_check:OK
torvalds#370/22  verifier_movsx/MOV64SX, S32, range_check @unpriv:OK
torvalds#370/23  verifier_movsx/MOV64SX, S16, R10 Sign Extension:OK
torvalds#370/24  verifier_movsx/MOV64SX, S16, R10 Sign Extension @unpriv:OK
torvalds#370     verifier_movsx:OK
torvalds#382/1   verifier_sdiv/SDIV32, non-zero imm divisor, check 1:OK
torvalds#382/2   verifier_sdiv/SDIV32, non-zero imm divisor, check 1 @unpriv:OK
torvalds#382/3   verifier_sdiv/SDIV32, non-zero imm divisor, check 2:OK
torvalds#382/4   verifier_sdiv/SDIV32, non-zero imm divisor, check 2 @unpriv:OK
torvalds#382/5   verifier_sdiv/SDIV32, non-zero imm divisor, check 3:OK
torvalds#382/6   verifier_sdiv/SDIV32, non-zero imm divisor, check 3 @unpriv:OK
torvalds#382/7   verifier_sdiv/SDIV32, non-zero imm divisor, check 4:OK
torvalds#382/8   verifier_sdiv/SDIV32, non-zero imm divisor, check 4 @unpriv:OK
torvalds#382/9   verifier_sdiv/SDIV32, non-zero imm divisor, check 5:OK
torvalds#382/10  verifier_sdiv/SDIV32, non-zero imm divisor, check 5 @unpriv:OK
torvalds#382/11  verifier_sdiv/SDIV32, non-zero imm divisor, check 6:OK
torvalds#382/12  verifier_sdiv/SDIV32, non-zero imm divisor, check 6 @unpriv:OK
torvalds#382/13  verifier_sdiv/SDIV32, non-zero imm divisor, check 7:OK
torvalds#382/14  verifier_sdiv/SDIV32, non-zero imm divisor, check 7 @unpriv:OK
torvalds#382/15  verifier_sdiv/SDIV32, non-zero imm divisor, check 8:OK
torvalds#382/16  verifier_sdiv/SDIV32, non-zero imm divisor, check 8 @unpriv:OK
torvalds#382/17  verifier_sdiv/SDIV32, non-zero reg divisor, check 1:OK
torvalds#382/18  verifier_sdiv/SDIV32, non-zero reg divisor, check 1 @unpriv:OK
torvalds#382/19  verifier_sdiv/SDIV32, non-zero reg divisor, check 2:OK
torvalds#382/20  verifier_sdiv/SDIV32, non-zero reg divisor, check 2 @unpriv:OK
torvalds#382/21  verifier_sdiv/SDIV32, non-zero reg divisor, check 3:OK
torvalds#382/22  verifier_sdiv/SDIV32, non-zero reg divisor, check 3 @unpriv:OK
torvalds#382/23  verifier_sdiv/SDIV32, non-zero reg divisor, check 4:OK
torvalds#382/24  verifier_sdiv/SDIV32, non-zero reg divisor, check 4 @unpriv:OK
torvalds#382/25  verifier_sdiv/SDIV32, non-zero reg divisor, check 5:OK
torvalds#382/26  verifier_sdiv/SDIV32, non-zero reg divisor, check 5 @unpriv:OK
torvalds#382/27  verifier_sdiv/SDIV32, non-zero reg divisor, check 6:OK
torvalds#382/28  verifier_sdiv/SDIV32, non-zero reg divisor, check 6 @unpriv:OK
torvalds#382/29  verifier_sdiv/SDIV32, non-zero reg divisor, check 7:OK
torvalds#382/30  verifier_sdiv/SDIV32, non-zero reg divisor, check 7 @unpriv:OK
torvalds#382/31  verifier_sdiv/SDIV32, non-zero reg divisor, check 8:OK
torvalds#382/32  verifier_sdiv/SDIV32, non-zero reg divisor, check 8 @unpriv:OK
torvalds#382/33  verifier_sdiv/SDIV64, non-zero imm divisor, check 1:OK
torvalds#382/34  verifier_sdiv/SDIV64, non-zero imm divisor, check 1 @unpriv:OK
torvalds#382/35  verifier_sdiv/SDIV64, non-zero imm divisor, check 2:OK
torvalds#382/36  verifier_sdiv/SDIV64, non-zero imm divisor, check 2 @unpriv:OK
torvalds#382/37  verifier_sdiv/SDIV64, non-zero imm divisor, check 3:OK
torvalds#382/38  verifier_sdiv/SDIV64, non-zero imm divisor, check 3 @unpriv:OK
torvalds#382/39  verifier_sdiv/SDIV64, non-zero imm divisor, check 4:OK
torvalds#382/40  verifier_sdiv/SDIV64, non-zero imm divisor, check 4 @unpriv:OK
torvalds#382/41  verifier_sdiv/SDIV64, non-zero imm divisor, check 5:OK
torvalds#382/42  verifier_sdiv/SDIV64, non-zero imm divisor, check 5 @unpriv:OK
torvalds#382/43  verifier_sdiv/SDIV64, non-zero imm divisor, check 6:OK
torvalds#382/44  verifier_sdiv/SDIV64, non-zero imm divisor, check 6 @unpriv:OK
torvalds#382/45  verifier_sdiv/SDIV64, non-zero reg divisor, check 1:OK
torvalds#382/46  verifier_sdiv/SDIV64, non-zero reg divisor, check 1 @unpriv:OK
torvalds#382/47  verifier_sdiv/SDIV64, non-zero reg divisor, check 2:OK
torvalds#382/48  verifier_sdiv/SDIV64, non-zero reg divisor, check 2 @unpriv:OK
torvalds#382/49  verifier_sdiv/SDIV64, non-zero reg divisor, check 3:OK
torvalds#382/50  verifier_sdiv/SDIV64, non-zero reg divisor, check 3 @unpriv:OK
torvalds#382/51  verifier_sdiv/SDIV64, non-zero reg divisor, check 4:OK
torvalds#382/52  verifier_sdiv/SDIV64, non-zero reg divisor, check 4 @unpriv:OK
torvalds#382/53  verifier_sdiv/SDIV64, non-zero reg divisor, check 5:OK
torvalds#382/54  verifier_sdiv/SDIV64, non-zero reg divisor, check 5 @unpriv:OK
torvalds#382/55  verifier_sdiv/SDIV64, non-zero reg divisor, check 6:OK
torvalds#382/56  verifier_sdiv/SDIV64, non-zero reg divisor, check 6 @unpriv:OK
torvalds#382/57  verifier_sdiv/SMOD32, non-zero imm divisor, check 1:OK
torvalds#382/58  verifier_sdiv/SMOD32, non-zero imm divisor, check 1 @unpriv:OK
torvalds#382/59  verifier_sdiv/SMOD32, non-zero imm divisor, check 2:OK
torvalds#382/60  verifier_sdiv/SMOD32, non-zero imm divisor, check 2 @unpriv:OK
torvalds#382/61  verifier_sdiv/SMOD32, non-zero imm divisor, check 3:OK
torvalds#382/62  verifier_sdiv/SMOD32, non-zero imm divisor, check 3 @unpriv:OK
torvalds#382/63  verifier_sdiv/SMOD32, non-zero imm divisor, check 4:OK
torvalds#382/64  verifier_sdiv/SMOD32, non-zero imm divisor, check 4 @unpriv:OK
torvalds#382/65  verifier_sdiv/SMOD32, non-zero imm divisor, check 5:OK
torvalds#382/66  verifier_sdiv/SMOD32, non-zero imm divisor, check 5 @unpriv:OK
torvalds#382/67  verifier_sdiv/SMOD32, non-zero imm divisor, check 6:OK
torvalds#382/68  verifier_sdiv/SMOD32, non-zero imm divisor, check 6 @unpriv:OK
torvalds#382/69  verifier_sdiv/SMOD32, non-zero reg divisor, check 1:OK
torvalds#382/70  verifier_sdiv/SMOD32, non-zero reg divisor, check 1 @unpriv:OK
torvalds#382/71  verifier_sdiv/SMOD32, non-zero reg divisor, check 2:OK
torvalds#382/72  verifier_sdiv/SMOD32, non-zero reg divisor, check 2 @unpriv:OK
torvalds#382/73  verifier_sdiv/SMOD32, non-zero reg divisor, check 3:OK
torvalds#382/74  verifier_sdiv/SMOD32, non-zero reg divisor, check 3 @unpriv:OK
torvalds#382/75  verifier_sdiv/SMOD32, non-zero reg divisor, check 4:OK
torvalds#382/76  verifier_sdiv/SMOD32, non-zero reg divisor, check 4 @unpriv:OK
torvalds#382/77  verifier_sdiv/SMOD32, non-zero reg divisor, check 5:OK
torvalds#382/78  verifier_sdiv/SMOD32, non-zero reg divisor, check 5 @unpriv:OK
torvalds#382/79  verifier_sdiv/SMOD32, non-zero reg divisor, check 6:OK
torvalds#382/80  verifier_sdiv/SMOD32, non-zero reg divisor, check 6 @unpriv:OK
torvalds#382/81  verifier_sdiv/SMOD64, non-zero imm divisor, check 1:OK
torvalds#382/82  verifier_sdiv/SMOD64, non-zero imm divisor, check 1 @unpriv:OK
torvalds#382/83  verifier_sdiv/SMOD64, non-zero imm divisor, check 2:OK
torvalds#382/84  verifier_sdiv/SMOD64, non-zero imm divisor, check 2 @unpriv:OK
torvalds#382/85  verifier_sdiv/SMOD64, non-zero imm divisor, check 3:OK
torvalds#382/86  verifier_sdiv/SMOD64, non-zero imm divisor, check 3 @unpriv:OK
torvalds#382/87  verifier_sdiv/SMOD64, non-zero imm divisor, check 4:OK
torvalds#382/88  verifier_sdiv/SMOD64, non-zero imm divisor, check 4 @unpriv:OK
torvalds#382/89  verifier_sdiv/SMOD64, non-zero imm divisor, check 5:OK
torvalds#382/90  verifier_sdiv/SMOD64, non-zero imm divisor, check 5 @unpriv:OK
torvalds#382/91  verifier_sdiv/SMOD64, non-zero imm divisor, check 6:OK
torvalds#382/92  verifier_sdiv/SMOD64, non-zero imm divisor, check 6 @unpriv:OK
torvalds#382/93  verifier_sdiv/SMOD64, non-zero imm divisor, check 7:OK
torvalds#382/94  verifier_sdiv/SMOD64, non-zero imm divisor, check 7 @unpriv:OK
torvalds#382/95  verifier_sdiv/SMOD64, non-zero imm divisor, check 8:OK
torvalds#382/96  verifier_sdiv/SMOD64, non-zero imm divisor, check 8 @unpriv:OK
torvalds#382/97  verifier_sdiv/SMOD64, non-zero reg divisor, check 1:OK
torvalds#382/98  verifier_sdiv/SMOD64, non-zero reg divisor, check 1 @unpriv:OK
torvalds#382/99  verifier_sdiv/SMOD64, non-zero reg divisor, check 2:OK
torvalds#382/100 verifier_sdiv/SMOD64, non-zero reg divisor, check 2 @unpriv:OK
torvalds#382/101 verifier_sdiv/SMOD64, non-zero reg divisor, check 3:OK
torvalds#382/102 verifier_sdiv/SMOD64, non-zero reg divisor, check 3 @unpriv:OK
torvalds#382/103 verifier_sdiv/SMOD64, non-zero reg divisor, check 4:OK
torvalds#382/104 verifier_sdiv/SMOD64, non-zero reg divisor, check 4 @unpriv:OK
torvalds#382/105 verifier_sdiv/SMOD64, non-zero reg divisor, check 5:OK
torvalds#382/106 verifier_sdiv/SMOD64, non-zero reg divisor, check 5 @unpriv:OK
torvalds#382/107 verifier_sdiv/SMOD64, non-zero reg divisor, check 6:OK
torvalds#382/108 verifier_sdiv/SMOD64, non-zero reg divisor, check 6 @unpriv:OK
torvalds#382/109 verifier_sdiv/SMOD64, non-zero reg divisor, check 7:OK
torvalds#382/110 verifier_sdiv/SMOD64, non-zero reg divisor, check 7 @unpriv:OK
torvalds#382/111 verifier_sdiv/SMOD64, non-zero reg divisor, check 8:OK
torvalds#382/112 verifier_sdiv/SMOD64, non-zero reg divisor, check 8 @unpriv:OK
torvalds#382/113 verifier_sdiv/SDIV32, zero divisor:OK
torvalds#382/114 verifier_sdiv/SDIV32, zero divisor @unpriv:OK
torvalds#382/115 verifier_sdiv/SDIV64, zero divisor:OK
torvalds#382/116 verifier_sdiv/SDIV64, zero divisor @unpriv:OK
torvalds#382/117 verifier_sdiv/SMOD32, zero divisor:OK
torvalds#382/118 verifier_sdiv/SMOD32, zero divisor @unpriv:OK
torvalds#382/119 verifier_sdiv/SMOD64, zero divisor:OK
torvalds#382/120 verifier_sdiv/SMOD64, zero divisor @unpriv:OK
torvalds#382     verifier_sdiv:OK
Summary: 5/163 PASSED, 0 SKIPPED, 0 FAILED

As the selftests don't compile for 32-bit architectures without
modifications due to long being 32-bit,
I have added new tests to lib/test_bpf.c for cpuv4 insns, all are passing:

test_bpf: Summary: 1052 PASSED, 0 FAILED, [891/1040 JIT'ed]
test_bpf: test_tail_calls: Summary: 10 PASSED, 0 FAILED, [10/10 JIT'ed]
test_bpf: test_skb_segment: Summary: 2 PASSED, 0 FAILED

[1] https://lore.kernel.org/all/[email protected]/
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexei Starovoitov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant