[lustre-devel] [PATCH 05/24] lustre: lnet: add Multi-Rail and Discovery ping feature bits
James Simmons
jsimmons at infradead.org
Sun Oct 14 12:34:36 PDT 2018
> From: Olaf Weber <olaf at sgi.com>
>
> Claim ping features bit for Multi-Rail and Discovery.
>
> Assert in lnet_ping_target_update() that no unknown bits will
> be send over the wire.
Reviewed-by: James Simmons <jsimmons at infradead.org>
> WC-bug-id: https://jira.whamcloud.com/browse/LU-9480
> Signed-off-by: Olaf Weber <olaf at sgi.com>
> Reviewed-on: https://review.whamcloud.com/25775
> Reviewed-by: Olaf Weber <olaf.weber at hpe.com>
> Reviewed-by: Amir Shehata <amir.shehata at intel.com>
> Tested-by: Amir Shehata <amir.shehata at intel.com>
> Signed-off-by: NeilBrown <neilb at suse.com>
> ---
> .../staging/lustre/include/linux/lnet/lib-types.h | 16 ++++++++++++++++
> drivers/staging/lustre/lnet/lnet/api-ni.c | 5 +++++
> 2 files changed, 21 insertions(+)
>
> diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h b/drivers/staging/lustre/include/linux/lnet/lib-types.h
> index d1d17ededd06..f4467a3bbfd1 100644
> --- a/drivers/staging/lustre/include/linux/lnet/lib-types.h
> +++ b/drivers/staging/lustre/include/linux/lnet/lib-types.h
> @@ -386,6 +386,22 @@ struct lnet_ni {
> #define LNET_PING_FEAT_BASE BIT(0) /* just a ping */
> #define LNET_PING_FEAT_NI_STATUS BIT(1) /* return NI status */
> #define LNET_PING_FEAT_RTE_DISABLED BIT(2) /* Routing enabled */
> +#define LNET_PING_FEAT_MULTI_RAIL BIT(3) /* Multi-Rail aware */
> +#define LNET_PING_FEAT_DISCOVERY BIT(4) /* Supports Discovery */
> +
> +/*
> + * All ping feature bits fit to hit the wire.
> + * In lnet_assert_wire_constants() this is compared against its open-coded
> + * value, and in lnet_ping_target_update() it is used to verify that no
> + * unknown bits have been set.
> + * New feature bits can be added, just be aware that this does change the
> + * over-the-wire protocol.
> + */
> +#define LNET_PING_FEAT_BITS (LNET_PING_FEAT_BASE | \
> + LNET_PING_FEAT_NI_STATUS | \
> + LNET_PING_FEAT_RTE_DISABLED | \
> + LNET_PING_FEAT_MULTI_RAIL | \
> + LNET_PING_FEAT_DISCOVERY)
>
> #define LNET_PING_INFO_SIZE(NNIDS) \
> offsetof(struct lnet_ping_info, pi_ni[NNIDS])
> diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c
> index ca28ad75fe2b..68af723bc6a1 100644
> --- a/drivers/staging/lustre/lnet/lnet/api-ni.c
> +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c
> @@ -1170,6 +1170,11 @@ lnet_ping_target_update(struct lnet_ping_buffer *pbuf,
>
> if (!the_lnet.ln_routing)
> pbuf->pb_info.pi_features |= LNET_PING_FEAT_RTE_DISABLED;
> +
> + /* Ensure only known feature bits have been set. */
> + LASSERT(pbuf->pb_info.pi_features & LNET_PING_FEAT_BITS);
> + LASSERT(!(pbuf->pb_info.pi_features & ~LNET_PING_FEAT_BITS));
> +
> lnet_ping_target_install_locked(pbuf);
>
> if (the_lnet.ln_ping_target) {
>
>
>
More information about the lustre-devel
mailing list