From owner-freebsd-arch Sun Sep 2 15:44:21 2001 Delivered-To: freebsd-arch@freebsd.org Received: from point.osg.gov.bc.ca (point.osg.gov.bc.ca [142.32.102.44]) by hub.freebsd.org (Postfix) with ESMTP id 015EB37B405; Sun, 2 Sep 2001 15:43:59 -0700 (PDT) Received: (from daemon@localhost) by point.osg.gov.bc.ca (8.8.7/8.8.8) id PAA11091; Sun, 2 Sep 2001 15:43:58 -0700 Received: from passer.osg.gov.bc.ca(142.32.110.29) via SMTP by point.osg.gov.bc.ca, id smtpda11089; Sun Sep 2 15:43:58 2001 Received: (from uucp@localhost) by passer.osg.gov.bc.ca (8.11.6/8.9.1) id f82Mhvn05106; Sun, 2 Sep 2001 15:43:57 -0700 (PDT) Received: from UNKNOWN(10.1.2.1), claiming to be "cwsys.cwsent.com" via SMTP by passer9.cwsent.com, id smtpdgw5104; Sun Sep 2 15:43:23 2001 Received: (from uucp@localhost) by cwsys.cwsent.com (8.11.6/8.9.1) id f82MhQt03149; Sun, 2 Sep 2001 15:43:26 -0700 (PDT) Message-Id: <200109022243.f82MhQt03149@cwsys.cwsent.com> Received: from localhost.cwsent.com(127.0.0.1), claiming to be "cwsys" via SMTP by localhost.cwsent.com, id smtpdNn3146; Sun Sep 2 15:43:10 2001 X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 Reply-To: Cy Schubert - ITSD Open Systems Group From: Cy Schubert - ITSD Open Systems Group X-Sender: schubert To: obrien@FreeBSD.ORG Cc: Cy Schubert - ITSD Open Systems Group , Alfred Perlstein , John Polstra , arch@FreeBSD.ORG Subject: Re: AMD defaults? (was: Re: Tuning UDP for NFS) In-reply-to: Your message of "Sun, 02 Sep 2001 12:21:25 PDT." <20010902122125.A80825@hub.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 02 Sep 2001 15:43:10 -0700 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 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 @@ -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 doesn't define. */ -/* #undef gid_t */ - -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have 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 that is POSIX.1 compatible. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define if you have . */ -/* #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 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 and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define if your declares struct tm. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to `int' if 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 -#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 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 doesn't define. */ +/* #undef gid_t */ + +/* Define if you have alloca, as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define if you have 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 that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define if you have . */ +/* #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 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 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 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 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 and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define if your declares struct tm. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define to `int' if 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 header file. */ -/* #undef HAVE_IFADDRS_H */ +#define HAVE_IFADDRS_H 1 /* Define if you have the header file. */ /* #undef HAVE_IRS_H */ @@ -1535,7 +1562,7 @@ /* #undef HAVE_LDAP_H */ /* Define if you have the header file. */ -/* #undef HAVE_LIBGEN_H */ +#define HAVE_LIBGEN_H 1 /* Define if you have the header file. */ /* #undef HAVE_LINUX_AUTO_FS_H */ @@ -1543,6 +1570,12 @@ /* Define if you have the header file. */ /* #undef HAVE_LINUX_FS_H */ +/* Define if you have the header file. */ +/* #undef HAVE_LINUX_KDEV_T_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_LINUX_LIST_H */ + /* Define if you have the header file. */ /* #undef HAVE_LINUX_NFS_H */ @@ -1886,7 +1919,7 @@ #define HAVE_UFS_UFS_UFSMOUNT_H 1 /* Define if you have the header file. */ -#define HAVE_UFS_UFS_MOUNT_H 1 +/* #undef HAVE_UFS_UFS_MOUNT_H */ /* Define if you have the header file. */ #define HAVE_UNISTD_H 1 @@ -1894,9 +1927,6 @@ /* Define if you have the header file. */ #define HAVE_VARARGS_H 1 -/* Define if you have the 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 does not define. */ -/* #undef pid_t */ +/* Define if you have the rt library (-lrt). */ +/* #undef HAVE_LIBRT */ -/* Define to `int' if does not define. */ -/* #undef mode_t */ - -/* Define to `int' if does not define. */ -/* #undef pid_t */ - -/* Define to `unsigned' if does not define. */ -/* #undef size_t */ +/* Name of package */ +#define PACKAGE "am-utils" -/* Define to `long' if 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