CC: [email protected] TO: Maarten Lankhorst <[email protected]> CC: "Thomas Hellström" <[email protected]>
tree: git://people.freedesktop.org/~thomash/linux thellstrom/locking-rework head: ab40727c3ac11d71edeb62fd40c1a92ec77d7467 commit: fb6922ca33087a7dcfd81591ba71fb2a6f623d30 [61/63] drm/i915: Finally remove obj->mm.lock. :::::: branch date: 34 hours ago :::::: commit date: 34 hours ago config: x86_64-randconfig-m001-20201026 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:234 i915_gem_shrink() error: uninitialized symbol 'err'. Old smatch warnings: drivers/gpu/drm/i915/gem/i915_gem_object.h:153 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 145) vim +/err +234 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c 2d6692e642e7ca0 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-04-20 69 eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 70 /** eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 71 * i915_gem_shrink - Shrink buffer object caches 56fa4bf2b2f0840 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-11-23 72 * @i915: i915 device eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 73 * @target: amount of memory to make available, in pages 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 74 * @nr_scanned: optional output for number of pages scanned (incremental) 70972f51819a22e drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 75 * @shrink: control flags for selecting cache types eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 76 * eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 77 * This function is the main interface to the shrinker. It will try to release eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 78 * up to @target pages of main memory backing storage from buffer objects. eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 79 * Selection of the specific caches can be done with @flags. This is e.g. useful eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 80 * when purgeable objects should be removed from caches preferentially. eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 81 * eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 82 * Note that it's not guaranteed that released amount is actually available as eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 83 * free system memory - the pages might still be in-used to due to other reasons eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 84 * (like cpu mmaps) or the mm core has reused them before we could grab them. eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 85 * Therefore code that needs to explicitly shrink buffer objects caches (e.g. to eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 86 * avoid deadlocks in memory reclaim) must fall back to i915_gem_shrink_all(). eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 87 * eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 88 * Also note that any kind of pinning (both per-vma address space pins and eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 89 * backing storage pins at the buffer object level) result in the shrinker code eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 90 * having to skip the object. eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 91 * eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 92 * Returns: eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 93 * The number of pages of backing storage actually released. eb0b44adc08c0be drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 94 */ be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 95 unsigned long fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 96 i915_gem_shrink(struct i915_gem_ww_ctx *ww, fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 97 struct drm_i915_private *i915, 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 98 unsigned long target, 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 99 unsigned long *nr_scanned, a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 100 unsigned int shrink) be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 101 { be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 102 const struct { be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 103 struct list_head *list; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 104 unsigned int bit; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 105 } phases[] = { 3b4fa9640ccded0 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-05-30 106 { &i915->mm.purge_list, ~0u }, ecab9be174d98ff drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 107 { ecab9be174d98ff drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 108 &i915->mm.shrink_list, ecab9be174d98ff drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 109 I915_SHRINK_BOUND | I915_SHRINK_UNBOUND ecab9be174d98ff drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 110 }, be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 111 { NULL, 0 }, be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 112 }, *phase; 538ef96b9dae7fe drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 113 intel_wakeref_t wakeref = 0; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 114 unsigned long count = 0; 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 115 unsigned long scanned = 0; fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 116 int err; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 117 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 118 trace_i915_gem_shrink(i915, target, shrink); 3abafa539d2c17d drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 119 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 120 /* 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 121 * Unbinding of objects will require HW access; Let us not wake the 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 122 * device just to recover a little memory. If absolutely necessary, 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 123 * we will force the wake during oom-notifier. 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 124 */ a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 125 if (shrink & I915_SHRINK_BOUND) { d858d5695f3897d drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Daniele Ceraolo Spurio 2019-06-13 126 wakeref = intel_runtime_pm_get_if_in_use(&i915->runtime_pm); 538ef96b9dae7fe drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 127 if (!wakeref) a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 128 shrink &= ~I915_SHRINK_BOUND; 538ef96b9dae7fe drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 129 } 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 130 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 131 /* 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 132 * When shrinking the active list, we should also consider active 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 133 * contexts. Active contexts are pinned until they are retired, and 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 134 * so can not be simply unbound to retire and unpin their pages. To 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 135 * shrink the contexts, we must wait until the gpu is idle and 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 136 * completed its switch to the kernel context. In short, we do 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 137 * not have a good mechanism for idling a specific context, but 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 138 * what we can do is give them a kick so that we do not keep idle 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 139 * contexts around longer than is necessary. 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 140 */ 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 141 if (shrink & I915_SHRINK_ACTIVE) 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 142 /* Retire requests to unpin all idle contexts */ 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 143 intel_gt_retire_requests(&i915->gt); 09137e945437611 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2020-07-08 144 be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 145 /* be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 146 * As we may completely rewrite the (un)bound list whilst unbinding be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 147 * (due to retiring requests) we have to strictly process only be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 148 * one element of the list at the time, and recheck the list be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 149 * on every iteration. be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 150 * be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 151 * In particular, we must hold a reference whilst removing the be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 152 * object as we may end up waiting for and/or retiring the objects. be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 153 * This might release the final reference (held by the active list) be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 154 * and result in the object being freed from under us. This is be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 155 * similar to the precautions the eviction code must take whilst be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 156 * removing objects. be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 157 * be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 158 * Also note that although these lists do not hold a reference to be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 159 * the object we can safely grab one here: The final object be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 160 * unreferencing and the bound_list are both protected by the be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 161 * dev->struct_mutex and so we won't ever be able to observe an be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 162 * object on the bound_list with a reference count equals 0. be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 163 */ be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 164 for (phase = phases; phase->list; phase++) { be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 165 struct list_head still_in_list; 2a1d775201081c4 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 166 struct drm_i915_gem_object *obj; a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 167 unsigned long flags; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 168 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 169 if ((shrink & phase->bit) == 0) be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 170 continue; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 171 be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 172 INIT_LIST_HEAD(&still_in_list); f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 173 f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 174 /* f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 175 * We serialize our access to unreferenced objects through f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 176 * the use of the struct_mutex. While the objects are not f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 177 * yet freed (due to RCU then a workqueue) we still want f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 178 * to be able to shrink their pages, so they remain on f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 179 * the unbound/bound list until actually freed. f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 180 */ a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 181 spin_lock_irqsave(&i915->mm.obj_lock, flags); 2a1d775201081c4 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 182 while (count < target && 2a1d775201081c4 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 183 (obj = list_first_entry_or_null(phase->list, 2a1d775201081c4 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 184 typeof(*obj), f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 185 mm.link))) { f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 186 list_move_tail(&obj->mm.link, &still_in_list); be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 187 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 188 if (shrink & I915_SHRINK_VMAPS && a4f5ea64f0a8185 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-28 189 !is_vmalloc_addr(obj->mm.mapping)) eae2c43b1233f81 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-04-08 190 continue; eae2c43b1233f81 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-04-08 191 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 192 if (!(shrink & I915_SHRINK_ACTIVE) && c03467ba40f783e drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-07-03 193 i915_gem_object_is_framebuffer(obj)) 5763ff04dc4ebdd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 194 continue; 5763ff04dc4ebdd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 195 c1a415e261aad09 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 196 if (!can_release_pages(obj)) c1a415e261aad09 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 197 continue; c1a415e261aad09 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 198 0bd6cb6b58f7332 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 199 if (!kref_get_unless_zero(&obj->base.refcount)) 0bd6cb6b58f7332 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 200 continue; 0bd6cb6b58f7332 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 201 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 202 spin_unlock_irqrestore(&i915->mm.obj_lock, flags); f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 203 fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 204 err = 0; fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 205 if (unsafe_drop_pages(obj, shrink)) { 7b7a119e8546e27 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-31 206 /* May arrive from get_pages on another bo */ fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 207 if (!ww) { fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 208 if (!i915_gem_object_trylock(obj)) fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 209 goto skip; fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 210 } else { fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 211 err = i915_gem_object_lock(obj, ww); fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 212 if (err) fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 213 goto skip; fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 214 } fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 215 fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 216 if (!__i915_gem_object_put_pages(obj)) { a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 217 try_to_writeback(obj, shrink); be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 218 count += obj->base.size >> PAGE_SHIFT; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 219 } fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 220 if (!ww) fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 221 i915_gem_object_unlock(obj); 1233e2db199dea0 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-28 222 } 0bd6cb6b58f7332 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 223 4e773c3a8a693e5 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-13 224 scanned += obj->base.size >> PAGE_SHIFT; fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 225 skip: 0bd6cb6b58f7332 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 226 i915_gem_object_put(obj); f2123818ffad033 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 227 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 228 spin_lock_irqsave(&i915->mm.obj_lock, flags); fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 229 if (err) fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 230 break; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 231 } 535972771d8c99d drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-11-01 232 list_splice_tail(&still_in_list, phase->list); a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 233 spin_unlock_irqrestore(&i915->mm.obj_lock, flags); fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 @234 if (err) fb6922ca33087a7 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 235 return err; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 236 } be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 237 a8cff4c8283af35 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 238 if (shrink & I915_SHRINK_BOUND) d858d5695f3897d drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Daniele Ceraolo Spurio 2019-06-13 239 intel_runtime_pm_put(&i915->runtime_pm, wakeref); 178a30c90ac74e6 drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 240 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 241 if (nr_scanned) 912d572d63b8cd1 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 242 *nr_scanned += scanned; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 243 return count; be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 244 } be6a03769504753 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 245 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
