linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Joonsoo Kim <iamjoonsoo.kim@lge.com>
To: Minchan Kim <minchan@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Michal Nazarewicz <mina86@mina86.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	kvm@vger.kernel.org, linux-mm@kvack.org,
	Gleb Natapov <gleb@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Alexander Graf <agraf@suse.de>,
	kvm-ppc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak
Date: Thu, 12 Jun 2014 15:02:11 +0900	[thread overview]
Message-ID: <20140612060211.GC30128@js1304-P5Q-DELUXE> (raw)
In-Reply-To: <20140612052543.GE12415@bbox>

On Thu, Jun 12, 2014 at 02:25:43PM +0900, Minchan Kim wrote:
> On Thu, Jun 12, 2014 at 12:21:39PM +0900, Joonsoo Kim wrote:
> > We should free memory for bitmap when we find zone mis-match,
> > otherwise this memory will leak.
> 
> Then, -stable stuff?

I don't think so. This is just possible leak candidate, so we don't
need to push this to stable tree.

> 
> > 
> > Additionally, I copy code comment from ppc kvm's cma code to notify
> > why we need to check zone mis-match.
> > 
> > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> > 
> > diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c
> > index bd0bb81..fb0cdce 100644
> > --- a/drivers/base/dma-contiguous.c
> > +++ b/drivers/base/dma-contiguous.c
> > @@ -177,14 +177,24 @@ static int __init cma_activate_area(struct cma *cma)
> >  		base_pfn = pfn;
> >  		for (j = pageblock_nr_pages; j; --j, pfn++) {
> >  			WARN_ON_ONCE(!pfn_valid(pfn));
> > +			/*
> > +			 * alloc_contig_range requires the pfn range
> > +			 * specified to be in the same zone. Make this
> > +			 * simple by forcing the entire CMA resv range
> > +			 * to be in the same zone.
> > +			 */
> >  			if (page_zone(pfn_to_page(pfn)) != zone)
> > -				return -EINVAL;
> > +				goto err;
> 
> At a first glance, I thought it would be better to handle such error
> before activating.
> So when I see the registration code(ie, dma_contiguous_revere_area),
> I realized it is impossible because we didn't set up zone yet. :(
> 
> If so, when we detect to fail here, it would be better to report more
> meaningful error message like what was successful zone and what is
> new zone and failed pfn number?

What I want to do in early phase of this patchset is to make cma code
on DMA APIs similar to ppc kvm's cma code. ppc kvm's cma code already
has this error handling logic, so I make this patch.

If we think that we need more things, we can do that on general cma code
after merging this patchset.

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2014-06-12  5:58 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-12  3:21 [PATCH v2 00/10] CMA: generalize CMA reserved area management code Joonsoo Kim
2014-06-12  3:21 ` [PATCH v2 01/10] DMA, CMA: clean-up log message Joonsoo Kim
2014-06-12  4:41   ` Aneesh Kumar K.V
2014-06-12  5:53     ` Joonsoo Kim
2014-06-12  8:55       ` Michal Nazarewicz
2014-06-12  9:53         ` Michal Nazarewicz
2014-06-16  5:18           ` Joonsoo Kim
2014-06-12  5:18   ` Minchan Kim
2014-06-12  5:55     ` Joonsoo Kim
2014-06-12  8:15   ` Zhang Yanfei
2014-06-12  8:56   ` Michal Nazarewicz
2014-06-12  3:21 ` [PATCH v2 02/10] DMA, CMA: fix possible memory leak Joonsoo Kim
2014-06-12  4:43   ` Aneesh Kumar K.V
2014-06-12  5:25   ` Minchan Kim
2014-06-12  6:02     ` Joonsoo Kim [this message]
2014-06-12  8:19       ` Zhang Yanfei
2014-06-12  9:47   ` Michal Nazarewicz
2014-06-12  3:21 ` [PATCH v2 03/10] DMA, CMA: separate core cma management codes from DMA APIs Joonsoo Kim
2014-06-12  4:44   ` Aneesh Kumar K.V
2014-06-12  5:37   ` Minchan Kim
2014-06-16  5:24     ` Joonsoo Kim
2014-06-12  9:55   ` Michal Nazarewicz
2014-06-12  3:21 ` [PATCH v2 04/10] DMA, CMA: support alignment constraint on cma region Joonsoo Kim
2014-06-12  4:50   ` Aneesh Kumar K.V
2014-06-12  5:52   ` Minchan Kim
2014-06-12  6:07     ` Joonsoo Kim
2014-06-12 10:02   ` Michal Nazarewicz
2014-06-16  5:19     ` Joonsoo Kim
2014-06-12  3:21 ` [PATCH v2 05/10] DMA, CMA: support arbitrary bitmap granularity Joonsoo Kim
2014-06-12  6:06   ` Minchan Kim
2014-06-12  6:43     ` Joonsoo Kim
2014-06-12  6:42       ` Minchan Kim
2014-06-12  7:08   ` Minchan Kim
2014-06-12  7:25     ` Zhang Yanfei
2014-06-12  7:41     ` Joonsoo Kim
2014-06-12  8:28   ` Zhang Yanfei
2014-06-12 10:19   ` Michal Nazarewicz
2014-06-16  5:23     ` Joonsoo Kim
2014-06-14 10:09   ` Aneesh Kumar K.V
2014-06-12  3:21 ` [PATCH v2 06/10] CMA: generalize CMA reserved area management functionality Joonsoo Kim
2014-06-12  7:13   ` Minchan Kim
2014-06-12  7:42     ` Joonsoo Kim
2014-06-12  8:29   ` Zhang Yanfei
2014-06-14 10:06   ` Aneesh Kumar K.V
2014-06-14 10:08   ` Aneesh Kumar K.V
2014-06-14 10:16   ` Aneesh Kumar K.V
2014-06-16  5:27     ` Joonsoo Kim
2014-06-12  3:21 ` [PATCH v2 07/10] PPC, KVM, CMA: use general CMA reserved area management framework Joonsoo Kim
2014-06-14  8:53   ` Aneesh Kumar K.V
2014-06-16  5:34     ` Joonsoo Kim
2014-06-16  7:02       ` Aneesh Kumar K.V
2014-06-14 10:05   ` Aneesh Kumar K.V
2014-06-16  5:29     ` Joonsoo Kim
2014-06-12  3:21 ` [PATCH v2 08/10] mm, cma: clean-up cma allocation error path Joonsoo Kim
2014-06-12  7:16   ` Minchan Kim
2014-06-12  8:31   ` Zhang Yanfei
2014-06-12 11:34   ` Michal Nazarewicz
2014-06-14  7:18   ` Aneesh Kumar K.V
2014-06-12  3:21 ` [PATCH v2 09/10] mm, cma: move output param to the end of param list Joonsoo Kim
2014-06-12  7:19   ` Minchan Kim
2014-06-12  7:43     ` Joonsoo Kim
2014-06-12 11:38   ` Michal Nazarewicz
2014-06-14  7:20   ` Aneesh Kumar K.V
2014-06-12  3:21 ` [PATCH v2 10/10] mm, cma: use spinlock instead of mutex Joonsoo Kim
2014-06-12  7:40   ` Minchan Kim
2014-06-12  7:56     ` Joonsoo Kim
2014-06-14  7:25 ` [PATCH v2 00/10] CMA: generalize CMA reserved area management code Aneesh Kumar K.V
2014-06-16  5:32   ` Joonsoo Kim
2014-06-16  7:04     ` Aneesh Kumar K.V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140612060211.GC30128@js1304-P5Q-DELUXE \
    --to=iamjoonsoo.kim@lge.com \
    --cc=agraf@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=gleb@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mina86@mina86.com \
    --cc=minchan@kernel.org \
    --cc=paulus@samba.org \
    --cc=pbonzini@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox