Skip to content

improve definition of platform.features #622

@AkihiroSuda

Description

@AkihiroSuda

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

  • sse4a: SSE-4A

(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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions