]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mlxsw: spectrum_acl: Add vregion migration end tracepoint
authorJiri Pirko <jiri@mellanox.com>
Sun, 24 Feb 2019 06:46:33 +0000 (06:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Feb 2019 04:25:29 +0000 (20:25 -0800)
Hit the new tracepoint once the vregion migration ends.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
include/trace/events/mlxsw.h

index 822766f8123661e06ee9b17c4728cdc96c7a37ec..c9d9cded17244f81d969d1316a7cb1142d1cf28f 100644 (file)
@@ -1274,8 +1274,10 @@ mlxsw_sp_acl_tcam_vregion_migrate(struct mlxsw_sp *mlxsw_sp,
 
        region2 = mlxsw_sp_acl_tcam_region_create(mlxsw_sp, vregion->tcam,
                                                  vregion, hints_priv);
-       if (IS_ERR(region2))
-               return PTR_ERR(region2);
+       if (IS_ERR(region2)) {
+               err = PTR_ERR(region2);
+               goto out;
+       }
 
        vregion->region2 = region2;
        err = mlxsw_sp_acl_tcam_group_region_attach(mlxsw_sp,
@@ -1309,11 +1311,14 @@ mlxsw_sp_acl_tcam_vregion_migrate(struct mlxsw_sp *mlxsw_sp,
                mutex_unlock(&vregion->lock);
        }
 
-       return err;
+       goto out;
 
 err_group_region_attach:
        vregion->region2 = NULL;
        mlxsw_sp_acl_tcam_region_destroy(mlxsw_sp, region2);
+out:
+       trace_mlxsw_sp_acl_tcam_vregion_migrate_end(mlxsw_sp, vregion);
+
        return err;
 }
 
index a5ce6df9dc49e6c37fb03d73ead08953030ed591..6a4cfaef33a2122d00dedb10447959d7fcc640be 100644 (file)
@@ -73,6 +73,26 @@ TRACE_EVENT(mlxsw_sp_acl_tcam_vregion_migrate,
                  __entry->mlxsw_sp, __entry->vregion)
 );
 
+TRACE_EVENT(mlxsw_sp_acl_tcam_vregion_migrate_end,
+       TP_PROTO(const struct mlxsw_sp *mlxsw_sp,
+                const struct mlxsw_sp_acl_tcam_vregion *vregion),
+
+       TP_ARGS(mlxsw_sp, vregion),
+
+       TP_STRUCT__entry(
+               __field(const void *, mlxsw_sp)
+               __field(const void *, vregion)
+       ),
+
+       TP_fast_assign(
+               __entry->mlxsw_sp = mlxsw_sp;
+               __entry->vregion = vregion;
+       ),
+
+       TP_printk("mlxsw_sp %p, vregion %p",
+                 __entry->mlxsw_sp, __entry->vregion)
+);
+
 TRACE_EVENT(mlxsw_sp_acl_tcam_vregion_rehash_dis,
        TP_PROTO(const struct mlxsw_sp *mlxsw_sp,
                 const struct mlxsw_sp_acl_tcam_vregion *vregion),