IB/srp: rework mapping engine to use multiple FMR entries
authorDavid Dillow <dillowda@ornl.gov>
Sat, 15 Jan 2011 00:45:50 +0000 (19:45 -0500)
committerDavid Dillow <dillowda@ornl.gov>
Tue, 15 Mar 2011 23:35:16 +0000 (19:35 -0400)
commit8f26c9ff9cd0317ad867bce972f69e0c6c2cbe3c
treee130e878b4e13cbac4892011cc18aa8fef5257fb
parent4924864404d0ce2c32a6d20b27b5b6fcb31e481d
IB/srp: rework mapping engine to use multiple FMR entries

Instead of forcing all of the S/G entries to fit in one FMR, and falling
back to indirect descriptors if that fails, allow the use of as many
FMRs as needed to map the request. This lays the groundwork for allowing
indirect descriptor tables that are larger than can fit in the command
IU, but should marginally improve performance now by reducing the number
of indirect descriptors needed.

We increase the minimum page size for the FMR pool to 4K, as larger
pages help increase the coverage of each FMR, and it is rare that the
kernel would send down a request with scattered 512 byte fragments.

This patch also move some of the target initialization code afte the
parsing of options, to keep it together with the new code that needs to
allocate memory based on the options given.

Signed-off-by: David Dillow <dillowda@ornl.gov>
drivers/infiniband/ulp/srp/ib_srp.c
drivers/infiniband/ulp/srp/ib_srp.h