Date: Sun, 02 Sep 2001 15:43:10 -0700 From: Cy Schubert - ITSD Open Systems Group <Cy.Schubert@uumail.gov.bc.ca> To: obrien@FreeBSD.ORG Cc: Cy Schubert - ITSD Open Systems Group <Cy.Schubert@uumail.gov.bc.ca>, Alfred Perlstein <bright@mu.org>, John Polstra <jdp@polstra.com>, arch@FreeBSD.ORG Subject: Re: AMD defaults? (was: Re: Tuning UDP for NFS) Message-ID: <200109022243.f82MhQt03149@cwsys.cwsent.com> In-Reply-To: Your message of "Sun, 02 Sep 2001 12:21:25 PDT." <20010902122125.A80825@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <20010902122125.A80825@hub.freebsd.org>, "David O'Brien"
writes:
> On Sat, Sep 01, 2001 at 11:55:04AM -0700, Cy Schubert - ITSD Open Systems Gro
> up wrote:
> > In message <20010901134303.X81307@elvis.mu.org>, Alfred Perlstein
> > writes:
> > > Any AMD gurus in the house?
> > >
> > > Alfred Perlstein <bright@mu.org> wrote:
> > > >
> > > > Using UDP is usually a bad idea, I would use tcp, I find that these
> > > > flags make for a decent mount point that's quite fast:
> > > > rw,tcp,intr,nfsv3,-w=32768,-r=32768
> >
> > I'm far from being an amd guru, however I've been running
> > am-utils-6.0[79] on FreeBSD for the past few months. Am-utils >= 6.07
> > does support rdirplus. If you want to try it yourself download a copy
> > of am-utils-6.09
>
> Where is 6.09?? The latest on the am-utils ftp site is 6.0.7.
I was mistaken. I've been running 6.0.5 and 6.0.7 since March on all
of the FreeBSD systems I manage. I haven't looked at it since I last
updated it back in March. You can't expect me to remember everything
since then, which considering the events (sports injuries) since then
is a virtual eternity in my life. (So much for excuses). :)
>
> > I can send you a patch that will
> > update some makefiles in the source tree to allow am-utils-6.09 to
> > compile.
>
> Unfortunatly your patch does not go any where near far enough.
> How well did you test the resulting Amd? Are you saying that all the
> changes in src/contrib/amd can be tossed?
>
(cd /usr/src/contrib/amd && cvs -q diff -r amd_6_0_7)
I've been using the stock am-utils with the patch I sent you since
March on all of the FreeBSD (12 + an unspecified number deployed at
customer sites through a friend's ISP) systems I work on without any
problems.
Could I have used the existing patches? In some cases, maybe.
In the spirit of trying to help as best I can, here is a version of my
patch you can use when importing 6.0.7 into the FreeBSD CVS tree. It
fixes all conflicts and compiles cleanly.
--- usr.sbin/amd/include/config.h.orig Fri Nov 5 04:34:00 1999
+++ usr.sbin/amd/include/config.h Sun Sep 2 14:38:53 2001
@@ -1,13 +1,5 @@
-/*
- * $FreeBSD: src/usr.sbin/amd/include/config.h,v 1.15 1999/11/05
12:34:00 obrien Exp $
- *
- * portions derived from
- * $NetBSD: config.h,v 1.11 1998/08/08 22:33:37 christos Exp $
- *
- */
-
/* config.h. Generated automatically by configure. */
-/* aux/config.h.in. Generated automatically from ./aux/configure.in
by autoheader. */
+/* config.h.in. Generated automatically from configure.in by
autoheader. */
/*
* Start of am-utils-6.x config.h file.
* Erez Zadok <ezk@cs.columbia.edu>
@@ -25,40 +17,40 @@
*/
/* Define if have automount filesystem */
-#define HAVE_AM_FS_AUTO 1
+#define HAVE_AMU_FS_AUTO 1
/* Define if have direct automount filesystem */
-#define HAVE_AM_FS_DIRECT 1
+#define HAVE_AMU_FS_DIRECT 1
/* Define if have "top-level" filesystem */
-#define HAVE_AM_FS_TOPLVL 1
+#define HAVE_AMU_FS_TOPLVL 1
/* Define if have error filesystem */
-#define HAVE_AM_FS_ERROR 1
+#define HAVE_AMU_FS_ERROR 1
/* Define if have inheritance filesystem */
-#define HAVE_AM_FS_INHERIT 1
+#define HAVE_AMU_FS_INHERIT 1
/* Define if have program filesystem */
-#define HAVE_AM_FS_PROGRAM 1
+#define HAVE_AMU_FS_PROGRAM 1
/* Define if have symbolic-link filesystem */
-#define HAVE_AM_FS_LINK 1
+#define HAVE_AMU_FS_LINK 1
/* Define if have symlink with existence check filesystem */
-#define HAVE_AM_FS_LINKX 1
+#define HAVE_AMU_FS_LINKX 1
/* Define if have NFS host-tree filesystem */
-#define HAVE_AM_FS_HOST 1
+#define HAVE_AMU_FS_HOST 1
/* Define if have nfsl (NFS with local link check) filesystem */
-#define HAVE_AM_FS_NFSL 1
+#define HAVE_AMU_FS_NFSL 1
/* Define if have multi-NFS filesystem */
-#define HAVE_AM_FS_NFSX 1
+#define HAVE_AMU_FS_NFSX 1
/* Define if have union filesystem */
-#define HAVE_AM_FS_UNION 1
+#define HAVE_AMU_FS_UNION 1
/*
@@ -142,13 +134,13 @@
/* #undef HAVE_FS_CACHEFS */
/* Define if have NULLFS (loopback on bsd44) filesystem */
-#define HAVE_FS_NULLFS 1
+#define HAVE_FS_NULLFS
/* Define if have UNIONFS filesystem */
#define HAVE_FS_UNIONFS 1
/* Define if have UMAPFS (uid/gid mapping) filesystem */
-#define HAVE_FS_UMAPFS 1
+#define HAVE_FS_UMAPFS
/*
@@ -209,7 +201,7 @@
#define MOUNT_TYPE_UNIONFS "union"
/* Mount(2) type/name for UMAPFS (uid/gid mapping) filesystem */
-#define MOUNT_TYPE_UMAPFS "umap"
+/* #undef MOUNT_TYPE_UMAPFS */
/*
@@ -438,6 +430,9 @@
/* Mount Table option string: max groups */
/* #undef MNTTAB_OPT_MAXGROUPS */
+/* Mount Table option string: support property lists (ACLs) */
+/* #undef MNTTAB_OPT_PROPLIST */
+
/*
* Generic mount(2) options (hex numbers)
*/
@@ -478,13 +473,13 @@
/* nocache (what?) */
/* #undef MNT2_GEN_OPT_NOCACHE */
-/* not a device */
+/* do not interpret special device files */
#define MNT2_GEN_OPT_NODEV 0x10
/* no exec calls allowed */
#define MNT2_GEN_OPT_NOEXEC 0x4
-/* not a device */
+/* do not interpret special device files */
/* #undef MNT2_GEN_OPT_NONDEV */
/* Disallow mounts beneath this mount */
@@ -496,6 +491,9 @@
/* Return ENAMETOOLONG for long filenames */
/* #undef MNT2_GEN_OPT_NOTRUNC */
+/* Pass mount option string to kernel */
+/* #undef MNT2_GEN_OPT_OPTIONSTR */
+
/* allow overlay mounts */
/* #undef MNT2_GEN_OPT_OVERLAY */
@@ -575,6 +573,9 @@
/* allow interrupts on hard mount */
#define MNT2_NFS_OPT_INT 0x40
+/* allow interrupts on hard mount */
+/* #undef MNT2_NFS_OPT_INTR */
+
/* Bits set internally */
/* #undef MNT2_NFS_OPT_INTERNAL */
@@ -620,6 +621,9 @@
/* Get lease for lookup */
/* #undef MNT2_NFS_OPT_NQLOOKLEASE */
+/* Don't use locking */
+/* #undef MNT2_NFS_OPT_NONLM */
+
/* Use Nqnfs protocol */
#define MNT2_NFS_OPT_NQNFS 0x100
@@ -632,9 +636,18 @@
/* Do lookup with readdir (nqnfs) */
/* #undef MNT2_NFS_OPT_RDIRALOOK */
+/* allow property list operations (ACLs over NFS) */
+/* #undef MNT2_NFS_OPT_PROPLIST */
+
+/* Use Readdirplus for NFSv3 */
+#define MNT2_NFS_OPTS_RDIRPLUS 0x10000
+
/* set read ahead */
#define MNT2_NFS_OPT_READAHEAD 0x2000
+/* Set readdir size */
+#define MNT2_NFS_OPT_READDIRSIZE 0x20000
+
/* Allocate a reserved port */
#define MNT2_NFS_OPT_RESVPORT 0x8000
@@ -668,6 +681,9 @@
/* use TCP for mounts */
/* #undef MNT2_NFS_OPT_TCP */
+/* linux NFSv3 */
+#define MNT2_NFS_OPT_VER3 0x200
+
/* Wait for authentication */
/* #undef MNT2_NFS_OPT_WAITAUTH */
@@ -689,6 +705,9 @@
/* paging threshold */
/* #undef MNT2_NFS_OPT_PGTHRESH */
+/* 32<->64 dir cookie translation */
+/* #undef MNT2_NFS_OPT_XLATECOOKIE */
+
/*
* CDFS-specific mount(2) options (hex numbers)
*/
@@ -824,7 +843,7 @@
#define HAVE_FIELD_STRUCT_IFREQ_IFR_ADDR 1
/* does struct ifaddrs have field ifa_next? */
-/* #undef HAVE_FIELD_STRUCT_IFADDRS_IFA_NEXT */
+#define HAVE_FIELD_STRUCT_IFADDRS_IFA_NEXT 1
/* does struct sockaddr have field sa_len? */
#define HAVE_FIELD_STRUCT_SOCKADDR_SA_LEN 1
@@ -839,110 +858,9 @@
/* should signal handlers be reinstalled? */
/* #undef REINSTALL_SIGNAL_HANDLER */
-
-/**********************************************************************
****/
-/*** Everything above this line is part of the "TOP" of acconfig.h.
***/
-/**********************************************************************
****/
-
-
-/* Define if on AIX 3.
- System headers sometimes define this.
- We just want to avoid a redefinition error message. */
-#ifndef _ALL_SOURCE
-/* #undef _ALL_SOURCE */
-#endif
-
-/* Define if using alloca.c. */
-/* #undef C_ALLOCA */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP
systems.
- This function is required for alloca.c support on those systems. */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to the type of elements in the array set by `getgroups'.
- Usually this is either `int' or `gid_t'. */
-#define GETGROUPS_T gid_t
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef gid_t */
-
-/* Define if you have alloca, as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define if you have <alloca.h> and it should be used (not on
Ultrix). */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define if you support file names longer than 14 characters. */
-#define HAVE_LONG_FILE_NAMES 1
-
-/* Define if system calls automatically restart after interruption
- by a signal. */
-#define HAVE_RESTARTABLE_SYSCALLS 1
-
-/* Define if your struct stat has st_rdev. */
-#define HAVE_ST_RDEV 1
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define if you have <vfork.h>. */
-/* #undef HAVE_VFORK_H */
-
-/* Define if you have the wait3 system call. */
-#define HAVE_WAIT3 1
-
-/* Define as __inline if that's what the C compiler calls it. */
-/* #undef inline */
-
-/* Define if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
-/* Define if you need to in order for stat and other things to work.
*/
-/* #undef _POSIX_SOURCE */
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
+/*
+ * More definitions that depend on configure options.
*/
-/* #undef STACK_DIRECTION */
-
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.
*/
-/* #undef STAT_MACROS_BROKEN */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define if your <sys/time.h> declares struct tm. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef uid_t */
-
-/* Define vfork as fork if vfork does not work. */
-/* #undef vfork */
-
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-/* #undef WORDS_BIGENDIAN */
-#include <machine/endian.h>
-#if BYTE_ORDER == BIG_ENDIAN
-#define WORDS_BIGENDIAN
-#endif
-
-/* Define if lex declares yytext as a char * by default, not a char[].
*/
-#define YYTEXT_POINTER 1
/* Turn off general debugging by default */
/* #undef DEBUG */
@@ -950,18 +868,15 @@
/* Turn off memory debugging by default */
/* #undef DEBUG_MEM */
-/* Enable "amq -M" remote mount code (insecure due to IP spoofing) */
-/* #undef ENABLE_AMQ_MOUNT */
-
/* Define package name (must be defined by configure.in) */
#define PACKAGE "am-utils"
-/* Define version of package (must be defined by configure.in) */
-#define VERSION "6.0.3s1"
-
/* We [FREEBSD-NATIVE] pick some parameters from our local config file
*/
#include "config_local.h"
+/* Define version of package (must be defined by configure.in) */
+#define VERSION "6.0.7"
+
/* Define name of host machine's cpu (eg. sparc) */
/* #define HOST_CPU "i386" */
@@ -995,6 +910,9 @@
/* what type of network transport type is in use? TLI or sockets? */
/* #undef HAVE_TRANSPORT_TYPE_TLI */
+/* Define to `long' if <sys/types.h> doesn't define time_t */
+/* #undef time_t */
+
/* Define to "void *" if compiler can handle, otherwise "char *" */
#define voidp void *
@@ -1002,7 +920,10 @@
#define am_nfs_fh nfs_fh
/* Define a type/structure for an NFS V3 filehandle */
-#define am_nfs_fh3 nfs_fh3
+#define am_nfs_fh3 nfs_fh3_freebsd3
+
+/* define if the host has NFS protocol headers in system headers */
+/* #undef HAVE_NFS_PROT_HEADERS */
/* define name of am-utils' NFS protocol header */
#define AMU_NFS_PROTOCOL_HEADER "./conf/nfs_prot/nfs_prot_freebsd3.h"
@@ -1034,9 +955,6 @@
/* Define if have struct nfs_args in one of the standard nfs headers */
#define HAVE_STRUCT_NFS_ARGS 1
-/* Define if have struct nfs_mount_data in one of the standard nfs
headers */
-/* #undef HAVE_STRUCT_NFS_MOUNT_DATA */
-
/* Define if have struct nfs_gfs_mount in one of the standard nfs
headers */
/* #undef HAVE_STRUCT_NFS_GFS_MOUNT */
@@ -1099,6 +1017,112 @@
/* define if must NOT use NFS "noconn" option */
#define USE_CONNECTED_NFS_SOCKETS 1
+/**********************************************************************
****/
+/*** Everything above this line is part of the "TOP" of acconfig.h.
***/
+/**********************************************************************
****/
+
+
+/* Define if on AIX 3.
+ System headers sometimes define this.
+ We just want to avoid a redefinition error message. */
+#ifndef _ALL_SOURCE
+/* #undef _ALL_SOURCE */
+#endif
+
+/* Define if using alloca.c. */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work. */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP
systems.
+ This function is required for alloca.c support on those systems. */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define to the type of elements in the array set by `getgroups'.
+ Usually this is either `int' or `gid_t'. */
+#define GETGROUPS_T gid_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define if you have alloca, as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on
Ultrix). */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define if you support file names longer than 14 characters. */
+#define HAVE_LONG_FILE_NAMES 1
+
+/* Define if system calls automatically restart after interruption
+ by a signal. */
+#define HAVE_RESTARTABLE_SYSCALLS 1
+
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define if you have <vfork.h>. */
+/* #undef HAVE_VFORK_H */
+
+/* Define if you have the wait3 system call. */
+#define HAVE_WAIT3 1
+
+/* Define as __inline if that's what the C compiler calls it. */
+/* #undef inline */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef mode_t */
+
+/* Define if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef pid_t */
+
+/* Define if you need to in order for stat and other things to work.
*/
+/* #undef _POSIX_SOURCE */
+
+/* Define as the return type of signal handlers (int or void). */
+#define RETSIGTYPE void
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* #undef size_t */
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.
*/
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define if your <sys/time.h> declares struct tm. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+/* Define vfork as fork if vfork does not work. */
+/* #undef vfork */
+
+/* Define if your processor stores words with the most significant
+ byte first (like Motorola and SPARC, unlike Intel and VAX). */
+/* #undef WORDS_BIGENDIAN */
+
+/* Define if lex declares yytext as a char * by default, not a char[].
*/
+#define YYTEXT_POINTER 1
+
/* Define if you have the __seterr_reply function. */
/* #undef HAVE___SETERR_REPLY */
@@ -1126,6 +1150,9 @@
/* Define if you have the clnt_sperrno function. */
#define HAVE_CLNT_SPERRNO 1
+/* Define if you have the clock_gettime function. */
+#define HAVE_CLOCK_GETTIME 1
+
/* Define if you have the cnodeid function. */
/* #undef HAVE_CNODEID */
@@ -1163,7 +1190,7 @@
#define HAVE_GETHOSTNAME 1
/* Define if you have the getifaddrs function. */
-/* #undef HAVE_GETIFADDRS */
+#define HAVE_GETIFADDRS 1
/* Define if you have the getmntinfo function. */
#define HAVE_GETMNTINFO 1
@@ -1253,7 +1280,7 @@
#define HAVE_SETITIMER 1
/* Define if you have the setresuid function. */
-/* #undef HAVE_SETRESUID */
+#define HAVE_SETRESUID 1
/* Define if you have the setsid function. */
#define HAVE_SETSID 1
@@ -1520,7 +1547,7 @@
/* #undef HAVE_HSFS_HSFS_H */
/* Define if you have the <ifaddrs.h> header file. */
-/* #undef HAVE_IFADDRS_H */
+#define HAVE_IFADDRS_H 1
/* Define if you have the <irs.h> header file. */
/* #undef HAVE_IRS_H */
@@ -1535,7 +1562,7 @@
/* #undef HAVE_LDAP_H */
/* Define if you have the <libgen.h> header file. */
-/* #undef HAVE_LIBGEN_H */
+#define HAVE_LIBGEN_H 1
/* Define if you have the <linux/auto_fs.h> header file. */
/* #undef HAVE_LINUX_AUTO_FS_H */
@@ -1543,6 +1570,12 @@
/* Define if you have the <linux/fs.h> header file. */
/* #undef HAVE_LINUX_FS_H */
+/* Define if you have the <linux/kdev_t.h> header file. */
+/* #undef HAVE_LINUX_KDEV_T_H */
+
+/* Define if you have the <linux/list.h> header file. */
+/* #undef HAVE_LINUX_LIST_H */
+
/* Define if you have the <linux/nfs.h> header file. */
/* #undef HAVE_LINUX_NFS_H */
@@ -1886,7 +1919,7 @@
#define HAVE_UFS_UFS_UFSMOUNT_H 1
/* Define if you have the <ufs/ufs_mount.h> header file. */
-#define HAVE_UFS_UFS_MOUNT_H 1
+/* #undef HAVE_UFS_UFS_MOUNT_H */
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
@@ -1894,9 +1927,6 @@
/* Define if you have the <varargs.h> header file. */
#define HAVE_VARARGS_H 1
-/* Define if you have the <vfork.h> header file. */
-/* #undef HAVE_VFORK_H */
-
/* Define if you have the gdbm library (-lgdbm). */
/* #undef HAVE_LIBGDBM */
@@ -1915,20 +1945,14 @@
/* Define if you have the rpcsvc library (-lrpcsvc). */
#define HAVE_LIBRPCSVC 1
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef pid_t */
+/* Define if you have the rt library (-lrt). */
+/* #undef HAVE_LIBRT */
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef mode_t */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef pid_t */
-
-/* Define to `unsigned' if <sys/types.h> does not define. */
-/* #undef size_t */
+/* Name of package */
+#define PACKAGE "am-utils"
-/* Define to `long' if <sys/types.h> does not define. */
-/* #undef time_t */
+/* Version number of package */
+#define VERSION "6.0.7"
/**********************************************************************
****/
Please don't take this note as inflammatory. I do not mean to ruffle
any feathers or to insult anyone. I am trying to help as best I can.
If I have offended anyone with any of my comments I apologise.
Regards, Phone: (250)387-8437
Cy Schubert Fax: (250)387-5766
Team Leader, Sun/Alpha Team Internet: Cy.Schubert@osg.gov.bc.ca
Open Systems Group, ITSD
Ministry of Management Services
Province of BC
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109022243.f82MhQt03149>
