Re: [PATCH v1 3/3] RDMA/rxe: Increase value of RXE_MAX_AH

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 6/25/21 5:49 AM, Jason Gunthorpe wrote:
On Fri, Jun 25, 2021 at 12:13:57AM -0500, Bob Pearson wrote:
On 6/24/21 4:21 PM, Shoaib Rao wrote:
On 6/18/21 4:25 PM, Jason Gunthorpe wrote:
On Fri, Jun 18, 2021 at 01:58:48PM -0500, Bob Pearson wrote:
On 6/18/21 11:33 AM, Jason Gunthorpe wrote:
On Thu, Jun 17, 2021 at 10:56:58PM -0500, Bob Pearson wrote:
It isn't my call. But I am in favor of tunable parameters. -- Bob Pearson
Can we just delete the concept completely?

Jason

Not sure where you are headed here. Do you mean just lift the limits
all together?
Yes.. The spec doesn't have like a UCONTEXT limit for instance, and
real HW like mlx5 has huge reported limits anyhow.
These limits are reported via uverbs, so what do we report without current applications. Creating pool also requires limits but I guess we can use something like -1 to indicate there is no limit. I would have to look at all the values to see if we can implement this.

Shoaib


Jason
The object create in pools (rxe_alloc_locked) just calls kzalloc for
objects allocated by rxe and checks the limits. For objects
allocated by rdma-core (__rxe_add_to_pool) it just checks the
limits. The only place where the limit really matters is when a pool
is indexed (RXE_POOL_INDEXED). Then there is a bitmask used to
allocate the indices for the objects which consumes one byte for
each 8 objects.
Use an ida or xarray instead?

Jason

We do not have to change any data structures, just decide on the max limit.

RXE_POOL_INDEX flag as shown below is used to indicate what type of index to use and is not an issue

        if (rxe_type_info[type].flags & RXE_POOL_INDEX) {
                err = rxe_pool_init_index(pool,
rxe_type_info[type].max_index,
rxe_type_info[type].min_index);
                if (err)
                        goto out;
        }

And

static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
{

So the maximum index can be U32_MAX or for now we can limit is to (1 << 20) i.e 1048576

I am assuming that changing the limits for the objects I listed earlier (list below) is fine.

Shoaib

RXE_MAX_QP
RXE_MAX_QP_WR
RXE_MAX_CQ
RXE_MAX_MR
RXE_MAX_PD
RXE_MAX_AH
RXE_MAX_FMR
RXE_MAX_SRQ
RXE_MAX_SRQ_WR
RXE_MAX_PKEYS
RXE_MAX_UCONTEXT




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux