Displaying 20 results from an estimated 32 matches for "reservation_object_unlock".
2019 Jun 18
1
[PATCH v2 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...nlikely(r != 0)) {
if (r != -ERESTARTSYS) {
struct virtio_gpu_device *qdev =
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Jun 21
0
[PATCH v2 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release)
list_for_each_entry(entry, &release->bos, head) {
bo = entry->bo;
- reservation_object_add_shared_fence(bo->resv, &release->base);
+ reservation_object_add_shared_fence(bo->base.resv, &release->base);
ttm_bo_add_to_lru(bo);
- reservation_object_unlock(bo->resv);
+ reservation_object_unlock(bo->base.resv);
}
spin_unlock(&glob->lru_lock);
ww_acquire_fini(&release->ticket);
--
2.18.1
2019 Jun 28
0
[PATCH v3 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release)
list_for_each_entry(entry, &release->bos, head) {
bo = entry->bo;
- reservation_object_add_shared_fence(bo->resv, &release->base);
+ reservation_object_add_shared_fence(bo->base.resv, &release->base);
ttm_bo_add_to_lru(bo);
- reservation_object_unlock(bo->resv);
+ reservation_object_unlock(bo->base.resv);
}
spin_unlock(&glob->lru_lock);
ww_acquire_fini(&release->ticket);
--
2.18.1
2019 Aug 02
0
[PATCH v4 15/17] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release)
list_for_each_entry(entry, &release->bos, head) {
bo = entry->bo;
- reservation_object_add_shared_fence(bo->resv, &release->base);
+ reservation_object_add_shared_fence(bo->base.resv, &release->base);
ttm_bo_add_to_lru(bo);
- reservation_object_unlock(bo->resv);
+ reservation_object_unlock(bo->base.resv);
}
spin_unlock(&glob->lru_lock);
ww_acquire_fini(&release->ticket);
--
2.18.1
2019 Aug 05
0
[PATCH v5 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release)
list_for_each_entry(entry, &release->bos, head) {
bo = entry->bo;
- reservation_object_add_shared_fence(bo->resv, &release->base);
+ reservation_object_add_shared_fence(bo->base.resv, &release->base);
ttm_bo_add_to_lru(bo);
- reservation_object_unlock(bo->resv);
+ reservation_object_unlock(bo->base.resv);
}
spin_unlock(&glob->lru_lock);
ww_acquire_fini(&release->ticket);
--
2.18.1
2019 Aug 05
0
[PATCH v6 15/17] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release)
list_for_each_entry(entry, &release->bos, head) {
bo = entry->bo;
- reservation_object_add_shared_fence(bo->resv, &release->base);
+ reservation_object_add_shared_fence(bo->base.resv, &release->base);
ttm_bo_add_to_lru(bo);
- reservation_object_unlock(bo->resv);
+ reservation_object_unlock(bo->base.resv);
}
spin_unlock(&glob->lru_lock);
ww_acquire_fini(&release->ticket);
--
2.18.1
2019 Jun 19
1
[PATCH v3 07/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Jul 02
2
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Jul 02
2
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
..._acq
list_for_each_entry(entry, list, head) {
struct ttm_buffer_object *bo = entry->bo;
+ last_entry = entry;
ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+ if (!ret)
+ locked = true;
if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
reservation_object_unlock(bo->resv);
@@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
ret = 0;
}
}
+ if (!ret)
+ locked = true;
+ else
+ locked = false;
if (!ret && entry->num_shared)
ret = reservation_object_reserve_shared(bo->resv,
@@ -163,6 +171,8 @@ int ttm_eu_r...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
..._acq
list_for_each_entry(entry, list, head) {
struct ttm_buffer_object *bo = entry->bo;
+ last_entry = entry;
ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+ if (!ret)
+ locked = true;
if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
reservation_object_unlock(bo->resv);
@@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
ret = 0;
}
}
+ if (!ret)
+ locked = true;
+ else
+ locked = false;
if (!ret && entry->num_shared)
ret = reservation_object_reserve_shared(bo->resv,
@@ -163,6 +171,8 @@ int ttm_eu_r...
2019 Jun 20
0
[PATCH v4 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Jun 28
0
[PATCH v5 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Jul 02
0
[PATCH v6 17/18] drm/virtio: drop virtio_gpu_object_{reserve, unreserve}
...(r != 0)) {
- if (r != -EINTR) {
- struct virtio_gpu_device *qdev =
- bo->base.base.dev->dev_private;
- dev_err(qdev->dev, "%p reserve failed\n", bo);
- }
- return r;
- }
- return 0;
-}
-
-static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
-{
- reservation_object_unlock(bo->base.base.resv);
-}
-
/* virgl debufs */
int virtio_gpu_debugfs_init(struct drm_minor *minor);
--
2.18.1
2019 Jul 03
0
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...;dev, "%p reserve failed\n", bo);
> @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
>
> static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
> {
> - ttm_bo_unreserve(&bo->tbo);
> + reservation_object_unlock(bo->gem_base.resv);
> }
>
> /* virgl debufs */
> --
> 2.18.1
>
2019 Aug 02
0
[PATCH v7 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private;
dev_err(qdev->dev, "%p reserve failed\n", bo);
@@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo)
static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
{
- ttm_bo_unreserve(&bo->tbo);
+ reservation_object_unlock(bo->gem_base.resv);
}
/* virgl debufs */
--
2.18.1
2019 Aug 02
0
[PATCH v7 17/18] drm/virtio: drop virtio_gpu_object_{reserve, unreserve}
...(r != 0)) {
- if (r != -EINTR) {
- struct virtio_gpu_device *qdev =
- bo->base.base.dev->dev_private;
- dev_err(qdev->dev, "%p reserve failed\n", bo);
- }
- return r;
- }
- return 0;
-}
-
-static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo)
-{
- reservation_object_unlock(bo->base.base.resv);
-}
-
/* virgl debufs */
int virtio_gpu_debugfs_init(struct drm_minor *minor);
--
2.18.1
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
...e_buffers(struct ww_acq
list_for_each_entry(entry, list, head) {
struct ttm_buffer_object *bo = entry->bo;
+ bool lockon;
ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+ lockon = !ret;
if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
reservation_object_unlock(bo->resv);
@@ -151,6 +153,7 @@ int ttm_eu_reserve_buffers(struct ww_acq
ret = 0;
}
}
+ lockon = !ret;
if (!ret && entry->num_shared)
ret = reservation_object_reserve_shared(bo->resv,
@@ -163,6 +166,8 @@ int ttm_eu_reserve_buffers(struct ww_acq
ww_acquir...
2019 Aug 02
0
[PATCH v7 07/18] drm/virtio: add virtio_gpu_object_array & helpers
...t = reservation_object_lock(objs->objs[0]->resv, NULL);
+ } else {
+ ret = drm_gem_lock_reservations(objs->objs, objs->nents,
+ &objs->ticket);
+ }
+ return ret;
+}
+
+void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs)
+{
+ if (objs->nents == 1) {
+ reservation_object_unlock(objs->objs[0]->resv);
+ } else {
+ drm_gem_unlock_reservations(objs->objs, objs->nents,
+ &objs->ticket);
+ }
+}
+
+void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs,
+ struct dma_fence *fence)
+{
+ int i;
+
+ for (i = 0; i < objs->nents; i++)...
2019 Sep 06
0
[Spice-devel] Xorg indefinitely hangs in kernelspace
...head) {
> struct ttm_buffer_object *bo = entry->bo;
>
> + last_entry = entry;
> ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
> + if (!ret)
> + locked = true;
> if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
> reservation_object_unlock(bo->resv);
>
> @@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
> ret = 0;
> }
> }
> + if (!ret)
> + locked = true;
> + else
> + locked = false;
>
locked = !ret;
?
> if (!ret && entry->num_shared)
> ret...