Re: [PATCH] mm/dmapool.c: add WARN_ON() in dma_pool_destroy

2020-07-31 Thread Matthew Wilcox
On Fri, Jul 31, 2020 at 01:32:15PM -0700, Andrew Morton wrote:
> On Fri, 31 Jul 2020 03:38:58 +0100 Matthew Wilcox  wrote:
> 
> > On Fri, Jul 31, 2020 at 10:39:39AM +0800, qiang.zh...@windriver.com wrote:
> > > The pool is being destroyed, all page which in the pool,
> > > should be free. if some page is still be use by somebody,
> > > we should not just output error logs, also should also add
> > > a warning message.
> > 
> > There's already a warning message.  What value does this actually have?
> 
> Presumably so we get a backtrace in order to identify the errant
> caller.  

The existing message includes the name of the pool.  We don't typically
have more than one place that destroys a pool.

What might be helpful would be something that said who allocated and
didn't free the object, but again, there's typically only one place which
allocates from any given pool, so even that would be all that helpful.

I'm not particularly impressed by these patches which don't actually
justify themselves.


Re: [PATCH] mm/dmapool.c: add WARN_ON() in dma_pool_destroy

2020-07-31 Thread Andrew Morton
On Fri, 31 Jul 2020 03:38:58 +0100 Matthew Wilcox  wrote:

> On Fri, Jul 31, 2020 at 10:39:39AM +0800, qiang.zh...@windriver.com wrote:
> > The pool is being destroyed, all page which in the pool,
> > should be free. if some page is still be use by somebody,
> > we should not just output error logs, also should also add
> > a warning message.
> 
> There's already a warning message.  What value does this actually have?

Presumably so we get a backtrace in order to identify the errant
caller.  

I added a bit to the changelog:

: The pool is being destroyed so all pages which are in the pool should be
: free.  If some page is still in use by somebody, we should not just output
: error logs, also should also add a WARN message so the stack backtrace may
: be used to identify the caller.




Re: [PATCH] mm/dmapool.c: add WARN_ON() in dma_pool_destroy

2020-07-30 Thread Matthew Wilcox
On Fri, Jul 31, 2020 at 10:39:39AM +0800, qiang.zh...@windriver.com wrote:
> The pool is being destroyed, all page which in the pool,
> should be free. if some page is still be use by somebody,
> we should not just output error logs, also should also add
> a warning message.

There's already a warning message.  What value does this actually have?

> Signed-off-by: Zhang Qiang 
> ---
>  mm/dmapool.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/dmapool.c b/mm/dmapool.c
> index f9fb9bbd733e..8f4dc53dde5b 100644
> --- a/mm/dmapool.c
> +++ b/mm/dmapool.c
> @@ -285,7 +285,7 @@ void dma_pool_destroy(struct dma_pool *pool)
>   struct dma_page *page;
>   page = list_entry(pool->page_list.next,
> struct dma_page, page_list);
> - if (is_page_busy(page)) {
> + if (WARN_ON(is_page_busy(page))) {
>   if (pool->dev)
>   dev_err(pool->dev,
>   "dma_pool_destroy %s, %p busy\n",
> -- 
> 2.26.2
> 


[PATCH] mm/dmapool.c: add WARN_ON() in dma_pool_destroy

2020-07-30 Thread qiang.zhang
From: Zhang Qiang 

The pool is being destroyed, all page which in the pool,
should be free. if some page is still be use by somebody,
we should not just output error logs, also should also add
a warning message.

Signed-off-by: Zhang Qiang 
---
 mm/dmapool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/dmapool.c b/mm/dmapool.c
index f9fb9bbd733e..8f4dc53dde5b 100644
--- a/mm/dmapool.c
+++ b/mm/dmapool.c
@@ -285,7 +285,7 @@ void dma_pool_destroy(struct dma_pool *pool)
struct dma_page *page;
page = list_entry(pool->page_list.next,
  struct dma_page, page_list);
-   if (is_page_busy(page)) {
+   if (WARN_ON(is_page_busy(page))) {
if (pool->dev)
dev_err(pool->dev,
"dma_pool_destroy %s, %p busy\n",
-- 
2.26.2