From 1e4302f67a0633f03c9696f8aa7766fd9e23c79e Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 22 Jul 2008 21:27:22 +0000 Subject: Move the NFS/RPC code away from lbolt. The kernel has a special wchan called `lbolt', which is triggered each second. It doesn't seem to be used a lot and it seems pretty redundant, because we can specify a timeout value to the *sleep() routines. In an attempt to eventually remove lbolt, make the NFS/RPC code use a timeout of `hz' when trying to reconnect. Only the TTY code (not MPSAFE TTY) and the VFS syncer seem to use lbolt now. Reviewed by: attilio, jhb Approved by: philip (mentor), alfred, dfr --- sys/nfs4client/nfs4_socket.c | 2 +- sys/nfs4client/nfs4_vfsops.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/nfs4client') diff --git a/sys/nfs4client/nfs4_socket.c b/sys/nfs4client/nfs4_socket.c index c33bcbb..e5b2ab8 100644 --- a/sys/nfs4client/nfs4_socket.c +++ b/sys/nfs4client/nfs4_socket.c @@ -298,7 +298,7 @@ nfs4_request_mnt(struct nfsmount *nmp, struct mbuf *mrest, int procnum, error = 0; waituntil = time_second + trylater_delay; while (time_second < waituntil) - (void) tsleep(&lbolt, PSOCK, "nqnfstry", 0); + (void) tsleep(&fake_wchan, PSOCK, "nqnfstry", hz); trylater_delay *= nfs_backoff[trylater_cnt]; if (trylater_cnt < NFS_NBACKOFF - 1) trylater_cnt++; diff --git a/sys/nfs4client/nfs4_vfsops.c b/sys/nfs4client/nfs4_vfsops.c index 2531f66..d7d853c 100644 --- a/sys/nfs4client/nfs4_vfsops.c +++ b/sys/nfs4client/nfs4_vfsops.c @@ -127,6 +127,8 @@ static vfs_root_t nfs4_root; static vfs_statfs_t nfs4_statfs; static vfs_sync_t nfs4_sync; +static int fake_wchan; + /* * nfs vfs operations. */ @@ -374,7 +376,7 @@ nfs4_decode_args(struct nfsmount *nmp, struct nfs_args *argp) if (nmp->nm_sotype == SOCK_DGRAM) { while (nfs4_connect(nmp)) { printf("nfs4_decode_args: retrying connect\n"); - (void)tsleep(&lbolt, PSOCK, "nfscon", 0); + (void)tsleep(&fake_wchan, PSOCK, "nfscon", hz); } } } -- cgit v1.1