Date: Wed, 14 Nov 2012 15:53:13 -0800 From: Garrett Cooper <yanegomi@gmail.com> To: John Nielsen <lists@jnielsen.net> Cc: freebsd-infiniband@freebsd.org Subject: Re: using ConnectX card as Ethernet (mlxen) Message-ID: <CAGH67wTVH2TmfDvqy-ZKs6Ge=T-sbARmwJ-Jw2RK8JtWjK=LGg@mail.gmail.com> In-Reply-To: <53A5EDFD-B2C5-4E24-9AB9-5504AA693602@jnielsen.net> References: <3A359B33-380C-4230-A62C-623765E9376A@jnielsen.net> <FB2BC2D5-46CC-4CF6-8EC8-5C2836253D14@jnielsen.net> <CAGH67wRDDjkLxJhQwYFnez2bpV6gTDPi2WMC58W6oURDH15WKQ@mail.gmail.com> <53A5EDFD-B2C5-4E24-9AB9-5504AA693602@jnielsen.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 14, 2012 at 3:32 PM, John Nielsen <lists@jnielsen.net> wrote:
> On Nov 9, 2012, at 9:51 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>
> > On Fri, Nov 9, 2012 at 7:44 PM, John Nielsen <lists@jnielsen.net> wrote:
> > On the off chance there's someone on this list already that didn't see
> my earlier (unanswered) question, I'm reposting it below. I don't have
> FreeBSD on this hardware any more but I would like to know for future
> reference if using these cards with an Ethernet switch is an option.
> >
> > I know this might seem dumb, but what if you did
> sys.device.mlx4_core0.mlx4_port1="`printf 'en\n'`" (the newline's
> important).
>
> I'll try it next time I have an opportunity. Can you explain why the
> newline might make a difference? Also, I don't think I ever tried 'en',
> just 'eth'. Can someone say what the right value is or should be?
>
It was a WAG based on this section of code (from
sys/ofed/drivers/net/mlx4/main.c)...
469 static ssize_t set_port_type(struct device *dev,
470 struct device_attribute *attr,
471 const char *buf, size_t count)
472 {
473 struct mlx4_port_info *info = container_of(attr, struct
mlx4_port_i nfo,
474 port_attr);
475 struct mlx4_dev *mdev = info->dev;
476 struct mlx4_priv *priv = mlx4_priv(mdev);
477 enum mlx4_port_type types[MLX4_MAX_PORTS];
478 enum mlx4_port_type new_types[MLX4_MAX_PORTS];
479 int i;
480 int err = 0;
481
482 if (!strcmp(buf, "ib\n"))
483 info->tmp_type = MLX4_PORT_TYPE_IB;
484 else if (!strcmp(buf, "eth\n"))
485 info->tmp_type = MLX4_PORT_TYPE_ETH;
486 else if (!strcmp(buf, "auto\n"))
487 info->tmp_type = MLX4_PORT_TYPE_AUTO;
488 else {
489 mlx4_err(mdev, "%s is not supported port type\n", buf);
490 return -EINVAL;
491 }
I don't have one of these cards so I can't verify whether or not that's the
issue today, but it seemed like a likely cause.
This being there is probably the remnant of a pseudo-valid hacky assumption
on Linux (you're echo'ing to a sysfs node and it's tacking on a newline),
but an invalid assumption on FreeBSD (the sysctl<->sysfs compat layer
doesn't make any translation assumptions w.r.t. newlines, etc).
Thanks!
-Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGH67wTVH2TmfDvqy-ZKs6Ge=T-sbARmwJ-Jw2RK8JtWjK=LGg>
