From 8ddd37ed87e43be39e4936588a6ad7f1b0d46f46 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Wed, 20 Sep 2023 13:28:42 -0700 Subject: [PATCH] prov/tcp: Add support for FABRIC_DIRECT builds The sockets provider will be removed. This adds the ability to verify the FABRIC_DIRECT build option and provide blank direct header file templates. Signed-off-by: Sean Hefty --- .travis.yml | 2 +- prov/tcp/include/rdma/fi_direct.h | 35 ++++++++++++++++++++ prov/tcp/include/rdma/fi_direct_atomic.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_atomic_def.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_cm.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_domain.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_endpoint.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_eq.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_rma.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_tagged.h | 33 ++++++++++++++++++ prov/tcp/include/rdma/fi_direct_trigger.h | 33 ++++++++++++++++++ prov/tcp/provider_FABRIC_1.0.map | 1 + 12 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 prov/tcp/include/rdma/fi_direct.h create mode 100644 prov/tcp/include/rdma/fi_direct_atomic.h create mode 100644 prov/tcp/include/rdma/fi_direct_atomic_def.h create mode 100644 prov/tcp/include/rdma/fi_direct_cm.h create mode 100644 prov/tcp/include/rdma/fi_direct_domain.h create mode 100644 prov/tcp/include/rdma/fi_direct_endpoint.h create mode 100644 prov/tcp/include/rdma/fi_direct_eq.h create mode 100644 prov/tcp/include/rdma/fi_direct_rma.h create mode 100644 prov/tcp/include/rdma/fi_direct_tagged.h create mode 100644 prov/tcp/include/rdma/fi_direct_trigger.h create mode 100644 prov/tcp/provider_FABRIC_1.0.map diff --git a/.travis.yml b/.travis.yml index 5a4f669a5be..10dcb657122 100644 --- a/.travis.yml +++ b/.travis.yml @@ -82,7 +82,7 @@ install: fi # Test fabric direct # (all other providers are automatically disabled by configure) - - ./configure --prefix=$PREFIX --enable-direct=sockets + - ./configure --prefix=$PREFIX --enable-direct=tcp - make -j2 $MAKE_FLAGS # Test loadable library option # List of providers current as of Jan 2020 diff --git a/prov/tcp/include/rdma/fi_direct.h b/prov/tcp/include/rdma/fi_direct.h new file mode 100644 index 00000000000..b20f040df2e --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) Intel Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. The rdma/fi_direct_*.h files are required to support + * the FABRIC_DIRECT option. Also see man/fi_direct.7.md. + */ diff --git a/prov/tcp/include/rdma/fi_direct_atomic.h b/prov/tcp/include/rdma/fi_direct_atomic.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_atomic.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_atomic_def.h b/prov/tcp/include/rdma/fi_direct_atomic_def.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_atomic_def.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_cm.h b/prov/tcp/include/rdma/fi_direct_cm.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_cm.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_domain.h b/prov/tcp/include/rdma/fi_direct_domain.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_domain.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_endpoint.h b/prov/tcp/include/rdma/fi_direct_endpoint.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_endpoint.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_eq.h b/prov/tcp/include/rdma/fi_direct_eq.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_eq.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_rma.h b/prov/tcp/include/rdma/fi_direct_rma.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_rma.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_tagged.h b/prov/tcp/include/rdma/fi_direct_tagged.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_tagged.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/include/rdma/fi_direct_trigger.h b/prov/tcp/include/rdma/fi_direct_trigger.h new file mode 100644 index 00000000000..177e37955b2 --- /dev/null +++ b/prov/tcp/include/rdma/fi_direct_trigger.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) Intel Corporation, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Do not remove this file. See fi_direct.h */ diff --git a/prov/tcp/provider_FABRIC_1.0.map b/prov/tcp/provider_FABRIC_1.0.map new file mode 100644 index 00000000000..3783ced980e --- /dev/null +++ b/prov/tcp/provider_FABRIC_1.0.map @@ -0,0 +1 @@ +/* Do not remove this file. It is needed for FABRIC_DIRECT build option. */