Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Introduce concept of conformance groups

The discussion of what the actual conformance groups should be
is still in progress, so this is just part 1 which only uses
"legacy" for deprecated instructions and "basic" for everything
else. Subsequent patches will add more groups as discussion
continues.

Signed-off-by: Dave Thaler <dthaler1968@gmail.com>
Acked-by: David Vernet <void@manifault.com>
Link: https://lore.kernel.org/r/20240108214231.5280-1-dthaler1968@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Dave Thaler and committed by
Alexei Starovoitov
81777efb 15b8b0be

+25 -1
+25 -1
Documentation/bpf/standardization/instruction-set.rst
··· 97 97 A: 10000110 98 98 B: 11111111 10000110 99 99 100 + Conformance groups 101 + ------------------ 102 + 103 + An implementation does not need to support all instructions specified in this 104 + document (e.g., deprecated instructions). Instead, a number of conformance 105 + groups are specified. An implementation must support the "basic" conformance 106 + group and may support additional conformance groups, where supporting a 107 + conformance group means it must support all instructions in that conformance 108 + group. 109 + 110 + The use of named conformance groups enables interoperability between a runtime 111 + that executes instructions, and tools as such compilers that generate 112 + instructions for the runtime. Thus, capability discovery in terms of 113 + conformance groups might be done manually by users or automatically by tools. 114 + 115 + Each conformance group has a short ASCII label (e.g., "basic") that 116 + corresponds to a set of instructions that are mandatory. That is, each 117 + instruction has one or more conformance groups of which it is a member. 118 + 119 + The "basic" conformance group includes all instructions defined in this 120 + specification unless otherwise noted. 121 + 100 122 Instruction encoding 101 123 ==================== 102 124 ··· 632 610 633 611 BPF previously introduced special instructions for access to packet data that were 634 612 carried over from classic BPF. However, these instructions are 635 - deprecated and should no longer be used. 613 + deprecated and should no longer be used. All legacy packet access 614 + instructions belong to the "legacy" conformance group instead of the "basic" 615 + conformance group.