All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH rdma-next v1 5/6] RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace
Date: Sat, 8 Mar 2025 13:37:33 +0800	[thread overview]
Message-ID: <202503081358.5IRVqXGS-lkp@intel.com> (raw)
In-Reply-To: <2287d8c50483e880450c7e8e08d9de34cdec1b14.1741261611.git.leon@kernel.org>

Hi Leon,

kernel test robot noticed the following build errors:

[auto build test ERROR on rdma/for-next]
[also build test ERROR on linus/master v6.14-rc5 next-20250307]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Leon-Romanovsky/RDMA-uverbs-Introduce-UCAP-User-CAPabilities-API/20250306-195708
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git for-next
patch link:    https://lore.kernel.org/r/2287d8c50483e880450c7e8e08d9de34cdec1b14.1741261611.git.leon%40kernel.org
patch subject: [PATCH rdma-next v1 5/6] RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace
config: s390-defconfig (https://download.01.org/0day-ci/archive/20250308/202503081358.5IRVqXGS-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250308/202503081358.5IRVqXGS-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503081358.5IRVqXGS-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/infiniband/hw/mlx5/fs.c:702:10: error: no member named 'vport' in 'struct mlx5_flow_table_attr'
           ft_attr.vport = vport;
           ~~~~~~~ ^
>> drivers/infiniband/hw/mlx5/fs.c:1430:7: error: call to undeclared function 'MLX5_CAP_ADV_RDMA'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
           if (!MLX5_CAP_ADV_RDMA(dev->mdev, rdma_transport_manager))
                ^
   drivers/infiniband/hw/mlx5/fs.c:1430:36: error: use of undeclared identifier 'rdma_transport_manager'; did you mean 'skb_transport_header'?
           if (!MLX5_CAP_ADV_RDMA(dev->mdev, rdma_transport_manager))
                                             ^~~~~~~~~~~~~~~~~~~~~~
                                             skb_transport_header
   include/linux/skbuff.h:3018:30: note: 'skb_transport_header' declared here
   static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
                                ^
   drivers/infiniband/hw/mlx5/fs.c:1510:7: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX'
           case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX:
                ^
   drivers/infiniband/hw/mlx5/fs.c:1511:7: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX'
           case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX:
                ^
   drivers/infiniband/hw/mlx5/fs.c:1512:39: error: use of undeclared identifier 'MLX5_RDMA_TRANSPORT_BYPASS_PRIO'
                   if (ib_port == 0 || user_priority > MLX5_RDMA_TRANSPORT_BYPASS_PRIO)
                                                       ^
   drivers/infiniband/hw/mlx5/fs.c:1520:18: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX'
                   if (ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX)
                                  ^
>> drivers/infiniband/hw/mlx5/fs.c:1522:9: error: call to undeclared function 'MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_RX'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                                   BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_RX(
                                       ^
   drivers/infiniband/hw/mlx5/fs.c:1523:15: error: use of undeclared identifier 'log_max_ft_size'
                                           ft_mdev, log_max_ft_size));
                                                    ^
>> drivers/infiniband/hw/mlx5/fs.c:1526:9: error: call to undeclared function 'MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_TX'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                                   BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_TX(
                                       ^
   drivers/infiniband/hw/mlx5/fs.c:1527:15: error: use of undeclared identifier 'log_max_ft_size'
                                           ft_mdev, log_max_ft_size));
                                                    ^
   drivers/infiniband/hw/mlx5/fs.c:1536:17: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX'
           if (ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX ||
                          ^
   drivers/infiniband/hw/mlx5/fs.c:1537:17: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX'
               ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX)
                          ^
