All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: Yishai Hadas <yishaih-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
Cc: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Devesh Sharma
	<Devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org>,
	Hal Rosenstock
	<hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>,
	Mike Marciniszyn
	<mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Moni Shoua <monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Steve Wise
	<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
	Tatyana Nikolova
	<Tatyana.E.Nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Vladimir Sokolovsky
	<vlad-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH 21/28] mlx5: Avoid gcc 5.4 warning -Wempty-body
Date: Wed, 14 Sep 2016 10:55:19 -0600	[thread overview]
Message-ID: <20160914165519.GC16014@obsidianresearch.com> (raw)
In-Reply-To: <6214bd07-f40c-8458-73a2-c07383c5d85a-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>

On Wed, Sep 14, 2016 at 07:25:25PM +0300, Yishai Hadas wrote:
> >Which is functionally okay, but strange.
> 
> As you pointed, there is no functional issue with that.

Yet is a common enough errnonous construction to attract a compiler
warning. Don't do it.

Further, it is just a way to attract bit rot in your dbg macros if you
don't check the format string during a normal compile.

> >It is much better to make mlx5_dbg an empty static inline, this way it
> >continues to do parameter type validation even when disabled, and we
> >can drop the sprinkling of #ifdef MLX5_DEBUG everywhere.
> 
> The idea was to have an 'empty' code when this macro is used as some code is
> done in the data path, see below notes.

Yes, I know what the intent was, this change does exactly the same thing.

> >+static inline void mlx5_dbg(FILE *fp, uint32_t mask, const char *fmt, ...)
> >+{
> >+}
> > #endif
> 
> Inline is not guaranteed by the compiler, calling empty function in some
> data data path flows should be prevented.

No compiler we support will leave behind a function call for an empty
static inline.

I just checked, the assembly is the same before/after modulo compiler
non-determinism. There are no extra function calls.

> > enum {
> >diff --git a/libmlx5/src/qp.c b/libmlx5/src/qp.c
> >index c805fcae4123..23270e50af7a 100644
> >+++ b/libmlx5/src/qp.c
> >@@ -356,9 +356,7 @@ static inline int copy_eth_inline_headers(struct ibv_qp *ibqp,
> > 	int inl_hdr_size = MLX5_ETH_L2_INLINE_HEADER_SIZE;
> > 	int inl_hdr_copy_size = 0;
> > 	int j = 0;
> >-#ifdef MLX5_DEBUG
> > 	FILE *fp = to_mctx(ibqp->context)->dbg_fp;
> >-#endif
> 
> This is data path flow, dropping the #ifdef may cause a redundant assignment
> for 'fp' here.

Nope:

$ nm --size libmlx4-rdmv2.so
[before]
0000000000001637 t _mlx5_post_send
[after]
0000000000001637 t _mlx5_post_send

The compilers are very smart, you don't need to hand hold them.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-09-14 16:55 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-05 21:07 [PATCH 00/28] Patches for userspace Jason Gunthorpe
     [not found] ` <1473109698-31408-1-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-05 21:07   ` [PATCH 01/28] Fix bogus executable file permissions Jason Gunthorpe
2016-09-05 21:07   ` [PATCH 02/28] Include pthreads in the provider libraries Jason Gunthorpe
     [not found]     ` <1473109698-31408-3-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 14:41       ` Steve Wise
2016-09-07 16:04         ` Jason Gunthorpe
2016-09-07 18:00       ` Steve Wise
2016-09-14 15:15       ` Yishai Hadas
     [not found]         ` <2961f191-3020-ed18-0200-ce569c19326b-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-14 16:01           ` Jason Gunthorpe
     [not found]             ` <20160914160150.GA16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-14 16:27               ` Yishai Hadas
2016-09-05 21:07   ` [PATCH 03/28] Be explicit about _GNU_SOURCE Jason Gunthorpe
     [not found]     ` <1473109698-31408-4-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-06 13:53       ` Hal Rosenstock
2016-09-07 18:01       ` Steve Wise
2016-09-13 21:39       ` Hefty, Sean
2016-09-14 16:30       ` Yishai Hadas
2016-09-05 21:07   ` [PATCH 04/28] cxgb3/4: Display correct version number in error message Jason Gunthorpe
     [not found]     ` <1473109698-31408-5-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 18:02       ` Steve Wise
2016-09-05 21:07   ` [PATCH 05/28] hfi/ipath: Use the name of the provider for the .driver file Jason Gunthorpe
2016-09-05 21:07   ` [PATCH 06/28] i40iw: Avoid gcc warning -Wint-to-pointer-cast Jason Gunthorpe
2016-09-05 21:07   ` [PATCH 07/28] iwpm: Add AM_INIT_AUTOMAKE([subdir-objects]) Jason Gunthorpe
2016-09-05 21:07   ` [PATCH 08/28] ibcm: Actually use the version script when linking Jason Gunthorpe
2016-09-05 21:07   ` [PATCH 09/28] mlx5: Fix gcc 6.4 uninitialized variable warning Jason Gunthorpe
     [not found]     ` <1473109698-31408-10-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-14 15:39       ` Yishai Hadas
     [not found]         ` <0ba444b7-6af4-72f3-d3d6-c27b73421679-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-14 16:37           ` Jason Gunthorpe
     [not found]             ` <20160914163716.GB16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-15 14:26               ` Yishai Hadas
     [not found]                 ` <f54fd76a-975f-900a-d996-2ae208402ae8-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-15 16:21                   ` Jason Gunthorpe
     [not found]                     ` <20160915162136.GA26111-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-19 15:02                       ` Yishai Hadas
2016-09-05 21:08   ` [PATCH 10/28] nes: Fix clang 3.6 warning -Wtautological-constant-out-of-range-compare Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 11/28] ocrdma: Fix incorrect type of ibwc_status Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 12/28] ocrdma: Fix incorrect enum constant Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 13/28] rdmacm: Use correct format specifier for size_t Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 14/28] rdmacm: Control symbol export from librspreload Jason Gunthorpe
     [not found]     ` <1473109698-31408-15-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-13 21:50       ` Hefty, Sean
2016-09-05 21:08   ` [PATCH 15/28] umad: Include umad.h in the canonical way Jason Gunthorpe
     [not found]     ` <1473109698-31408-16-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-06 13:54       ` Hal Rosenstock
2016-09-05 21:08   ` [PATCH 16/28] umad: Fix incorrect arguments to umad_register2 in tests Jason Gunthorpe
     [not found]     ` <1473109698-31408-17-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-06 13:54       ` Hal Rosenstock
2016-09-05 21:08   ` [PATCH 17/28] verbs: Fix incorrect type of len Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 18/28] verbs: Fix clang 3.6 warning -Wtautological-compare Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 19/28] verbs: Avoid gcc 6.1 warning -Wunused-variable Jason Gunthorpe
     [not found]     ` <1473109698-31408-20-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-14 16:46       ` Yishai Hadas
     [not found]         ` <7d6553e1-d4a8-a4da-8ccb-ed25d9ba1d91-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-14 16:57           ` Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 20/28] verbs: Use inttypes.h format string macros Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 21/28] mlx5: Avoid gcc 5.4 warning -Wempty-body Jason Gunthorpe
     [not found]     ` <1473109698-31408-22-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-14 16:25       ` Yishai Hadas
     [not found]         ` <6214bd07-f40c-8458-73a2-c07383c5d85a-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-14 16:55           ` Jason Gunthorpe [this message]
     [not found]             ` <20160914165519.GC16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-15  5:18               ` Leon Romanovsky
     [not found]                 ` <20160915051840.GJ26069-2ukJVAZIZ/Y@public.gmane.org>
2016-09-15 15:19                   ` Jason Gunthorpe
2016-09-15 15:15               ` Yishai Hadas
2016-09-05 21:08   ` [PATCH 22/28] nes: Avoid gcc 6.1 warning -Wmisleading-indentation Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 23/28] rxe: Avoid gcc 5.4 warning -Wswitch Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 24/28] Fix gcc 5.4, clang 3.6 warnings about unused objects Jason Gunthorpe
     [not found]     ` <1473109698-31408-25-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 18:04       ` Steve Wise
