Cap the number of client-side entries in gpu::ClientFontManager and gpu::ClientTransferCache. |
|
Issue descriptionThe gpu::ClientFontManager and gpu::ClientTransferCache are 2 users of the discardable handle system that have tracking data structures with caching on the GPU service and tracking for discardable handles mapping to these entries. Currently the pattern of eviction in these client side data structures is to evict the tracking if locking an entry fails. Since the attempt to lock is only made when an entry is reused, this could potentially grow these tracking structures unbounded. We should have a cap beyond which the client proactively checks whether any entry was deleted to remove it from its tracking.
,
Aug 31
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55 commit f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55 Author: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Date: Fri Aug 31 19:00:11 2018 Roll src/third_party/skia 7ed0eae0cd13..9951cbf4ca79 (58 commits) https://skia.googlesource.com/skia.git/+log/7ed0eae0cd13..9951cbf4ca79 git log 7ed0eae0cd13..9951cbf4ca79 --date=short --no-merges --format='%ad %ae %s' 2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms a6687f8b4d51..80e0493eab5f (1 commits) 2018-08-31 mtklein@google.com update CPU feature macros in src/opts 2018-08-31 khushalsagar@chromium.org fonts: Cap the max number of entries in server side glyph cache tracking 2018-08-31 brianosman@google.com Add support for gray + colorspace to SkCodec 2018-08-31 herb@google.com Extract SkGlyphRunListPainter from SkGlyphRun.* 2018-08-31 mtklein@google.com Reland "standardize macro checks in SkRasterPipeline_opts" 2018-08-31 ethannicholas@google.com fixed uninitialized memory use in arithmetic effect 2018-08-31 bsalomon@google.com Make GrSemaphore a GrGpuResource 2018-08-31 mtklein@google.com Revert "standardize macro checks in SkRasterPipeline_opts" 2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 018002b16a8a..a6687f8b4d51 (1 commits) 2018-08-31 michaelludwig@google.com Refactor 'in uniform' CPP code generation 2018-08-31 fmalita@chromium.org [skottie] SkTArray begone 2018-08-31 benjaminwagner@google.com Move gbr-gl config from GTX1070 to QuadroP400. 2018-08-31 kjlubick@google.com [PathKit] Remove experimental- from package names 2018-08-31 mtklein@google.com update SkPreConfig a little 2018-08-31 mtklein@google.com standardize macro checks in SkRasterPipeline_opts 2018-08-31 csmartdalton@google.com Revert "ccpr: Implement stroking with fine triangle strips" 2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-31 kjlubick@google.com [PathKit] Move from experimental to modules 2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-31 egdaniel@google.com Add support for switching family queues in vulkan. 2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms b116880ba8e8..018002b16a8a (1 commits) 2018-08-31 mtklein@google.com Revert "update SkPaint size sanity check" 2018-08-31 csmartdalton@google.com ccpr: Implement stroking with fine triangle strips 2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 5ac66b04c9e3..b116880ba8e8 (1 commits) 2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-31 robertphillips@google.com Fix Fuchsia roll 2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-31 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 1bf963b62929..fd1621076a74 (1 commits) 2018-08-31 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 62cfbb9c7876..5fb5e817a20d (1 commits) 2018-08-30 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 4bbff9eb88c1..62cfbb9c7876 (2 commits) 2018-08-30 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 44b2c0b1d349..1bf963b62929 (1 commits) 2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-30 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 6b324dbdf772..5ac66b04c9e3 (1 commits) 2018-08-30 mtklein@google.com Another manual ANGLE roll 2018-08-30 bungeman@google.com Detect when a FreeType glyph doesn't have a path. 2018-08-30 michaelludwig@google.com Support input color argument to process() function in sksl .fp files 2018-08-30 michaelludwig@google.com Remove GrTextureStripAtlas, textured gradients use independent textures 2018-08-30 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 60f8662dc0ef..4bbff9eb88c1 (1 commits) 2018-08-30 herb@google.com Remove drawPosText from SkDevice 2018-08-30 herb@google.com Reland "Check that mask to path fallback happens" 2018-08-30 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 ddc41208c15f..e1037e9be377 (5 commits) 2018-08-30 michaelludwig@google.com Improve inputColor handling in fragment processor implementations. 2018-08-30 herb@google.com Remove drawPosText from svg 2018-08-30 herb@google.com Remove drawPosText_asPath - more dead code 2018-08-30 kjlubick@google.com [Skottie] Fallback to portable font manager 2018-08-30 hcm@google.com Update Skia milestone to 71 2018-08-30 bsalomon@google.com Some GrSemaphore cleanup 2018-08-30 robertphillips@google.com Suppress addition of changeListeners during DDL recording 2018-08-30 herb@google.com Remove drawPosText support for SkBitmapDevice 2018-08-30 ethannicholas@google.com converted arithmetic FP to new FP structure 2018-08-30 robertphillips@google.com Always force GPU generated masks be top left (take 2) 2018-08-30 caryclark@skia.org remove scaling from pathops 2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial). 2018-08-30 egdaniel@google.com Fix vulkan validation layer ordering. 2018-08-30 mtklein@google.com roll ANGLE w/ GN update 2018-08-30 kjlubick@google.com Add FuzzPathop to oss-fuzz Created with: gclient setdep -r src/third_party/skia@9951cbf4ca79 The AutoRoll server is located here: https://autoroll.skia.org/r/skia-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel BUG=chromium:878966, chromium:876767 , chromium:878195 TBR=stephana@chromium.org Change-Id: I27daf0f7bd593680846006414e16f44b47182f8d Reviewed-on: https://chromium-review.googlesource.com/1199688 Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#588104} [modify] https://crrev.com/f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55/DEPS
,
Sep 4
I've landed the fix for these for ClientFontManager. What's remaining is ClientTransferCache.
,
Sep 5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9cf39c65e0d51d1a1059de77dd32ee0869730253 commit 9cf39c65e0d51d1a1059de77dd32ee0869730253 Author: Khushal <khushalsagar@chromium.org> Date: Tue Sep 04 17:54:59 2018 gpu: Evict discardable entries from ClientFontManager. Implement the skia API for checking whether an entry has been deleted on the service and use it to clear any tracking for discardable handles. R=ericrk@chromium.org Bug: 878966 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: If599507c77c747910b3ac0b5a4da1db5a66388d9 Reviewed-on: https://chromium-review.googlesource.com/1196018 Reviewed-by: Eric Karl <ericrk@chromium.org> Commit-Queue: Khushal <khushalsagar@chromium.org> Cr-Commit-Position: refs/heads/master@{#588582} [modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_discardable_manager.cc [modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_discardable_manager.h [modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_font_manager.cc [modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_font_manager.h |
|
►
Sign in to add a comment |
|
Comment 1 by bugdroid1@chromium.org
, Aug 31