| /linux/drivers/gpu/drm/i915/ |
| H A D | i915_gem_ww.c | 9 void i915_gem_ww_ctx_init(struct i915_gem_ww_ctx *ww, bool intr) in i915_gem_ww_ctx_init() argument 11 ww_acquire_init(&ww->ctx, &reservation_ww_class); in i915_gem_ww_ctx_init() 12 INIT_LIST_HEAD(&ww->obj_list); in i915_gem_ww_ctx_init() 13 ww->intr = intr; in i915_gem_ww_ctx_init() 14 ww->contended = NULL; in i915_gem_ww_ctx_init() 17 static void i915_gem_ww_ctx_unlock_all(struct i915_gem_ww_ctx *ww) in i915_gem_ww_ctx_unlock_all() argument 21 while ((obj = list_first_entry_or_null(&ww->obj_list, struct drm_i915_gem_object, obj_link))) { in i915_gem_ww_ctx_unlock_all() 35 void i915_gem_ww_ctx_fini(struct i915_gem_ww_ctx *ww) in i915_gem_ww_ctx_fini() argument 37 i915_gem_ww_ctx_unlock_all(ww); in i915_gem_ww_ctx_fini() 38 WARN_ON(ww->contended); in i915_gem_ww_ctx_fini() [all …]
|
| H A D | i915_gem_evict.c | 67 static bool grab_vma(struct i915_vma *vma, struct i915_gem_ww_ctx *ww) in grab_vma() argument 74 if (!i915_gem_object_trylock(vma->obj, ww)) { in grab_vma() 97 struct i915_gem_ww_ctx *ww, in mark_free() argument 105 if (!grab_vma(vma, ww)) in mark_free() 149 struct i915_gem_ww_ctx *ww, in i915_gem_evict_something() argument 230 if (mark_free(&scan, ww, vma, flags, &eviction_list)) in i915_gem_evict_something() 305 grab_vma(vma, ww)) { in i915_gem_evict_something() 329 struct i915_gem_ww_ctx *ww, in i915_gem_evict_for_node() argument 410 if (!grab_vma(vma, ww)) { in i915_gem_evict_for_node() 458 int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww, in i915_gem_evict_vm() argument [all …]
|
| H A D | i915_gem_evict.h | 17 struct i915_gem_ww_ctx *ww, 23 struct i915_gem_ww_ctx *ww, 27 struct i915_gem_ww_ctx *ww,
|
| H A D | i915_gem_ww.h | 23 static inline int __i915_gem_ww_fini(struct i915_gem_ww_ctx *ww, int err) in __i915_gem_ww_fini() argument 26 err = i915_gem_ww_ctx_backoff(ww); in __i915_gem_ww_fini() 32 i915_gem_ww_ctx_fini(ww); in __i915_gem_ww_fini()
|
| H A D | i915_gem_gtt.c | 97 struct i915_gem_ww_ctx *ww, in i915_gem_gtt_reserve() argument 122 err = i915_gem_evict_for_node(vm, ww, node, flags); in i915_gem_gtt_reserve() 190 struct i915_gem_ww_ctx *ww, in i915_gem_gtt_insert() argument 276 err = i915_gem_gtt_reserve(vm, ww, node, size, offset, color, flags); in i915_gem_gtt_insert() 284 err = i915_gem_evict_something(vm, ww, size, alignment, color, in i915_gem_gtt_insert()
|
| H A D | i915_gem.c | 309 struct i915_gem_ww_ctx ww; in i915_gem_gtt_prepare() local 312 i915_gem_ww_ctx_init(&ww, true); in i915_gem_gtt_prepare() 315 ret = i915_gem_object_lock(obj, &ww); in i915_gem_gtt_prepare() 324 vma = i915_gem_object_ggtt_pin_ww(obj, &ww, NULL, 0, 0, in i915_gem_gtt_prepare() 354 ret = i915_gem_ww_ctx_backoff(&ww); in i915_gem_gtt_prepare() 358 i915_gem_ww_ctx_fini(&ww); in i915_gem_gtt_prepare() 904 struct i915_gem_ww_ctx *ww, in i915_gem_object_ggtt_pin_ww() argument 913 GEM_WARN_ON(!ww); in i915_gem_object_ggtt_pin_ww() 985 ret = i915_vma_pin_ww(vma, ww, size, alignment, flags | PIN_GLOBAL); in i915_gem_object_ggtt_pin_ww() 1010 struct i915_gem_ww_ctx ww; in i915_gem_object_ggtt_pin() local [all …]
|
| H A D | i915_gem_gtt.h | 29 struct i915_gem_ww_ctx *ww, 35 struct i915_gem_ww_ctx *ww,
|
| H A D | i915_vma.c | 790 i915_vma_insert(struct i915_vma *vma, struct i915_gem_ww_ctx *ww, in i915_vma_insert() argument 868 ret = i915_gem_gtt_reserve(vma->vm, ww, &vma->node, in i915_vma_insert() 910 ret = i915_gem_gtt_insert(vma->vm, ww, &vma->node, in i915_vma_insert() 1434 int i915_vma_pin_ww(struct i915_vma *vma, struct i915_gem_ww_ctx *ww, in i915_vma_pin_ww() argument 1445 GEM_BUG_ON(!ww); in i915_vma_pin_ww() 1471 err = i915_vm_lock_objects(vma->vm, ww); in i915_vma_pin_ww() 1560 err = i915_vma_insert(vma, ww, size, alignment, flags); in i915_vma_pin_ww() 1626 struct i915_gem_ww_ctx ww; in i915_vma_pin() local 1629 i915_gem_ww_ctx_init(&ww, true); in i915_vma_pin() 1631 err = i915_gem_object_lock(vma->obj, &ww); in i915_vma_pin() [all …]
|
| /linux/drivers/gpu/drm/i915/gt/ |
| H A D | intel_context.c | 118 static int __context_pin_state(struct i915_vma *vma, struct i915_gem_ww_ctx *ww) in __context_pin_state() argument 123 err = i915_ggtt_pin(vma, ww, 0, bias | PIN_HIGH); in __context_pin_state() 153 struct i915_gem_ww_ctx *ww) in __ring_active() argument 157 err = intel_ring_pin(ring, ww); in __ring_active() 179 struct i915_gem_ww_ctx *ww) in intel_context_pre_pin() argument 185 err = __ring_active(ce->ring, ww); in intel_context_pre_pin() 189 err = intel_timeline_pin(ce->timeline, ww); in intel_context_pre_pin() 196 err = __context_pin_state(ce->state, ww); in intel_context_pre_pin() 220 struct i915_gem_ww_ctx *ww) in __intel_context_do_pin_ww() argument 238 err = i915_gem_object_lock(ce->timeline->hwsp_ggtt->obj, ww); in __intel_context_do_pin_ww() [all …]
|
| H A D | selftest_migrate.c | 38 struct i915_gem_ww_ctx *ww, in copy() argument 47 struct i915_gem_ww_ctx ww; in copy() local 61 for_i915_gem_ww(&ww, err, true) { in copy() 62 err = i915_gem_object_lock(src, &ww); in copy() 66 err = i915_gem_object_lock(dst, &ww); in copy() 90 err = fn(migrate, &ww, src, dst, &rq); in copy() 223 struct i915_gem_ww_ctx *ww, in intel_migrate_ccs_copy() argument 242 err = intel_context_pin_ww(ce, ww); in intel_migrate_ccs_copy() 257 struct i915_gem_ww_ctx *ww, in clear() argument 266 struct i915_gem_ww_ctx ww; in clear() local [all …]
|
| H A D | intel_migrate.h | 25 struct i915_gem_ww_ctx *ww, 47 struct i915_gem_ww_ctx *ww,
|
| H A D | intel_context.h | 148 struct i915_gem_ww_ctx *ww); 164 struct i915_gem_ww_ctx *ww) in intel_context_pin_ww() argument 169 return __intel_context_do_pin_ww(ce, ww); in intel_context_pin_ww()
|
| /linux/drivers/gpu/drm/i915/gem/ |
| H A D | i915_gem_dmabuf.c | 121 struct i915_gem_ww_ctx ww; in i915_gem_begin_cpu_access() local 124 i915_gem_ww_ctx_init(&ww, true); in i915_gem_begin_cpu_access() 126 err = i915_gem_object_lock(obj, &ww); in i915_gem_begin_cpu_access() 134 err = i915_gem_ww_ctx_backoff(&ww); in i915_gem_begin_cpu_access() 138 i915_gem_ww_ctx_fini(&ww); in i915_gem_begin_cpu_access() 145 struct i915_gem_ww_ctx ww; in i915_gem_end_cpu_access() local 148 i915_gem_ww_ctx_init(&ww, true); in i915_gem_end_cpu_access() 150 err = i915_gem_object_lock(obj, &ww); in i915_gem_end_cpu_access() 158 err = i915_gem_ww_ctx_backoff(&ww); in i915_gem_end_cpu_access() 162 i915_gem_ww_ctx_fini(&ww); in i915_gem_end_cpu_access() [all …]
|
| H A D | i915_gem_mman.c | 349 struct i915_gem_ww_ctx ww; in vm_fault_gtt() local 367 i915_gem_ww_ctx_init(&ww, true); in vm_fault_gtt() 369 ret = i915_gem_object_lock(obj, &ww); in vm_fault_gtt() 388 vma = i915_gem_object_ggtt_pin_ww(obj, &ww, NULL, 0, 0, in vm_fault_gtt() 407 vma = i915_gem_object_ggtt_pin_ww(obj, &ww, &view, 0, 0, flags); in vm_fault_gtt() 411 vma = i915_gem_object_ggtt_pin_ww(obj, &ww, &view, 0, 0, flags); in vm_fault_gtt() 422 ret = i915_gem_evict_vm(&ggtt->vm, &ww, NULL); in vm_fault_gtt() 427 vma = i915_gem_object_ggtt_pin_ww(obj, &ww, &view, 0, 0, flags); in vm_fault_gtt() 498 ret = i915_gem_ww_ctx_backoff(&ww); in vm_fault_gtt() 502 i915_gem_ww_ctx_fini(&ww); in vm_fault_gtt() [all …]
|
| H A D | i915_gem_execbuffer.c | 279 struct i915_gem_ww_ctx ww; member 456 err = i915_vma_pin_ww(vma, &eb->ww, 0, 0, pin_flags); in eb_pin_vma() 465 err = i915_vma_pin_ww(vma, &eb->ww, in eb_pin_vma() 670 err = i915_vma_pin_ww(vma, &eb->ww, in eb_reserve_vma() 784 err = i915_gem_evict_vm(eb->context->vm, &eb->ww, NULL); in eb_reserve() 797 err = i915_gem_evict_vm(eb->context->vm, &eb->ww, &busy_bo); in eb_reserve() 800 err = i915_gem_object_lock(busy_bo, &eb->ww); in eb_reserve() 989 err = i915_gem_object_lock(vma->obj, &eb->ww); in eb_lock_vmas() 1288 vma = i915_gem_object_ggtt_pin_ww(obj, &eb->ww, NULL, 0, 0, in reloc_iomap() 1781 i915_gem_ww_ctx_fini(&eb->ww); in eb_relocate_parse_slow() [all …]
|
| H A D | i915_gem_pages.c | 152 struct i915_gem_ww_ctx ww; in i915_gem_object_pin_pages_unlocked() local 155 i915_gem_ww_ctx_init(&ww, true); in i915_gem_object_pin_pages_unlocked() 157 err = i915_gem_object_lock(obj, &ww); in i915_gem_object_pin_pages_unlocked() 162 err = i915_gem_ww_ctx_backoff(&ww); in i915_gem_object_pin_pages_unlocked() 166 i915_gem_ww_ctx_fini(&ww); in i915_gem_object_pin_pages_unlocked()
|
| /linux/drivers/gpu/drm/i915/gem/selftests/ |
| H A D | i915_gem_migrate.c | 53 struct i915_gem_ww_ctx ww; in igt_create_migrate() local 64 for_i915_gem_ww(&ww, err, true) { in igt_create_migrate() 65 err = i915_gem_object_lock(obj, &ww); in igt_create_migrate() 73 err = i915_gem_object_migrate(obj, &ww, dst); in igt_create_migrate() 111 static int lmem_pages_migrate_one(struct i915_gem_ww_ctx *ww, in lmem_pages_migrate_one() argument 118 err = i915_gem_object_lock(obj, ww); in lmem_pages_migrate_one() 123 err = i915_vma_pin_ww(vma, ww, obj->base.size, 0, in lmem_pages_migrate_one() 141 err = i915_gem_object_migrate(obj, ww, INTEL_REGION_SMEM); in lmem_pages_migrate_one() 160 err = i915_gem_object_migrate(obj, ww, INTEL_REGION_LMEM_0); in lmem_pages_migrate_one() 192 struct i915_gem_ww_ctx ww; in __igt_lmem_pages_migrate() local [all …]
|
| H A D | i915_gem_mman.c | 550 struct i915_gem_ww_ctx ww; in make_obj_busy() local 557 i915_gem_ww_ctx_init(&ww, false); in make_obj_busy() 559 err = i915_gem_object_lock(obj, &ww); in make_obj_busy() 561 err = i915_vma_pin_ww(vma, &ww, 0, 0, PIN_USER); in make_obj_busy() 579 err = i915_gem_ww_ctx_backoff(&ww); in make_obj_busy() 583 i915_gem_ww_ctx_fini(&ww); in make_obj_busy() 1586 struct i915_gem_ww_ctx ww; in __igt_mmap_gpu() local 1594 i915_gem_ww_ctx_init(&ww, false); in __igt_mmap_gpu() 1596 err = i915_gem_object_lock(obj, &ww); in __igt_mmap_gpu() 1598 err = i915_vma_pin_ww(vma, &ww, 0, 0, PIN_USER); in __igt_mmap_gpu() [all …]
|
| /linux/kernel/locking/ |
| H A D | ww_mutex.h | 181 ww_mutex_lock_acquired(struct ww_mutex *ww, struct ww_acquire_ctx *ww_ctx) in ww_mutex_lock_acquired() argument 190 DEBUG_LOCKS_WARN_ON(ww->ctx); in ww_mutex_lock_acquired() 202 DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww); in ww_mutex_lock_acquired() 215 DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class); in ww_mutex_lock_acquired() 218 ww->ctx = ww_ctx; in ww_mutex_lock_acquired() 441 struct ww_mutex *ww; in __ww_mutex_kill() local 443 ww = container_of(lock, struct ww_mutex, base); in __ww_mutex_kill() 445 ww_ctx->contending_lock = ww; in __ww_mutex_kill() 468 struct ww_mutex *ww = container_of(lock, struct ww_mutex, base); in __ww_mutex_check_kill() local 469 struct ww_acquire_ctx *hold_ctx = READ_ONCE(ww->ctx); in __ww_mutex_check_kill() [all …]
|
| /linux/drivers/scsi/aic94xx/ |
| H A D | aic94xx_reg.c | 108 #define ASD_READ_SW(ww, type, ord) \ argument 109 static type asd_read_##ww##_##ord(struct asd_ha_struct *asd_ha, \ 113 u32 map_offs = (reg - io_handle->ww##_base) + asd_mem_offs_##ww();\ 117 #define ASD_WRITE_SW(ww, type, ord) \ argument 118 static void asd_write_##ww##_##ord(struct asd_ha_struct *asd_ha, \ 122 u32 map_offs = (reg - io_handle->ww##_base) + asd_mem_offs_##ww();\
|
| /linux/tools/memory-model/ |
| H A D | linux-kernel.cat | 205 let ww-vis = fence | (strong-fence ; xbstar ; w-pre-bounded) | 217 let ww-incoh = pre-race & co & ww-vis^-1 218 empty (wr-incoh | rw-incoh | ww-incoh) as plain-coherence 221 let ww-nonrace = ww-vis & ((Marked * W) | rw-xbstar) & ((W * Marked) | wr-vis) 222 let ww-race = (pre-race & co) \ ww-nonrace 226 flag ~empty (ww-race | wr-race | rw-race) as data-race
|
| /linux/drivers/i2c/busses/ |
| H A D | i2c-sis96x.c | 245 u16 ww = 0; in sis96x_probe() local 253 pci_read_config_word(dev, PCI_CLASS_DEVICE, &ww); in sis96x_probe() 254 if (PCI_CLASS_SERIAL_SMBUS != ww) { in sis96x_probe() 255 dev_err(&dev->dev, "Unsupported device class 0x%04x!\n", ww); in sis96x_probe()
|
| /linux/drivers/video/fbdev/ |
| H A D | cg3.c | 259 int ww, hh; in cg3_rdi_maybe_fixup_var() local 263 ww = simple_strtoul(params, &p, 10); in cg3_rdi_maybe_fixup_var() 264 if (ww && *p == 'x') { in cg3_rdi_maybe_fixup_var() 267 if (var->xres != ww || in cg3_rdi_maybe_fixup_var() 269 var->xres = var->xres_virtual = ww; in cg3_rdi_maybe_fixup_var()
|
| /linux/drivers/gpu/drm/i915/display/ |
| H A D | intel_dpt.c | 135 struct i915_gem_ww_ctx ww; in intel_dpt_pin_to_ggtt() local 145 for_i915_gem_ww(&ww, err, true) { in intel_dpt_pin_to_ggtt() 146 err = i915_gem_object_lock(dpt->obj, &ww); in intel_dpt_pin_to_ggtt() 150 vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, in intel_dpt_pin_to_ggtt()
|
| /linux/drivers/isdn/mISDN/ |
| H A D | dsp_cmx.c | 1851 u_int w, ww; local 1860 ww = dsp->tx_R; 1863 space = (ww - w - 1) & CMX_BUFF_MASK; 1867 ww = (ww - 1) & CMX_BUFF_MASK; /* end one byte prior tx_R */ 1871 skb->len, w, ww); 1874 ww = (w + skb->len) & CMX_BUFF_MASK; 1875 dsp->tx_W = ww; 1880 (u_long)dsp, (ww - w) & CMX_BUFF_MASK, w, ww, dsp->name); 1885 sprintf(debugbuf, "TX getting (%04x-%04x)%p: ", w, ww, p); 1887 while (w != ww) {
|