Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Badari Pulavarty wrote: > On Thu, 2007-05-24 at 14:05 +0200, Jens Axboe wrote: > > On Thu, May 24 2007, Jens Axboe wrote: > > > > Oops: Kernel access of bad area, sig: 11 [#1] > > > > SMP NR_CPUS=32 NUMA pSeries > > > > Modules linked in: qla2xxx scsi_transport_fc > > > > NIP: c00414a0 LR: c004162c CTR: 0001 > > > > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > > > > MSR: 80001032 CR: 2822 XER: 0008 > > > > DAR: , DSISR: 4000 > > > > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > > > > GPR00: 0080 c47bb3b0 c0692358 > > > > c47a6aa0 > > > > GPR04: 0070 > > > > c05ac0b8 > > > > GPR08: e4b4 0001 > > > > 0280 > > > > GPR12: 0020 c05a3e80 > > > > 07a8dd70 > > > > GPR16: > > > > c47b8000 > > > > GPR20: 3b9aca00 c47a6c50 0001 > > > > > > > > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 > > > > c47a6aa0 > > > > GPR28: 0001079027ca c47a6aa0 c05b7cb0 > > > > c0472c9c > > > > NIP [c00414a0] .dequeue_task+0x0/0x9c > > > > LR [c004162c] .deactivate_task+0x40/0x60 > > > > Call Trace: > > > > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > > > > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > > > > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > > > > [c47bb610] [c0057260] .msleep+0x20/0x38 > > > > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > > > > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > > > > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 > > > > [qla2xxx] > > > > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > > > > [qla2xxx] > > > > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > > > > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > > > > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > > > > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c > > > > > > Not good. The qla changes are non-trivial (that hardware has a really > > > funky sg setup), so I may have botched a part of it. I'll review the > > > qla changes and get back to you. > > > > Does this help? > > > > diff --git a/drivers/scsi/qla2xxx/qla_iocb.c > > b/drivers/scsi/qla2xxx/qla_iocb.c > > Yes. It does. For now, I have no more complaints :) Excellent! Let me know if you manage to run some performance numbers. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Badari Pulavarty wrote: On Thu, 2007-05-24 at 14:05 +0200, Jens Axboe wrote: On Thu, May 24 2007, Jens Axboe wrote: Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. Does this help? diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c Yes. It does. For now, I have no more complaints :) Excellent! Let me know if you manage to run some performance numbers. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-25 at 01:01 +0900, FUJITA Tomonori wrote: > From: James Bottomley <[EMAIL PROTECTED]> > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > Date: Thu, 24 May 2007 10:39:44 -0500 > > > On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: > > > (cc's added) > > > > > > From: Jens Axboe <[EMAIL PROTECTED]> > > > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > > > Date: Thu, 24 May 2007 14:05:54 +0200 > > > > > > > On Thu, May 24 2007, Jens Axboe wrote: > > > > > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > > > > > > > > > Neat, will take a look! I should be able to just reuse that. > > > > > > > > BTW, when do you plan on pushing the SCSI sg update? I'd love for it to > > > > be soon, so I can just rebase the sglist branch on that and get rid of > > > > the SCSI stuff in there. > > > > > > Well, all I can say is that I'd love James to push the cleanups > > > patchset soon too. > > > > I'll put the accessor one into scsi-misc. I'll try to get the other 40 > > reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give > > me some time on that. > > Thanks. Do you want me to send the patches to scsi-ml or you directly > get them via the git tree? Either works ... but for 40 patches it was easier for me to fetch into a git branch and cherry pick the two that can go into scsi-misc now. I'm just correcting a compile warning on the 53c700 one, then I'll push. James - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
From: James Bottomley <[EMAIL PROTECTED]> Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 10:39:44 -0500 > On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: > > (cc's added) > > > > From: Jens Axboe <[EMAIL PROTECTED]> > > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > > Date: Thu, 24 May 2007 14:05:54 +0200 > > > > > On Thu, May 24 2007, Jens Axboe wrote: > > > > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > > > > > > > Neat, will take a look! I should be able to just reuse that. > > > > > > BTW, when do you plan on pushing the SCSI sg update? I'd love for it to > > > be soon, so I can just rebase the sglist branch on that and get rid of > > > the SCSI stuff in there. > > > > Well, all I can say is that I'd love James to push the cleanups > > patchset soon too. > > I'll put the accessor one into scsi-misc. I'll try to get the other 40 > reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give > me some time on that. Thanks. Do you want me to send the patches to scsi-ml or you directly get them via the git tree? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: > (cc's added) > > From: Jens Axboe <[EMAIL PROTECTED]> > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > Date: Thu, 24 May 2007 14:05:54 +0200 > > > On Thu, May 24 2007, Jens Axboe wrote: > > > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > > > > > Neat, will take a look! I should be able to just reuse that. > > > > BTW, when do you plan on pushing the SCSI sg update? I'd love for it to > > be soon, so I can just rebase the sglist branch on that and get rid of > > the SCSI stuff in there. > > Well, all I can say is that I'd love James to push the cleanups > patchset soon too. I'll put the accessor one into scsi-misc. I'll try to get the other 40 reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give me some time on that. James - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-24 at 14:05 +0200, Jens Axboe wrote: > On Thu, May 24 2007, Jens Axboe wrote: > > > Oops: Kernel access of bad area, sig: 11 [#1] > > > SMP NR_CPUS=32 NUMA pSeries > > > Modules linked in: qla2xxx scsi_transport_fc > > > NIP: c00414a0 LR: c004162c CTR: 0001 > > > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > > > MSR: 80001032 CR: 2822 XER: 0008 > > > DAR: , DSISR: 4000 > > > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > > > GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 > > > GPR04: 0070 c05ac0b8 > > > GPR08: e4b4 0001 0280 > > > GPR12: 0020 c05a3e80 07a8dd70 > > > GPR16: c47b8000 > > > GPR20: 3b9aca00 c47a6c50 0001 > > > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 > > > GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c > > > NIP [c00414a0] .dequeue_task+0x0/0x9c > > > LR [c004162c] .deactivate_task+0x40/0x60 > > > Call Trace: > > > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > > > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > > > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > > > [c47bb610] [c0057260] .msleep+0x20/0x38 > > > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > > > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > > > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 > > > [qla2xxx] > > > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > > > [qla2xxx] > > > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > > > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > > > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > > > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c > > > > Not good. The qla changes are non-trivial (that hardware has a really > > funky sg setup), so I may have botched a part of it. I'll review the > > qla changes and get back to you. > > Does this help? > > diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c Yes. It does. For now, I have no more complaints :) Thanks, Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, FUJITA Tomonori wrote: > (cc's added) > > From: Jens Axboe <[EMAIL PROTECTED]> > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > Date: Thu, 24 May 2007 14:05:54 +0200 > > > On Thu, May 24 2007, Jens Axboe wrote: > > > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > > > > > Neat, will take a look! I should be able to just reuse that. > > > > BTW, when do you plan on pushing the SCSI sg update? I'd love for it to > > be soon, so I can just rebase the sglist branch on that and get rid of > > the SCSI stuff in there. > > Well, all I can say is that I'd love James to push the cleanups > patchset soon too. Cool, James? -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
(cc's added) From: Jens Axboe <[EMAIL PROTECTED]> Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 > On Thu, May 24 2007, Jens Axboe wrote: > > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > > > Neat, will take a look! I should be able to just reuse that. > > BTW, when do you plan on pushing the SCSI sg update? I'd love for it to > be soon, so I can just rebase the sglist branch on that and get rid of > the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Jens Axboe wrote: > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c > > Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Jens Axboe wrote: > > Oops: Kernel access of bad area, sig: 11 [#1] > > SMP NR_CPUS=32 NUMA pSeries > > Modules linked in: qla2xxx scsi_transport_fc > > NIP: c00414a0 LR: c004162c CTR: 0001 > > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > > MSR: 80001032 CR: 2822 XER: 0008 > > DAR: , DSISR: 4000 > > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > > GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 > > GPR04: 0070 c05ac0b8 > > GPR08: e4b4 0001 0280 > > GPR12: 0020 c05a3e80 07a8dd70 > > GPR16: c47b8000 > > GPR20: 3b9aca00 c47a6c50 0001 > > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 > > GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c > > NIP [c00414a0] .dequeue_task+0x0/0x9c > > LR [c004162c] .deactivate_task+0x40/0x60 > > Call Trace: > > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > > [c47bb610] [c0057260] .msleep+0x20/0x38 > > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 > > [qla2xxx] > > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > > [qla2xxx] > > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c > > Not good. The qla changes are non-trivial (that hardware has a really > funky sg setup), so I may have botched a part of it. I'll review the > qla changes and get back to you. Does this help? diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index 10251bf..5510b86 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c @@ -155,6 +155,8 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, uint32_t*cur_dsd; scsi_qla_host_t *ha; struct scsi_cmnd *cmd; + struct scatterlist *sg; + int i; cmd = sp->cmd; @@ -178,13 +180,10 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, /* Load data segments */ if (cmd->use_sg != 0) { - struct scatterlist *cur_seg; - struct scatterlist *end_seg; - - cur_seg = (struct scatterlist *)cmd->request_buffer; - end_seg = cur_seg + tot_dsds; - while (cur_seg < end_seg) { - cont_entry_t*cont_pkt; + struct scatterlist *sgl = cmd->request_buffer; + + for_each_sg(sgl, sg, tot_dsds, i) { + cont_entry_t *cont_pkt; /* Allocate additional continuation packets? */ if (avail_dsds == 0) { @@ -197,11 +196,9 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, avail_dsds = 7; } - *cur_dsd++ = cpu_to_le32(sg_dma_address(cur_seg)); - *cur_dsd++ = cpu_to_le32(sg_dma_len(cur_seg)); + *cur_dsd++ = cpu_to_le32(sg_dma_address(sg)); + *cur_dsd++ = cpu_to_le32(sg_dma_len(sg)); avail_dsds--; - - cur_seg++; } } else { *cur_dsd++ = cpu_to_le32(sp->dma_handle); @@ -224,6 +221,9 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, uint32_t*cur_dsd; scsi_qla_host_t *ha; struct scsi_cmnd *cmd; + struct scatterlist *sgl; + struct scatterlist *sg; + int i; cmd = sp->cmd; @@ -247,12 +247,8 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, /* Load data segments */ if (cmd->use_sg != 0) { - struct scatterlist *cur_seg; - struct scatterlist *end_seg; - - cur_seg = (struct scatterlist *)cmd->request_buffer; - end_seg = cur_seg + tot_dsds; - while (cur_seg < end_seg) { + sgl = cmd->request_buffer; + for_each_sg(sgl, sg, tot_dsds, i) { dma_addr_t sle_dma; cont_a64_entry_t
Re: [PATCH] Chaining sg lists for big IO commands v5
From: Jens Axboe <[EMAIL PROTECTED]> Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 11:34:41 +0200 > On Tue, May 22 2007, Badari Pulavarty wrote: > > > If iommu=off works, can you try a normal boot but with this applied on > > > top of the sglist patches? That should fix gart mapping. > > > > > > diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c > > > index 2e22a3a..b16384f 100644 > > > --- a/arch/x86_64/kernel/pci-gart.c > > > +++ b/arch/x86_64/kernel/pci-gart.c > > > > Yes. With this patch + kzalloc() for ide probe took care of all my > > problems on x86-64. > > > > But my ppc64 box is still sick :( > > :-( > > > Oops: Kernel access of bad area, sig: 11 [#1] > > SMP NR_CPUS=32 NUMA pSeries > > Modules linked in: qla2xxx scsi_transport_fc > > NIP: c00414a0 LR: c004162c CTR: 0001 > > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > > MSR: 80001032 CR: 2822 XER: 0008 > > DAR: , DSISR: 4000 > > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > > GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 > > GPR04: 0070 c05ac0b8 > > GPR08: e4b4 0001 0280 > > GPR12: 0020 c05a3e80 07a8dd70 > > GPR16: c47b8000 > > GPR20: 3b9aca00 c47a6c50 0001 > > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 > > GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c > > NIP [c00414a0] .dequeue_task+0x0/0x9c > > LR [c004162c] .deactivate_task+0x40/0x60 > > Call Trace: > > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > > [c47bb610] [c0057260] .msleep+0x20/0x38 > > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 > > [qla2xxx] > > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > > [qla2xxx] > > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c > > Not good. The qla changes are non-trivial (that hardware has a really > funky sg setup), so I may have botched a part of it. I'll review the > qla changes and get back to you. I guess that qla2xxx needs more for_each_sg macros. My qla2xxx cleanup patch might help: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, FUJITA Tomonori wrote: > From: Jens Axboe <[EMAIL PROTECTED]> > Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 > Date: Thu, 24 May 2007 11:34:41 +0200 > > > On Tue, May 22 2007, Badari Pulavarty wrote: > > > > If iommu=off works, can you try a normal boot but with this applied on > > > > top of the sglist patches? That should fix gart mapping. > > > > > > > > diff --git a/arch/x86_64/kernel/pci-gart.c > > > > b/arch/x86_64/kernel/pci-gart.c > > > > index 2e22a3a..b16384f 100644 > > > > --- a/arch/x86_64/kernel/pci-gart.c > > > > +++ b/arch/x86_64/kernel/pci-gart.c > > > > > > Yes. With this patch + kzalloc() for ide probe took care of all my > > > problems on x86-64. > > > > > > But my ppc64 box is still sick :( > > > > :-( > > > > > Oops: Kernel access of bad area, sig: 11 [#1] > > > SMP NR_CPUS=32 NUMA pSeries > > > Modules linked in: qla2xxx scsi_transport_fc > > > NIP: c00414a0 LR: c004162c CTR: 0001 > > > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > > > MSR: 80001032 CR: 2822 XER: 0008 > > > DAR: , DSISR: 4000 > > > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > > > GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 > > > GPR04: 0070 c05ac0b8 > > > GPR08: e4b4 0001 0280 > > > GPR12: 0020 c05a3e80 07a8dd70 > > > GPR16: c47b8000 > > > GPR20: 3b9aca00 c47a6c50 0001 > > > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 > > > GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c > > > NIP [c00414a0] .dequeue_task+0x0/0x9c > > > LR [c004162c] .deactivate_task+0x40/0x60 > > > Call Trace: > > > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > > > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > > > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > > > [c47bb610] [c0057260] .msleep+0x20/0x38 > > > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > > > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > > > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 > > > [qla2xxx] > > > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > > > [qla2xxx] > > > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > > > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > > > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > > > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c > > > > Not good. The qla changes are non-trivial (that hardware has a really > > funky sg setup), so I may have botched a part of it. I'll review the > > qla changes and get back to you. > > I guess that qla2xxx needs more for_each_sg macros. My qla2xxx cleanup > patch might help: > > http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 22 2007, Badari Pulavarty wrote: > > If iommu=off works, can you try a normal boot but with this applied on > > top of the sglist patches? That should fix gart mapping. > > > > diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c > > index 2e22a3a..b16384f 100644 > > --- a/arch/x86_64/kernel/pci-gart.c > > +++ b/arch/x86_64/kernel/pci-gart.c > > Yes. With this patch + kzalloc() for ide probe took care of all my > problems on x86-64. > > But my ppc64 box is still sick :( :-( > Oops: Kernel access of bad area, sig: 11 [#1] > SMP NR_CPUS=32 NUMA pSeries > Modules linked in: qla2xxx scsi_transport_fc > NIP: c00414a0 LR: c004162c CTR: 0001 > REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) > MSR: 80001032 CR: 2822 XER: 0008 > DAR: , DSISR: 4000 > TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 > GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 > GPR04: 0070 c05ac0b8 > GPR08: e4b4 0001 0280 > GPR12: 0020 c05a3e80 07a8dd70 > GPR16: c47b8000 > GPR20: 3b9aca00 c47a6c50 0001 > GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 > GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c > NIP [c00414a0] .dequeue_task+0x0/0x9c > LR [c004162c] .deactivate_task+0x40/0x60 > Call Trace: > [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) > [c47bb440] [c0471704] .schedule+0x1fc/0x8dc > [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 > [c47bb610] [c0057260] .msleep+0x20/0x38 > [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 > [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 > [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] > [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c > [qla2xxx] > [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 > [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 > [c47bba90] [c000c178] .do_IRQ+0x90/0xec > [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 22 2007, Badari Pulavarty wrote: If iommu=off works, can you try a normal boot but with this applied on top of the sglist patches? That should fix gart mapping. diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2e22a3a..b16384f 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c Yes. With this patch + kzalloc() for ide probe took care of all my problems on x86-64. But my ppc64 box is still sick :( :-( Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, FUJITA Tomonori wrote: From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 11:34:41 +0200 On Tue, May 22 2007, Badari Pulavarty wrote: If iommu=off works, can you try a normal boot but with this applied on top of the sglist patches? That should fix gart mapping. diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2e22a3a..b16384f 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c Yes. With this patch + kzalloc() for ide probe took care of all my problems on x86-64. But my ppc64 box is still sick :( :-( Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. I guess that qla2xxx needs more for_each_sg macros. My qla2xxx cleanup patch might help: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 11:34:41 +0200 On Tue, May 22 2007, Badari Pulavarty wrote: If iommu=off works, can you try a normal boot but with this applied on top of the sglist patches? That should fix gart mapping. diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2e22a3a..b16384f 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c Yes. With this patch + kzalloc() for ide probe took care of all my problems on x86-64. But my ppc64 box is still sick :( :-( Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. I guess that qla2xxx needs more for_each_sg macros. My qla2xxx cleanup patch might help: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Jens Axboe wrote: Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. Does this help? diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index 10251bf..5510b86 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c @@ -155,6 +155,8 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, uint32_t*cur_dsd; scsi_qla_host_t *ha; struct scsi_cmnd *cmd; + struct scatterlist *sg; + int i; cmd = sp-cmd; @@ -178,13 +180,10 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, /* Load data segments */ if (cmd-use_sg != 0) { - struct scatterlist *cur_seg; - struct scatterlist *end_seg; - - cur_seg = (struct scatterlist *)cmd-request_buffer; - end_seg = cur_seg + tot_dsds; - while (cur_seg end_seg) { - cont_entry_t*cont_pkt; + struct scatterlist *sgl = cmd-request_buffer; + + for_each_sg(sgl, sg, tot_dsds, i) { + cont_entry_t *cont_pkt; /* Allocate additional continuation packets? */ if (avail_dsds == 0) { @@ -197,11 +196,9 @@ void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt, avail_dsds = 7; } - *cur_dsd++ = cpu_to_le32(sg_dma_address(cur_seg)); - *cur_dsd++ = cpu_to_le32(sg_dma_len(cur_seg)); + *cur_dsd++ = cpu_to_le32(sg_dma_address(sg)); + *cur_dsd++ = cpu_to_le32(sg_dma_len(sg)); avail_dsds--; - - cur_seg++; } } else { *cur_dsd++ = cpu_to_le32(sp-dma_handle); @@ -224,6 +221,9 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, uint32_t*cur_dsd; scsi_qla_host_t *ha; struct scsi_cmnd *cmd; + struct scatterlist *sgl; + struct scatterlist *sg; + int i; cmd = sp-cmd; @@ -247,12 +247,8 @@ void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt, /* Load data segments */ if (cmd-use_sg != 0) { - struct scatterlist *cur_seg; - struct scatterlist *end_seg; - - cur_seg = (struct scatterlist *)cmd-request_buffer; - end_seg = cur_seg + tot_dsds; - while (cur_seg end_seg) { + sgl = cmd-request_buffer; + for_each_sg(sgl, sg, tot_dsds, i) { dma_addr_t sle_dma; cont_a64_entry_t *cont_pkt; @@ -267,13 +263,11 @@ void qla2x00_build_scsi_iocbs_64(srb_t
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
(cc's added) From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 24 2007, FUJITA Tomonori wrote: (cc's added) From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. Cool, James? -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: (cc's added) From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. I'll put the accessor one into scsi-misc. I'll try to get the other 40 reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give me some time on that. James - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-24 at 14:05 +0200, Jens Axboe wrote: On Thu, May 24 2007, Jens Axboe wrote: Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: qla2xxx scsi_transport_fc NIP: c00414a0 LR: c004162c CTR: 0001 REGS: c47bb130 TRAP: 0300 Not tainted (2.6.22-rc1) MSR: 80001032 ME,IR,DR CR: 2822 XER: 0008 DAR: , DSISR: 4000 TASK = c47a6aa0[0] 'swapper' THREAD: c47b8000 CPU: 7 GPR00: 0080 c47bb3b0 c0692358 c47a6aa0 GPR04: 0070 c05ac0b8 GPR08: e4b4 0001 0280 GPR12: 0020 c05a3e80 07a8dd70 GPR16: c47b8000 GPR20: 3b9aca00 c47a6c50 0001 GPR24: d0909048 0001dee6d30c0d30 c3b7dd80 c47a6aa0 GPR28: 0001079027ca c47a6aa0 c05b7cb0 c0472c9c NIP [c00414a0] .dequeue_task+0x0/0x9c LR [c004162c] .deactivate_task+0x40/0x60 Call Trace: [c47bb3b0] [c004bccc] .printk+0x38/0x48 (unreliable) [c47bb440] [c0471704] .schedule+0x1fc/0x8dc [c47bb540] [c0472c9c] .schedule_timeout+0xa8/0xe8 [c47bb610] [c0057260] .msleep+0x20/0x38 [c47bb690] [c003f5ec] .eeh_dn_check_failure+0x114/0x268 [c47bb740] [c003fc64] .eeh_check_failure+0xec/0x114 [c47bb7c0] [d086190c] .qla2300_fw_dump+0x1130/0x1c00 [qla2xxx] [c47bb8a0] [d0858d50] .qla2300_intr_handler+0x1e8/0x60c [qla2xxx] [c47bb950] [c0078368] .handle_IRQ_event+0x70/0xe4 [c47bb9f0] [c007a7e0] .handle_fasteoi_irq+0x11c/0x1d0 [c47bba90] [c000c178] .do_IRQ+0x90/0xec [c47bbb10] [c0004790] hardware_interrupt_entry+0x18/0x1c Not good. The qla changes are non-trivial (that hardware has a really funky sg setup), so I may have botched a part of it. I'll review the qla changes and get back to you. Does this help? diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c Yes. It does. For now, I have no more complaints :) Thanks, Badari - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
From: James Bottomley [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 10:39:44 -0500 On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: (cc's added) From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. I'll put the accessor one into scsi-misc. I'll try to get the other 40 reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give me some time on that. Thanks. Do you want me to send the patches to scsi-ml or you directly get them via the git tree? - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-25 at 01:01 +0900, FUJITA Tomonori wrote: From: James Bottomley [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 10:39:44 -0500 On Thu, 2007-05-24 at 21:44 +0900, FUJITA Tomonori wrote: (cc's added) From: Jens Axboe [EMAIL PROTECTED] Subject: Re: [PATCH] Chaining sg lists for big IO commands v5 Date: Thu, 24 May 2007 14:05:54 +0200 On Thu, May 24 2007, Jens Axboe wrote: http://git.kernel.org/?p=linux/kernel/git/tomo/linux-2.6-bidi.git;a=commitdiff;h=fb2747a9f2465ac4a1ea9e3533b92510fbcaae0c Neat, will take a look! I should be able to just reuse that. BTW, when do you plan on pushing the SCSI sg update? I'd love for it to be soon, so I can just rebase the sglist branch on that and get rid of the SCSI stuff in there. Well, all I can say is that I'd love James to push the cleanups patchset soon too. I'll put the accessor one into scsi-misc. I'll try to get the other 40 reviewed via the scsi-pending tree that Mark Salyzyn suggested ... give me some time on that. Thanks. Do you want me to send the patches to scsi-ml or you directly get them via the git tree? Either works ... but for 40 patches it was easier for me to fetch into a git branch and cherry pick the two that can go into scsi-misc now. I'm just correcting a compile warning on the 53c700 one, then I'll push. James - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, 2007-05-21 at 08:35 +0200, Jens Axboe wrote: > On Mon, May 21 2007, Jens Axboe wrote: > > On Fri, May 18 2007, Badari Pulavarty wrote: > > > On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: > > > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > > > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > > > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just > > > > > > > > > > > > attach the patch > > > > > > > > > > > > file... > > > > > > > > > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > > > > > ???sym_scatter???: > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: > > > > > > > > > > > implicit declaration > > > > > > > > > > > of function ???for_each_sg??? > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected > > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > > token > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused > > > > > > > > > > > variable ???tp??? > > > > > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > > > > > declaration of > > > > > > > > > > > function ???for_each_sg??? > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected > > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > > token > > > > > > > > > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. > > > > > > > > Builds fine > > > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you > > > > > > try > > > > > > and backout this patch and see if it boots? > > > > > > > > > > I increased max_segments to 1024 on my qla2200 attached disks and > > > > > simple "dd" (direct read) resulted in following: > > > > > > > > > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > > > > > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > > > > > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > > > > > > > > > Unable to handle kernel paging request at 1008 RIP: > > > > > [] __rmqueue+0x6f/0x120 > > > > > > > > Auch, that's a bug. I don't think the oom path has been tested yet, > > > > perhaps this is hitting it. > > > > > > > > Can you try with this debug patch, plus enable the slab debugging > > > > helpers (like poisoning)? > > > > > > > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > > > index 7456992..a479d1e 100644 > > > > --- a/drivers/scsi/scsi_lib.c > > > > +++ b/drivers/scsi/scsi_lib.c > > > > @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct > > > > scsi_cmnd *cmd, gfp_t gfp_mask) > > > > return ret; > > > > enomem: > > > > if (ret) { > > > > + printk(KERN_ERR "scsi: failed to allocate sg table\n"); > > > > /* > > > > * Free entries chained off ret. Since we were trying to > > > > * allocate another sglist, we know that all entries > > > > are of > > > > > > > > > > Not much help. I get all kinds of weird panics.. This time I got (with > > > the above debug). > > > > > > general protection fault: [1] SMP > > > CPU 1 > > > Modules linked in: jfs sg sd_mod qla2xxx firmware_class > > > scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button > > > battery ac dm_mod floppy parport_pc lp parport > > > Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 > > > RIP: 0010:[] [] kmem_cache_alloc > > > +0x36/0x70 > > > RSP: 0018:81017abbfc10 EFLAGS: 00010002 > > > RAX: RBX: 0082 RCX: 0664 > > > RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 > > > RBP:
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, 2007-05-21 at 08:14 +0200, Jens Axboe wrote: > On Fri, May 18 2007, Badari Pulavarty wrote: > > On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: > > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach > > > > > > > > > > > the patch > > > > > > > > > > > file... > > > > > > > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > > > > ???sym_scatter???: > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > > > > > declaration > > > > > > > > > > of function ???for_each_sg??? > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > token > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused > > > > > > > > > > variable ???tp??? > > > > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > > > > declaration of > > > > > > > > > > function ???for_each_sg??? > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > token > > > > > > > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. > > > > > > > Builds fine > > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > > > and backout this patch and see if it boots? > > > > > > > > I increased max_segments to 1024 on my qla2200 attached disks and > > > > simple "dd" (direct read) resulted in following: > > > > > > > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > > > > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > > > > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > > > > > > > Unable to handle kernel paging request at 1008 RIP: > > > > [] __rmqueue+0x6f/0x120 > > > > > > Auch, that's a bug. I don't think the oom path has been tested yet, > > > perhaps this is hitting it. > > > > > > Can you try with this debug patch, plus enable the slab debugging > > > helpers (like poisoning)? > > > > > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > > index 7456992..a479d1e 100644 > > > --- a/drivers/scsi/scsi_lib.c > > > +++ b/drivers/scsi/scsi_lib.c > > > @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct > > > scsi_cmnd *cmd, gfp_t gfp_mask) > > > return ret; > > > enomem: > > > if (ret) { > > > + printk(KERN_ERR "scsi: failed to allocate sg table\n"); > > > /* > > >* Free entries chained off ret. Since we were trying to > > >* allocate another sglist, we know that all entries are of > > > > > > > Not much help. I get all kinds of weird panics.. This time I got (with > > the above debug). > > > > general protection fault: [1] SMP > > CPU 1 > > Modules linked in: jfs sg sd_mod qla2xxx firmware_class > > scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button > > battery ac dm_mod floppy parport_pc lp parport > > Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 > > RIP: 0010:[] [] kmem_cache_alloc > > +0x36/0x70 > > RSP: 0018:81017abbfc10 EFLAGS: 00010002 > > RAX: RBX: 0082 RCX: 0664 > > RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 > > RBP: 81017abbfc20 R08: 39f8 R09: > > R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 > > R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 > > FS: 2b505b027f20() GS:81018021f300() > > knlGS:f7da26b0 > > CS: 0010 DS: 0018 ES: 0018 CR0:
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, 2007-05-21 at 08:35 +0200, Jens Axboe wrote: On Mon, May 21 2007, Jens Axboe wrote: On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, 2007-05-21 at 08:14 +0200, Jens Axboe wrote: On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80219dc0] flush_gart+0x40/0x50 [880e5da6]
Re: [PATCH] Chaining sg lists for big IO commands v5
Jens Axboe wrote: > On Mon, May 21 2007, Jens Axboe wrote: >> On Fri, May 18 2007, Badari Pulavarty wrote: >>> On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: >> On Wed, May 16 2007, Badari Pulavarty wrote: >>> On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: >> On Tue, May 15 2007, Badari Pulavarty wrote: >>> On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... >>> Missing scatterlist.h inclusions.. >>> >>> drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: >>> drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit >>> declaration >>> of function ???for_each_sg??? >>> drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? >>> before ???{??? >>> token >>> drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable >>> ???tp??? >>> make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 >>> >>> >>> drivers/scsi/qla2xxx/qla_iocb.c: In function >>> ???qla24xx_build_scsi_iocbs???: >>> drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration >>> of >>> function ???for_each_sg??? >>> drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before >>> ???{??? >>> token >> Thanks, will fix those. What arch? I tested it here. > I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. >>> >>> Here is the whole panic stack.. >> Thanks will fix that up, the IDE part is totally untested. Can you try >> and backout this patch and see if it boots? > I increased max_segments to 1024 on my qla2200 attached disks and > simple "dd" (direct read) resulted in following: > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > Unable to handle kernel paging request at 1008 RIP: > [] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR "scsi: failed to allocate sg table\n"); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of >>> Not much help. I get all kinds of weird panics.. This time I got (with >>> the above debug). >>> >>> general protection fault: [1] SMP >>> CPU 1 >>> Modules linked in: jfs sg sd_mod qla2xxx firmware_class >>> scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button >>> battery ac dm_mod floppy parport_pc lp parport >>> Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 >>> RIP: 0010:[] [] kmem_cache_alloc >>> +0x36/0x70 >>> RSP: 0018:81017abbfc10 EFLAGS: 00010002 >>> RAX: RBX: 0082 RCX: 0664 >>> RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 >>> RBP: 81017abbfc20 R08: 39f8 R09: >>> R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 >>> R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 >>> FS: 2b505b027f20() GS:81018021f300() >>> knlGS:f7da26b0 >>> CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b >>> CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 >>> Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task >>> 81017a571440) >>> Stack: 7abbfc30 81017abbfc30 >>> 8025d001 >>> 81017abbfcb0 8025d122 81017abbfc60 80219dc0 >>> 880e5da6 00ad 81017abbfcd0 8021a366 >>> Call Trace: >>> [] mempool_alloc_slab+0x11/0x20 >>> [] mempool_alloc+0x42/0x110 >>> []
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, May 21 2007, Jens Axboe wrote: > On Fri, May 18 2007, Badari Pulavarty wrote: > > On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: > > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach > > > > > > > > > > > the patch > > > > > > > > > > > file... > > > > > > > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > > > > ???sym_scatter???: > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > > > > > declaration > > > > > > > > > > of function ???for_each_sg??? > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > token > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused > > > > > > > > > > variable ???tp??? > > > > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > > > > declaration of > > > > > > > > > > function ???for_each_sg??? > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected > > > > > > > > > > ???;??? before ???{??? > > > > > > > > > > token > > > > > > > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. > > > > > > > Builds fine > > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > > > and backout this patch and see if it boots? > > > > > > > > I increased max_segments to 1024 on my qla2200 attached disks and > > > > simple "dd" (direct read) resulted in following: > > > > > > > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > > > > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > > > > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > > > > > > > Unable to handle kernel paging request at 1008 RIP: > > > > [] __rmqueue+0x6f/0x120 > > > > > > Auch, that's a bug. I don't think the oom path has been tested yet, > > > perhaps this is hitting it. > > > > > > Can you try with this debug patch, plus enable the slab debugging > > > helpers (like poisoning)? > > > > > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > > index 7456992..a479d1e 100644 > > > --- a/drivers/scsi/scsi_lib.c > > > +++ b/drivers/scsi/scsi_lib.c > > > @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct > > > scsi_cmnd *cmd, gfp_t gfp_mask) > > > return ret; > > > enomem: > > > if (ret) { > > > + printk(KERN_ERR "scsi: failed to allocate sg table\n"); > > > /* > > >* Free entries chained off ret. Since we were trying to > > >* allocate another sglist, we know that all entries are of > > > > > > > Not much help. I get all kinds of weird panics.. This time I got (with > > the above debug). > > > > general protection fault: [1] SMP > > CPU 1 > > Modules linked in: jfs sg sd_mod qla2xxx firmware_class > > scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button > > battery ac dm_mod floppy parport_pc lp parport > > Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 > > RIP: 0010:[] [] kmem_cache_alloc > > +0x36/0x70 > > RSP: 0018:81017abbfc10 EFLAGS: 00010002 > > RAX: RBX: 0082 RCX: 0664 > > RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 > > RBP: 81017abbfc20 R08: 39f8 R09: > > R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 > > R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 > > FS: 2b505b027f20() GS:81018021f300() > > knlGS:f7da26b0 > > CS: 0010 DS: 0018 ES: 0018 CR0:
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, May 18 2007, Badari Pulavarty wrote: > On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach > > > > > > > > > > the patch > > > > > > > > > > file... > > > > > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > > > ???sym_scatter???: > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > > > > declaration > > > > > > > > > of function ???for_each_sg??? > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected > > > > > > > > > ???;??? before ???{??? > > > > > > > > > token > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused > > > > > > > > > variable ???tp??? > > > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > > > declaration of > > > > > > > > > function ???for_each_sg??? > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? > > > > > > > > > before ???{??? > > > > > > > > > token > > > > > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds > > > > > > fine > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > > and backout this patch and see if it boots? > > > > > > I increased max_segments to 1024 on my qla2200 attached disks and > > > simple "dd" (direct read) resulted in following: > > > > > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > > > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > > > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > > > > > Unable to handle kernel paging request at 1008 RIP: > > > [] __rmqueue+0x6f/0x120 > > > > Auch, that's a bug. I don't think the oom path has been tested yet, > > perhaps this is hitting it. > > > > Can you try with this debug patch, plus enable the slab debugging > > helpers (like poisoning)? > > > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > > index 7456992..a479d1e 100644 > > --- a/drivers/scsi/scsi_lib.c > > +++ b/drivers/scsi/scsi_lib.c > > @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd > > *cmd, gfp_t gfp_mask) > > return ret; > > enomem: > > if (ret) { > > + printk(KERN_ERR "scsi: failed to allocate sg table\n"); > > /* > > * Free entries chained off ret. Since we were trying to > > * allocate another sglist, we know that all entries are of > > > > Not much help. I get all kinds of weird panics.. This time I got (with > the above debug). > > general protection fault: [1] SMP > CPU 1 > Modules linked in: jfs sg sd_mod qla2xxx firmware_class > scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button > battery ac dm_mod floppy parport_pc lp parport > Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 > RIP: 0010:[] [] kmem_cache_alloc > +0x36/0x70 > RSP: 0018:81017abbfc10 EFLAGS: 00010002 > RAX: RBX: 0082 RCX: 0664 > RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 > RBP: 81017abbfc20 R08: 39f8 R09: > R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 > R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 > FS: 2b505b027f20() GS:81018021f300() > knlGS:f7da26b0 > CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b > CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 > Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task > 81017a571440) > Stack: 7abbfc30 81017abbfc30 > 8025d001 >
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80219dc0] flush_gart+0x40/0x50 [880e5da6] :scsi_mod:__scsi_get_command+0x26/0x90 [8021a366] gart_map_sg+0x2d6/0x3e0 Smells like a bug in the gart modifications, I'll double check them. Does it work if
Re: [PATCH] Chaining sg lists for big IO commands v5
On Mon, May 21 2007, Jens Axboe wrote: On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80219dc0] flush_gart+0x40/0x50 [880e5da6]
Re: [PATCH] Chaining sg lists for big IO commands v5
Jens Axboe wrote: On Mon, May 21 2007, Jens Axboe wrote: On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80219dc0] flush_gart+0x40/0x50 [880e5da6] :scsi_mod:__scsi_get_command+0x26/0x90 [8021a366] gart_map_sg+0x2d6/0x3e0 Smells like a bug in the gart modifications, I'll double check them. Does it work if you boot with iommu=off? If iommu=off works, can you try a normal boot but with this applied on top of the sglist patches? That should fix gart mapping. diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2e22a3a..b16384f 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c @@ -381,7 +381,7 @@ int gart_map_sg(struct
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: > On Thu, May 17 2007, Badari Pulavarty wrote: > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach the > > > > > > > > > patch > > > > > > > > > file... > > > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > > ???sym_scatter???: > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > > > declaration > > > > > > > > of function ???for_each_sg??? > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected > > > > > > > > ???;??? before ???{??? > > > > > > > > token > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused > > > > > > > > variable ???tp??? > > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > > declaration of > > > > > > > > function ???for_each_sg??? > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? > > > > > > > > before ???{??? > > > > > > > > token > > > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds > > > > > fine > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > and backout this patch and see if it boots? > > > > I increased max_segments to 1024 on my qla2200 attached disks and > > simple "dd" (direct read) resulted in following: > > > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > > > Unable to handle kernel paging request at 1008 RIP: > > [] __rmqueue+0x6f/0x120 > > Auch, that's a bug. I don't think the oom path has been tested yet, > perhaps this is hitting it. > > Can you try with this debug patch, plus enable the slab debugging > helpers (like poisoning)? > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 7456992..a479d1e 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd > *cmd, gfp_t gfp_mask) > return ret; > enomem: > if (ret) { > + printk(KERN_ERR "scsi: failed to allocate sg table\n"); > /* >* Free entries chained off ret. Since we were trying to >* allocate another sglist, we know that all entries are of > Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[] [] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [] mempool_alloc_slab+0x11/0x20 [] mempool_alloc+0x42/0x110 [] flush_gart+0x40/0x50 []
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 19:03 +0200, Jens Axboe wrote: > On Fri, May 18 2007, Badari Pulavarty wrote: > > On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: > > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > > .. > > > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. > > > > > > > Builds fine > > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > > > and backout this patch and see if it boots? > > > > > > > > Yes. It boots fine with following backed out. > > > > > > > > Looking at the code ide_probe.c: hwif_init() is doing > > > > > > > > hwif->sg_table = kmalloc(sizeof(struct > > > > scatterlist)*hwif->sg_max_nents, > > > > GFP_KERNEL); > > > > > > > > blk_rq_map_sg() is looking for the chaining info and going over end of > > > > the > > > > allocation. > > > > > > Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it > > > into a kzalloc())? > > > > > > > Even with backing out all the ide changes, I get this on boot > > once in a while. > > Yep, I think the ide changes are fine as such, the problem is the > missing memset/kzalloc. Can you try that? kzalloc() made it better. I haven't seen ide panics anymore. I will try it again after applying ide patches. Thanks Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, May 18 2007, Badari Pulavarty wrote: > On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: > > On Thu, May 17 2007, Badari Pulavarty wrote: > > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > > .. > > > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds > > > > > > fine > > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > > and backout this patch and see if it boots? > > > > > > Yes. It boots fine with following backed out. > > > > > > Looking at the code ide_probe.c: hwif_init() is doing > > > > > > hwif->sg_table = kmalloc(sizeof(struct > > > scatterlist)*hwif->sg_max_nents, > > > GFP_KERNEL); > > > > > > blk_rq_map_sg() is looking for the chaining info and going over end of the > > > allocation. > > > > Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it > > into a kzalloc())? > > > > Even with backing out all the ide changes, I get this on boot > once in a while. Yep, I think the ide changes are fine as such, the problem is the missing memset/kzalloc. Can you try that? -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: > On Thu, May 17 2007, Badari Pulavarty wrote: > > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > .. > > > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds > > > > > fine > > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > > > > Here is the whole panic stack.. > > > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > > and backout this patch and see if it boots? > > > > Yes. It boots fine with following backed out. > > > > Looking at the code ide_probe.c: hwif_init() is doing > > > > hwif->sg_table = kmalloc(sizeof(struct > > scatterlist)*hwif->sg_max_nents, > > GFP_KERNEL); > > > > blk_rq_map_sg() is looking for the chaining info and going over end of the > > allocation. > > Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it > into a kzalloc())? > Even with backing out all the ide changes, I get this on boot once in a while. Thanks, Badari ReiserFS: hda2: checking transaction log (hda2) Unable to handle kernel paging request at 005e5e66 RIP: [] blk_rq_map_sg+0x71/0x1b0 PGD 0 Oops: [1] SMP CPU 3 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.22-rc1-sg #7 RIP: 0010:[] [] blk_rq_map_sg +0x71/0x1b0 RSP: :8101a024fcc8 EFLAGS: 00010287 RAX: 0001df33e000 RBX: 8101df2b5f70 RCX: 00019f352000 RDX: RSI: 8101df228300 RDI: 001df33e RBP: 8101a024fd28 R08: 04e2 R09: R10: 007f R11: 0001 R12: 005e5e46 R13: 1000 R14: R15: 8101df2b5f60 FS: () GS:8101c021f300() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 005e5e66 CR3: 00201000 CR4: 06e0 Process swapper (pid: 1, threadinfo 8101a0238000, task 810180238000) Stack: 0003 810179c58000 00019f352000 810179c562c0 8101df228e80 00170082 01ff81010001 8101df3207a8 8078a500 810179c56000 8078a500 8101df3207a8 Call Trace: [] ide_map_sg+0x42/0xd0 [] ide_build_sglist+0x2a/0x90 [] ide_build_dmatable+0x2f/0x180 [] ide_dma_setup+0x44/0xe0 [] ide_do_rw_disk+0x349/0x510 [] ide_do_request+0x622/0xb40 [] ide_end_request+0x9d/0x160 [] ide_dma_intr+0x0/0xd0 [] ide_dma_intr+0x0/0xd0 [] ide_intr+0x23f/0x250 [] handle_IRQ_event+0x35/0x70 [] handle_edge_irq+0xcc/0x150 [] do_IRQ+0x80/0x100 [] ret_from_intr+0x0/0xa [] kmem_cache_alloc+0x40/0x70 [] mempool_alloc_slab+0x11/0x20 [] mempool_alloc+0x42/0x110 [] generic_make_request+0x198/0x240 [] bio_alloc_bioset+0x2e/0x120 [] bio_alloc+0x10/0x20 [] submit_bh+0x6b/0x140 [] ll_rw_block+0xd0/0xe0 [] journal_read+0xb5e/0xec0 [] zone_statistics+0x61/0xa0 [] get_page_from_freelist+0x3c8/0x510 [] __alloc_pages+0x6e/0x330 [] alloc_page_interleave+0x8d/0xa0 [] alloc_pages_current+0x86/0x90 [] get_zeroed_page+0x20/0x40 [] __pte_alloc_kernel+0x64/0x80 [] map_vm_area+0x1dc/0x2e0 [] __vmalloc_area_node+0x157/0x1a0 [] journal_init+0x819/0x990 [] __vmalloc_area_node+0x157/0x1a0 [] __vmalloc_node+0x6f/0x80 [] __vmalloc+0xe/0x10 [] reiserfs_fill_super+0x2ba/0xc20 [] vsnprintf+0x2e7/0x680 [] snprintf+0x59/0x60 [] __down_write_nested+0x17/0xc0 [] strlcpy+0x4f/0x70 [] test_bdev_super+0x0/0x20 [] get_sb_bdev+0x13c/0x170 [] reiserfs_fill_super+0x0/0xc20 [] get_super_block+0x13/0x20 [] vfs_kern_mount+0xd8/0x160 [] do_kern_mount+0x4e/0x100 [] do_mount+0x4e2/0x790 [] __d_lookup+0x9c/0x130 [] do_lookup+0x84/0x200 [] do_lookup+0x84/0x200 [] dput+0x24/0x140 [] __link_path_walk+0x469/0xec0 [] zone_statistics+0x7d/0xa0 [] __alloc_pages+0x6e/0x330 [] alloc_page_interleave+0x8d/0xa0 [] alloc_pages_current+0x86/0x90 [] __get_free_pages+0x1b/0x40 [] copy_mount_options+0x52/0x180 [] sys_mount+0x94/0xf0 [] do_mount_root+0x21/0xa0 [] mount_block_root+0x90/0x220 [] sys_rmdir+0x11/0x20 [] mount_root+0xe6/0xf0 [] prepare_namespace+0xad/0x160 [] kernel_init+0x23a/0x330 [] child_rip+0xa/0x12 [] kernel_init+0x0/0x330 [] child_rip+0x0/0x12 Code: 49 8b 44 24 20 49 8d 4c 24 20 48 89 c2 48 83 e2 fe a8 01 48 RIP [] blk_rq_map_sg+0x71/0x1b0 RSP CR2: 005e5e66 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 17 2007, Badari Pulavarty wrote: > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > > On Wed, May 16 2007, Badari Pulavarty wrote: > > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > > Hi, > > > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach the > > > > > > > > patch > > > > > > > > file... > > > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function > > > > > > > ???sym_scatter???: > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > > declaration > > > > > > > of function ???for_each_sg??? > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? > > > > > > > before ???{??? > > > > > > > token > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > > > > ???tp??? > > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit > > > > > > > declaration of > > > > > > > function ???for_each_sg??? > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? > > > > > > > before ???{??? > > > > > > > token > > > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > > > I am playing with them on ppc64. > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > Here is the whole panic stack.. > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > and backout this patch and see if it boots? > > I increased max_segments to 1024 on my qla2200 attached disks and > simple "dd" (direct read) resulted in following: > > elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments > elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb > elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M > > Unable to handle kernel paging request at 1008 RIP: > [] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR "scsi: failed to allocate sg table\n"); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 17 2007, Badari Pulavarty wrote: > On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > .. > > > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > > > I can mail you an updated patch, if you want. > > > > > > > > > Here is the whole panic stack.. > > > > Thanks will fix that up, the IDE part is totally untested. Can you try > > and backout this patch and see if it boots? > > Yes. It boots fine with following backed out. > > Looking at the code ide_probe.c: hwif_init() is doing > > hwif->sg_table = kmalloc(sizeof(struct > scatterlist)*hwif->sg_max_nents, > GFP_KERNEL); > > blk_rq_map_sg() is looking for the chaining info and going over end of the > allocation. Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it into a kzalloc())? -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif-sg_table = kmalloc(sizeof(struct scatterlist)*hwif-sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it into a kzalloc())? -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif-sg_table = kmalloc(sizeof(struct scatterlist)*hwif-sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it into a kzalloc())? Even with backing out all the ide changes, I get this on boot once in a while. Thanks, Badari ReiserFS: hda2: checking transaction log (hda2) Unable to handle kernel paging request at 005e5e66 RIP: [80381aa1] blk_rq_map_sg+0x71/0x1b0 PGD 0 Oops: [1] SMP CPU 3 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.22-rc1-sg #7 RIP: 0010:[80381aa1] [80381aa1] blk_rq_map_sg +0x71/0x1b0 RSP: :8101a024fcc8 EFLAGS: 00010287 RAX: 0001df33e000 RBX: 8101df2b5f70 RCX: 00019f352000 RDX: RSI: 8101df228300 RDI: 001df33e RBP: 8101a024fd28 R08: 04e2 R09: R10: 007f R11: 0001 R12: 005e5e46 R13: 1000 R14: R15: 8101df2b5f60 FS: () GS:8101c021f300() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 005e5e66 CR3: 00201000 CR4: 06e0 Process swapper (pid: 1, threadinfo 8101a0238000, task 810180238000) Stack: 0003 810179c58000 00019f352000 810179c562c0 8101df228e80 00170082 01ff81010001 8101df3207a8 8078a500 810179c56000 8078a500 8101df3207a8 Call Trace: IRQ [8042faf2] ide_map_sg+0x42/0xd0 [8043936a] ide_build_sglist+0x2a/0x90 [804393ff] ide_build_dmatable+0x2f/0x180 [80439594] ide_dma_setup+0x44/0xe0 [8043cd99] ide_do_rw_disk+0x349/0x510 [80430442] ide_do_request+0x622/0xb40 [8042fd2d] ide_end_request+0x9d/0x160 [80439660] ide_dma_intr+0x0/0xd0 [80439660] ide_dma_intr+0x0/0xd0 [80430cdf] ide_intr+0x23f/0x250 [802571b5] handle_IRQ_event+0x35/0x70 [80258c8c] handle_edge_irq+0xcc/0x150 [8020caf0] do_IRQ+0x80/0x100 [8020a021] ret_from_intr+0x0/0xa EOI [802816c0] kmem_cache_alloc+0x40/0x70 [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80382db8] generic_make_request+0x198/0x240 [802aefee] bio_alloc_bioset+0x2e/0x120 [802af140] bio_alloc+0x10/0x20 [802ab11b] submit_bh+0x6b/0x140 [802ac180] ll_rw_block+0xd0/0xe0 [802ff1ae] journal_read+0xb5e/0xec0 [80265d71] zone_statistics+0x61/0xa0 [8025f528] get_page_from_freelist+0x3c8/0x510 [8025f7ae] __alloc_pages+0x6e/0x330 [80278aed] alloc_page_interleave+0x8d/0xa0 [80279c86] alloc_pages_current+0x86/0x90 [8025f140] get_zeroed_page+0x20/0x40 [80267704] __pte_alloc_kernel+0x64/0x80 [802721dc] map_vm_area+0x1dc/0x2e0 [80272907] __vmalloc_area_node+0x157/0x1a0 [80302169] journal_init+0x819/0x990 [80272907] __vmalloc_area_node+0x157/0x1a0 [802729bf] __vmalloc_node+0x6f/0x80 [802729fe] __vmalloc+0xe/0x10 [802f109a] reiserfs_fill_super+0x2ba/0xc20 [80394357] vsnprintf+0x2e7/0x680 [80394959] snprintf+0x59/0x60 [80505117] __down_write_nested+0x17/0xc0 [8039310f] strlcpy+0x4f/0x70 [80287ef0] test_bdev_super+0x0/0x20 [802892cc] get_sb_bdev+0x13c/0x170 [802f0de0] reiserfs_fill_super+0x0/0xc20 [802ee793] get_super_block+0x13/0x20 [80288b68] vfs_kern_mount+0xd8/0x160 [80288c5e] do_kern_mount+0x4e/0x100 [802a0852] do_mount+0x4e2/0x790 [8029a3ac] __d_lookup+0x9c/0x130 [8028ec24] do_lookup+0x84/0x200 [8028ec24] do_lookup+0x84/0x200 [802995c4] dput+0x24/0x140 [80290e49] __link_path_walk+0x469/0xec0 [80265d8d] zone_statistics+0x7d/0xa0 [8025f7ae] __alloc_pages+0x6e/0x330 [80278aed] alloc_page_interleave+0x8d/0xa0 [80279c86] alloc_pages_current+0x86/0x90 [8025f0fb] __get_free_pages+0x1b/0x40
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif-sg_table = kmalloc(sizeof(struct scatterlist)*hwif-sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it into a kzalloc())? Even with backing out all the ide changes, I get this on boot once in a while. Yep, I think the ide changes are fine as such, the problem is the missing memset/kzalloc. Can you try that? -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 19:03 +0200, Jens Axboe wrote: On Fri, May 18 2007, Badari Pulavarty wrote: On Fri, 2007-05-18 at 09:33 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif-sg_table = kmalloc(sizeof(struct scatterlist)*hwif-sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Hmm, looks ok, I'm guessing it's just missing a memset (or just turn it into a kzalloc())? Even with backing out all the ide changes, I get this on boot once in a while. Yep, I think the ide changes are fine as such, the problem is the missing memset/kzalloc. Can you try that? kzalloc() made it better. I haven't seen ide panics anymore. I will try it again after applying ide patches. Thanks Badari - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-18 at 09:35 +0200, Jens Axboe wrote: On Thu, May 17 2007, Badari Pulavarty wrote: On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 Auch, that's a bug. I don't think the oom path has been tested yet, perhaps this is hitting it. Can you try with this debug patch, plus enable the slab debugging helpers (like poisoning)? diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 7456992..a479d1e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -793,6 +793,7 @@ struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, gfp_t gfp_mask) return ret; enomem: if (ret) { + printk(KERN_ERR scsi: failed to allocate sg table\n); /* * Free entries chained off ret. Since we were trying to * allocate another sglist, we know that all entries are of Not much help. I get all kinds of weird panics.. This time I got (with the above debug). general protection fault: [1] SMP CPU 1 Modules linked in: jfs sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod vfat fat ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 56, comm: kblockd/1 Not tainted 2.6.22-rc1-sg #8 RIP: 0010:[802816b6] [802816b6] kmem_cache_alloc +0x36/0x70 RSP: 0018:81017abbfc10 EFLAGS: 00010002 RAX: RBX: 0082 RCX: 0664 RDX: 81019ff2b8a0 RSI: 00011220 RDI: 8068d120 RBP: 81017abbfc20 R08: 39f8 R09: R10: 81019cbee700 R11: 0188 R12: 8101df2a64e0 R13: 00011220 R14: 8101df2a6510 R15: 81017abbfc50 FS: 2b505b027f20() GS:81018021f300() knlGS:f7da26b0 CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 2b505b029008 CR3: 00019af73000 CR4: 06e0 Process kblockd/1 (pid: 56, threadinfo 81017abbe000, task 81017a571440) Stack: 7abbfc30 81017abbfc30 8025d001 81017abbfcb0 8025d122 81017abbfc60 80219dc0 880e5da6 00ad 81017abbfcd0 8021a366 Call Trace: [8025d001] mempool_alloc_slab+0x11/0x20 [8025d122] mempool_alloc+0x42/0x110 [80219dc0] flush_gart+0x40/0x50 [880e5da6] :scsi_mod:__scsi_get_command+0x26/0x90 [8021a366] gart_map_sg+0x2d6/0x3e0 [880ebb70] :scsi_mod:scsi_alloc_sgtable+0x90/0x1e0 [880ebcf7] :scsi_mod:scsi_init_io+0x37/0x120 [880ebe7d] :scsi_mod:scsi_prep_fn+0x9d/0x300 [80380772] elv_next_request+0xa2/0x180 [8038fc2a]
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: > On Wed, May 16 2007, Badari Pulavarty wrote: > > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > > Hi, > > > > > > > > > > > > > > Updated version of the patch - this time I'll just attach the > > > > > > > patch > > > > > > > file... > > > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit > > > > > > declaration > > > > > > of function ???for_each_sg??? > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? > > > > > > before ???{??? > > > > > > token > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > > > ???tp??? > > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration > > > > > > of > > > > > > function ???for_each_sg??? > > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > > > > ???{??? > > > > > > token > > > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > > > I am playing with them on ppc64. > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > I can mail you an updated patch, if you want. > > > > > > Here is the whole panic stack.. > > Thanks will fix that up, the IDE part is totally untested. Can you try > and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple "dd" (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 > max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb > max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [] __rmqueue+0x6f/0x120 PGD 100921067 PUD 1057f9067 PMD 0 Oops: 0002 [1] SMP CPU 0 Modules linked in: jfs hfs vfat fat sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 4329, comm: dd Tainted: G M 2.6.22-rc1 #4 RIP: 0010:[] [] __rmqueue +0x6f/0x120 RSP: 0018:8101bdcab948 EFLAGS: 00010093 RAX: 81017e644148 RBX: 0002 RCX: 1000 RDX: 81011c80 RSI: RDI: 81011a00 RBP: 8101bdcab968 R08: 81017a801142 R09: R10: 00078e7a R11: 0002 R12: 81011c80 R13: R14: 81017e644120 R15: 81011a00 FS: 2b53c78cef20() GS:8063b000() knlGS: CS: 0010 DS: ES: CR0: 8005003b CR2: 1008 CR3: 000102707000 CR4: 06e0 Process dd (pid: 4329, threadinfo 8101bdcaa000, task 8101bf4ff440) Stack: 81017a801110 0012 0012 81017a801100 8101bdcaba08 8025f47d 0001 81012e68 00445f7ebe38 81012e60 000280d2 81012e68 Call Trace: [] get_page_from_freelist+0x31d/0x510 [] __alloc_pages+0x6e/0x330 [] alloc_page_vma+0x4a/0xa0 [] __handle_mm_fault+0x9b7/0xba0 [] follow_page+0x1b6/0x250 [] get_user_pages+0x10c/0x3d0 [] bio_add_page+0x2e/0x30 [] dio_get_page+0xbb/0x1b0 [] __blockdev_direct_IO+0x478/0xc20 [] :jfs:jfs_direct_IO+0x50/0x60 [] :jfs:jfs_get_block+0x0/0x230 [] generic_file_direct_IO+0x73/0x150 [] generic_file_aio_read+0x131/0x170 [] page_add_new_anon_rmap+0x10/0x20 [] __handle_mm_fault+0xa67/0xba0 [] do_sync_read+0xf1/0x130 [] up_read+0x9/0x10 [] autoremove_wake_function+0x0/0x40 [] __up_write+0xd0/0x130 [] vfs_read+0xe1/0x190 [] sys_read+0x50/0x90 [] system_call+0x7e/0x83 Code: 48 89 51 08 48 89 0a 48 c7 40 08 00 02 20 00 48 c7 00 00 01 RIP [] __rmqueue+0x6f/0x120 RSP CR2: 1008 Unable to handle kernel paging request<0>Eeek! page_mapcount(page) went negative! (-1) page pfn = 10a738 page->flags = 14 page->count = 80287910 page->mapping = vma->vm_ops = _stext+0x7fdf9000/0x60 at 2018 RIP: [] task_rq_lock+0x35/0x90 PGD 0 Oops: [2] SMP CPU 2 Modules linked in: jfs hfs vfat fat sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 0, comm: swapper Tainted: G M 2.6.22-rc1
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. > > > > > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > > > here on ppc64. See the #sglist branch of the block repo: > > > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > > > I can mail you an updated patch, if you want. > > > > > > Here is the whole panic stack.. > > Thanks will fix that up, the IDE part is totally untested. Can you try > and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif->sg_table = kmalloc(sizeof(struct scatterlist)*hwif->sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Thanks, Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Wed, May 16 2007, Badari Pulavarty wrote: > On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > > Hi, > > > > > > > > > > > > Updated version of the patch - this time I'll just attach the patch > > > > > > file... > > > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > > > > of function ???for_each_sg??? > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? > > > > > before ???{??? > > > > > token > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > > ???tp??? > > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > > ???qla24xx_build_scsi_iocbs???: > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > > > > function ???for_each_sg??? > > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > > > ???{??? > > > > > token > > > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > > > I am playing with them on ppc64. > > > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > > here on ppc64. See the #sglist branch of the block repo: > > > > git://git.kernel.dk/data/git/linux-2.6-block.git > > > > I can mail you an updated patch, if you want. > > > Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? diff --git a/drivers/ide/cris/ide-cris.c b/drivers/ide/cris/ide-cris.c index ca0341c..3565c76 100644 --- a/drivers/ide/cris/ide-cris.c +++ b/drivers/ide/cris/ide-cris.c @@ -951,7 +951,8 @@ static int cris_ide_build_dmatable (ide_drive_t *drive) /* group sequential buffers into one large buffer */ addr = page_to_phys(sg->page) + sg->offset; size = sg_dma_len(sg); - while (sg++, --i) { + while (--i) { + sg = sg_next(sg); if ((addr + size) != page_to_phys(sg->page) + sg->offset) break; size += sg_dma_len(sg); diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index b77b7d1..aa13309 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c @@ -292,7 +292,7 @@ int ide_build_dmatable (ide_drive_t *drive, struct request *rq) } } - sg++; + sg = sg_next(sg); i--; } diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 30175c7..412ba5e 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -259,6 +259,7 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) { ide_hwif_t *hwif = drive->hwif; struct scatterlist *sg = hwif->sg_table; + struct scatterlist *cursg = hwif->cursg; struct page *page; #ifdef CONFIG_HIGHMEM unsigned long flags; @@ -266,8 +267,14 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) unsigned int offset; u8 *buf; - page = sg[hwif->cursg].page; - offset = sg[hwif->cursg].offset + hwif->cursg_ofs * SECTOR_SIZE; + cursg = hwif->cursg; + if (!cursg) { + cursg = sg; + hwif->cursg = sg; + } + + page = cursg->page; + offset = cursg->offset + hwif->cursg_ofs * SECTOR_SIZE; /* get the current page and offset */ page = nth_page(page, (offset >> PAGE_SHIFT)); @@ -281,8 +288,8 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) hwif->nleft--; hwif->cursg_ofs++; - if ((hwif->cursg_ofs * SECTOR_SIZE) == sg[hwif->cursg].length) { - hwif->cursg++; + if ((hwif->cursg_ofs * SECTOR_SIZE) == cursg->length) { + hwif->cursg = sg_next(hwif->cursg); hwif->cursg_ofs = 0; } @@ -363,6 +370,8 @@ static ide_startstop_t task_error(ide_drive_t *drive, struct request *rq, static void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat) { + HWIF(drive)->cursg = NULL; + if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) { ide_task_t *task = rq->special; diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index ca95e99..35b0d1e 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c @@ -324,7 +324,7 @@ static int auide_build_dmatable(ide_drive_t *drive) cur_addr += tc;
Re: [PATCH] Chaining sg lists for big IO commands v5
On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? diff --git a/drivers/ide/cris/ide-cris.c b/drivers/ide/cris/ide-cris.c index ca0341c..3565c76 100644 --- a/drivers/ide/cris/ide-cris.c +++ b/drivers/ide/cris/ide-cris.c @@ -951,7 +951,8 @@ static int cris_ide_build_dmatable (ide_drive_t *drive) /* group sequential buffers into one large buffer */ addr = page_to_phys(sg-page) + sg-offset; size = sg_dma_len(sg); - while (sg++, --i) { + while (--i) { + sg = sg_next(sg); if ((addr + size) != page_to_phys(sg-page) + sg-offset) break; size += sg_dma_len(sg); diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index b77b7d1..aa13309 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c @@ -292,7 +292,7 @@ int ide_build_dmatable (ide_drive_t *drive, struct request *rq) } } - sg++; + sg = sg_next(sg); i--; } diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 30175c7..412ba5e 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -259,6 +259,7 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) { ide_hwif_t *hwif = drive-hwif; struct scatterlist *sg = hwif-sg_table; + struct scatterlist *cursg = hwif-cursg; struct page *page; #ifdef CONFIG_HIGHMEM unsigned long flags; @@ -266,8 +267,14 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) unsigned int offset; u8 *buf; - page = sg[hwif-cursg].page; - offset = sg[hwif-cursg].offset + hwif-cursg_ofs * SECTOR_SIZE; + cursg = hwif-cursg; + if (!cursg) { + cursg = sg; + hwif-cursg = sg; + } + + page = cursg-page; + offset = cursg-offset + hwif-cursg_ofs * SECTOR_SIZE; /* get the current page and offset */ page = nth_page(page, (offset PAGE_SHIFT)); @@ -281,8 +288,8 @@ static void ide_pio_sector(ide_drive_t *drive, unsigned int write) hwif-nleft--; hwif-cursg_ofs++; - if ((hwif-cursg_ofs * SECTOR_SIZE) == sg[hwif-cursg].length) { - hwif-cursg++; + if ((hwif-cursg_ofs * SECTOR_SIZE) == cursg-length) { + hwif-cursg = sg_next(hwif-cursg); hwif-cursg_ofs = 0; } @@ -363,6 +370,8 @@ static ide_startstop_t task_error(ide_drive_t *drive, struct request *rq, static void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat) { + HWIF(drive)-cursg = NULL; + if (rq-cmd_type == REQ_TYPE_ATA_TASKFILE) { ide_task_t *task = rq-special; diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index ca95e99..35b0d1e 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c @@ -324,7 +324,7 @@ static int auide_build_dmatable(ide_drive_t *drive) cur_addr += tc; cur_len -= tc; } - sg++; + sg = sg_next(sg); i--; } diff --git a/drivers/ide/pci/sgiioc4.c
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: .. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? Yes. It boots fine with following backed out. Looking at the code ide_probe.c: hwif_init() is doing hwif-sg_table = kmalloc(sizeof(struct scatterlist)*hwif-sg_max_nents, GFP_KERNEL); blk_rq_map_sg() is looking for the chaining info and going over end of the allocation. Thanks, Badari - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Thu, 2007-05-17 at 08:27 +0200, Jens Axboe wrote: On Wed, May 16 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. Thanks will fix that up, the IDE part is totally untested. Can you try and backout this patch and see if it boots? I increased max_segments to 1024 on my qla2200 attached disks and simple dd (direct read) resulted in following: elm3b29:/sys/block/sdd/queue # echo 1024 max_segments elm3b29:/sys/block/sdd/queue # cat max_hw_sectors_kb max_sectors_kb elm3b29:/mnt # dd iflag=direct if=./z of=/dev/null bs=512M Unable to handle kernel paging request at 1008 RIP: [8025e7af] __rmqueue+0x6f/0x120 PGD 100921067 PUD 1057f9067 PMD 0 Oops: 0002 [1] SMP CPU 0 Modules linked in: jfs hfs vfat fat sg sd_mod qla2xxx firmware_class scsi_transport_fc scsi_mod ipv6 thermal processor fan button battery ac dm_mod floppy parport_pc lp parport Pid: 4329, comm: dd Tainted: G M 2.6.22-rc1 #4 RIP: 0010:[8025e7af] [8025e7af] __rmqueue +0x6f/0x120 RSP: 0018:8101bdcab948 EFLAGS: 00010093 RAX: 81017e644148 RBX: 0002 RCX: 1000 RDX: 81011c80 RSI: RDI: 81011a00 RBP: 8101bdcab968 R08: 81017a801142 R09: R10: 00078e7a R11: 0002 R12: 81011c80 R13: R14: 81017e644120 R15: 81011a00 FS: 2b53c78cef20() GS:8063b000() knlGS: CS: 0010 DS: ES: CR0: 8005003b CR2: 1008 CR3: 000102707000 CR4: 06e0 Process dd (pid: 4329, threadinfo 8101bdcaa000, task 8101bf4ff440) Stack: 81017a801110 0012 0012 81017a801100 8101bdcaba08 8025f47d 0001 81012e68 00445f7ebe38 81012e60 000280d2 81012e68 Call Trace: [8025f47d] get_page_from_freelist+0x31d/0x510 [8025f7ae] __alloc_pages+0x6e/0x330 [80278b4a] alloc_page_vma+0x4a/0xa0 [802698e7] __handle_mm_fault+0x9b7/0xba0 [80268086] follow_page+0x1b6/0x250 [80269bdc] get_user_pages+0x10c/0x3d0 [802aee8e] bio_add_page+0x2e/0x30 [802b144b] dio_get_page+0xbb/0x1b0 [802b2148] __blockdev_direct_IO+0x478/0xc20 [881812e0] :jfs:jfs_direct_IO+0x50/0x60 [881818d0] :jfs:jfs_get_block+0x0/0x230 [8025b793] generic_file_direct_IO+0x73/0x150 [8025ce81] generic_file_aio_read+0x131/0x170 [802717b0] page_add_new_anon_rmap+0x10/0x20 [80269997] __handle_mm_fault+0xa67/0xba0 [802867d1] do_sync_read+0xf1/0x130 [80247fe9] up_read+0x9/0x10 [80244fc0] autoremove_wake_function+0x0/0x40 [80392a80] __up_write+0xd0/0x130 [80287101] vfs_read+0xe1/0x190 [802875b0] sys_read+0x50/0x90 [80209b0e] system_call+0x7e/0x83 Code: 48 89 51 08 48 89 0a 48 c7 40 08 00 02 20 00 48 c7 00 00 01 RIP [8025e7af] __rmqueue+0x6f/0x120 RSP 8101bdcab948 CR2: 1008 Unable to handle kernel paging request0Eeek! page_mapcount(page) went negative! (-1) page pfn = 10a738 page-flags = 14 page-count = 80287910 page-mapping = vma-vm_ops = _stext+0x7fdf9000/0x60 at 2018 RIP: [80227485] task_rq_lock+0x35/0x90 PGD 0 Oops: [2] SMP CPU 2 Modules linked in: jfs hfs vfat
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > On Tue, May 15 2007, Badari Pulavarty wrote: > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > Hi, > > > > > > > > > > Updated version of the patch - this time I'll just attach the patch > > > > > file... > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > > > of function ???for_each_sg??? > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > > > > ???{??? > > > > token > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > ???tp??? > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > ???qla24xx_build_scsi_iocbs???: > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > > > function ???for_each_sg??? > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > > ???{??? > > > > token > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > I am playing with them on ppc64. > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > here on ppc64. See the #sglist branch of the block repo: > > git://git.kernel.dk/data/git/linux-2.6-block.git > > I can mail you an updated patch, if you want. Here is the whole panic stack.. VFS: Mounted root (reiserfs filesystem) readonly. Freeing unused kernel memory: 356k freed Unable to handle kernel paging request at 464b7948 RIP: [] blk_rq_map_sg+0x71/0x1b0 PGD 1df350067 PUD 0 Oops: [1] SMP CPU 3 Modules linked in: Pid: 1, comm: init Not tainted 2.6.22-rc1 #2 RIP: 0010:[] [] blk_rq_map_sg +0x71/0x1b0 RSP: :8101a02390e8 EFLAGS: 00010206 RAX: 0001df36a000 RBX: 8101df2efce0 RCX: 0001df446000 RDX: RSI: 8101df2eb780 RDI: 001df36a RBP: 8101a0239148 R08: 04e2 R09: R10: 8101df2eb780 R11: 0001 R12: 464b7928 R13: 1000 R14: 000e R15: 8101df2efcd0 FS: () GS:8101c0223300() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 464b7948 CR3: 00017a397000 CR4: 06e0 Process init (pid: 1, threadinfo 8101a0238000, task 81018023a000) Stack: 0001 810179c58000 0001df446000 810179c56060 8101df2eb780 0004a02393b8 0101 8101df2b4000 8078a500 810179c56000 8078a500 8101df2b4000 Call Trace: [] ide_map_sg+0x42/0xd0 [] ide_build_sglist+0x2a/0x90 [] ide_build_dmatable+0x2f/0x1a0 [] ide_dma_setup+0x44/0xe0 [] ide_do_rw_disk+0x349/0x510 [] ide_do_request+0x622/0xb40 [] lock_timer_base+0x36/0x70 [] del_timer+0x6b/0x70 [] do_ide_request+0x1d/0x20 [] __generic_unplug_device+0x25/0x30 [] blk_start_queueing+0x25/0x30 [] cfq_insert_request+0x36b/0x380 [] elv_insert+0x130/0x1a0 [] __elv_add_request+0x68/0xc0 [] __make_request+0xd3/0x590 [] generic_make_request+0x198/0x240 [] bio_alloc_bioset+0xa9/0x120 [] submit_bio+0x62/0xe0 [] mpage_bio_submit+0x22/0x30 [] do_mpage_readpage+0x49d/0x590 [] __inc_zone_page_state+0x2a/0x30 [] mpage_readpages+0x88/0x160 [] reiserfs_get_block+0x0/0x1250 [] reiserfs_get_block+0x0/0x1250 [] reiserfs_readpages+0x1a/0x20 [] __do_page_cache_readahead+0x1af/0x2c0 [] __alloc_pages+0x6e/0x330 [] do_page_cache_readahead+0x59/0x80 [] filemap_nopage+0x239/0x2f0 [] __handle_mm_fault+0x1d0/0xba0 [] do_page_fault+0x1dc/0x950 [] __alloc_pages+0x6e/0x330 [] vma_prio_tree_insert+0x2d/0x50 [] vma_link+0xb2/0x140 [] __vma_link_rb+0x2b/0x30 [] error_exit+0x0/0x84 [] __clear_user+0x1a/0x40 [] clear_user+0x2b/0x40 [] padzero+0x21/0x30 [] load_elf_binary+0xbbf/0x1ec0 [] __alloc_pages+0x6e/0x330 [] __alloc_pages+0x6e/0x330 [] alloc_pages_current+0x5a/0x90 [] copy_strings+0x122/0x220 [] search_binary_handler+0xaf/0x210 [] do_execve+0x25f/0x290 [] strncpy_from_user+0x3a/0x50 [] sys_execve+0x46/0xb0 [] kernel_execve+0x64/0xd0 [] run_init_process+0x1e/0x20 [] init_post+0x9f/0xf0 [] kernel_init+0x23f/0x330 [] child_rip+0xa/0x12 [] kernel_init+0x0/0x330 [] child_rip+0x0/0x12 Code: 49 8b 44 24 20 49 8d 4c 24 20 48 89 c2 48 83 e2 fe a8 01 48 RIP [] blk_rq_map_sg+0x71/0x1b0 RSP CR2: 464b7948 Kernel panic - not syncing: Attempted to kill init! Thanks, Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: > On Tue, May 15 2007, Badari Pulavarty wrote: > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > Hi, > > > > > > > > > > Updated version of the patch - this time I'll just attach the patch > > > > > file... > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > > > of function ???for_each_sg??? > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > > > > ???{??? > > > > token > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > ???tp??? > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > ???qla24xx_build_scsi_iocbs???: > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > > > function ???for_each_sg??? > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > > ???{??? > > > > token > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > I am playing with them on ppc64. > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > here on ppc64. See the #sglist branch of the block repo: > > git://git.kernel.dk/data/git/linux-2.6-block.git > > I can mail you an updated patch, if you want. > paniced my amd64 box on boot :( Unable to handle kernel NULL pointer dereference at 001e RIP: [] blk_rq_map_sg+0x71/0x1b0 PGD 0 Oops: [1] SMP CPU 0 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.22-rc1 #2 RIP: 0010:[] [] blk_rq_map_sg +0x71/0x1b0 RSP: :810180239330 EFLAGS: 00010287 RAX: 000179d0 RBX: 8101bf204320 RCX: 1000 RDX: 810179c62000 RSI: 8101df507780 RDI: 00179d00 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. paniced my amd64 box on boot :( Unable to handle kernel NULL pointer dereference at 001e RIP: [80381aa1] blk_rq_map_sg+0x71/0x1b0 PGD 0 Oops: [1] SMP CPU 0 Modules linked in: Pid: 1, comm: swapper Not tainted 2.6.22-rc1 #2 RIP: 0010:[80381aa1] [80381aa1] blk_rq_map_sg +0x71/0x1b0 RSP: :810180239330 EFLAGS: 00010287 RAX: 000179d0 RBX: 8101bf204320 RCX: 1000 RDX: 810179c62000 RSI: 8101df507780 RDI: 00179d00 - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:50 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. Here is the whole panic stack.. VFS: Mounted root (reiserfs filesystem) readonly. Freeing unused kernel memory: 356k freed Unable to handle kernel paging request at 464b7948 RIP: [80381aa1] blk_rq_map_sg+0x71/0x1b0 PGD 1df350067 PUD 0 Oops: [1] SMP CPU 3 Modules linked in: Pid: 1, comm: init Not tainted 2.6.22-rc1 #2 RIP: 0010:[80381aa1] [80381aa1] blk_rq_map_sg +0x71/0x1b0 RSP: :8101a02390e8 EFLAGS: 00010206 RAX: 0001df36a000 RBX: 8101df2efce0 RCX: 0001df446000 RDX: RSI: 8101df2eb780 RDI: 001df36a RBP: 8101a0239148 R08: 04e2 R09: R10: 8101df2eb780 R11: 0001 R12: 464b7928 R13: 1000 R14: 000e R15: 8101df2efcd0 FS: () GS:8101c0223300() knlGS: CS: 0010 DS: 0018 ES: 0018 CR0: 8005003b CR2: 464b7948 CR3: 00017a397000 CR4: 06e0 Process init (pid: 1, threadinfo 8101a0238000, task 81018023a000) Stack: 0001 810179c58000 0001df446000 810179c56060 8101df2eb780 0004a02393b8 0101 8101df2b4000 8078a500 810179c56000 8078a500 8101df2b4000 Call Trace: [8042faf2] ide_map_sg+0x42/0xd0 [804393aa] ide_build_sglist+0x2a/0x90 [8043943f] ide_build_dmatable+0x2f/0x1a0 [804395f4] ide_dma_setup+0x44/0xe0 [8043cdf9] ide_do_rw_disk+0x349/0x510 [80430442] ide_do_request+0x622/0xb40 [802393a6] lock_timer_base+0x36/0x70 [802397cb] del_timer+0x6b/0x70 [80430d0d] do_ide_request+0x1d/0x20 [80384155] __generic_unplug_device+0x25/0x30 [80384315] blk_start_queueing+0x25/0x30 [8038c97b] cfq_insert_request+0x36b/0x380 [80380980] elv_insert+0x130/0x1a0 [80380a58] __elv_add_request+0x68/0xc0 [80385383] __make_request+0xd3/0x590 [80382db8] generic_make_request+0x198/0x240 [802af069] bio_alloc_bioset+0xa9/0x120 [80385a52] submit_bio+0x62/0xe0 [802b29b2] mpage_bio_submit+0x22/0x30 [802b358d] do_mpage_readpage+0x49d/0x590 [8026641a] __inc_zone_page_state+0x2a/0x30 [802b3898] mpage_readpages+0x88/0x160 [802e4b50] reiserfs_get_block+0x0/0x1250 [802e4b50] reiserfs_get_block+0x0/0x1250 [802e394a] reiserfs_readpages+0x1a/0x20 [8026178f] __do_page_cache_readahead+0x1af/0x2c0 [8025f7ae] __alloc_pages+0x6e/0x330 [80261ca9] do_page_cache_readahead+0x59/0x80 [8025cc99] filemap_nopage+0x239/0x2f0 [80269100] __handle_mm_fault+0x1d0/0xba0 [8021c67c] do_page_fault+0x1dc/0x950 [8025f7ae] __alloc_pages+0x6e/0x330 [8026573d] vma_prio_tree_insert+0x2d/0x50 [8026de22] vma_link+0xb2/0x140 [8026d14b] __vma_link_rb+0x2b/0x30 [80505bed] error_exit+0x0/0x84 [80395aba] __clear_user+0x1a/0x40 [80395bfb] clear_user+0x2b/0x40 [802bef91] padzero+0x21/0x30 [802c0abf] load_elf_binary+0xbbf/0x1ec0 [8025f7ae] __alloc_pages+0x6e/0x330 [8025f7ae] __alloc_pages+0x6e/0x330 [80279c5a] alloc_pages_current+0x5a/0x90 [8028aac2] copy_strings+0x122/0x220 [8028adaf] search_binary_handler+0xaf/0x210 [8028cbff] do_execve+0x25f/0x290 [80395bba] strncpy_from_user+0x3a/0x50 [80208736] sys_execve+0x46/0xb0
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Jens Axboe wrote: > On Tue, May 15 2007, Badari Pulavarty wrote: > > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > > Hi, > > > > > > > > > > Updated version of the patch - this time I'll just attach the patch > > > > > file... > > > > > > > > Missing scatterlist.h inclusions.. > > > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > > > of function ???for_each_sg??? > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > > > > ???{??? > > > > token > > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable > > > > ???tp??? > > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > > ???qla24xx_build_scsi_iocbs???: > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > > > function ???for_each_sg??? > > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > > ???{??? > > > > token > > > > > > Thanks, will fix those. What arch? I tested it here. > > > > I am playing with them on ppc64. > > Ah ok, you need the updated patch series for ppc64 support. Builds fine > here on ppc64. See the #sglist branch of the block repo: A little teaser for those that haven't tried it yet. This is the blktrace stats of doing a dd from a device and piping to md5sum. Just meant to test that I got the same data back with chained sglists. Snips from the blktrace data: 8,16 2 130214.958707808 0 C R 983040 + 10240 [0] 8,16 2 130314.959619712 0 D R 1005568 + 13312 [swapper] 8,16 2 130415.066257952 0 C R 993280 + 12288 [0] 8,16 2 130515.067238272 0 D R 1018880 + 13312 [swapper] That's completion of a 5120kb request, dispatch of a 6656kb request, completion of a 6144kb request, and finally dispatch of a 6656kb request again. Average io size for reading half a gig of data: Read Dispatches: 110, 524,288KiB or ~4766kb average IO size. 6656 are the largest requests in this test, it's running into the hw sg limit at that point. Just doing a plain O_DIRECT dd from the device makes basically all requests reach the max, giving an average io size above 6mb/request. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Badari Pulavarty wrote: > On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > > On Tue, May 15 2007, Badari Pulavarty wrote: > > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > > Hi, > > > > > > > > Updated version of the patch - this time I'll just attach the patch > > > > file... > > > > > > Missing scatterlist.h inclusions.. > > > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > > of function ???for_each_sg??? > > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > > > ???{??? > > > token > > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? > > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function > > > ???qla24xx_build_scsi_iocbs???: > > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > > function ???for_each_sg??? > > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before > > > ???{??? > > > token > > > > Thanks, will fix those. What arch? I tested it here. > > I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: > On Tue, May 15 2007, Badari Pulavarty wrote: > > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > > Hi, > > > > > > Updated version of the patch - this time I'll just attach the patch > > > file... > > > > Missing scatterlist.h inclusions.. > > > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > > of function ???for_each_sg??? > > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > > ???{??? > > token > > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? > > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > > > > drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: > > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > > function ???for_each_sg??? > > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? > > token > > Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Thanks, Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Badari Pulavarty wrote: > On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > > Hi, > > > > Updated version of the patch - this time I'll just attach the patch > > file... > > Missing scatterlist.h inclusions.. > > drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: > drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration > of function ???for_each_sg??? > drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before > ???{??? > token > drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? > make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 > > > drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: > drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of > function ???for_each_sg??? > drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? > token Thanks, will fix those. What arch? I tested it here. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: > Hi, > > Updated version of the patch - this time I'll just attach the patch > file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ‘sym_scatter’: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ‘for_each_sg’ drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ‘;’ before ‘{’ token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ‘tp’ make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ‘qla24xx_build_scsi_iocbs’: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ‘for_each_sg’ drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ‘;’ before ‘{’ token Thanks, Badari - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ‘sym_scatter’: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ‘for_each_sg’ drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ‘;’ before ‘{’ token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ‘tp’ make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ‘qla24xx_build_scsi_iocbs’: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ‘for_each_sg’ drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ‘;’ before ‘{’ token Thanks, Badari - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Thanks, Badari - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: git://git.kernel.dk/data/git/linux-2.6-block.git I can mail you an updated patch, if you want. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] Chaining sg lists for big IO commands v5
On Tue, May 15 2007, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Tue, 2007-05-15 at 19:20 +0200, Jens Axboe wrote: On Tue, May 15 2007, Badari Pulavarty wrote: On Fri, 2007-05-11 at 15:51 +0200, Jens Axboe wrote: Hi, Updated version of the patch - this time I'll just attach the patch file... Missing scatterlist.h inclusions.. drivers/scsi/sym53c8xx_2/sym_glue.c: In function ???sym_scatter???: drivers/scsi/sym53c8xx_2/sym_glue.c:385: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/sym53c8xx_2/sym_glue.c:385: error: expected ???;??? before ???{??? token drivers/scsi/sym53c8xx_2/sym_glue.c:375: warning: unused variable ???tp??? make[3]: *** [drivers/scsi/sym53c8xx_2/sym_glue.o] Error 1 drivers/scsi/qla2xxx/qla_iocb.c: In function ???qla24xx_build_scsi_iocbs???: drivers/scsi/qla2xxx/qla_iocb.c:678: warning: implicit declaration of function ???for_each_sg??? drivers/scsi/qla2xxx/qla_iocb.c:678: error: expected ???;??? before ???{??? token Thanks, will fix those. What arch? I tested it here. I am playing with them on ppc64. Ah ok, you need the updated patch series for ppc64 support. Builds fine here on ppc64. See the #sglist branch of the block repo: A little teaser for those that haven't tried it yet. This is the blktrace stats of doing a dd from a device and piping to md5sum. Just meant to test that I got the same data back with chained sglists. Snips from the blktrace data: 8,16 2 130214.958707808 0 C R 983040 + 10240 [0] 8,16 2 130314.959619712 0 D R 1005568 + 13312 [swapper] 8,16 2 130415.066257952 0 C R 993280 + 12288 [0] 8,16 2 130515.067238272 0 D R 1018880 + 13312 [swapper] That's completion of a 5120kb request, dispatch of a 6656kb request, completion of a 6144kb request, and finally dispatch of a 6656kb request again. Average io size for reading half a gig of data: Read Dispatches: 110, 524,288KiB or ~4766kb average IO size. 6656 are the largest requests in this test, it's running into the hw sg limit at that point. Just doing a plain O_DIRECT dd from the device makes basically all requests reach the max, giving an average io size above 6mb/request. -- Jens Axboe - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/