[ofa-general] Re: [PATCH 1/11] IB/ipoib: high dma support

Roland Dreier rdreier at cisco.com
Wed Sep 26 10:51:24 PDT 2007


 > > So, in order to support HIGHMEM, I would need to change the
 > > ipath_dma_*() functions to call kmap()/kunmap() for HIGHMEM pages.
 > > I'm sure there would be all kinds of performance and coding issues
 > > around doing this.
 > 
 > So, we need some kind of HIGHDMA capability flag?

I don't think so.  An RDMA adapter that can't handle highmem pages
would be kind of pointless: you wouldn't be able to handle userspace
memory regions, for one thing.

So if ipath ever tries to handle 32-bit kernels then I think handling
highmem will be part of it.

Actually, maybe something like this probably makes sense for IPoIB
while we're at it:

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 08b4676..dbc845f 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -129,7 +129,7 @@ static struct sk_buff *ipoib_cm_alloc_rx_skb(struct net_device *dev, int id, int
 	}
 
 	for (i = 0; i < frags; i++) {
-		struct page *page = alloc_page(GFP_ATOMIC);
+		struct page *page = alloc_page(GFP_ATOMIC | GFP_HIGHUSER);
 
 		if (!page)
 			goto partial_error;



More information about the general mailing list