public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] bugfix and cleanup patches in the TTM code for 3.1.
@ 2011-06-08 17:06 Konrad Rzeszutek Wilk
  2011-06-08 17:06 ` [PATCH] ttm: Do not increment the amount of pages in a pool by the current amount Konrad Rzeszutek Wilk
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-06-08 17:06 UTC (permalink / raw)
  To: linux-kernel, dri-devel, airlied, thomas

The bug-fix "ttm: Do not increment the amount of pages in a pool by the current amount"
I never observed, but found while looking at the code. The cleanup patch:
"ttm: Fix spelling mistakes and remove unused #ifdef", I had posted earlier and Randy
Dunlap graciously added some extra cleanups - which I have rolled in.



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

* [PATCH] ttm: Do not increment the amount of pages in a pool by the current amount
  2011-06-08 17:06 [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Konrad Rzeszutek Wilk
@ 2011-06-08 17:06 ` Konrad Rzeszutek Wilk
  2011-06-08 17:06 ` [PATCH] ttm: Fix spelling mistakes and remove unused #ifdef Konrad Rzeszutek Wilk
  2011-06-08 17:30 ` [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Rafał Miłecki
  2 siblings, 0 replies; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-06-08 17:06 UTC (permalink / raw)
  To: linux-kernel, dri-devel, airlied, thomas; +Cc: Konrad Rzeszutek Wilk

.instead increment it by the count of pages that we want to
splice into the pool list.

In other words we were incrementing the pool->npages by the wrong
amount. This bug was observed from code inspection.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 drivers/gpu/drm/ttm/ttm_page_alloc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
index d948575..002b414 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -602,7 +602,7 @@ static void ttm_page_pool_fill_locked(struct ttm_page_pool *pool,
 			printk(KERN_ERR TTM_PFX
 			       "Failed to fill pool (%p).", pool);
 			/* If we have any pages left put them to the pool. */
-			list_for_each_entry(p, &pool->list, lru) {
+			list_for_each_entry(p, &new_pages, lru) {
 				++cpages;
 			}
 			list_splice(&new_pages, &pool->list);
-- 
1.7.4.1


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

* [PATCH] ttm: Fix spelling mistakes and remove unused #ifdef
  2011-06-08 17:06 [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Konrad Rzeszutek Wilk
  2011-06-08 17:06 ` [PATCH] ttm: Do not increment the amount of pages in a pool by the current amount Konrad Rzeszutek Wilk
@ 2011-06-08 17:06 ` Konrad Rzeszutek Wilk
  2011-06-08 17:30 ` [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Rafał Miłecki
  2 siblings, 0 replies; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-06-08 17:06 UTC (permalink / raw)
  To: linux-kernel, dri-devel, airlied, thomas; +Cc: Konrad Rzeszutek Wilk

. and some comments to make it easier to understand.

Ackedby: Randy Dunlap <randy.dunlap@oracle.com>
[v2: Added some more updates from Randy Dunlap]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
 drivers/gpu/drm/ttm/ttm_page_alloc.c |   16 ++++++++--------
 include/drm/ttm/ttm_bo_api.h         |    3 ---
 include/drm/ttm/ttm_bo_driver.h      |    6 +++---
 include/drm/ttm/ttm_memory.h         |    2 +-
 include/drm/ttm/ttm_object.h         |    4 ++--
 include/drm/ttm/ttm_page_alloc.h     |    2 +-
 6 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
index 9d9d929..4db6fc7 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -355,7 +355,7 @@ restart:
 			if (nr_free)
 				goto restart;
 
-			/* Not allowed to fall tough or break because
+			/* Not allowed to fall through or break because
 			 * following context is inside spinlock while we are
 			 * outside here.
 			 */
@@ -554,7 +554,7 @@ out:
 }
 
 /**
- * Fill the given pool if there isn't enough pages and requested number of
+ * Fill the given pool if there aren't enough pages and the requested number of
  * pages is small.
  */
 static void ttm_page_pool_fill_locked(struct ttm_page_pool *pool,
@@ -574,8 +574,8 @@ static void ttm_page_pool_fill_locked(struct ttm_page_pool *pool,
 
 	pool->fill_lock = true;
 
-	/* If allocation request is small and there is not enough
-	 * pages in pool we fill the pool first */
+	/* If allocation request is small and there are not enough
+	 * pages in a pool we fill the pool up first. */
 	if (count < _manager->options.small
 		&& count > pool->npages) {
 		struct list_head new_pages;
@@ -612,9 +612,9 @@ static void ttm_page_pool_fill_locked(struct ttm_page_pool *pool,
 }
 
 /**
- * Cut count nubmer of pages from the pool and put them to return list
+ * Cut 'count' number of pages from the pool and put them on the return list.
  *
- * @return count of pages still to allocate to fill the request.
+ * @return count of pages still required to fulfill the request.
  */
 static unsigned ttm_page_pool_get_pages(struct ttm_page_pool *pool,
 		struct list_head *pages, int ttm_flags,
@@ -635,7 +635,7 @@ static unsigned ttm_page_pool_get_pages(struct ttm_page_pool *pool,
 		goto out;
 	}
 	/* find the last pages to include for requested number of pages. Split
-	 * pool to begin and halves to reduce search space. */
+	 * pool to begin and halve it to reduce search space. */
 	if (count <= pool->npages/2) {
 		i = 0;
 		list_for_each(p, &pool->list) {
@@ -649,7 +649,7 @@ static unsigned ttm_page_pool_get_pages(struct ttm_page_pool *pool,
 				break;
 		}
 	}
-	/* Cut count number of pages from pool */
+	/* Cut 'count' number of pages from the pool */
 	list_cut_position(pages, &pool->list, p);
 	pool->npages -= count;
 	count = 0;
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
index 62a0e4c..42e3469 100644
--- a/include/drm/ttm/ttm_bo_api.h
+++ b/include/drm/ttm/ttm_bo_api.h
@@ -662,9 +662,6 @@ extern int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
 
 extern void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
 
-#if 0
-#endif
-
 /**
  * ttm_fbdev_mmap - mmap fbdev memory backed by a ttm buffer object.
  *
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index 09af2d7..94eb143 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -78,7 +78,7 @@ struct ttm_backend_func {
 	 *
 	 * Bind the backend pages into the aperture in the location
 	 * indicated by @bo_mem. This function should be able to handle
-	 * differences between aperture- and system page sizes.
+	 * differences between aperture and system page sizes.
 	 */
 	int (*bind) (struct ttm_backend *backend, struct ttm_mem_reg *bo_mem);
 
@@ -88,7 +88,7 @@ struct ttm_backend_func {
 	 * @backend: Pointer to a struct ttm_backend.
 	 *
 	 * Unbind previously bound backend pages. This function should be
-	 * able to handle differences between aperture- and system page sizes.
+	 * able to handle differences between aperture and system page sizes.
 	 */
 	int (*unbind) (struct ttm_backend *backend);
 
@@ -786,7 +786,7 @@ extern int ttm_bo_device_release(struct ttm_bo_device *bdev);
  * ttm_bo_device_init
  *
  * @bdev: A pointer to a struct ttm_bo_device to initialize.
- * @mem_global: A pointer to an initialized struct ttm_mem_global.
+ * @glob: A pointer to an initialized struct ttm_bo_global.
  * @driver: A pointer to a struct ttm_bo_driver set up by the caller.
  * @file_page_offset: Offset into the device address space that is available
  * for buffer data. This ensures compatibility with other users of the
diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
index b199170..26c1f78 100644
--- a/include/drm/ttm/ttm_memory.h
+++ b/include/drm/ttm/ttm_memory.h
@@ -41,7 +41,7 @@
  * @do_shrink: The callback function.
  *
  * Arguments to the do_shrink functions are intended to be passed using
- * inheritance. That is, the argument class derives from struct ttm_mem_srink,
+ * inheritance. That is, the argument class derives from struct ttm_mem_shrink,
  * and can be accessed using container_of().
  */
 
diff --git a/include/drm/ttm/ttm_object.h b/include/drm/ttm/ttm_object.h
index 0d9db09..e46054e 100644
--- a/include/drm/ttm/ttm_object.h
+++ b/include/drm/ttm/ttm_object.h
@@ -111,7 +111,7 @@ struct ttm_object_device;
  *
  * @ref_obj_release: A function to be called when a reference object
  * with another ttm_ref_type than TTM_REF_USAGE is deleted.
- * this function may, for example, release a lock held by a user-space
+ * This function may, for example, release a lock held by a user-space
  * process.
  *
  * This struct is intended to be used as a base struct for objects that
@@ -172,7 +172,7 @@ extern struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file
 /**
  * ttm_base_object_unref
  *
- * @p_base: Pointer to a pointer referncing a struct ttm_base_object.
+ * @p_base: Pointer to a pointer referencing a struct ttm_base_object.
  *
  * Decrements the base object refcount and clears the pointer pointed to by
  * p_base.
diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
index 8062890..129de12 100644
--- a/include/drm/ttm/ttm_page_alloc.h
+++ b/include/drm/ttm/ttm_page_alloc.h
@@ -32,7 +32,7 @@
 /**
  * Get count number of pages from pool to pages list.
  *
- * @pages: heado of empty linked list where pages are filled.
+ * @pages: head of empty linked list where pages are filled.
  * @flags: ttm flags for page allocation.
  * @cstate: ttm caching state for the page.
  * @count: number of pages to allocate.
-- 
1.7.4.1


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

* Re: [PATCH] bugfix and cleanup patches in the TTM code for 3.1.
  2011-06-08 17:06 [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Konrad Rzeszutek Wilk
  2011-06-08 17:06 ` [PATCH] ttm: Do not increment the amount of pages in a pool by the current amount Konrad Rzeszutek Wilk
  2011-06-08 17:06 ` [PATCH] ttm: Fix spelling mistakes and remove unused #ifdef Konrad Rzeszutek Wilk
@ 2011-06-08 17:30 ` Rafał Miłecki
  2011-06-08 17:33   ` Randy Dunlap
  2 siblings, 1 reply; 6+ messages in thread
From: Rafał Miłecki @ 2011-06-08 17:30 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: linux-kernel, dri-devel, airlied, thomas

Hi Konrad,

2011/6/8 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>:
> The bug-fix "ttm: Do not increment the amount of pages in a pool by the current amount"
> I never observed, but found while looking at the code. The cleanup patch:
> "ttm: Fix spelling mistakes and remove unused #ifdef", I had posted earlier and Randy
> Dunlap graciously added some extra cleanups - which I have rolled in.

This is safe to put comments to the patch in the following place:


Signed-off-by: (...)
---
RIGHT HERE
---
 drivers/(...)


When applying such a patch comments will not be visible in git log.
You may find this easier method of commenting your patches.

-- 
Rafał

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

* Re: [PATCH] bugfix and cleanup patches in the TTM code for 3.1.
  2011-06-08 17:30 ` [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Rafał Miłecki
@ 2011-06-08 17:33   ` Randy Dunlap
  2011-06-08 18:20     ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2011-06-08 17:33 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Konrad Rzeszutek Wilk, linux-kernel, dri-devel, airlied, thomas

On Wed, 8 Jun 2011 19:30:22 +0200 Rafał Miłecki wrote:

> Hi Konrad,
> 
> 2011/6/8 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>:
> > The bug-fix "ttm: Do not increment the amount of pages in a pool by the current amount"
> > I never observed, but found while looking at the code. The cleanup patch:
> > "ttm: Fix spelling mistakes and remove unused #ifdef", I had posted earlier and Randy
> > Dunlap graciously added some extra cleanups - which I have rolled in.
> 
> This is safe to put comments to the patch in the following place:
> 
> 
> Signed-off-by: (...)
> ---
> RIGHT HERE
> ---
>  drivers/(...)
> 
> 
> When applying such a patch comments will not be visible in git log.
> You may find this easier method of commenting your patches.

Yes, it would remove the temptation to make a patch 0/<small_number>
that several people are (sadly) using recently.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

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

* Re: [PATCH] bugfix and cleanup patches in the TTM code for 3.1.
  2011-06-08 17:33   ` Randy Dunlap
@ 2011-06-08 18:20     ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 6+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-06-08 18:20 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Rafał Miłecki, linux-kernel, dri-devel, airlied, thomas

> > > The bug-fix "ttm: Do not increment the amount of pages in a pool by the current amount"
> > > I never observed, but found while looking at the code. The cleanup patch:
> > > "ttm: Fix spelling mistakes and remove unused #ifdef", I had posted earlier and Randy
> > > Dunlap graciously added some extra cleanups - which I have rolled in.
> > 
> > This is safe to put comments to the patch in the following place:

Ok. Thanks will do.

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

end of thread, other threads:[~2011-06-08 18:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-08 17:06 [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Konrad Rzeszutek Wilk
2011-06-08 17:06 ` [PATCH] ttm: Do not increment the amount of pages in a pool by the current amount Konrad Rzeszutek Wilk
2011-06-08 17:06 ` [PATCH] ttm: Fix spelling mistakes and remove unused #ifdef Konrad Rzeszutek Wilk
2011-06-08 17:30 ` [PATCH] bugfix and cleanup patches in the TTM code for 3.1 Rafał Miłecki
2011-06-08 17:33   ` Randy Dunlap
2011-06-08 18:20     ` Konrad Rzeszutek Wilk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox