[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aOULIXcBwiUpo67E@soc-5CG4396X81.clients.intel.com>
Date: Tue, 7 Oct 2025 14:44:17 +0200
From: Larysa Zaremba <larysa.zaremba@...el.com>
To: Paul Menzel <pmenzel@...gen.mpg.de>
CC: <intel-wired-lan@...ts.osuosl.org>, Tony Nguyen
<anthony.l.nguyen@...el.com>, Przemek Kitszel <przemyslaw.kitszel@...el.com>,
Andrew Lunn <andrew+netdev@...n.ch>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, "Paolo
Abeni" <pabeni@...hat.com>, Joshua Hay <joshua.a.hay@...el.com>, Chittim
Madhu <madhu.chittim@...el.com>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, Emil Tantilov <emil.s.tantilov@...el.com>,
Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>, Aleksandr Loktionov
<aleksandr.loktionov@...el.com>
Subject: Re: [Intel-wired-lan] [PATCH iwl-net] idpf: fix LAN memory regions
command on some NVMs
On Tue, Oct 07, 2025 at 02:06:55PM +0200, Paul Menzel wrote:
> Dear Larysa,
>
>
> Am 07.10.25 um 13:46 schrieb Larysa Zaremba:
> > IPU SDK versions 1.9 through 2.0.5 require send buffer to contain a single
> > empty memory region. Set number of regions to 1 and use appropriate send
> > buffer size to satisfy this requirement.
>
> Where are the SDK requirements documented?
>
IPU SDK is a fancy name for the FW. AFAIK, aside idpf specification intel did
not publish any additional resources for it.
idpf specification [1] is unclear on the exact get command contents. What I am
fixing is the reality of the implementation of the NVMs that support CPFs too
(supported by ixd [0]).
> What are the current SDK versions?
2.1, I tested with 2.0.5 that was the latest when this patch was first
implemented in August.
>
> Do you have a reproducer?
I can reliably reproduce this on my machine with intel IPU SDK 2.0.5, the
command fails every time without this patch, causing the probe to fail. Also,
other developers such as Michal S reported such problem. It is most probably
present on older NVMs too, its just that the command was not used before the
RDMA patchset.
I have checked that the patch does not cause regression on the platforms that
use another idpf-only NVMs, used by most intel IPUs.
[0]
https://lore.kernel.org/netdev/20250516145814.5422-1-larysa.zaremba@intel.com/
[1]
https://github.com/oasis-tcs/idpf-specification/blob/main/idpf_specification.pdf
>
> > Suggested-by: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
> > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> > Signed-off-by: Larysa Zaremba <larysa.zaremba@...el.com>
> > ---
> > drivers/net/ethernet/intel/idpf/idpf_virtchnl.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> > index fa3ce1e4f6ac..af8b3ebee4d4 100644
> > --- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> > +++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> > @@ -1016,6 +1016,9 @@ static int idpf_send_get_lan_memory_regions(struct idpf_adapter *adapter)
> > struct idpf_vc_xn_params xn_params = {
> > .vc_op = VIRTCHNL2_OP_GET_LAN_MEMORY_REGIONS,
> > .recv_buf.iov_len = IDPF_CTLQ_MAX_BUF_LEN,
> > + .send_buf.iov_len =
> > + sizeof(struct virtchnl2_get_lan_memory_regions) +
> > + sizeof(struct virtchnl2_mem_region),
> > .timeout_ms = IDPF_VC_XN_DEFAULT_TIMEOUT_MSEC,
> > };
> > int num_regions, size;
> > @@ -1028,6 +1031,8 @@ static int idpf_send_get_lan_memory_regions(struct idpf_adapter *adapter)
> > return -ENOMEM;
> > xn_params.recv_buf.iov_base = rcvd_regions;
> > + rcvd_regions->num_memory_regions = cpu_to_le16(1);
> > + xn_params.send_buf.iov_base = rcvd_regions;
> > reply_sz = idpf_vc_xn_exec(adapter, &xn_params);
> > if (reply_sz < 0)
> > return reply_sz;
>
>
> Kind regards,
>
> Paul
Powered by blists - more mailing lists