On 10/23/2017 6:47 PM, Jason Gunthorpe wrote:
On Sat, Oct 14, 2017 at 11:48:23AM -0700, Saeed Mahameed wrote:
From: Alex Vesker <valex@xxxxxxxxxxxx>
This change is needed for PKEY support, since the RQs are shared
between the child interface and the parent. The parent is responsible
for NAPI and the precessing of RX completions. Using the dqpn in the
completion descriptor we set the corresponding child IPoIB netdevice
on the SKB.
The mapping between the dqpn and the netdevice is done using a HT,
each mlx5 IPoIB interface registers its mapping on creation.
It seems really really weird to share the receive Q across all of the
children and do the sorting in software.. why is this done like this?
Wouldn't it be better to allow the children to progress concurrently,
potentially on multiple cores? They all have their own QPs after all..
Jason
The child interface RQs are in minimum size since they are not used.
The reason for this is saving resources, since we want to be able to
support many PKEYs
and allocating less memory while reusing HW resources such as flow
steering table.
This solution allowed us save memory on allocating the RQs of the child
and use the same
HW flow steering table, TIR, RQT. Using the hash table doesn't impact on
performance.
The parent have multiple RQs on different cores running in parallel.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html