lix/src/libstore
Daniël de Kok 2de232d2b3 Add x86_64 compute levels as additional system types
When performing distributed builds of machine learning packages, it
would be nice if builders without the required SIMD instructions can
be excluded as build nodes.

Since x86_64 has accumulated a large number of different instruction
set extensions, listing all possible extensions would be unwieldy.
AMD, Intel, Red Hat, and SUSE have recently defined four different
microarchitecture levels that are now part of the x86-64 psABI
supplement and will be used in glibc 2.33:

https://gitlab.com/x86-psABIs/x86-64-ABI
https://lwn.net/Articles/844831/

This change uses libcpuid to detect CPU features and then uses them to
add the supported x86_64 levels to the additional system types. For
example on a Ryzen 3700X:

$ ~/aps/bin/nix -vv --version | grep "Additional system"
Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
2021-02-22 09:11:15 +01:00
..
build Add more instrumentation for #4270 2021-02-05 15:57:33 +01:00
builtins Improve error formatting 2021-01-21 11:02:09 +01:00
binary-cache-store.cc Revert "narinfo: Change NAR URLs to be addressed on the NAR hash instead of the compressed hash" 2021-02-09 12:26:41 -05:00
binary-cache-store.hh Expose schedule entrypoints to all stores 2020-12-23 22:42:06 +00:00
builtins.hh buildenv: Eliminate global variables, other cleanup 2020-03-24 14:06:47 +01:00
ca-specific-schema.sql Rework the db schema for derivation outputs 2020-12-11 20:41:32 +01:00
content-address.cc Style fixes 2020-09-22 11:40:19 +02:00
content-address.hh Add ContentAddressMethod and parse/render it 2020-09-17 20:21:04 +02:00
crypto.cc Make sodium a required dependency 2021-01-06 17:56:53 +01:00
crypto.hh crypto.cc: API cleanup and add generate() / to_string() methods 2021-01-06 17:04:46 +01:00
daemon.cc Store metadata about drv outputs realisations 2020-12-11 20:41:32 +01:00
daemon.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
derivations.cc Fix the detection of already built drv outputs 2020-12-17 11:35:24 +01:00
derivations.hh Fix the detection of already built drv outputs 2020-12-17 11:35:24 +01:00
dummy-store.cc Expose schedule entrypoints to all stores 2020-12-23 22:42:06 +00:00
export-import.cc nix::worker_proto -> worker_proto 2020-09-30 00:41:18 +00:00
filetransfer.cc Drop trailing whitespace 2021-01-27 14:04:49 +01:00
filetransfer.hh Add 'nix store prefetch-{file,tarball}' 2021-01-07 21:51:46 +01:00
fs-accessor.hh Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
gc.cc Handle amount of disk space saved by hard linking being negative 2020-10-12 16:06:38 +00:00
globals.cc Add x86_64 compute levels as additional system types 2021-02-22 09:11:15 +01:00
globals.hh Merge pull request #4310 from matthewbauer/rosetta2-extra-platforms 2021-01-06 11:31:13 +01:00
http-binary-cache-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
legacy-ssh-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
local-binary-cache-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
local-fs-store.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
local-fs-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
local-store.cc Merge pull request #4467 from edolstra/error-formatting 2021-01-25 12:50:57 +01:00
local-store.hh Make public keys and requireSigs local-store specific again 2021-01-15 16:37:41 +00:00
local.mk Rework the db schema for derivation outputs 2020-12-11 20:41:32 +01:00
lock.cc Trim lock.cc 2020-10-11 16:44:19 +00:00
lock.hh Trim lock.hh 2020-10-11 16:44:07 +00:00
machines.cc Make system-features a store setting 2020-08-12 18:13:00 +00:00
machines.hh Make system-features a store setting 2020-08-12 18:13:00 +00:00
misc.cc Make public keys and requireSigs local-store specific again 2021-01-15 16:37:41 +00:00
names.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
names.hh Don't include <regex> in header files 2020-09-21 18:22:45 +02:00
nar-accessor.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
nar-accessor.hh NarAccessor: Run in constant memory 2020-07-13 17:30:42 +02:00
nar-info-disk-cache.cc --refresh: Imply setting .narinfo disk cache TTL to 0 2021-01-18 14:38:31 +01:00
nar-info-disk-cache.hh Misc changes from the flakes branch 2020-03-24 14:34:47 +01:00
nar-info.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
nar-info.hh Minimize the usage of Hash::dummy 2020-08-06 18:31:48 +00:00
nix-store.pc.in pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
optimise-store.cc Improve error formatting 2021-01-21 11:02:09 +01:00
parsed-derivations.cc Don't let 'preferLocalBuild' override 'max-jobs=0' 2021-01-12 01:28:00 +01:00
parsed-derivations.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
path-info.hh LocalStore: Get rid of recursive_mutex 2020-11-03 14:45:24 +01:00
path.cc toStorePath(): Return a StorePath and the suffix 2020-07-13 16:25:48 +02:00
path.hh Merge remote-tracking branch 'origin/master' into substitute-other-storedir 2020-07-02 11:14:04 -04:00
pathlocks.cc convert some printError calls to logError 2020-05-03 08:01:25 -06:00
pathlocks.hh Use BSD instead of POSIX file locks 2019-08-02 18:39:16 +02:00
profiles.cc string2Int(): Return std::optional 2021-01-08 12:22:21 +01:00
profiles.hh createGeneration(): Take a StorePath 2020-09-03 11:06:56 +02:00
realisation.cc Remove the visit machinery in RealisedPath 2021-02-05 11:42:33 +01:00
realisation.hh Remove the visit machinery in RealisedPath 2021-02-05 11:42:33 +01:00
references.cc scanForReferences: Remove misleading comment 2020-12-28 17:21:19 +01:00
references.hh Sink: Use std::string_view 2020-12-02 14:17:27 +01:00
remote-fs-accessor.cc Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
remote-fs-accessor.hh Use the fs accessor for readInvalidDerivation 2020-12-15 20:10:46 +01:00
remote-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
remote-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3-binary-cache-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3-binary-cache-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
s3.hh DataTransfer -> FileTransfer 2020-04-08 22:26:57 +02:00
sandbox-defaults.sb sandbox: fix /bin/sh on catalina 2020-03-20 22:12:30 +01:00
sandbox-minimal.sb Always use the Darwin sandbox 2017-06-06 18:44:49 +02:00
sandbox-network.sb OS X sandbox: Improve builtin sandbox profile 2017-05-31 17:25:51 +02:00
schema.sql Mark content-addressed paths in the Nix database and in .narinfo 2016-08-10 18:05:35 +02:00
serve-protocol.hh Make adding paths via nix-store --serve run in constant memory 2018-08-03 21:21:16 +02:00
sqlite.cc Improve error formatting 2021-01-21 11:02:09 +01:00
sqlite.hh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
ssh-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
ssh.cc Revert the enum struct change 2020-06-18 22:11:26 +00:00
ssh.hh SSHMaster: Bypass SSH when connecting to localhost 2018-08-03 21:20:38 +02:00
store-api.cc Merge pull request #4461 from NixOS/ca/error-logging-fixes 2021-01-29 16:12:50 +01:00
store-api.hh Improve documentation and test and requested 2021-01-22 15:58:58 +00:00
uds-remote-store.cc Overhaul store subclassing 2020-12-20 15:47:14 +00:00
uds-remote-store.hh Overhaul store subclassing 2020-12-20 15:47:14 +00:00
worker-protocol.hh Store metadata about drv outputs realisations 2020-12-11 20:41:32 +01:00