mesa/docs
Dmitry Osipenko fd9f7b748e util/mesa-db: Introduce multipart mesa-db cache
Whenever a single file mesa-db cache hits max size limit, a half of cache
is evicted and the cache file is defragmented. The downside of this eviction
strategy is that it causes high disk IO usage during eviction if mesa-db
cache file size is large.

In order to mitigate this downside, we will split mesa-db into multiple
part such that only one part will be evicted at a time. Each part will be
an individual single file mesa-db cache, like a DB shard. The new multipart
mesa-db cache will merge the parts into a single virtual cache.

This patch introduces two new environment variables:

1. MESA_DISK_CACHE_DATABASE_NUM_PARTS:
Controls number of mesa-db cache file parts. By default 50 parts will be
created. The old pre-multipart mesa-db cache files will be auto-removed
if they exist, i.e. Mesa will switch to the new DB version automatically.

2. MESA_DISK_CACHE_DATABASE_EVICTION_SCORE_2X_PERIOD:
Controls the eviction score doubling time period. The evicted DB part
selection is based on cache entries size weighted by 'last_access_time' of
the entries. By default the cache eviction score is doubled for each month
of cache entry age, i.e. for two equally sized entries where one entry is
older by one month than the other, the older entry will have x2 eviction
score than the other entry. Database part with a highest total eviction
score is selected for eviction.

This patch brings x40 performance improvement of cache eviction time using
multipart cache vs a single file cache due to a smaller eviction portions
and more optimized eviction algorithm.

Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20256>
2023-02-01 02:47:30 +00:00
..
_extra
_exts docs: drop custom envvar directive 2022-11-15 11:25:05 +01:00
ci ci: Update the skqp testing docs and retire the old runner script. 2023-01-04 00:34:33 +00:00
drivers docs: Add GL 4.3 support info in mesa docs 2023-01-30 18:57:17 +00:00
gallium gallium: Add cap to request state validation for all dirty state 2023-01-12 08:34:49 +00:00
isl docs: use ext-role for GL / VK extensions 2022-11-09 16:10:55 +00:00
nir docs: remove needless c:expr roles 2022-11-09 12:09:17 +00:00
relnotes docs/relnotes: add sha256sum for 22.3.4 2023-01-26 17:37:55 +00:00
vulkan docs: use ext-role for GL / VK extensions 2022-11-09 16:10:55 +00:00
ARB_color_buffer_float.txt
README.UVD
README.VCE
amber.rst docs: use anonymous links when possible 2022-11-07 10:58:12 +00:00
android.rst
application-issues.rst
bugs.rst
codingstyle.rst docs: upgrade some links to https 2022-11-07 10:58:12 +00:00
conf.py docs: do not linkcheck relnotes 2022-11-10 17:26:19 +01:00
conform.rst
debugging.rst docs: debugging: Fix path to dlist.c 2023-01-12 13:57:41 +00:00
developers.rst
devinfo.rst
dispatch.rst glx,dri: simplify indirect function call syntax 2022-11-27 02:52:41 +00:00
download.rst docs: apply some redirects 2022-11-10 17:26:19 +01:00
doxygen-wrapper.py
egl.rst docs: do not mention EGL_MESA_drm_display 2022-11-15 10:01:15 +00:00
envvars.rst util/mesa-db: Introduce multipart mesa-db cache 2023-02-01 02:47:30 +00:00
extensions.rst
faq.rst docs: apply some redirects 2022-11-10 17:26:19 +01:00
favicon.ico
favicon.svg
features.txt docs: list anv in EXT_extended_dynamic_state3 support 2023-01-31 22:34:07 +00:00
gallium-nine.rst meson: use a feature option for dri3 2023-01-19 16:29:03 +00:00
gpu-perf-tracing.rst
helpwanted.rst
history.rst docs: drop manual URL encoding 2022-11-10 17:17:55 +01:00
index.rst docs: apply some redirects 2022-11-10 17:26:19 +01:00
install.rst docs: Lower Python requirement to 3.6 2023-01-25 21:21:17 +00:00
libGL.txt docs: XFree86 source files in libGL.txt are out date, remove it 2022-11-03 16:07:31 +00:00
license.rst
lists.rst docs: apply some redirects 2022-11-10 17:26:19 +01:00
macos.rst docs: use anonymous links when possible 2022-11-07 10:58:12 +00:00
meson.rst docs: remove rogue "the" 2022-11-15 10:01:15 +00:00
opengles.rst meson: use a feature option for gles2 2023-01-19 16:29:03 +00:00
osmesa.rst
perf.rst
perfetto.rst docs/perfetto: Fix the name of the i915 render stages data sources. 2023-01-12 20:21:03 +00:00
precompiled.rst
release-calendar.csv docs: update calendar for 22.3.4 2023-01-26 17:37:59 +00:00
release-calendar.rst
release-maintainers-keys.asc
releasing.rst docs/releasing: add convenient command to rebase everything since last release 2022-11-14 20:06:44 +00:00
relnotes.rst docs: add release notes for 22.3.4 2023-01-26 17:37:44 +00:00
repository.rst docs: apply some redirects 2022-11-10 17:26:19 +01:00
rusticl.rst rusticl: fix build error with valgrind being enabled 2023-01-30 03:41:39 +01:00
shading.rst docs: update link to glsl 2022-11-10 17:17:35 +01:00
sourcetree.rst pan/bi: Rename panfrost/bifrost -> panfrost/compiler 2023-01-02 17:54:48 +00:00
submittingpatches.rst
systems.rst
thanks.rst docs: use ext-role for GL / VK extensions 2022-11-09 16:10:55 +00:00
u_trace.rst intel/ds: add INTEL_GPU_TRACEPOINT envvar to toggle tracepoints 2023-01-13 01:22:15 +00:00
utilities.rst docs: utilities: Update list of development utilities 2023-01-12 13:57:41 +00:00
viewperf.rst docs: update links to SPECviewperf 11/12 2022-11-10 17:26:19 +01:00
xlibdriver.rst docs: remove stale envvar-reference 2022-11-15 11:25:05 +01:00

README.VCE

The software may implement third party technologies (e.g. third party
libraries) that are not licensed to you by AMD and for which you may need
to obtain licenses from other parties.  Unless explicitly stated otherwise,
these third party technologies are not licensed hereunder.  Such third
party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4,
AVC, and VC-1.  

For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY
PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT
PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers
Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A.

WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied
warranties, so the above exclusion may not apply to You.

LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT,
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You
for all damages, losses, and causes of action (whether in contract, tort
(including negligence) or otherwise) exceed the amount of $100 USD.  You agree
to defend, indemnify and hold harmless AMD and its licensors, and any of their
directors, officers, employees, affiliates or agents from and against any and
all loss, damage, liability and other expenses (including reasonable
attorneys' fees), resulting from Your use of the Software or violation of the
terms and conditions of this Agreement.

U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
its successor.  Use of the Software by the Government constitutes
acknowledgement of AMD's proprietary rights in them.

EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
stated in the Software License Agreement.