History log of /freebsd-current/sys/contrib/rdma/krping/krping.c
Revision Date Author Comments
# cfaab41c 21-Apr-2023 Justin Hibbits <jhibbits@FreeBSD.org>

irdma: Convert to IfAPI

Mostly mechanical changes, with some reworking in irdma_cm for iterating
over interfaces and addresses. Further rework by Bartosz Sobczak.

Reviewed by: bartosz.sobczak_intel.com
Tested by: mateusz.moga_intel.com
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D38960


# f4ea84ce 08-Mar-2023 John Baldwin <jhb@FreeBSD.org>

krping: Use get_cyclecount for get_cycles.

This avoids having to duplicate identical MD code.

Reviewed by: np, emaste
Differential Revision: https://reviews.freebsd.org/D38971


# e552cac3 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

powerpc64*: port mlx5, OFED, KTLS and krping

Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

Differential Revision: https://reviews.freebsd.org/D38786


# f5a1c871 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

Revert "powerpc64*: port mlx5, OFED, KTLS and krping"

Wrong push, another commit was supposed to be pushed.

This reverts commit 83d6d8877ef7dad4f4e8f409a01c9f28139cd026.


# 83d6d887 25-Feb-2023 Piotr Kubaj <pkubaj@FreeBSD.org>

powerpc64*: port mlx5, OFED, KTLS and krping

Summary:
This review ports mlx5 driver, kernel's OFED stack (userland is already enabled), KTLS and krping to powerpc64 and powerpc64le.

krping requires a small change since it uses assembly for amd64 / i386.

NOTE: On powerpc64le RDMA works fine in the userspace with libmlx5, but on powerpc64 it does not. The problem is that contrib/ofed/libmlx5/doorbell.h checks for SIZEOF_LONG but this macro exists on neither powerpc64* nor amd64. Thus, the file silently goes to the fallback function written for 32-bit architectures. It works fine on little-endian architectures, but causes a hard fail on big-endian. It's possible it may also cause some runtime issues on little-endian.
Thus, on powerpc64 I verified that RDMA works with krping.

Reviewers: #powerpc, hselasky

Subscribers: bdrewery, imp, emaste, jhibbits

Differential Revision: https://reviews.freebsd.org/D38786


# 6d0a82ff 07-Apr-2022 John Baldwin <jhb@FreeBSD.org>

krping: Remove unused variable.


# c3987b8e 16-Jun-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

ibcore: Declare ib_post_send() and ib_post_recv() arguments const

Since neither ib_post_send() nor ib_post_recv() modify the data structure
their second argument points at, declare that argument const. This change
makes it necessary to declare the 'bad_wr' argument const too and also to
modify all ULPs that call ib_post_send(), ib_post_recv() or
ib_post_srq_recv(). This patch does not change any functionality but makes
it possible for the compiler to verify whether the
ib_post_(send|recv|srq_recv) really do not modify the posted work request.

Linux commit:
f696bf6d64b195b83ca1bdb7cd33c999c9dcf514
7bb1fafc2f163ad03a2007295bb2f57cfdbfb630
d34ac5cd3a73aacd11009c4fc3ba15d7ea62c411

MFC after: 1 week
Reviewed by: kib
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 376e130b 07-Jan-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix memory leaks in error paths in krping.

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# aca12148 09-Dec-2020 Hans Petter Selasky <hps@selasky.org>

Improve error message printing in krping.
Don't print completion queue flush as an error.

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# ae9a8ec9 15-Nov-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Correct MR length field to be 64-bit in ibcore.

Linux commit:
edd31551148c09608feee6b8756ad148d550ee3b

MFC after: 1 week
Sponsored by: Mellanox Technologies


# e8f206cc 02-Oct-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Notify all sleeping threads of device removal in krping.
Implement d_purge for krping_cdevsw.

Submitted by: slavash@
MFC after: 3 days
Sponsored by: Mellanox Technologies


# 58c277d8 06-Sep-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add proper support for VIMAGE to krping.