>> drivers/infiniband/hw/mlx5/fs.c:1538:8: error: call to undeclared function 'mlx5_get_flow_vport_namespace'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
                   ns = mlx5_get_flow_vport_namespace(ft_mdev, ns_type, vport_idx);
                        ^
   drivers/infiniband/hw/mlx5/fs.c:1538:8: note: did you mean 'mlx5_get_flow_vport_acl_namespace'?
   include/linux/mlx5/fs.h:197:1: note: 'mlx5_get_flow_vport_acl_namespace' declared here
   mlx5_get_flow_vport_acl_namespace(struct mlx5_core_dev *dev,
   ^
   drivers/infiniband/hw/mlx5/fs.c:1538:6: error: incompatible integer to pointer conversion assigning to 'struct mlx5_flow_namespace *' from 'int' [-Wint-conversion]
                   ns = mlx5_get_flow_vport_namespace(ft_mdev, ns_type, vport_idx);
                      ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/mlx5/fs.c:1561:7: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX'
           case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX:
                ^
   drivers/infiniband/hw/mlx5/fs.c:1564:7: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX'
           case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX:
                ^
   drivers/infiniband/hw/mlx5/fs.c:1814:16: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX'
                   *namespace = MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX;
                                ^
   drivers/infiniband/hw/mlx5/fs.c:1817:16: error: use of undeclared identifier 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX'
                   *namespace = MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX;
                                ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.


vim +/MLX5_CAP_ADV_RDMA +1430 drivers/infiniband/hw/mlx5/fs.c

  1417	
  1418	static int mlx5_ib_fill_transport_ns_info(struct mlx5_ib_dev *dev,
  1419						  enum mlx5_flow_namespace_type type,
  1420						  u32 *flags, u16 *vport_idx,
  1421						  u16 *vport,
  1422						  struct mlx5_core_dev **ft_mdev,
  1423						  u32 ib_port)
  1424	{
  1425		struct mlx5_core_dev *esw_mdev;
  1426	
  1427		if (!is_mdev_switchdev_mode(dev->mdev))
  1428			return 0;
  1429	
> 1430		if (!MLX5_CAP_ADV_RDMA(dev->mdev, rdma_transport_manager))
  1431			return -EOPNOTSUPP;
  1432	
  1433		if (!dev->port[ib_port - 1].rep)
  1434			return -EINVAL;
  1435	
  1436		esw_mdev = mlx5_eswitch_get_core_dev(dev->port[ib_port - 1].rep->esw);
  1437		if (esw_mdev != dev->mdev)
  1438			return -EOPNOTSUPP;
  1439	
  1440		*flags |= MLX5_FLOW_TABLE_OTHER_VPORT;
  1441		*ft_mdev = esw_mdev;
  1442		*vport = dev->port[ib_port - 1].rep->vport;
  1443		*vport_idx = dev->port[ib_port - 1].rep->vport_index;
  1444	
  1445		return 0;
  1446	}
  1447	
  1448	static struct mlx5_ib_flow_prio *
  1449	_get_flow_table(struct mlx5_ib_dev *dev, u16 user_priority,
  1450			enum mlx5_flow_namespace_type ns_type,
  1451			bool mcast, u32 ib_port)
  1452	{
  1453		struct mlx5_core_dev *ft_mdev = dev->mdev;
  1454		struct mlx5_flow_namespace *ns = NULL;
  1455		struct mlx5_ib_flow_prio *prio = NULL;
  1456		int max_table_size = 0;
  1457		u16 vport_idx = 0;
  1458		bool esw_encap;
  1459		u32 flags = 0;
  1460		u16 vport = 0;
  1461		int priority;
  1462		int ret;
  1463	
  1464		if (mcast)
  1465			priority = MLX5_IB_FLOW_MCAST_PRIO;
  1466		else
  1467			priority = ib_prio_to_core_prio(user_priority, false);
  1468	
  1469		esw_encap = mlx5_eswitch_get_encap_mode(dev->mdev) !=
  1470			DEVLINK_ESWITCH_ENCAP_MODE_NONE;
  1471		switch (ns_type) {
  1472		case MLX5_FLOW_NAMESPACE_BYPASS:
  1473			max_table_size = BIT(
  1474				MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev, log_max_ft_size));
  1475			if (MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev, decap) && !esw_encap)
  1476				flags |= MLX5_FLOW_TABLE_TUNNEL_EN_DECAP;
  1477			if (MLX5_CAP_FLOWTABLE_NIC_RX(dev->mdev,
  1478						      reformat_l3_tunnel_to_l2) &&
  1479			    !esw_encap)
  1480				flags |= MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
  1481			break;
  1482		case MLX5_FLOW_NAMESPACE_EGRESS:
  1483			max_table_size = BIT(
  1484				MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev, log_max_ft_size));
  1485			if (MLX5_CAP_FLOWTABLE_NIC_TX(dev->mdev, reformat) &&
  1486			    !esw_encap)
  1487				flags |= MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
  1488			break;
  1489		case MLX5_FLOW_NAMESPACE_FDB_BYPASS:
  1490			max_table_size = BIT(
  1491				MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, log_max_ft_size));
  1492			if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, decap) && esw_encap)
  1493				flags |= MLX5_FLOW_TABLE_TUNNEL_EN_DECAP;
  1494			if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev,
  1495						       reformat_l3_tunnel_to_l2) &&
  1496			    esw_encap)
  1497				flags |= MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
  1498			priority = user_priority;
  1499			break;
  1500		case MLX5_FLOW_NAMESPACE_RDMA_RX:
  1501			max_table_size = BIT(
  1502				MLX5_CAP_FLOWTABLE_RDMA_RX(dev->mdev, log_max_ft_size));
  1503			priority = user_priority;
  1504			break;
  1505		case MLX5_FLOW_NAMESPACE_RDMA_TX:
  1506			max_table_size = BIT(
  1507				MLX5_CAP_FLOWTABLE_RDMA_TX(dev->mdev, log_max_ft_size));
  1508			priority = user_priority;
  1509			break;
  1510		case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX:
  1511		case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX:
  1512			if (ib_port == 0 || user_priority > MLX5_RDMA_TRANSPORT_BYPASS_PRIO)
  1513				return ERR_PTR(-EINVAL);
  1514			ret = mlx5_ib_fill_transport_ns_info(dev, ns_type, &flags,
  1515							     &vport_idx, &vport,
  1516							     &ft_mdev, ib_port);
  1517			if (ret)
  1518				return ERR_PTR(ret);
  1519	
  1520			if (ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX)
  1521				max_table_size =
