Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Aug 1999 10:20:53 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Eivind Eklund <eivind@FreeBSD.ORG>
Cc:        Peter Wemm <peter@FreeBSD.ORG>, current@FreeBSD.ORG
Subject:   Re: NFS HEADS UP (was Re: cvs commit: src/sys/nfs nfsm_subs.h xdr_subs.h)
Message-ID:  <199908191720.KAA56717@apollo.backplane.com>
References:  <199908191450.HAA43604@freefall.freebsd.org> <19990819175828.Q45123@bitbox.follo.net>

next in thread | previous in thread | raw e-mail | index | archive | help

:On Thu, Aug 19, 1999 at 07:50:13AM -0700, Peter Wemm wrote:
:> peter       1999/08/19 07:50:13 PDT
:> 
:>   Modified files:
:>     sys/nfs              nfsm_subs.h xdr_subs.h 
:>   Log:
:>   Convert all the nfs macros to do { blah } while (0) to ensure it
:>   works correctly in if/else etc.  egcs had probably picked up most of the
:>   problems here before with "ambiguous braces" etc, but this should
:>   increase the robustness a bit.  Based on an idea from Eivind Eklund.
:
:When I tested this, I got significant binary changes after changing
:the macros to be .  Writing a couple of test programs, I was not able
:to get binary changes without actual semantic changes - the optimizer
:optimize away do { ... } while(0); just fine.  I didn't have any
:testbed for NFS, which was why I didn't commit similar changes myself.
:
:Interpretation: NFS is likely to be different now than it was before
:these commits.  This hopefully mean less bugs, but we might also have
:had bugs cancelling each other and 'mystery fixes' that no longer
:work.  If you get strange effects in NFS in the upcoming time, you
:might try flipping this commit.
:
:I still think the change is a good and necessary one.
:
:Eivind.

    The compiler optimizes differently, that's all.  The same thing happened
    when we fixed the macros in vm_map.h.  In that case we also found a bug
    in i386/include/globals.h --- the inline assembly macros are missing
    the "memory" side effect specification and the code was trying to optimize
    global references across subroutine calls!  I'll send Luoqi another email.

    In the case of the NFS stuff, the changes have been pretty well tested
    so I think we are in the clear.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908191720.KAA56717>