From owner-svn-src-all@freebsd.org Mon Mar 4 13:20:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54185151158D; Mon, 4 Mar 2019 13:20:30 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8458C6A943; Mon, 4 Mar 2019 13:20:29 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id x24DKMn2026407 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 4 Mar 2019 15:20:25 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x24DKMn2026407 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x24DKLQf026403; Mon, 4 Mar 2019 15:20:21 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 4 Mar 2019 15:20:21 +0200 From: Konstantin Belousov To: Edward Tomasz Napierala Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver Message-ID: <20190304132021.GN68879@kib.kiev.ua> References: <201903041302.x24D2aG0093620@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201903041302.x24D2aG0093620@repo.freebsd.org> User-Agent: Mutt/1.11.3 (2019-02-01) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2019 13:20:30 -0000 On Mon, Mar 04, 2019 at 01:02:36PM +0000, Edward Tomasz Napierala wrote: > Author: trasz > Date: Mon Mar 4 13:02:36 2019 > New Revision: 344758 > URL: https://svnweb.freebsd.org/changeset/base/344758 > > Log: > Push down td in nfsrvd_dorpc() - make it use curthread instead > of it being explicitly passed as an argument. No functional changes. > > The big picture here is that I want to get rid of the 'td' argument > being passed everywhere, and this is the first piece that affects > the NFS server. > > Reviewed by: rmacklem > MFC after: 2 weeks > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D19417 > > Modified: > head/sys/fs/nfs/nfs_var.h > head/sys/fs/nfsserver/nfs_nfsdkrpc.c > head/sys/fs/nfsserver/nfs_nfsdsocket.c > > Modified: head/sys/fs/nfs/nfs_var.h > ============================================================================== > --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) > @@ -283,8 +283,7 @@ int nfsrvd_notsupp(struct nfsrv_descript *, int, > > /* nfs_nfsdsocket.c */ > void nfsrvd_rephead(struct nfsrv_descript *); > -void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t, > - NFSPROC_T *); > +void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t); > > /* nfs_nfsdcache.c */ > void nfsrvd_initcache(void); > > Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -323,7 +323,6 @@ static int > nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVCXPRT *xprt, > struct nfsrvcache **rpp) > { > - struct thread *td = curthread; > int cacherep = RC_DOIT, isdgram, taglen = -1; > struct mbuf *m; > u_char tag[NFSV4_SMALLSTR + 1], *tagstr = NULL; > @@ -384,7 +383,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVC > if (cacherep == RC_DOIT) { > if ((nd->nd_flag & ND_NFSV41) != 0) > nd->nd_xprt = xprt; > - nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers, td); > + nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers); > if ((nd->nd_flag & ND_NFSV41) != 0) { > if (nd->nd_repstat != NFSERR_REPLYFROMCACHE && > (nd->nd_flag & ND_SAVEREPLY) != 0) { > > Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -367,7 +367,7 @@ int nfsrv_writerpc[NFS_NPROCS] = { 0, 0, 1, 0, 0, 0, 0 > > /* local functions */ > static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, > - u_char *tag, int taglen, u_int32_t minorvers, NFSPROC_T *p); > + u_char *tag, int taglen, u_int32_t minorvers); > > > /* > @@ -475,14 +475,17 @@ nfsrvd_statend(int op, uint64_t bytes, struct bintime > */ > APPLESTATIC void > nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u_char *tag, int taglen, > - u_int32_t minorvers, NFSPROC_T *p) > + u_int32_t minorvers) > { > int error = 0, lktype; > vnode_t vp; > mount_t mp = NULL; > struct nfsrvfh fh; > struct nfsexstuff nes; > + struct thread *p; > > + p = curthread; > + > /* > * Get a locked vnode for the first file handle > */ > @@ -557,7 +560,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u > * The group is indicated by the value in nfs_retfh[]. > */ > if (nd->nd_flag & ND_NFSV4) { > - nfsrvd_compound(nd, isdgram, tag, taglen, minorvers, p); > + nfsrvd_compound(nd, isdgram, tag, taglen, minorvers); > } else { > struct bintime start_time; > > @@ -620,7 +623,7 @@ out: > */ > static void > nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag, > - int taglen, u_int32_t minorvers, NFSPROC_T *p) > + int taglen, u_int32_t minorvers) > { > int i, lktype, op, op0 = 0, statsinprog = 0; > u_int32_t *tl; > @@ -635,6 +638,9 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram > fsid_t cur_fsid, save_fsid; > static u_int64_t compref = 0; > struct bintime start_time; > + struct thread *p; > + > + p = curthread; Why do you name it 'p', which is typical for process, and not 'td', you are changing most of the code anyway. Also I am curious why. It is certainly fine to remove td when it is used as a formal placeholder argument only. But when the first action in the function is evaluation of curthread() it becomes less obvious. curthread() become very cheap on modern amd64, I am not so sure about older machines or non-x86 cases. > > NFSVNO_EXINIT(&vpnes); > NFSVNO_EXINIT(&savevpnes);