All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/ttm: remove some bo->mutex remains
@ 2010-03-01 18:34 Maarten Maathuis
  2010-03-01 18:34 ` [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock Maarten Maathuis
  2010-03-01 20:55 ` [PATCH 1/2] drm/ttm: remove some bo->mutex remains Jerome Glisse
  0 siblings, 2 replies; 6+ messages in thread
From: Maarten Maathuis @ 2010-03-01 18:34 UTC (permalink / raw)
  To: dri-devel

- A few comments existed here and there that referred to a bo->mutex.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c    |    6 +-----
 drivers/gpu/drm/ttm/ttm_bo_vm.c |    2 +-
 include/drm/ttm/ttm_bo_api.h    |    3 +--
 include/drm/ttm/ttm_bo_driver.h |    1 +
 4 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 2920f9a..f5333d9 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -46,7 +46,6 @@
 #include <linux/file.h>
 #include <linux/module.h>
 
-#define TTM_ASSERT_LOCKED(param)
 #define TTM_DEBUG(fmt, arg...)
 #define TTM_BO_HASH_ORDER 13
 
@@ -306,9 +305,6 @@ void ttm_bo_unreserve(struct ttm_buffer_object *bo)
 }
 EXPORT_SYMBOL(ttm_bo_unreserve);
 
-/*
- * Call bo->mutex locked.
- */
 static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
 {
 	struct ttm_bo_device *bdev = bo->bdev;
@@ -316,7 +312,7 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
 	int ret = 0;
 	uint32_t page_flags = 0;
 
-	TTM_ASSERT_LOCKED(&bo->mutex);
+	BUG_ON(!atomic_read(&bo->reserved));
 	bo->ttm = NULL;
 
 	if (bdev->need_dma32)
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index 668dbe8..41b0c1e 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -146,7 +146,7 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 	 * since the mmap_sem is only held in read mode. However, we
 	 * modify only the caching bits of vma->vm_page_prot and
 	 * consider those bits protected by
-	 * the bo->mutex, as we should be the only writers.
+	 * bo->reserved, as we should be the only writers.
 	 * There shouldn't really be any readers of these bits except
 	 * within vm_insert_mixed()? fork?
 	 *
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
index 81eb9f4..c1093ae 100644
--- a/include/drm/ttm/ttm_bo_api.h
+++ b/include/drm/ttm/ttm_bo_api.h
@@ -35,7 +35,6 @@
 #include <linux/kref.h>
 #include <linux/list.h>
 #include <linux/wait.h>
-#include <linux/mutex.h>
 #include <linux/mm.h>
 #include <linux/rbtree.h>
 #include <linux/bitmap.h>
@@ -298,7 +297,7 @@ ttm_bo_reference(struct ttm_buffer_object *bo)
  * @interruptible:  Use interruptible wait.
  * @no_wait:  Return immediately if buffer is busy.
  *
- * This function must be called with the bo::mutex held, and makes
+ * This function must be called with bo->reserved held, and makes
  * sure any previous rendering to the buffer is completed.
  * Note: It might be necessary to block validations before the
  * wait by reserving the buffer.
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index ff7664e..d3fc5f8 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -37,6 +37,7 @@
 #include "linux/workqueue.h"
 #include "linux/fs.h"
 #include "linux/spinlock.h"
+#include <linux/mutex.h>
 
 struct ttm_backend;
 
-- 
1.7.0


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock
  2010-03-01 18:34 [PATCH 1/2] drm/ttm: remove some bo->mutex remains Maarten Maathuis
@ 2010-03-01 18:34 ` Maarten Maathuis
  2010-03-01 20:54   ` Jerome Glisse
  2010-03-01 22:06   ` Thomas Hellstrom
  2010-03-01 20:55 ` [PATCH 1/2] drm/ttm: remove some bo->mutex remains Jerome Glisse
  1 sibling, 2 replies; 6+ messages in thread
From: Maarten Maathuis @ 2010-03-01 18:34 UTC (permalink / raw)
  To: dri-devel

- The headerfile says you can't write to it without holding the lock.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index f5333d9..2104885 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -476,9 +476,9 @@ static int ttm_bo_cleanup_refs(struct ttm_buffer_object *bo, bool remove_all)
 			drm_mm_put_block(bo->mem.mm_node);
 			bo->mem.mm_node = NULL;
 		}
-		spin_unlock(&glob->lru_lock);
 
 		atomic_set(&bo->reserved, 0);
+		spin_unlock(&glob->lru_lock);
 
 		while (put_count--)
 			kref_put(&bo->list_kref, ttm_bo_ref_bug);