> 1522					BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_RX(
  1523						ft_mdev, log_max_ft_size));
  1524			else
  1525				max_table_size =
> 1526					BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_TX(
  1527						ft_mdev, log_max_ft_size));
  1528			priority = user_priority;
  1529			break;
  1530		default:
  1531			break;
  1532		}
  1533	
  1534		max_table_size = min_t(int, max_table_size, MLX5_FS_MAX_ENTRIES);
  1535	
  1536		if (ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX ||
  1537		    ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX)
> 1538			ns = mlx5_get_flow_vport_namespace(ft_mdev, ns_type, vport_idx);
  1539		else
  1540			ns = mlx5_get_flow_namespace(ft_mdev, ns_type);
  1541	
  1542		if (!ns)
  1543			return ERR_PTR(-EOPNOTSUPP);
  1544	
  1545		switch (ns_type) {
  1546		case MLX5_FLOW_NAMESPACE_BYPASS:
  1547			prio = &dev->flow_db->prios[priority];
  1548			break;
  1549		case MLX5_FLOW_NAMESPACE_EGRESS:
  1550			prio = &dev->flow_db->egress_prios[priority];
  1551			break;
  1552		case MLX5_FLOW_NAMESPACE_FDB_BYPASS:
  1553			prio = &dev->flow_db->fdb[priority];
  1554			break;
  1555		case MLX5_FLOW_NAMESPACE_RDMA_RX:
  1556			prio = &dev->flow_db->rdma_rx[priority];
  1557			break;
  1558		case MLX5_FLOW_NAMESPACE_RDMA_TX:
  1559			prio = &dev->flow_db->rdma_tx[priority];
  1560			break;
  1561		case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX:
  1562			prio = &dev->flow_db->rdma_transport_rx[ib_port - 1];
  1563			break;
  1564		case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX:
  1565			prio = &dev->flow_db->rdma_transport_tx[ib_port - 1];
  1566			break;
  1567		default: return ERR_PTR(-EINVAL);
  1568		}
  1569	
  1570		if (!prio)
  1571			return ERR_PTR(-EINVAL);
  1572	
  1573		if (prio->flow_table)
  1574			return prio;
  1575	
  1576		return _get_prio(dev, ns, prio, priority, max_table_size,
  1577				 MLX5_FS_MAX_TYPES, flags, vport);
  1578	}
  1579	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2025-03-08  5:38 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06 11:51 [PATCH rdma-next v1 0/6] Introduce UCAP API and usage in mlx5 Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 1/6] RDMA/uverbs: Introduce UCAP (User CAPabilities) API Leon Romanovsky
2025-03-08  7:25   ` Zhu Yanjun
2025-03-08 19:21     ` Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 2/6] RDMA/mlx5: Create UCAP char devices for supported device capabilities Leon Romanovsky
2025-03-08 12:33   ` kernel test robot
2025-03-06 11:51 ` [PATCH rdma-next v1 3/6] RDMA/uverbs: Add support for UCAPs in context creation Leon Romanovsky
2025-03-06 11:51 ` [PATCH rdma-next v1 4/6] RDMA/mlx5: Check enabled UCAPs when creating ucontext Leon Romanovsky
2025-03-08  4:22   ` kernel test robot
2025-03-06 11:51 ` [PATCH rdma-next v1 5/6] RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace Leon Romanovsky
2025-03-07 12:30   ` kernel test robot
2025-03-08  5:37   ` kernel test robot [this message]
2025-03-06 11:51 ` [PATCH rdma-next v1 6/6] docs: infiniband: document the UCAP API Leon Romanovsky
2025-03-08 19:23 ` [PATCH rdma-next v1 0/6] Introduce UCAP API and usage in mlx5 Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202503081358.5IRVqXGS-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=leon@kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.