linux/drivers/infiniband/core
Shiraz Saleem d10bcf947a RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs
Combine contiguous regions of PAGE_SIZE pages into single scatter list
entry while building the scatter table for a umem. This minimizes the
number of the entries in the scatter list and reduces the DMA mapping
overhead, particularly with the IOMMU.

Set default max_seg_size in core for IB devices to 2G and do not combine
if we exceed this limit.

Also, purge npages in struct ib_umem as we now DMA map the umem SGL with
sg_nents and npage computation is not needed. Drivers should now be using
ib_umem_num_pages(), so fix the last stragglers.

Move npages tracking to ib_umem_odp as ODP drivers still need it.

Suggested-by: Jason Gunthorpe <jgg@ziepe.ca>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Acked-by: Adit Ranadive <aditr@vmware.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Tested-by: Gal Pressman <galpress@amazon.com>
Tested-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-04-08 13:05:24 -03:00
..
addr.c RDMA/core: Annotate timeout as unsigned long 2018-10-16 13:34:01 -04:00
agent.c RDMA: Mark if destroy address handle is in a sleepable context 2018-12-19 16:28:03 -07:00
agent.h
cache.c RDMA/device: Add ib_device_set_netdev() as an alternative to get_netdev 2019-02-19 20:52:18 -07:00
cgroup.c IB/core: Simplify rdma cgroup registration 2019-01-18 13:43:10 -07:00
cm_msgs.h RDMA: Use __packed annotation instead of __attribute__ ((packed)) 2019-03-25 21:14:12 -03:00
cm.c RDMA/cm: Remove useless zeroing of static global variable 2019-04-04 08:29:04 -03:00
cma_configfs.c RDMA/cma: Move cma module specific functions to cma_priv.h 2018-11-22 11:57:33 -07:00
cma_priv.h IB/cma: Define option to set ack timeout and pack tos_set 2019-02-08 16:14:21 -07:00
cma.c RDMA/cma: Set proper port number as index 2019-04-03 15:20:32 -03:00
core_priv.h RDMA/core: Add command to set ib_core device net namspace sharing mode 2019-03-28 14:52:02 -03:00
cq.c IB: Pass only ib_udata in function prototypes 2019-04-01 15:00:47 -03:00
device.c RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs 2019-04-08 13:05:24 -03:00
fmr_pool.c RDMA: Start use ib_device_ops 2018-12-12 07:40:16 -07:00
iwcm.c RDMA/iwcm: Fix string truncation error 2019-02-19 20:52:19 -07:00
iwcm.h
iwpm_msg.c RDMA/iwpm: move kdoc comments to functions 2019-02-05 15:40:41 -07:00
iwpm_util.c RDMA/iwpm: Remove set but not used variable 'msg_seq' 2019-02-14 14:47:39 -07:00
iwpm_util.h RDMA/IWPM: Support no port mapping requirements 2019-02-04 16:26:02 -07:00
mad_priv.h RDMA: Use __packed annotation instead of __attribute__ ((packed)) 2019-03-25 21:14:12 -03:00
mad_rmpp.c RDMA: Mark if destroy address handle is in a sleepable context 2018-12-19 16:28:03 -07:00
mad_rmpp.h
mad.c IB/MAD: Add SMP details to MAD tracing 2019-03-27 15:52:01 -03:00
Makefile IB/{core,uverbs}: Move ib_umem_xxx functions from ib_core to ib_uverbs 2019-01-10 17:06:44 -07:00
mr_pool.c
multicast.c IB: Make ib_init_ah_from_mcmember set sgid_attr 2018-06-25 14:19:56 -06:00
netlink.c RDMA/cma: Remove CM_ID statistics provided by rdma-cm module 2019-02-05 15:30:33 -07:00
nldev.c RDMA/core: Add command to set ib_core device net namspace sharing mode 2019-03-28 14:52:02 -03:00
opa_smi.h RDMA: Start use ib_device_ops 2018-12-12 07:40:16 -07:00
packer.c
rdma_core.c IB: Pass uverbs_attr_bundle down uobject destroy path 2019-04-01 14:55:36 -03:00
rdma_core.h IB: Pass uverbs_attr_bundle down uobject destroy path 2019-04-01 14:55:36 -03:00
restrack.c XArray updates for 5.1-rc1 2019-03-11 20:06:18 -07:00
restrack.h RDMA/restrack: Prepare restrack_root to addition of extra fields per-type 2019-02-19 10:13:38 -07:00
roce_gid_mgmt.c IB/core: Fix oops in netdev_next_upper_dev_rcu() 2018-12-12 12:14:49 -05:00
rw.c IB/core: Remove ib_sg_dma_address() and ib_sg_dma_len() 2019-02-04 14:34:07 -07:00
sa_query.c ib core: Convert query_idr to XArray 2019-03-26 11:47:05 -03:00
sa.h RDMA/core: Annotate timeout as unsigned long 2018-10-16 13:34:01 -04:00
security.c RDMA/device: Consolidate ib_device per_port data into one place 2019-02-19 10:13:39 -07:00
smi.c
smi.h RDMA: Start use ib_device_ops 2018-12-12 07:40:16 -07:00
sysfs.c RDMA/core: Support core port attributes in non init_net 2019-03-28 14:52:02 -03:00
ucm.c ucm: Convert ctx_id_table to XArray 2019-03-26 11:50:29 -03:00
ucma.c IB/cma: Define option to set ack timeout and pack tos_set 2019-02-08 16:14:21 -07:00
ud_header.c
umem_odp.c RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs 2019-04-08 13:05:24 -03:00
umem.c RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs 2019-04-08 13:05:24 -03:00
user_mad.c RDMA: Check net namespace access for uverbs, umad, cma and nldev 2019-03-28 14:52:02 -03:00
uverbs_cmd.c IB: Pass only ib_udata in function prototypes 2019-04-01 15:00:47 -03:00
uverbs_ioctl.c IB: Pass uverbs_attr_bundle down uobject destroy path 2019-04-01 14:55:36 -03:00
uverbs_main.c RDMA: Check net namespace access for uverbs, umad, cma and nldev 2019-03-28 14:52:02 -03:00
uverbs_marshall.c IB/cm: Replace members of sa_path_rec with 'struct sgid_attr *' 2018-06-25 14:19:57 -06:00
uverbs_std_types_counters.c IB: Pass uverbs_attr_bundle down uobject destroy path 2019-04-01 14:55:36 -03:00
uverbs_std_types_cq.c IB: Pass only ib_udata in function prototypes 2019-04-01 15:00:47 -03:00
uverbs_std_types_device.c IB/uverbs: Fix ioctl query port to consider device disassociation 2019-01-25 11:58:06 -07:00
uverbs_std_types_dm.c IB: Pass uverbs_attr_bundle down ib_x destroy path 2019-04-01 14:57:35 -03:00
uverbs_std_types_flow_action.c IB: Pass uverbs_attr_bundle down uobject destroy path 2019-04-01 14:55:36 -03:00
uverbs_std_types_mr.c IB: Pass uverbs_attr_bundle down ib_x destroy path 2019-04-01 14:57:35 -03:00
uverbs_std_types.c IB: Remove 'uobject->context' dependency in object destroy APIs 2019-04-01 14:59:35 -03:00
uverbs_uapi.c IB/mlx5: Introduce MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD 2019-01-29 13:32:43 -07:00
uverbs.h IB: Remove 'uobject->context' dependency in object destroy APIs 2019-04-01 14:59:35 -03:00
verbs.c IB: Pass only ib_udata in function prototypes 2019-04-01 15:00:47 -03:00