@@ -1707,8 +1707,12 @@ EXPORT_SYMBOL(ttm_bo_wait);
 
 void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
 {
+	struct ttm_bo_global *glob = bo->glob;
+
+	spin_lock(&glob->lru_lock);
 	atomic_set(&bo->reserved, 0);
 	wake_up_all(&bo->event_queue);
+	spin_unlock(&glob->lru_lock);
 }
 
 int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
@@ -1849,8 +1853,10 @@ out:
 	 * already swapped buffer.
 	 */
 
+	spin_lock(&glob->lru_lock);
 	atomic_set(&bo->reserved, 0);
 	wake_up_all(&bo->event_queue);
+	spin_unlock(&glob->lru_lock);
 	kref_put(&bo->list_kref, ttm_bo_release_list);
 	return ret;
 }
-- 
1.7.0


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock
  2010-03-01 18:34 ` [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock Maarten Maathuis
@ 2010-03-01 20:54   ` Jerome Glisse
  2010-03-01 22:06   ` Thomas Hellstrom
  1 sibling, 0 replies; 6+ messages in thread
From: Jerome Glisse @ 2010-03-01 20:54 UTC (permalink / raw)
  To: Maarten Maathuis; +Cc: dri-devel

On Mon, Mar 01, 2010 at 07:34:40PM +0100, Maarten Maathuis wrote:
> - The headerfile says you can't write to it without holding the lock.
> 
> Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

NAK, from my POV as we always use atomic_* on reserved it's useless
to protect it with spinlock.

Cheers,
Jerome

> ---
>  drivers/gpu/drm/ttm/ttm_bo.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index f5333d9..2104885 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -476,9 +476,9 @@ static int ttm_bo_cleanup_refs(struct ttm_buffer_object *bo, bool remove_all)
>  			drm_mm_put_block(bo->mem.mm_node);
>  			bo->mem.mm_node = NULL;
>  		}
> -		spin_unlock(&glob->lru_lock);
>  
>  		atomic_set(&bo->reserved, 0);
> +		spin_unlock(&glob->lru_lock);
>  
>  		while (put_count--)
>  			kref_put(&bo->list_kref, ttm_bo_ref_bug);
> @@ -1707,8 +1707,12 @@ EXPORT_SYMBOL(ttm_bo_wait);
>  
>  void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
>  {
> +	struct ttm_bo_global *glob = bo->glob;
> +
> +	spin_lock(&glob->lru_lock);
>  	atomic_set(&bo->reserved, 0);
>  	wake_up_all(&bo->event_queue);
> +	spin_unlock(&glob->lru_lock);
>  }
>  
>  int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
> @@ -1849,8 +1853,10 @@ out:
>  	 * already swapped buffer.
>  	 */
>  
> +	spin_lock(&glob->lru_lock);
>  	atomic_set(&bo->reserved, 0);
>  	wake_up_all(&bo->event_queue);
> +	spin_unlock(&glob->lru_lock);
>  	kref_put(&bo->list_kref, ttm_bo_release_list);
>  	return ret;
>  }
> -- 
> 1.7.0
> 
> 
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
> 

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/ttm: remove some bo->mutex remains
  2010-03-01 18:34 [PATCH 1/2] drm/ttm: remove some bo->mutex remains Maarten Maathuis
  2010-03-01 18:34 ` [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock Maarten Maathuis
@ 2010-03-01 20:55 ` Jerome Glisse
  2010-03-12  8:30   ` Maarten Maathuis
  1 sibling, 1 reply; 6+ messages in thread
From: Jerome Glisse @ 2010-03-01 20:55 UTC (permalink / raw)
  To: Maarten Maathuis; +Cc: dri-devel

On Mon, Mar 01, 2010 at 07:34:39PM +0100, Maarten Maathuis wrote:
> - A few comments existed here and there that referred to a bo->mutex.
> 
> Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

Reviewed-by: Jerome Glisse <jglisse@redhat.com>

> ---
>  drivers/gpu/drm/ttm/ttm_bo.c    |    6 +-----
>  drivers/gpu/drm/ttm/ttm_bo_vm.c |    2 +-
>  include/drm/ttm/ttm_bo_api.h    |    3 +--
>  include/drm/ttm/ttm_bo_driver.h |    1 +
>  4 files changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 2920f9a..f5333d9 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -46,7 +46,6 @@
>  #include <linux/file.h>
>  #include <linux/module.h>
>  
> -#define TTM_ASSERT_LOCKED(param)
>  #define TTM_DEBUG(fmt, arg...)
>  #define TTM_BO_HASH_ORDER 13
>  
> @@ -306,9 +305,6 @@ void ttm_bo_unreserve(struct ttm_buffer_object *bo)
>  }
>  EXPORT_SYMBOL(ttm_bo_unreserve);
>  
> -/*
> - * Call bo->mutex locked.
> - */
>  static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
>  {
>  	struct ttm_bo_device *bdev = bo->bdev;
> @@ -316,7 +312,7 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
>  	int ret = 0;
>  	uint32_t page_flags = 0;
>  
> -	TTM_ASSERT_LOCKED(&bo->mutex);
> +	BUG_ON(!atomic_read(&bo->reserved));
>  	bo->ttm = NULL;
>  
>  	if (bdev->need_dma32)
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
> index 668dbe8..41b0c1e 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
> @@ -146,7 +146,7 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
>  	 * since the mmap_sem is only held in read mode. However, we
>  	 * modify only the caching bits of vma->vm_page_prot and
>  	 * consider those bits protected by
> -	 * the bo->mutex, as we should be the only writers.
> +	 * bo->reserved, as we should be the only writers.
>  	 * There shouldn't really be any readers of these bits except
>  	 * within vm_insert_mixed()? fork?
>  	 *
> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
> index 81eb9f4..c1093ae 100644
> --- a/include/drm/ttm/ttm_bo_api.h
> +++ b/include/drm/ttm/ttm_bo_api.h
> @@ -35,7 +35,6 @@
>  #include <linux/kref.h>
>  #include <linux/list.h>
>  #include <linux/wait.h>
> -#include <linux/mutex.h>
>  #include <linux/mm.h>
>  #include <linux/rbtree.h>
>  #include <linux/bitmap.h>
> @@ -298,7 +297,7 @@ ttm_bo_reference(struct ttm_buffer_object *bo)
>   * @interruptible:  Use interruptible wait.
>   * @no_wait:  Return immediately if buffer is busy.
>   *
> - * This function must be called with the bo::mutex held, and makes
> + * This function must be called with bo->reserved held, and makes
>   * sure any previous rendering to the buffer is completed.
>   * Note: It might be necessary to block validations before the
>   * wait by reserving the buffer.
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index ff7664e..d3fc5f8 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -37,6 +37,7 @@
>  #include "linux/workqueue.h"
>  #include "linux/fs.h"
>  #include "linux/spinlock.h"
> +#include <linux/mutex.h>
>  
>  struct ttm_backend;
>  
> -- 
> 1.7.0
> 
> 
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
> 

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock
  2010-03-01 18:34 ` [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock Maarten Maathuis
  2010-03-01 20:54   ` Jerome Glisse
@ 2010-03-01 22:06   ` Thomas Hellstrom
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Hellstrom @ 2010-03-01 22:06 UTC (permalink / raw)
  To: Maarten Maathuis; +Cc: dri-devel

Maarten Maathuis wrote:
> - The headerfile says you can't write to it without holding the lock.
>   
NAK.

The header-file is incorrect. It should say that the lru_lock needs to 
be held only when we transition from 0 to 1.

That guarantees that if the lru lock is held, and we read 0, we can 
safely assume that we're the only ones trying to lock.

/Thomas










> Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
> ---
>  drivers/gpu/drm/ttm/ttm_bo.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index f5333d9..2104885 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -476,9 +476,9 @@ static int ttm_bo_cleanup_refs(struct ttm_buffer_object *bo, bool remove_all)
>  			drm_mm_put_block(bo->mem.mm_node);
>  			bo->mem.mm_node = NULL;
>  		}
> -		spin_unlock(&glob->lru_lock);
>  
>  		atomic_set(&bo->reserved, 0);
> +		spin_unlock(&glob->lru_lock);
>  
>  		while (put_count--)
>  			kref_put(&bo->list_kref, ttm_bo_ref_bug);
> @@ -1707,8 +1707,12 @@ EXPORT_SYMBOL(ttm_bo_wait);
>  
>  void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
>  {
> +	struct ttm_bo_global *glob = bo->glob;
> +
> +	spin_lock(&glob->lru_lock);
>  	atomic_set(&bo->reserved, 0);
>  	wake_up_all(&bo->event_queue);
> +	spin_unlock(&glob->lru_lock);
>  }
>  
>  int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
> @@ -1849,8 +1853,10 @@ out:
>  	 * already swapped buffer.
>  	 */
>  
> +	spin_lock(&glob->lru_lock);
>  	atomic_set(&bo->reserved, 0);
>  	wake_up_all(&bo->event_queue);
> +	spin_unlock(&glob->lru_lock);
>  	kref_put(&bo->list_kref, ttm_bo_release_list);
>  	return ret;
>  }
>   


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/ttm: remove some bo->mutex remains
  2010-03-01 20:55 ` [PATCH 1/2] drm/ttm: remove some bo->mutex remains Jerome Glisse
@ 2010-03-12  8:30   ` Maarten Maathuis
  0 siblings, 0 replies; 6+ messages in thread
From: Maarten Maathuis @ 2010-03-12  8:30 UTC (permalink / raw)
  To: Jerome Glisse; +Cc: Dave Airlie, dri-devel

Ping?

On Mon, Mar 1, 2010 at 9:55 PM, Jerome Glisse <glisse@freedesktop.org> wrote:
> On Mon, Mar 01, 2010 at 07:34:39PM +0100, Maarten Maathuis wrote:
>> - A few comments existed here and there that referred to a bo->mutex.
>>
>> Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
>
> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
>
>> ---
>>  drivers/gpu/drm/ttm/ttm_bo.c    |    6 +-----
>>  drivers/gpu/drm/ttm/ttm_bo_vm.c |    2 +-
>>  include/drm/ttm/ttm_bo_api.h    |    3 +--
>>  include/drm/ttm/ttm_bo_driver.h |    1 +
>>  4 files changed, 4 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
>> index 2920f9a..f5333d9 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
>> @@ -46,7 +46,6 @@
>>  #include <linux/file.h>
>>  #include <linux/module.h>
>>
>> -#define TTM_ASSERT_LOCKED(param)
>>  #define TTM_DEBUG(fmt, arg...)
>>  #define TTM_BO_HASH_ORDER 13
>>
>> @@ -306,9 +305,6 @@ void ttm_bo_unreserve(struct ttm_buffer_object *bo)
>>  }
>>  EXPORT_SYMBOL(ttm_bo_unreserve);
>>
>> -/*
>> - * Call bo->mutex locked.
>> - */
>>  static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
>>  {
>>       struct ttm_bo_device *bdev = bo->bdev;
>> @@ -316,7 +312,7 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
>>       int ret = 0;
>>       uint32_t page_flags = 0;
>>
>> -     TTM_ASSERT_LOCKED(&bo->mutex);
>> +     BUG_ON(!atomic_read(&bo->reserved));
>>       bo->ttm = NULL;
>>
>>       if (bdev->need_dma32)
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
>> index 668dbe8..41b0c1e 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
>> @@ -146,7 +146,7 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
>>        * since the mmap_sem is only held in read mode. However, we
>>        * modify only the caching bits of vma->vm_page_prot and
>>        * consider those bits protected by
>> -      * the bo->mutex, as we should be the only writers.
>> +      * bo->reserved, as we should be the only writers.
>>        * There shouldn't really be any readers of these bits except
>>        * within vm_insert_mixed()? fork?
>>        *
>> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
>> index 81eb9f4..c1093ae 100644
>> --- a/include/drm/ttm/ttm_bo_api.h
>> +++ b/include/drm/ttm/ttm_bo_api.h
>> @@ -35,7 +35,6 @@
>>  #include <linux/kref.h>
>>  #include <linux/list.h>
>>  #include <linux/wait.h>
>> -#include <linux/mutex.h>
>>  #include <linux/mm.h>
>>  #include <linux/rbtree.h>
>>  #include <linux/bitmap.h>
>> @@ -298,7 +297,7 @@ ttm_bo_reference(struct ttm_buffer_object *bo)
>>   * @interruptible:  Use interruptible wait.
>>   * @no_wait:  Return immediately if buffer is busy.
>>   *
>> - * This function must be called with the bo::mutex held, and makes
>> + * This function must be called with bo->reserved held, and makes
>>   * sure any previous rendering to the buffer is completed.
>>   * Note: It might be necessary to block validations before the
>>   * wait by reserving the buffer.
>> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
>> index ff7664e..d3fc5f8 100644
>> --- a/include/drm/ttm/ttm_bo_driver.h
>> +++ b/include/drm/ttm/ttm_bo_driver.h
>> @@ -37,6 +37,7 @@
>>  #include "linux/workqueue.h"
>>  #include "linux/fs.h"
>>  #include "linux/spinlock.h"
>> +#include <linux/mutex.h>
>>
>>  struct ttm_backend;
>>
>> --
>> 1.7.0
>>
>>
>> ------------------------------------------------------------------------------
>> Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> --
>> _______________________________________________
>> Dri-devel mailing list
>> Dri-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/dri-devel
>>
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-03-12  8:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-01 18:34 [PATCH 1/2] drm/ttm: remove some bo->mutex remains Maarten Maathuis
2010-03-01 18:34 ` [PATCH 2/2] drm/ttm: don't write to bo->reserved without holding glob->lru_lock Maarten Maathuis
2010-03-01 20:54   ` Jerome Glisse
2010-03-01 22:06   ` Thomas Hellstrom
2010-03-01 20:55 ` [PATCH 1/2] drm/ttm: remove some bo->mutex remains Jerome Glisse
2010-03-12  8:30   ` Maarten Maathuis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.