mirror of https://gitlab.freedesktop.org/mesa/mesa
fd9f7b748e
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> |
||
---|---|---|
.. | ||
_extra | ||
_exts | ||
ci | ||
drivers | ||
gallium | ||
isl | ||
nir | ||
relnotes | ||
vulkan | ||
ARB_color_buffer_float.txt | ||
README.UVD | ||
README.VCE | ||
amber.rst | ||
android.rst | ||
application-issues.rst | ||
bugs.rst | ||
codingstyle.rst | ||
conf.py | ||
conform.rst | ||
debugging.rst | ||
developers.rst | ||
devinfo.rst | ||
dispatch.rst | ||
download.rst | ||
doxygen-wrapper.py | ||
egl.rst | ||
envvars.rst | ||
extensions.rst | ||
faq.rst | ||
favicon.ico | ||
favicon.svg | ||
features.txt | ||
gallium-nine.rst | ||
gpu-perf-tracing.rst | ||
helpwanted.rst | ||
history.rst | ||
index.rst | ||
install.rst | ||
libGL.txt | ||
license.rst | ||
lists.rst | ||
macos.rst | ||
meson.rst | ||
opengles.rst | ||
osmesa.rst | ||
perf.rst | ||
perfetto.rst | ||
precompiled.rst | ||
release-calendar.csv | ||
release-calendar.rst | ||
release-maintainers-keys.asc | ||
releasing.rst | ||
relnotes.rst | ||
repository.rst | ||
rusticl.rst | ||
shading.rst | ||
sourcetree.rst | ||
submittingpatches.rst | ||
systems.rst | ||
thanks.rst | ||
u_trace.rst | ||
utilities.rst | ||
viewperf.rst | ||
xlibdriver.rst |
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.