From patchwork Mon Mar 3 08:00:59 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Yalin" X-Patchwork-Id: 3752141 X-Patchwork-Delegate: broonie@sirena.org.uk Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 3ED7B9F1EE for ; Mon, 3 Mar 2014 08:49:35 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D877B203AD for ; Mon, 3 Mar 2014 08:49:28 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id 544C42039E for ; Mon, 3 Mar 2014 08:49:27 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 7BB4826565E; Mon, 3 Mar 2014 09:49:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 0F0CE2655BE; Mon, 3 Mar 2014 09:47:49 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id EA13326512A; Mon, 3 Mar 2014 09:01:14 +0100 (CET) Received: from cnbjrel01.sonyericsson.com (cnbjrel01.sonyericsson.com [219.141.167.165]) by alsa0.perex.cz (Postfix) with ESMTP id B370526536C for ; Mon, 3 Mar 2014 09:01:06 +0100 (CET) From: "Wang, Yalin" To: "'gregkh@linuxfoundation.org'" Date: Mon, 3 Mar 2014 16:00:59 +0800 Thread-Topic: change kmalloc into vmalloc for large memory allocations Thread-Index: Ac82jdSXmB/40HdmRzSAMQzY4c9gQgAJzh1w Message-ID: <35FD53F367049845BC99AC72306C23D102844605F390@CNBJMBX05.corpusers.net> References: <35FD53F367049845BC99AC72306C23D102844605F38C@CNBJMBX05.corpusers.net> <53104ECA.4010702@freescale.com> <35FD53F367049845BC99AC72306C23D102844605F38D@CNBJMBX05.corpusers.net> <20140228163304.GA15614@kroah.com> <35FD53F367049845BC99AC72306C23D102844605F38F@CNBJMBX05.corpusers.net> <20140303030821.GA16732@kroah.com> In-Reply-To: <20140303030821.GA16732@kroah.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 03 Mar 2014 09:47:44 +0100 Cc: "'alsa-devel@alsa-project.org'" , "'broonie@opensource.wolfsonmicro.com'" , "'tiwai@suse.de'" , "'fweisbec@gmail.com'" , 'Will Deacon' , "'mingo@redhat.com'" , "'linux-input@vger.kernel.org'" , "'rydberg@euromail.se'" , "'lrg@ti.com'" , "'pablo@netfilter.org'" , "'rusty@rustcorp.com.au'" , "'coreteam@netfilter.org'" , "'linux-arm-msm@vger.kernel.org'" , "'mschmidt@redhat.com'" , "'rostedt@goodmis.org'" , "'netfilter@vger.kernel.org'" , "'linux-arm-kernel@lists.infradead.org'" , "'laforge@netfilter.org'" , "'netdev@vger.kernel.org'" , "'dmitry.torokhov@gmail.com'" , "'zhaojingmin@users.sourceforge.net'" , "'linux-kernel@vger.kernel.org'" , "'balbi@ti.com'" , "'davem@davemloft.net'" , 'Huang Shijie' , "'linux-usb@vger.kernel.org'" , "'netfilter-devel@vger.kernel.org'" , "'kaber@trash.net'" Subject: Re: [alsa-devel] change kmalloc into vmalloc for large memory allocations X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP Hi greg, For https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/drivers/input/evdev.c?h=master#n403 there have been a patch for kmalloc failed , for https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/sound/soc/soc-core.c?h=master#n3772 I have not change it , need some more code to change in devm_kzalloc .. I make a patch for netfilter part : https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/netfilter/nf_conntrack_ftp.c?h=master#n603 https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/netfilter/nf_conntrack_h323_main.c?h=master#n1849 https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/netfilter/nf_conntrack_irc.c?h=master#n247 https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/netfilter/nf_conntrack_sane.c?h=master#n195 seems work well , these module will allocate 64KB large memory, is it possible to be merged ? Thanks -- >8 -- -----Original Message----- From: 'gregkh@linuxfoundation.org' [mailto:gregkh@linuxfoundation.org] Sent: Monday, March 03, 2014 11:08 AM To: Wang, Yalin Cc: 'Huang Shijie'; 'linux-kernel@vger.kernel.org'; 'linux-arm-msm@vger.kernel.org'; 'linux-arm-kernel@lists.infradead.org'; 'linux-input@vger.kernel.org'; 'balbi@ti.com'; 'lrg@ti.com'; 'broonie@opensource.wolfsonmicro.com'; 'perex@perex.cz'; 'tiwai@suse.de'; 'pablo@netfilter.org'; 'kaber@trash.net'; 'davem@davemloft.net'; 'rostedt@goodmis.org'; 'fweisbec@gmail.com'; 'mingo@redhat.com'; 'dmitry.torokhov@gmail.com'; 'rydberg@euromail.se'; 'linux-usb@vger.kernel.org'; 'alsa-devel@alsa-project.org'; 'netfilter-devel@vger.kernel.org'; 'netfilter@vger.kernel.org'; 'coreteam@netfilter.org'; 'netdev@vger.kernel.org' Subject: Re: change kmalloc into vmalloc for large memory allocations On Mon, Mar 03, 2014 at 10:51:23AM +0800, Wang, Yalin wrote: > Hi greg, > > I am sorry, > I make a mistake , > You are right , > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/drive > rs/usb/gadget/f_mass_storage.c?h=master#n2724 > > this one should not changed to use vmalloc, the buffer will be used by > DMA? Which is why a wrapper function will never work. > others should be safe to change: > > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/sound > /soc/soc-core.c?h=master#n3772 > > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/n > etfilter/nf_conntrack_ftp.c?h=master#n603 > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/n > etfilter/nf_conntrack_h323_main.c?h=master#n1849 > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/n > etfilter/nf_conntrack_irc.c?h=master#n247 > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/net/n > etfilter/nf_conntrack_sane.c?h=master#n195 > > https://git.kernel.org/cgit/linux/kernel/git/will/linux.git/tree/drive > rs/input/evdev.c?h=master#n403 Then send individual patches for these and see what happens. greg k-h diff --git a/net/netfilter/nf_conntrack_ftp.c b/net/netfilter/nf_conntrack_ftp.c index b8a0924..0e92b0d 100644 --- a/net/netfilter/nf_conntrack_ftp.c +++ b/net/netfilter/nf_conntrack_ftp.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include @@ -593,14 +593,14 @@ static void nf_conntrack_ftp_fini(void) } } - kfree(ftp_buffer); + vfree(ftp_buffer); } static int __init nf_conntrack_ftp_init(void) { int i, j = -1, ret = 0; - ftp_buffer = kmalloc(65536, GFP_KERNEL); + ftp_buffer = vmalloc(65536, GFP_KERNEL); if (!ftp_buffer) return -ENOMEM; diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c index 70866d1..49ae092 100644 --- a/net/netfilter/nf_conntrack_h323_main.c +++ b/net/netfilter/nf_conntrack_h323_main.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include @@ -1837,7 +1837,7 @@ static void __exit nf_conntrack_h323_fini(void) nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]); nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]); nf_conntrack_helper_unregister(&nf_conntrack_helper_h245); - kfree(h323_buffer); + vfree(h323_buffer); pr_debug("nf_ct_h323: fini\n"); } @@ -1846,7 +1846,7 @@ static int __init nf_conntrack_h323_init(void) { int ret; - h323_buffer = kmalloc(65536, GFP_KERNEL); + h323_buffer = vmalloc(65536, GFP_KERNEL); if (!h323_buffer) return -ENOMEM; ret = nf_conntrack_helper_register(&nf_conntrack_helper_h245); @@ -1876,7 +1876,7 @@ err3: err2: nf_conntrack_helper_unregister(&nf_conntrack_helper_h245); err1: - kfree(h323_buffer); + vfree(h323_buffer); return ret; } diff --git a/net/netfilter/nf_conntrack_irc.c b/net/netfilter/nf_conntrack_irc.c index 0fd2976..b57df10 100644 --- a/net/netfilter/nf_conntrack_irc.c +++ b/net/netfilter/nf_conntrack_irc.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include @@ -244,7 +244,7 @@ static int __init nf_conntrack_irc_init(void) irc_exp_policy.max_expected = max_dcc_channels; irc_exp_policy.timeout = dcc_timeout; - irc_buffer = kmalloc(65536, GFP_KERNEL); + irc_buffer = vmalloc(65536); if (!irc_buffer) return -ENOMEM; @@ -285,7 +285,7 @@ static void nf_conntrack_irc_fini(void) for (i = 0; i < ports_c; i++) nf_conntrack_helper_unregister(&irc[i]); - kfree(irc_buffer); + vfree(irc_buffer); } module_init(nf_conntrack_irc_init); diff --git a/net/netfilter/nf_conntrack_sane.c b/net/netfilter/nf_conntrack_sane.c index 4a2134f..a4c8bf3 100644 --- a/net/netfilter/nf_conntrack_sane.c +++ b/net/netfilter/nf_conntrack_sane.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include @@ -185,14 +185,14 @@ static void nf_conntrack_sane_fini(void) } } - kfree(sane_buffer); + vfree(sane_buffer); } static int __init nf_conntrack_sane_init(void) { int i, j = -1, ret = 0; - sane_buffer = kmalloc(65536, GFP_KERNEL); + sane_buffer = vmalloc(65536); if (!sane_buffer) return -ENOMEM;