https://github.com/opencontainers/image-spec/blob/ab461b048bd1c8b6077d8e96936f706a518233c2/image-index.md
This OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature (for example sse4 or aes).
The definition of platform.features seems vague.
At first glance, I thought the values are adopted from Linux /proc/cpuinfo, but I learned that the cpuinfo file never contains sse4.
http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean
Intel-defined CPU features, CPUID level 0x00000001 (ecx)
- sse4_1: SSE-4.1
- sse4_2: SSE-4.2
More extended AMD flags: CPUID level 0x80000001, ecx
(Note: AMD's SSE-4A is completely unrelated to Intel's SSE4 http://www.cpu-world.com/Glossary/S/SSE4a.html)
How about improving the definition like this:
This OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature.
Values for features SHOULD use, and implementations SHOULD understand, flags entries listed in the Linux /proc/cpuinfo file. If an architecture is not supported by Linux, it SHOULD be submitted to this specification for standardization.
For example, sse4_1 or aes on the amd64 and i386 architecture.
Also, for compatibility with Docker images, implementations SHOULD understand the following features values as well:
| Architecture |
Docker-compatible value |
OCI standard value |
amd64, i386 |
sse4 |
sse4_1 |
https://github.com/opencontainers/image-spec/blob/ab461b048bd1c8b6077d8e96936f706a518233c2/image-index.md
The definition of
platform.featuresseems vague.At first glance, I thought the values are adopted from Linux
/proc/cpuinfo, but I learned that thecpuinfofile never containssse4.http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean
(Note: AMD's SSE-4A is completely unrelated to Intel's SSE4 http://www.cpu-world.com/Glossary/S/SSE4a.html)
How about improving the definition like this:
This OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature.
Values for
featuresSHOULD use, and implementations SHOULD understand,flagsentries listed in the Linux/proc/cpuinfofile. If an architecture is not supported by Linux, it SHOULD be submitted to this specification for standardization.For example,
sse4_1oraeson theamd64andi386architecture.Also, for compatibility with Docker images, implementations SHOULD understand the following
featuresvalues as well:amd64,i386sse4sse4_1