linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: Yishai Hadas
	<yishaih-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>,
	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: Thu, 15 Sep 2016 08:18:40 +0300	[thread overview]
Message-ID: <20160915051840.GJ26069@leon.nu> (raw)
In-Reply-To: <20160914165519.GC16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2444 bytes --]

On Wed, Sep 14, 2016 at 10:55:19AM -0600, Jason Gunthorpe wrote:
> 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.

There is always inline attribute to tell to GCC to inline it.
#define ALWAYS_INLINE inline __attribute__ ((always_inline))

>
> > > 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2016-09-15  5:18 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
     [not found]             ` <20160914165519.GC16014-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-09-15  5:18               ` Leon Romanovsky [this message]
     [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=20160915051840.GJ26069@leon.nu \
    --to=leon-dgejt+ai2ygdnm+yrofe0a@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=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).