From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932846AbaFLITa (ORCPT ); Thu, 12 Jun 2014 04:19:30 -0400 Received: from cn.fujitsu.com ([59.151.112.132]:40997 "EHLO heian.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S932727AbaFLIS5 (ORCPT ); Thu, 12 Jun 2014 04:18:57 -0400 X-IronPort-AV: E=Sophos;i="5.00,694,1396972800"; d="scan'208";a="31803887" Message-ID: <53996276.20906@cn.fujitsu.com> Date: Thu, 12 Jun 2014 16:19:02 +0800 From: Zhang Yanfei User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131030 Thunderbird/17.0.10 MIME-Version: 1.0 To: Joonsoo Kim CC: Minchan Kim , Andrew Morton , "Aneesh Kumar K.V" , Marek Szyprowski , Michal Nazarewicz , Russell King - ARM Linux , , , Gleb Natapov , Greg Kroah-Hartman , Alexander Graf , , , Paul Mackerras , Benjamin Herrenschmidt , Paolo Bonzini , , Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.167.225.89] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Yanfei Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak Date: Thu, 12 Jun 2014 16:19:02 +0800 Message-ID: <53996276.20906@cn.fujitsu.com> References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Cc: Minchan Kim , Andrew Morton , "Aneesh Kumar K.V" , Marek Szyprowski , Michal Nazarewicz , Russell King - ARM Linux , , , Gleb Natapov , Greg Kroah-Hartman , Alexander Graf , , , Paul Mackerras , Benjamin Herrenschmidt , Paolo Bonzini , , To: Joonsoo Kim Return-path: In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> Sender: owner-linux-mm@kvack.org List-Id: kvm.vger.kernel.org On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei -- 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: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f53.google.com (mail-pa0-f53.google.com [209.85.220.53]) by kanga.kvack.org (Postfix) with ESMTP id 38F51900002 for ; Thu, 12 Jun 2014 04:18:58 -0400 (EDT) Received: by mail-pa0-f53.google.com with SMTP id kx10so757672pab.40 for ; Thu, 12 Jun 2014 01:18:57 -0700 (PDT) Received: from heian.cn.fujitsu.com ([59.151.112.132]) by mx.google.com with ESMTP id xu2si40779436pbb.129.2014.06.12.01.18.56 for ; Thu, 12 Jun 2014 01:18:57 -0700 (PDT) Message-ID: <53996276.20906@cn.fujitsu.com> Date: Thu, 12 Jun 2014 16:19:02 +0800 From: Zhang Yanfei MIME-Version: 1.0 Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Joonsoo Kim Cc: Minchan Kim , Andrew Morton , "Aneesh Kumar K.V" , Marek Szyprowski , Michal Nazarewicz , Russell King - ARM Linux , kvm@vger.kernel.org, linux-mm@kvack.org, Gleb Natapov , Greg Kroah-Hartman , Alexander Graf , kvm-ppc@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Mackerras , Benjamin Herrenschmidt , Paolo Bonzini , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei -- 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: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from heian.cn.fujitsu.com (unknown [59.151.112.132]) by lists.ozlabs.org (Postfix) with ESMTP id 15D661A0BA3 for ; Thu, 12 Jun 2014 18:18:56 +1000 (EST) Message-ID: <53996276.20906@cn.fujitsu.com> Date: Thu, 12 Jun 2014 16:19:02 +0800 From: Zhang Yanfei MIME-Version: 1.0 To: Joonsoo Kim Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> Content-Type: text/plain; charset="ISO-8859-1" Cc: kvm-ppc@vger.kernel.org, Russell King - ARM Linux , kvm@vger.kernel.org, linux-mm@kvack.org, Gleb Natapov , Greg Kroah-Hartman , Alexander Graf , Michal Nazarewicz , linux-kernel@vger.kernel.org, Minchan Kim , Paul Mackerras , "Aneesh Kumar K.V" , Paolo Bonzini , Andrew Morton , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Marek Szyprowski List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhangyanfei@cn.fujitsu.com (Zhang Yanfei) Date: Thu, 12 Jun 2014 16:19:02 +0800 Subject: [PATCH v2 02/10] DMA, CMA: fix possible memory leak In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> Message-ID: <53996276.20906@cn.fujitsu.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Yanfei Date: Thu, 12 Jun 2014 08:19:02 +0000 Subject: Re: [PATCH v2 02/10] DMA, CMA: fix possible memory leak Message-Id: <53996276.20906@cn.fujitsu.com> List-Id: References: <1402543307-29800-1-git-send-email-iamjoonsoo.kim@lge.com> <1402543307-29800-3-git-send-email-iamjoonsoo.kim@lge.com> <20140612052543.GE12415@bbox> <20140612060211.GC30128@js1304-P5Q-DELUXE> In-Reply-To: <20140612060211.GC30128@js1304-P5Q-DELUXE> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Joonsoo Kim Cc: Minchan Kim , Andrew Morton , "Aneesh Kumar K.V" , Marek Szyprowski , Michal Nazarewicz , Russell King - ARM Linux , kvm@vger.kernel.org, linux-mm@kvack.org, Gleb Natapov , Greg Kroah-Hartman , Alexander Graf , kvm-ppc@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Mackerras , Benjamin Herrenschmidt , Paolo Bonzini , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org On 06/12/2014 02:02 PM, Joonsoo Kim wrote: > 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 >>> >>> 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. > Yeah, I also like the idea. After all, this patchset aims to a general CMA management, we could improve more after this patchset. So Acked-by: Zhang Yanfei -- Thanks. Zhang Yanfei