mesa/src/util
Dave Airlie 11d2db17c5 util: rework AMD cpu L3 cache affinity code.
This changes how the L3 cache affinity code works out the affinity
masks. It works better with multi-CPU systems and should also be
capable of handling big/little type situations if they appear in
the future.

It now iterates over all CPU cores, gets the core count for each
CPU, and works out the L3_ID from the physical CPU ID, and
the current cores L3 cache. It then tracks how many L3 caches
it has seen and reallocate the affinity masks for each one.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4496
Fixes: d8ea509965 ("util: completely rewrite and do AMD Zen L3 cache pinning correctly")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9782>
2021-03-29 08:31:09 +00:00
..
format util: add new helper util_format_rgb_to_bgr 2021-03-19 16:05:02 +00:00
sha1 util: rename PIPE_ARCH_*_ENDIAN to UTIL_ARCH_*_ENDIAN 2019-11-05 16:39:55 +00:00
tests util/disk_cache: move cache tests to the util directory 2021-03-02 02:39:05 +00:00
00-mesa-defaults.conf driconf: add performance tweaks for viewperf 2021-03-08 10:33:33 +00:00
Android.mk android: driconf: Generate a static table when no xmlconfig 2021-03-01 20:52:28 +00:00
anon_file.c util/anon_file: add OpenBSD shm_mkstemp() path 2020-08-31 09:14:57 +00:00
anon_file.h util/anon_file: const string param 2019-08-08 22:02:54 +01:00
bigmath.h util: Add a simple big math library 2018-10-10 13:13:12 -05:00
bitscan.c util: only allow _BitScanReverse64 on 64-bit cpus 2019-09-02 12:45:45 +00:00
bitscan.h util/bitscan: add u_foreach_bit macros 2021-02-24 17:11:44 +00:00
bitset.h util/bitset: add a new last bit api 2021-03-10 06:16:05 +10:00
bitset_test.cpp util/tests: add basic unit tests for bitset 2019-05-03 15:23:04 +10:00
blob.c util: stop including files from mesa/main 2020-03-27 21:00:09 +00:00
blob.h util/blob: Add overwrite function for uint8 2020-03-20 17:25:25 +00:00
blob_test.c Move blob from compiler/ to util/ 2019-09-19 19:56:22 +00:00
build_id.c util/macros: Import ALIGN_POT from ralloc.c 2018-07-02 12:09:14 -07:00
build_id.h util: add missing extern C 2020-09-25 20:09:08 +00:00
cnd_monotonic.h util,radv: Cross-platform monotonic condition variable 2020-11-26 07:58:56 +00:00
compiler.h util: Disable [[fallthrough]] for C17 2020-12-02 19:35:59 +00:00
compress.c meson, util: Make zlib optional again 2021-03-19 19:33:59 +00:00
compress.h meson, util: Make zlib optional again 2021-03-19 19:33:59 +00:00
crc32.c
crc32.h
dag.c util: Add a DAG datastructure. 2019-03-11 13:13:52 -07:00
dag.h util: Add a DAG datastructure. 2019-03-11 13:13:52 -07:00
debug.c util: stop including files from mesa/main 2020-03-27 21:00:09 +00:00
debug.h Revert "util: Add helpers for various one-time-init patters" 2020-11-25 09:44:11 +00:00
detect_os.h util: introduce detect_os.h 2019-08-02 18:38:52 +01:00
disk_cache.c util/disk_cache: make MESA_DISK_CACHE_READ_ONLY_FOZ_DBS a relative path 2021-03-04 04:07:46 +00:00
disk_cache.h util/disk_cache: use a new cache dir for the single file cache feature 2021-02-21 02:50:45 +00:00
disk_cache_os.c util/disk_cache: add cache item headers to single file cache entries 2021-03-16 23:37:48 +00:00
disk_cache_os.h util/disk_cache: make MESA_DISK_CACHE_READ_ONLY_FOZ_DBS a relative path 2021-03-04 04:07:46 +00:00
double.c util: add fp64 -> fp32 conversion support for RTNE and RTZ rounding modes 2019-09-17 23:39:18 +03:00
double.h util: add fp64 -> fp32 conversion support for RTNE and RTZ rounding modes 2019-09-17 23:39:18 +03:00
driconf.h st/mesa: add a driconf option to transcode ETC2 to DXTC 2021-03-17 23:33:09 +00:00
driconf_static.py driconf: avoid Non-ASCII character error in driconf_static.py 2021-03-01 20:52:28 +00:00
enum_operators.h util: add helpers to define bitwise operators on enums for C++ 2020-09-01 17:45:08 +00:00
fast_idiv_by_const.c util: Use uint64_t for shifting left in sign_extend and strunc 2019-10-24 16:21:01 +02:00
fast_idiv_by_const.h util: document a limitation of util_fast_udiv32 2018-10-17 12:27:58 -04:00
fast_urem_by_const.h util: Add a helper for faster remainders 2019-05-31 19:14:27 +02:00
format_r11g11b10f.h
format_rgb9e5.h
format_srgb.h util/srgb: Add a float sRGB -> linear helper 2018-04-24 13:41:14 -07:00
format_srgb.py util: initialize float-array with float-literals 2020-01-14 12:00:27 +01:00
fossilize_db.c util/fossilize_db: remove compression from foz db helper 2021-03-15 03:34:48 +00:00
fossilize_db.h util/fossilize_db: remove compression from foz db helper 2021-03-15 03:34:48 +00:00
futex.h util: futex fixes for OpenBSD 2020-08-31 09:14:57 +00:00
half_float.c gallium/util: remove empty file u_half.h 2020-10-06 21:07:11 -04:00
half_float.h util: Add accessor for util_cpu_caps 2021-02-26 18:31:19 +00:00
hash_table.c util/hash_table: optimize rehash for empty table and no-func clears 2021-01-14 13:51:35 +00:00
hash_table.h util/hash_table: add _mesa_hash_data_with_seed function 2020-12-08 10:10:47 +01:00
libsync.h android: Add pre-4.7 Android kernel compatibility to our libsync header. 2020-10-19 18:41:50 +00:00
list.h util/list: use helper function in list_is_singular 2020-12-18 01:46:00 +00:00
log.c mesa: Promote Intel's simple logging façade for Android to util/ 2020-09-28 09:14:44 -07:00
log.h mesa: Promote Intel's simple logging façade for Android to util/ 2020-09-28 09:14:44 -07:00
macros.h macros: Add thread-safety annotation macros 2021-02-18 00:27:49 +00:00
Makefile.sources android: util: create some standalone compression helpers 2021-03-18 01:31:31 +00:00
memstream.c util: Disable memstream for Apple builds 2021-01-08 09:37:14 +00:00
memstream.h util,ac,aco,radv: Cross-platform memstream API 2020-10-19 03:37:42 -07:00
mesa-sha1.c util/mesa_sha1: add helper to reconvert sha1 hex strings 2021-02-21 02:50:45 +00:00
mesa-sha1.h util/mesa_sha1: add helper to reconvert sha1 hex strings 2021-02-21 02:50:45 +00:00
mesa-sha1_test.c
meson.build util: create some standalone compression helpers 2021-03-15 03:34:48 +00:00
os_file.c util: Make os_read_file use O_BINARY on Windows 2021-03-11 23:43:47 +00:00
os_file.h util: Make os_read_file use O_BINARY on Windows 2021-03-11 23:43:47 +00:00
os_memory.h Fix VMware capitalization. 2020-10-27 15:33:40 -07:00
os_memory_aligned.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
os_memory_debug.h util: move debug_memory_{begin,end} to os_memory_debug.h 2020-02-24 23:07:57 +00:00
os_memory_stdc.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
os_misc.c util: fix parsing of /proc/meminfo MemAvailable value 2021-02-17 08:06:15 +01:00
os_misc.h util: Add os_get_page_size query 2020-12-02 10:12:27 -08:00
os_socket.c util: fix possible fd leaks in os_socket_listen_abstract 2020-07-30 10:41:00 +00:00
os_socket.h util/os_socket: fix header unavailable on windows 2020-02-04 17:33:49 +00:00
os_time.c util/os_time: Safe os_time_get_nano for Windows 2020-11-26 07:58:56 +00:00
os_time.h util: Add os_localtime 2020-12-01 07:11:44 +00:00
process_test.c util/u_process: implement util_get_process_name for Windows 2020-11-12 11:49:12 +00:00
ralloc.c util/ralloc: fix ralloc alignment. 2020-08-21 18:22:21 +00:00
ralloc.h util/ralloc: Add helpers for growing zero-initialized memory 2019-05-14 12:30:22 -05:00
rand_xor.c util/rand_xor: extend the urandom path to all non-Windows platforms 2020-05-16 12:05:37 +00:00
rand_xor.h util/rand_xor: make it clear that {,s_}rand_xorshift128plus take *exactly 2* uint64_t 2020-05-16 12:05:37 +00:00
rb_tree.c util: rb-tree: A simple, invasive, red-black tree 2018-07-05 11:57:45 +01:00
rb_tree.h util/rb_tree: Stop relying on &iter->field != NULL 2019-09-26 20:36:41 +00:00
rb_tree_test.c util/rb_tree: Also test _safe iterators 2019-09-26 20:36:41 +00:00
register_allocate.c util/ra: Add [de]serialization support 2020-05-13 23:36:44 +00:00
register_allocate.h util/ra: Add [de]serialization support 2020-05-13 23:36:44 +00:00
rgtc.c
rgtc.h
roundeven_test.c
rounding.h util: When building 'ARM64EC', don't use x64 intrinsics which need to be emulated 2021-01-22 17:56:08 +00:00
rwlock.h util: Fix rwlock Windows include for MinGW 2020-10-20 08:33:42 +00:00
set.c util/set: stop leaking u32 key sets which pass a mem ctx 2021-03-24 23:32:40 +00:00
set.h util/set: split off create() into an init() function 2021-01-14 13:51:35 +00:00
simple_list.h
simple_mtx.h util: Add helgrind support for simple_mtx 2020-11-24 21:03:34 +00:00
slab.c util/slab: do not dereference NULL-pointer 2020-12-01 18:03:31 +00:00
slab.h util/slab: allow usage from c++ code 2020-11-10 15:37:07 +00:00
softfloat.c softfloat: Silence a warning at -Og 2021-02-18 20:59:43 +00:00
softfloat.h util: implement F16C using inline assembly on x86_64 2020-10-06 21:07:03 -04:00
sparse_array.c util/sparse_free_list: manipulate node pointers using atomic primitives 2020-04-18 12:18:03 +00:00
sparse_array.h util/sparse_array: Stash the node level in the node pointer 2020-03-20 15:31:10 -05:00
string_buffer.c util: use standard name for vsnprintf() 2019-07-19 22:39:38 +01:00
string_buffer.h
strndup.h
strtod.c
strtod.h
texcompress_rgtc_tmp.h
timespec.h lavapipe: fix usleep usage in lvp_device 2020-10-27 21:05:55 +00:00
u_atomic.c
u_atomic.h util: Use explicit relaxed reads for u_queue 2021-01-28 18:07:09 +00:00
u_atomic_test.c
u_cpu_detect.c util: rework AMD cpu L3 cache affinity code. 2021-03-29 08:31:09 +00:00
u_cpu_detect.h st/glthread: allow for invalid L3 cache id. 2021-03-29 08:31:09 +00:00
u_debug.c util: add a env getter for versions 2020-11-11 06:08:15 +10:00
u_debug.h util: Add helper to get FILE* options 2020-12-03 21:19:57 +00:00
u_debug_memory.c util: move debug_memory_{begin,end} to os_memory_debug.h 2020-02-24 23:07:57 +00:00
u_debug_stack.c util: Fix pointer to integer conversion error when using libunwind 2021-01-15 20:00:20 +00:00
u_debug_stack.h gallium/android: Rewrite backtrace helper for android 2020-08-05 18:08:06 +00:00
u_debug_stack_android.cpp gallium/android: Rewrite backtrace helper for android 2020-08-05 18:08:06 +00:00
u_debug_stack_test.cpp u_debug_stack_test: Fix MSVC compiling by using ATTRIBUTE_NOINLINE 2020-08-13 23:18:36 +00:00
u_debug_symbol.c util: Move stack debug functions to src/util 2020-08-05 18:08:06 +00:00
u_debug_symbol.h util: Move stack debug functions to src/util 2020-08-05 18:08:06 +00:00
u_drm.h util: Add a drm_find_modifier helper 2019-03-14 22:41:08 +00:00
u_dynarray.h u_dynarray: turn util_dynarray_{grow, resize} into element-oriented macros 2019-06-12 18:30:25 -04:00
u_endian.h util: unbreak endian detection on OpenBSD 2020-08-31 09:14:57 +00:00
u_idalloc.c util/idalloc: resize if ID is too large for reservation 2020-10-06 15:59:07 +00:00
u_idalloc.h util/idalloc: add lowest_free_idx to avoid iterating from 0 2020-09-10 09:07:11 +02:00
u_math.c util: Add accessor for util_cpu_caps 2021-02-26 18:31:19 +00:00
u_math.h mesa: Undefine ALIGN macro before it is used as a function name. Issues on MacOS. 2020-11-11 09:09:45 +00:00
u_memory.h util: Add an aligned realloc function 2020-04-21 11:09:03 -07:00
u_memset.h util: add optimised memset64 2021-02-22 00:30:46 +00:00
u_mm.c util: don't include p_defines.h and u_pointer.h from gallium 2020-03-27 21:00:10 +00:00
u_mm.h mesa/main/util: moving gallium u_mm to util, remove main/mm 2019-12-02 13:59:28 +01:00
u_printf.cpp util: add printf specifier shared helper code. 2020-12-29 09:07:23 +10:00
u_printf.h util: add printf specifier shared helper code. 2020-12-29 09:07:23 +10:00
u_process.c util: implement GET_PROGRAM_NAME for Haiku 2021-01-09 20:51:03 -06:00
u_process.h util/u_process: add util_get_process_exec_path 2020-03-24 08:30:34 +01:00
u_queue.c util: Always use timespec_get on Windows. 2021-03-02 14:37:46 +00:00
u_queue.h util: Use explicit relaxed reads for u_queue 2021-01-28 18:07:09 +00:00
u_string.h util: fix gcc vsnprintf overflow 2021-02-19 11:05:38 +00:00
u_thread.h util: Extract thread-id helpers from u_current 2021-03-11 04:42:15 +00:00
u_vector.c util: Use util_is_power_of_two_nonzero in u_vector 2018-03-29 14:09:28 -07:00
u_vector.h util: Promote __builtin_types_compatible_p compat 2020-12-10 16:48:36 +00:00
vma.c util/vma: Add a debug print helper 2020-05-13 23:36:44 +00:00
vma.h util/vma: Add a debug print helper 2020-05-13 23:36:44 +00:00
xmlconfig.c meson/xmlconfig: win32 regex fallback 2021-02-25 14:03:27 +00:00
xmlconfig.h xmlconfig: Disable WITH_XMLCONFIG on Windows 2020-12-14 17:28:04 +00:00
xxd.py util/xxd.py: Add an option for binary files 2020-10-07 21:52:04 +00:00
xxhash.h xxhash: update fallthrough comments 2020-12-01 10:04:41 +01:00