Message ID | 1460414846-29540-3-git-send-email-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
> So that we don't overflow the number of MR segments allocated because > we have to split on SGL segment into multiple MR segments. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > drivers/infiniband/ulp/iser/iscsi_iser.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c > index 80b6bed..784504a 100644 > --- a/drivers/infiniband/ulp/iser/iscsi_iser.c > +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c > @@ -623,6 +623,7 @@ iscsi_iser_session_create(struct iscsi_endpoint *ep, > shost->max_id = 0; > shost->max_channel = 0; > shost->max_cmd_len = 16; > + shost->max_segment_size = PAGE_SIZE; In iser we sorta rely on 4k pages so we avoid PAGE_SIZE but rather set SIZE_4K for these sort of things (like we did in the virt_boundary). -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2016-04-12 at 13:48 +0300, Sagi Grimberg wrote: > > So that we don't overflow the number of MR segments allocated > > because > > we have to split on SGL segment into multiple MR segments. > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > --- > > drivers/infiniband/ulp/iser/iscsi_iser.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c > > b/drivers/infiniband/ulp/iser/iscsi_iser.c > > index 80b6bed..784504a 100644 > > --- a/drivers/infiniband/ulp/iser/iscsi_iser.c > > +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c > > @@ -623,6 +623,7 @@ iscsi_iser_session_create(struct iscsi_endpoint > > *ep, > > shost->max_id = 0; > > shost->max_channel = 0; > > shost->max_cmd_len = 16; > > + shost->max_segment_size = PAGE_SIZE; > > In iser we sorta rely on 4k pages so we avoid > PAGE_SIZE but rather set SIZE_4K for these sort > of things (like we did in the virt_boundary). So you still want only 4k segments even on PPC where the PAGE_SIZE is 16k? James -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 12, 2016 at 07:27:36AM -0700, James Bottomley wrote: > > In iser we sorta rely on 4k pages so we avoid > > PAGE_SIZE but rather set SIZE_4K for these sort > > of things (like we did in the virt_boundary). > > So you still want only 4k segments even on PPC where the PAGE_SIZE is > 16k? I'll leave the high level question to Sagi and friends, but if virt_boundary and the MR page size are set to 4k we need to set the segment size to the same, so this patch needs to be SIZE_4K indeed unless the other two are changed. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
>> In iser we sorta rely on 4k pages so we avoid >> PAGE_SIZE but rather set SIZE_4K for these sort >> of things (like we did in the virt_boundary). > > So you still want only 4k segments even on PPC where the PAGE_SIZE is > 16k? Yes, iSER has the "no-gaps" constraint (like nvme) and some applications in the past were known to issue vectored IO that doesn't necessarily align with the system PAGE_SIZE. These sort of workloads resulted in suboptimal performance on ppc, ia64 etc (almost every I/O had gaps). Before the block layer was able to enforce scatterlists without gaps, iSER used bounce buffering in order to service "gappy" I/O which was probably a lot worse than bio splitting like the block layer is doing today, but still we felt that having 4k segments even on larger PAGE_SIZE systems was a decent compromise. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c index 80b6bed..784504a 100644 --- a/drivers/infiniband/ulp/iser/iscsi_iser.c +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c @@ -623,6 +623,7 @@ iscsi_iser_session_create(struct iscsi_endpoint *ep, shost->max_id = 0; shost->max_channel = 0; shost->max_cmd_len = 16; + shost->max_segment_size = PAGE_SIZE; /* * older userspace tools (before 2.0-870) did not pass us
So that we don't overflow the number of MR segments allocated because we have to split on SGL segment into multiple MR segments. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/infiniband/ulp/iser/iscsi_iser.c | 1 + 1 file changed, 1 insertion(+)