Make sure we pass the correct VNET when allocating the RDMA ID.

MFC after: 3 days
Approved by: re (gjb)
Sponsored by: Mellanox Technologies


# 98450752 15-May-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for setting type of service, TOS, for outgoing RDMA connections
in the krping kernel test utility.

MFC after: 3 days
Sponsored by: Mellanox Technologies


# 87fb59a5 23-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Exit krping on device removal to avoid endless hang situation.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# c3125bc5 23-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Compile fixes for 32-bit architectures.

Sponsored by: Mellanox Technologies


# 4f939024 15-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Add full support for specifying IPv6 addresses to krping.

Sponsored by: Mellanox Technologies


# 4591fd4e 14-Nov-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Set the default VNET in krping before calling ifunit_ref(). Else using IPv6
link-local addresses when VIMAGE is enabled will cause a so-called NULL
pointer dereferencing issue.

Sponsored by: Mellanox Technologies
MFC after: 1 week


# 6ff5b6ba 09-Oct-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for parsing and using IPv6 addresses in krping.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 434b6d20 26-Jul-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Set length of socket address in krping(). Else sobind() will fail with EINVAL.

Submitted by: Chelsio
Sponsored by: Mellanox Technologies


# 4eb18346 18-Jun-2017 Mark Johnston <markj@FreeBSD.org>

Avoid including list.h in LinuxKPI headers.

list.h includes a number of FreeBSD headers as a workaround for the
LIST_HEAD name collision. To reduce pollution, avoid including list.h
in commonly used headers when it is not explicitly needed.

Reviewed by: hselasky
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D11249


# 478d3005 14-Jun-2017 Hans Petter Selasky <hselasky@FreeBSD.org>

Initial RoCE/infiniband kernel update to Linux v4.9.

This patch currently supports:
- ibcore as a kernel module only
- krping as a kernel module only
- ipoib as a kernel module only

Sponsored by: Mellanox Technologies


# 5df976f7 24-Oct-2016 Navdeep Parhar <np@FreeBSD.org>

krping: Allow the underlying ib_device to handle DMA mappings.

Submitted by: Vijay Singh @ Netapp


# d71ca0e2 22-Apr-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix for printf() compile warning when fast_reg.length is 64-bit.
Changing fast_reg.length to 64 bits is planned in the future. Krping
uses 32-bit lengths internally.

Sponsored by: Mellanox Technologies
MFC after: 1 week


# 2d57dc7e 13-Apr-2016 Navdeep Parhar <np@FreeBSD.org>

Send krping output to the log instead of the tty, as is done upstream.

Reviewed by: hselasky@
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D5931


# 9d31afab 12-Apr-2016 Navdeep Parhar <np@FreeBSD.org>

Add fastreg support to krping (ported from upstream).

Submitted by: Krishnamraju Eraparaju @ Chelsio
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D5777


# c0da2d16 28-Mar-2016 Navdeep Parhar <np@FreeBSD.org>

krping wasn't designed to take more than one client. Fail any connect
requests if cb->state is not IDLE.

Submitted by: Krishnamraju Eraparaju @ Chelsio
Reviewed by: Steve Wise @ Open Grid Computing
Sponsored by: Chelsio Communications


# 6d5aaa1a 16-Mar-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix crash in krping when run as a client due to NULL pointer access.
Initialize pointer in question which is used only when fast registers
mode is selected.

Sponsored by: Mellanox Technologies
MFC after: 1 week


# 4562e76c 04-Jan-2016 Navdeep Parhar <np@FreeBSD.org>

Have krping use IB_ACCESS_LOCAL_WRITE because it's required for remote
write or remote atomic operations.

Submitted by: Krishnamraju Eraparaju @ Chelsio


# 2da3897d 22-Oct-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Rename linuxapi[.ko] into linuxkpi[.ko], to reflect that it is a
kernel programming interface module, KPI, to avoid confusion with the
existing Linux userspace binary compatibility shims. Bump the
FreeBSD_version number.