2016-09-05 21:08   ` [PATCH 25/28] Avoid gcc 5.4 warning -Wtype-limits Jason Gunthorpe
     [not found]     ` <1473109698-31408-26-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-07 18:05       ` Steve Wise
2016-09-05 21:08   ` [PATCH 26/28] Avoid gcc 5.4 warning -Wunused-result Jason Gunthorpe
     [not found]     ` <1473109698-31408-27-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-13 21:58       ` Hefty, Sean
     [not found]         ` <1828884A29C6694DAF28B7E6B8A82373AB0806AA-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2016-09-13 22:24           ` Jason Gunthorpe
2016-09-14 16:35       ` Yishai Hadas
     [not found]         ` <3b8df987-b422-a59c-4dc0-8a99524ab45e-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-09-14 16:58           ` Jason Gunthorpe
     [not found]             ` <20160914165830.GE16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-15  5:13               ` Leon Romanovsky
2016-10-09 13:31       ` Yishai Hadas
     [not found]         ` <9ae84345-4427-4689-e6d1-0bfa3eb19630-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-10-09 23:19           ` Jason Gunthorpe
     [not found]             ` <20161009231936.GA24139-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-10-10 10:06               ` Yishai Hadas
     [not found]                 ` <1e022827-f28c-e2cd-2b6a-edfb713ed0b5-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2016-10-12 18:07                   ` Doug Ledford
2016-10-09 15:14       ` Bart Van Assche
     [not found]         ` <3884fb5e-13a2-3ab6-0cce-66f73fbe84b7-HInyCGIudOg@public.gmane.org>
2016-10-09 23:12           ` Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 27/28] Avoid clang 3.6 warning -Wmissing-field-initializers Jason Gunthorpe
2016-09-05 21:08   ` [PATCH 28/28] Avoid gcc warning -Wpointer-to-int-cast Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160914165519.GC16014@obsidianresearch.com \
    --to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
    --cc=Devesh.sharma-laKkSmNT4hbQT0dZR+AlfA@public.gmane.org \
    --cc=Tatyana.E.Nikolova-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=monis-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org \
    --cc=vlad-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=yishaih-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.