RE: [PATCH rdma-next v1 14/15] RDMA/core: Allow port_groups to be used with namespaces

From: Parav Pandit
Date: Tue Jun 08 2021 - 01:33:01 EST




> From: Leon Romanovsky <leon@xxxxxxxxxx>
> Sent: Tuesday, June 8, 2021 10:25 AM
>
> On Mon, Jun 07, 2021 at 01:29:58PM +0000, Parav Pandit wrote:
> >
> >
> > > From: Leon Romanovsky <leon@xxxxxxxxxx>
> > > Sent: Monday, June 7, 2021 1:48 PM
> > >
> > > From: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > >
> > > Now that the port_groups data is being destroyed and managed by the
> > > core code this restriction is no longer needed. All the
> > > ib_port_attrs are compatible with the core's sysfs lifecycle.
> > >
> > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
> > > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> > > ---
> > > drivers/infiniband/core/device.c | 10 ++++------
> > > drivers/infiniband/core/sysfs.c | 17 ++++++-----------
> > > 2 files changed, 10 insertions(+), 17 deletions(-)
>
> <...>
>
> > > diff --git a/drivers/infiniband/core/sysfs.c
> > > b/drivers/infiniband/core/sysfs.c index 09a2e1066df0..f42034fcf3d9
> > > 100644
> > > --- a/drivers/infiniband/core/sysfs.c
> > > +++ b/drivers/infiniband/core/sysfs.c
> > > @@ -1236,11 +1236,9 @@ static struct ib_port *setup_port(struct
> > > ib_core_device *coredev, int port_num,
> > > ret = sysfs_create_groups(&p->kobj, p->groups_list);
> > > if (ret)
> > > goto err_del;
> > > - if (is_full_dev) {
> > > - ret = sysfs_create_groups(&p->kobj, device-
> > > >ops.port_groups);
> > > - if (ret)
> > > - goto err_groups;
> > > - }
> > > + ret = sysfs_create_groups(&p->kobj, device->ops.port_groups);
> > > + if (ret)
> > > + goto err_groups;
> > >
> > This will expose counters in all net namespaces in shared mode (default
> case).
> > Application running in one net namespace will be able to monitor counters
> of other net namespace.
> > This should be avoided.
>
> In shared mode, we are sharing sysfs anyway and have two options to deal
> with the port properties (counters):
> 1. Show them in all namespaces as being global to port which is shared
> anyway.
> 2. Show them in init_net namespace only and applications that were left in
> this namespace will see not their counters anyway.
>
> Why should we avoid "item 1"?
Because it is incorrect to show port counters updated by application running in net ns 1, to show to application running in net ns 2.
Once/if there is per netns counters exist, than those counters can be shown using more modern rdma stats command.