Reviewed by: np @
Suggested by: dumbbell @
Sponsored by: Mellanox Technologies


# b5c1e0cb 17-Feb-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Update the infiniband stack to Mellanox's OFED version 2.1.

Highlights:
- Multiple verbs API updates
- Support for RoCE, RDMA over ethernet

All hardware drivers depending on the common infiniband stack has been
updated aswell.

Discussed with: np @
Sponsored by: Mellanox Technologies
MFC after: 1 month


# d39d7c86 19-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Add missing linuxapi module dependencies and always use the FreeBSD
"MODULE_VERSION" macro definition. Remove the redefinition of the
"MODULE_VERSION" macro from the Linux kernel compatibility API.

MFC after: 1 month
Reported by: np@
Sponsored by: Mellanox Technologies


# 1fc7fdac 27-Oct-2014 Navdeep Parhar <np@FreeBSD.org>

krping: In verbose mode print only first 128 bytes of krping data.

Submitted by: Hariprasad at Chelsio dot com.
Sponsored by: Chelsio Communications


# 2c6eb461 15-Oct-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Update the OFED Linux compatibility layer and
Mellanox hardware driver(s):

- Properly name an inclusion guard
- Fix compile warnings regarding unsigned enums
- Add two new sysctl nodes
- Remove all empty linux header files
- Make an error printout more verbose
- Use "mod_delayed_work()" instead of
cancelling and starting a timeout.
- Implement more Linux scatterlist
functions.

MFC after: 3 days
Sponsored by: Mellanox Technologies


# c7818b48 27-Aug-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

- Update the OFED Linux Emulation layer as a preparation for a
hardware driver update from Mellanox Technologies.
- Remove empty files from the OFED Linux Emulation layer.
- Fix compile warnings related to printf() and the "%lld" and "%llx"
format specifiers.
- Add some missing 2-clause BSD copyrights.
- Add "Mellanox Technologies, Ltd." to list of copyright holders.
- Add some new compatibility files.
- Fix order of uninit in the mlx4ib module to avoid crash at unload
using the new module_exit_order() function.

MFC after: 1 week
Sponsored by: Mellanox Technologies


# 0082e6a5 14-Oct-2013 Navdeep Parhar <np@FreeBSD.org>

Update krping to the latest upstream code. Move all the FreeBSD
specific parts to krping_dev.c, which leaves the other files as
close to their upstream versions as possible.


# ea68a714 23-Aug-2013 Navdeep Parhar <np@FreeBSD.org>

Assorted fixes to krping. Disconnect the rest of sys/contrib/rdma from
the build while here. sys/ofed has more recent RDMA code and should be
used instead. We should probably move krping out of sys/contrib/rdma
and get rid of the rest of it.

Obtained from: Chelsio


# 09fe6320 19-Jun-2012 Navdeep Parhar <np@FreeBSD.org>

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
These are available as t3_tom and t4_tom modules that augment cxgb(4)
and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as
usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the
works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded? Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by: bz, gnn
Sponsored by: Chelsio communications.
MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# a5e831de 22-Nov-2009 Attilio Rao <attilio@FreeBSD.org>

MFC r199208, r199223:
Move inet_aton() (specular to inet_ntoa(), already present in libkern)
into libkern in order to made it usable by other modules than alias_proxy.

Sponsored by: Sandvine Incorporated


# 718cdf7f 12-Nov-2009 Attilio Rao <attilio@FreeBSD.org>

Remove the explicit definition of inet_aton() as it was introduced as a
general function in r199208.

Reported by: np
Sponsored by: Sandvine Incorporated
MFC: 1 week


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 77c4b91b 06-May-2008 Kip Macy <kmacy@FreeBSD.org>

fix build


# e68ff398 05-May-2008 Kip Macy <kmacy@FreeBSD.org>

Import basic common and iwarp kernel RDMA infrastructure.

Supported by: Chelsio Inc.