Re: [PATCH v13 3/6] CPM/QE: use genalloc to manage CPM/QE muram
Le 08/08/2016 à 05:00, Qiang Zhao a écrit : On 6/8/2016 03:48AM, Christophe Leroy <christophe.le...@c-s.fr> wrote : -Original Message- From: Christophe Leroy [mailto:christophe.le...@c-s.fr] Sent: Saturday, August 06, 2016 12:59 AM To: Zhao Qiang <qiang.z...@freescale.com>; lau...@codeaurora.org Cc: catalin.mari...@arm.com; linux-ker...@vger.kernel.org; Scott Wood <o...@buserror.net>; o...@lixom.net; a...@linux-foundation.org; linuxppc- d...@lists.ozlabs.org; x@freescale.com Subject: Re: [PATCH v13 3/6] CPM/QE: use genalloc to manage CPM/QE muram Le 30/11/2015 à 03:48, Zhao Qiang a écrit : Use genalloc to manage CPM/QE muram instead of rheap. Signed-off-by: Zhao Qiang <qiang.z...@freescale.com> --- Changes for v9: - splitted from patch 3/5, modify cpm muram management functions. Changes for v10: - modify cpm muram first, then move to qe_common - modify commit. Changes for v11: - factor out the common alloc code - modify min_alloc_order to zero for cpm_muram_alloc_fixed. Changes for v12: - Nil Changes for v13: - rebase arch/powerpc/include/asm/cpm.h | 3 + arch/powerpc/platforms/Kconfig | 4 +- arch/powerpc/sysdev/cpm_common.c | 126 +++ lib/genalloc.c | 2 +- 4 files changed, 94 insertions(+), 41 deletions(-) With that patch applied, I get the following Oops on a 8xx (Which has a CPM1). cpm_muram_init() is called from setup_arch() It seems that gen_pool_add() tries to kmalloc() memory but the SLAB is not available yet. Thank you for your comments, I can't find a 8xx board, would you like to test the patch Attached on your board? Thanks for your support (indeed I only received your mail a few minutes, that is after I proposed another patch). Your patch will not work, because initcalls are called too late. The 8xx needs the SMCs from the CPM for console, that is long before initcalls are called. I sent a proposed patch approximatly 2 hours ago, it is called "[PATCH] soc: fsl/qe: fix Oops on CPM1 (and likely CPM2)" That one works. Could you have a look ? Christophe --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
RE: [PATCH v13 3/6] CPM/QE: use genalloc to manage CPM/QE muram
On 6/8/2016 03:48AM, Christophe Leroy <christophe.le...@c-s.fr> wrote : > -Original Message- > From: Christophe Leroy [mailto:christophe.le...@c-s.fr] > Sent: Saturday, August 06, 2016 12:59 AM > To: Zhao Qiang <qiang.z...@freescale.com>; lau...@codeaurora.org > Cc: catalin.mari...@arm.com; linux-ker...@vger.kernel.org; Scott Wood > <o...@buserror.net>; o...@lixom.net; a...@linux-foundation.org; linuxppc- > d...@lists.ozlabs.org; x....@freescale.com > Subject: Re: [PATCH v13 3/6] CPM/QE: use genalloc to manage CPM/QE muram > > > > Le 30/11/2015 à 03:48, Zhao Qiang a écrit : > > Use genalloc to manage CPM/QE muram instead of rheap. > > > > Signed-off-by: Zhao Qiang <qiang.z...@freescale.com> > > --- > > Changes for v9: > > - splitted from patch 3/5, modify cpm muram management functions. > > Changes for v10: > > - modify cpm muram first, then move to qe_common > > - modify commit. > > Changes for v11: > > - factor out the common alloc code > > - modify min_alloc_order to zero for cpm_muram_alloc_fixed. > > Changes for v12: > > - Nil > > Changes for v13: > > - rebase > > > > arch/powerpc/include/asm/cpm.h | 3 + > > arch/powerpc/platforms/Kconfig | 4 +- > > arch/powerpc/sysdev/cpm_common.c | 126 > +++ > > lib/genalloc.c | 2 +- > > 4 files changed, 94 insertions(+), 41 deletions(-) > > > > With that patch applied, I get the following Oops on a 8xx (Which has a CPM1). > > cpm_muram_init() is called from setup_arch() > > It seems that gen_pool_add() tries to kmalloc() memory but the SLAB is not > available yet. > Thank you for your comments, I can't find a 8xx board, would you like to test the patch Attached on your board? > [0.00] Unable to handle kernel paging request for data at > address 0x0008 > [0.00] Faulting instruction address: 0xc01acce0 > [0.00] Oops: Kernel access of bad area, sig: 11 [#1] > [0.00] PREEMPT CMPC885 > [0.00] CPU: 0 PID: 0 Comm: swapper Not tainted > 4.4.14-s3k-dev-g0886ed8-svn #5 > [0.00] task: c05183e0 ti: c0536000 task.ti: c0536000 > [0.00] NIP: c01acce0 LR: c0011068 CTR: > [0.00] REGS: c0537e50 TRAP: 0300 Not tainted > (4.4.14-s3k-dev-g0886ed8-svn) > [0.00] MSR: 1032 <ME,IR,DR,RI> CR: 28044428 XER: > [0.00] DAR: 0008 DSISR: c000 > GPR00: c0011068 c0537f00 c05183e0 9000 0bc0 > GPR08: ff003000 ff00b000 ff003bbf 22044422 100d43a8 > 07ff94e8 > GPR16: 07bb5d70 07ff81f4 07ff81f4 07ff81f4 > > GPR24: 07ffb3a0 07fe7628 c055 c7ffa190 c054 ff003bbf > 0001 > [0.00] NIP [c01acce0] gen_pool_add_virt+0x14/0xdc > [0.00] LR [c0011068] cpm_muram_init+0xd4/0x18c > [0.00] Call Trace: > [0.00] [c0537f00] [0200] 0x200 (unreliable) > [0.00] [c0537f20] [c0011068] cpm_muram_init+0xd4/0x18c > [0.00] [c0537f70] [c0494684] cpm_reset+0xb4/0xc8 > [0.00] [c0537f90] [c0494c64] cmpc885_setup_arch+0x10/0x30 > [0.00] [c0537fa0] [c0493cd4] setup_arch+0x130/0x168 > [0.00] [c0537fb0] [c04906bc] start_kernel+0x88/0x380 > [0.00] [c0537ff0] [c0002224] start_here+0x38/0x98 > [0.00] Instruction dump: > [0.00] 91430010 91430014 80010014 83e1000c 7c0803a6 38210010 > 4e800020 7c0802a6 > [0.00] 9421ffe0 bf61000c 90010024 7c7e1b78 <80630008> 7c9c2378 > 7cc31c30 3863001f > [0.00] ---[ end trace dc8fa200cb88537f ]--- 0001-CPM1-use-subsys_initcall-to-init-cpm1.patch Description: 0001-CPM1-use-subsys_initcall-to-init-cpm1.patch
Re: [PATCH v13 3/6] CPM/QE: use genalloc to manage CPM/QE muram
Le 30/11/2015 à 03:48, Zhao Qiang a écrit : Use genalloc to manage CPM/QE muram instead of rheap. Signed-off-by: Zhao Qiang--- Changes for v9: - splitted from patch 3/5, modify cpm muram management functions. Changes for v10: - modify cpm muram first, then move to qe_common - modify commit. Changes for v11: - factor out the common alloc code - modify min_alloc_order to zero for cpm_muram_alloc_fixed. Changes for v12: - Nil Changes for v13: - rebase arch/powerpc/include/asm/cpm.h | 3 + arch/powerpc/platforms/Kconfig | 4 +- arch/powerpc/sysdev/cpm_common.c | 126 +++ lib/genalloc.c | 2 +- 4 files changed, 94 insertions(+), 41 deletions(-) With that patch applied, I get the following Oops on a 8xx (Which has a CPM1). cpm_muram_init() is called from setup_arch() It seems that gen_pool_add() tries to kmalloc() memory but the SLAB is not available yet. [0.00] Unable to handle kernel paging request for data at address 0x0008 [0.00] Faulting instruction address: 0xc01acce0 [0.00] Oops: Kernel access of bad area, sig: 11 [#1] [0.00] PREEMPT CMPC885 [0.00] CPU: 0 PID: 0 Comm: swapper Not tainted 4.4.14-s3k-dev-g0886ed8-svn #5 [0.00] task: c05183e0 ti: c0536000 task.ti: c0536000 [0.00] NIP: c01acce0 LR: c0011068 CTR: [0.00] REGS: c0537e50 TRAP: 0300 Not tainted (4.4.14-s3k-dev-g0886ed8-svn) [0.00] MSR: 1032 CR: 28044428 XER: [0.00] DAR: 0008 DSISR: c000 GPR00: c0011068 c0537f00 c05183e0 9000 0bc0 GPR08: ff003000 ff00b000 ff003bbf 22044422 100d43a8 07ff94e8 GPR16: 07bb5d70 07ff81f4 07ff81f4 07ff81f4 GPR24: 07ffb3a0 07fe7628 c055 c7ffa190 c054 ff003bbf 0001 [0.00] NIP [c01acce0] gen_pool_add_virt+0x14/0xdc [0.00] LR [c0011068] cpm_muram_init+0xd4/0x18c [0.00] Call Trace: [0.00] [c0537f00] [0200] 0x200 (unreliable) [0.00] [c0537f20] [c0011068] cpm_muram_init+0xd4/0x18c [0.00] [c0537f70] [c0494684] cpm_reset+0xb4/0xc8 [0.00] [c0537f90] [c0494c64] cmpc885_setup_arch+0x10/0x30 [0.00] [c0537fa0] [c0493cd4] setup_arch+0x130/0x168 [0.00] [c0537fb0] [c04906bc] start_kernel+0x88/0x380 [0.00] [c0537ff0] [c0002224] start_here+0x38/0x98 [0.00] Instruction dump: [0.00] 91430010 91430014 80010014 83e1000c 7c0803a6 38210010 4e800020 7c0802a6 [0.00] 9421ffe0 bf61000c 90010024 7c7e1b78 <80630008> 7c9c2378 7cc31c30 3863001f [0.00] ---[ end trace dc8fa200cb88537f ]---