Re: [PATCH for-next v3] IB/core: Only update PKEY and GID caches on respective events
From: Jason Gunthorpe <jgg@nvidia.com>
Date: 2021-05-28 23:35:11
On Tue, May 25, 2021 at 07:49:09PM +0200, Håkon Bugge wrote:
Both the PKEY and GID tables in an HCA can hold in the order of
hundreds entries. Reading them are expensive. Partly because the API
for retrieving them only returns a single entry at a time. Further, on
certain implementations, e.g., CX-3, the VFs are paravirtualized in
this respect and have to rely on the PF driver to perform the
read. This again demands VF to PF communication.
IB Core's cache is refreshed on all events. Hence, filter the refresh
of the PKEY and GID caches based on the event received being
IB_EVENT_PKEY_CHANGE and IB_EVENT_GID_CHANGE respectively.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Håkon Bugge <redacted>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
---
v1 -> v2:
* Changed signature of ib_cache_update() as per Leon's suggestion
* Added Fixes tag as per Zhu Yanjun' suggestion
v2 -> v3:
* Rebased on tip of dledford/wip/jgg-for-next, 331859d320f5
("RDMA/hns: Remove unused CMDQ member")
* Added Leon's r-b
---
drivers/infiniband/core/cache.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)Applied to for-next, thanks Jason