On Sun, 2008-05-25 at 15:01 -0400, J. Bruce Fields wrote: > On Fri, May 23, 2008 at 10:39:53AM -0500, Tom Tucker wrote: > > The ib_sge is used to store both dma_addr_t and virtual addresses. > > This causes a warning on 32b platforms when casting ptrs to the > > u64 addr field of the ib_sge. There is work underway to reduce the > > memory footprint of the WR context in 2.6.27 the time frame that will > > remove the overloading of the ib_sge.addr field. > > Naively, this and "svcrdma: Refactor RDMA_WRITE dma mapping logic" still > look like a step in the wrong direction; the old code seemed to have a > much more clear separation between kernel addresses (void *'s) and > on-the-wire addresses (stored in u64's). Stuff like: > > > + (void*)(unsigned long) > > + sge[i].addr, sge[i].length, > > makes me nervous. > The svc_rdma_op_ctxt is being used for both the context of the NFS_ RPC request (that can map up to 2M) and the RDMA WR (which is bounded by the SGE limit of the device). What changed is when the dma_map is performed. Originally it was performed when the NFS_ request was mapped to a local SGL. The problem with this is that the temporary context used to keep this mapping is freed (and unmapped) before the WR completes and therefore the memory could be unmapped too early. Since the unmap is a no-op on x86 -- this never caused a problem, however, for IA64 and others -- it is a problem. What needs to be done is to replace the svc_rdma_op_ctxt with a suitable temporary mapping structure with the appropriate type. I will have this patch soon. I knew it was broken and was concerned that it would be found in the field, but since we don't hear the screams - it sounds like we should just ditch these interim dma changes and then we won't have code upstream that has this interim typing issue. If someone does find this problem, I can point them at my tree to give it whirl. Sound ok? Tom > --b. > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html