From: kernel test robot <lkp@intel.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: 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: Fri, 7 Mar 2025 20:30:55 +0800 [thread overview]
Message-ID: <202503072017.WC5d8E9k-lkp@intel.com> (raw)
In-Reply-To: <2287d8c50483e880450c7e8e08d9de34cdec1b14.1741261611.git.leon@kernel.org>
Hi Leon,
kernel test robot noticed the following build warnings:
[auto build test WARNING on rdma/for-next]
[also build test WARNING on linus/master v6.14-rc5 next-20250306]
[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: arc-allyesconfig (https://download.01.org/0day-ci/archive/20250307/202503072017.WC5d8E9k-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250307/202503072017.WC5d8E9k-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/202503072017.WC5d8E9k-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/infiniband/hw/mlx5/fs.c: In function '_get_prio':
drivers/infiniband/hw/mlx5/fs.c:702:16: error: 'struct mlx5_flow_table_attr' has no member named 'vport'
702 | ft_attr.vport = vport;
| ^
drivers/infiniband/hw/mlx5/fs.c: In function 'mlx5_ib_fill_transport_ns_info':
drivers/infiniband/hw/mlx5/fs.c:1430:14: error: implicit declaration of function 'MLX5_CAP_ADV_RDMA'; did you mean 'MLX5_CAP_ODP_MAX'? [-Werror=implicit-function-declaration]
1430 | if (!MLX5_CAP_ADV_RDMA(dev->mdev, rdma_transport_manager))
| ^~~~~~~~~~~~~~~~~
| MLX5_CAP_ODP_MAX
drivers/infiniband/hw/mlx5/fs.c:1430:43: error: 'rdma_transport_manager' undeclared (first use in this function); did you mean 'rdma_transport_type'?
1430 | if (!MLX5_CAP_ADV_RDMA(dev->mdev, rdma_transport_manager))
| ^~~~~~~~~~~~~~~~~~~~~~
| rdma_transport_type
drivers/infiniband/hw/mlx5/fs.c:1430:43: note: each undeclared identifier is reported only once for each function it appears in
drivers/infiniband/hw/mlx5/fs.c: In function '_get_flow_table':
drivers/infiniband/hw/mlx5/fs.c:1510:14: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS'?
1510 | case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS
drivers/infiniband/hw/mlx5/fs.c:1511:14: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC'?
1511 | case MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC
drivers/infiniband/hw/mlx5/fs.c:1512:53: error: 'MLX5_RDMA_TRANSPORT_BYPASS_PRIO' undeclared (first use in this function)
1512 | if (ib_port == 0 || user_priority > MLX5_RDMA_TRANSPORT_BYPASS_PRIO)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/bits.h:6,
from include/linux/bitops.h:6,
from include/linux/bitmap.h:8,
from include/linux/ethtool.h:16,
from include/rdma/ib_verbs.h:15,
from drivers/infiniband/hw/mlx5/fs.c:7:
drivers/infiniband/hw/mlx5/fs.c:1522:37: error: implicit declaration of function 'MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_RX'; did you mean 'MLX5_CAP_FLOWTABLE_RDMA_TX'? [-Werror=implicit-function-declaration]
1522 | BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_RX(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/vdso/bits.h:7:44: note: in definition of macro 'BIT'
7 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/infiniband/hw/mlx5/fs.c:1523:50: error: 'log_max_ft_size' undeclared (first use in this function)
1523 | ft_mdev, log_max_ft_size));
| ^~~~~~~~~~~~~~~
include/vdso/bits.h:7:44: note: in definition of macro 'BIT'
7 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/infiniband/hw/mlx5/fs.c:1526:37: error: implicit declaration of function 'MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_TX'; did you mean 'MLX5_CAP_FLOWTABLE_RDMA_TX'? [-Werror=implicit-function-declaration]
1526 | BIT(MLX5_CAP_FLOWTABLE_RDMA_TRANSPORT_TX(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/vdso/bits.h:7:44: note: in definition of macro 'BIT'
7 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/infiniband/hw/mlx5/fs.c:1538:22: error: implicit declaration of function 'mlx5_get_flow_vport_namespace'; did you mean 'mlx5_get_flow_vport_acl_namespace'? [-Werror=implicit-function-declaration]
1538 | ns = mlx5_get_flow_vport_namespace(ft_mdev, ns_type, vport_idx);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| mlx5_get_flow_vport_acl_namespace
>> drivers/infiniband/hw/mlx5/fs.c:1538:20: warning: assignment to 'struct mlx5_flow_namespace *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1538 | ns = mlx5_get_flow_vport_namespace(ft_mdev, ns_type, vport_idx);
| ^
drivers/infiniband/hw/mlx5/fs.c: In function 'mlx5_ib_ft_type_to_namespace':
drivers/infiniband/hw/mlx5/fs.c:1814:30: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS'?
1814 | *namespace = MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS
drivers/infiniband/hw/mlx5/fs.c:1817:30: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC'?
1817 | *namespace = MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC
drivers/infiniband/hw/mlx5/fs.c: In function 'get_dests':
drivers/infiniband/hw/mlx5/fs.c:1909:37: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS'?
1909 | fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX) &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS
drivers/infiniband/hw/mlx5/fs.c:1949:44: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC'?
1949 | fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX) &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC
drivers/infiniband/hw/mlx5/fs.c: In function 'mlx5_ib_handler_MLX5_IB_METHOD_FLOW_MATCHER_CREATE':
drivers/infiniband/hw/mlx5/fs.c:2500:37: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS'?
2500 | if (obj->ns_type != MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_RX &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_COUNTERS
drivers/infiniband/hw/mlx5/fs.c:2501:37: error: 'MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX' undeclared (first use in this function); did you mean 'MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC'?
2501 | obj->ns_type != MLX5_FLOW_NAMESPACE_RDMA_TRANSPORT_TX) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MLX5_FLOW_NAMESPACE_RDMA_TX_IPSEC
cc1: some warnings being treated as errors
vim +1538 drivers/infiniband/hw/mlx5/fs.c
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
next prev parent reply other threads:[~2025-03-07 12:31 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 [this message]
2025-03-08 5:37 ` kernel test robot
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=202503072017.WC5d8E9k-lkp@intel.com \
--to=lkp@intel.com \
--cc=leon@kernel.org \
--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.