SGI Logo
 
 

Patch 1067 : append mode does not work on cachefs : [IRIX 5.3]
INDEX

  • Relations
  • Release Notes
  • Inst Subsystem Requirements
  • Inst Subsystem Checksums
  • Inst Subsystem File Listings
  • Download Patch


    RELATIONS

    This patch replaces the following patches:
    214, 305, 749, 933

    This patch has no known incompatiblities with other patches.

    This patch fixes the following bugs:
    252778 - excessive memory use by cachefs
    253566 - cat write to files on cachefs mounted filesystem (File too large)
    259761 - cachefs hangs in sync
    309941 - Filesize limit exceeded when using cachefs
    314341 - ls dumps core for some directories on cachefs file systems
    327389 - ksh and tcsh append to the beginning of a cachefs mounted file


    RELEASE NOTES

    1. Patch SG0001067 Release Note

           This release note describes patch SG0001067 to IRIX ONC3
           5.3.
    
    
    1.1 Supported Hardware Platforms
           This patch contains bug fixes for all hardware and software
           configurations.  The software cannot be installed on other
           configurations.
    
    
    1.2 Supported Software Platforms
           This patch contains bug fixes for all hardware and software
           configurations.  The software cannot be installed on other
           configurations.
    
    
    1.3 Bugs Fixed by Patch SG0001067
           This patch contains fixes for the following bugs in IRIX
           ONC3 5.3.  Bug numbers from Silicon Graphics bug tracking
           system are included for reference.
    
              o Bug report 314341 -- ls dumps core
    
                For large directories supplied by IRIX 5.3 servers and
                mounted via cachefs, ls on the client will dump core.
                This is because getdents(2) returns an offset for the
                next entry which causes a loop.  Cachefs takes the
                offsets for the directory entries from what is supplied
                by the back file system with no modification.  It
                assumes, however, that the offsets in the directory
                entries (d_off) are strictly increasing.  This turns
                out to not be true for some file systems on IRIX 5.3.
                It has been observed that XFS file systems supply
                directory entries whose offsets are not ordered.
    
                The fix for this alters how the directory data is
                cached.  Thus, the fix will not take effect until
                existing cached data is replaced.  It is advised that
                existing caches be purged after installing this patch.
    
              o Bug reports 309941 and 253566 -- Filesize limit
                exceeded when using cachefs
    
                When writing through a cachefs file system with an
                underlying xfs partition, the command terminates with a
                "Filesize limit exceeded" error.
    
              o Bug report 252778 -- high load average
    
    
                Due to a deadlock which can occur when a cachefs async
                daemon calls VOP_FSYNC with the FSYNC_WAIT flag,
                cachefs may hang during a sync operation.
    
              o Bug report 259761 -- cachefs hangs in sync
    
                Due to a deadlock which can occur when cachefs_fsync is
                called with the FSYNC_WAIT flag, cachefs may hang
                during a sync operation.
    
              o Bug report 252778 -- excessive memory use by cachefs
    
                CacheFS excessively allocates kernel memory.  Much of
                the memory allocated is not returned to the system
                until all CacheFS file systems have been unmounted.
    
                This patch changes CacheFS so that it will return
                memory to the system by freeing cnode data.  This may
                be controlled through two tunable parameters:
                maxcnodes and cachefs_max_lru.  The tunable parameter
                maxcnodes has been introduced with this patch.  It
                determines the upper bound for cnode allocation.  This
                is what might be called a "soft" boundary.  CacheFS may
                allocate more than this many cnodes, but once the upper
                bound has been exceeded, inactive cnodes will be freed.
    
                Tuning should be done by setting maxcnodes and
                cachefs_max_lru to low values (such as 100 and 10
                respectively), with maxcnodes being greater than
                cachefs_max_lru.  These numbers should be increased
                until the desired combination of performance and memory
                usage is obtained.  Note that maxcnodes may be set to
                be less than or equal to cachefs_max_lru.  Doing so
                will cause no problems.  It will, however, result in
                all cnodes not on the lru list being freed (i.e., their
                storage returned to the system).
    
                Take care to consider file access patterns when tuning.
                Commands such as du(1) and find(1) will have very
                different access patterns from make(1), cc(1) and
                ld(1).
    
                The above tuning method has been suggested in order
                that fragmentation of the kernel heap may be avoided.
                This will minimize both the total memory allocated to
                the kernel and the amount used by CacheFS.  Setting
                maxcnodes and cachefs_max_lru to higher values and then
                lowering them is less effective at keeping kernel
                memory usage low.  This is because the data allocated
                by CacheFS will be distributed throughout a larger heap
                area.
    
    
              o Bug report 327389 -- append mode does not work on
                cachefs
    
                When using ksh or tsch to append (>>) data to a cachefs
                mounted file, the data is appended to the beginning of
                the file.  sh and csh append ok.
    
    
    1.4 Subsystems Included in Patch SG0001067
           This patch release includes these subsystems:
    
              o patchSG0001067.onc3_eoe_sw.cachefs
    
    
    1.5 Installation Instructions
           Because you want to install only the patches for problems
           you have encountered, patch software is not installed by
           default. After reading the descriptions of the bugs fixed in
           this patch (see Section 1.3), determine the patches that
           meet your specific needs.
    
           If, after reading Sections 1.1 and 1.2 of these release
           notes, you are unsure whether your hardware and software
           meet the requirements for installing a particular patch, run
           inst.
    
           Patch software is installed like any other Silicon Graphics
           software product.  Follow the instructions in your Software
           Installation Administrator's Guide to bring up the miniroot
           form of the software installation tools.
    
           Follow these steps to select a patch for installation:
    
             1.  At the Inst&gtprompt, type
    
                 install patchSGxxxxxxx
    
                 where xxxxxxx is the patch number.
    
             2.  Select the desired patches for installation.
    
             3.  Initiate the installation sequence. Type
    
                 Inst> go
    
             4.  You may find that two patches have been marked as
                 incompatible.  If this occurs, you must deselect one
                 of the patches.
    
                 Inst> keep patchSGxxxxxxx
    
    
                 where xxxxxxx is the patch number.
    
             5.  After completing the installation process, exit the
                 inst program by typing
    
                 Inst> quit
    
           To remove a patch, use the versions remove command as you
           would for any other software subsystem.  The removal process
           reinstates the original version of software unless you have
           specifically removed the patch history from your system.
    
           versions remove patchSGxxxxxxx
    
           where xxxxxxx is the patch number.
    
           To keep a patch but increase your disk space, use the
           versions removehist command to remove the patch history.
    
           versions removehist patchSGxxxxxxx
    
           where xxxxxxx is the patch number.
    
    

    INST SUBSYSTEM REQUIREMENTS
    No Requirements Information Available.
    

    INST SUBSYSTEM CHECKSUMS

    These checksums help to provide a 'signature' for the patch inst image which can be used to authenticate other inst images. You can obtain this kind of output by running sum -r on the image (from the command line):

    30170      2   patchSG0001067
    05476      5   patchSG0001067.idb
    52545   1535   patchSG0001067.onc3_eoe_sw
    

    INST SUBSYSTEM FILE LISTINGS

    The following lists the files which get installed from each subsystem in the patch:

    patchSG0001067.onc3_eoe_sw.cachefs
    usr/cpu/sysgen/IP12boot/cachefs.a
    usr/cpu/sysgen/IP17boot/cachefs.a
    usr/cpu/sysgen/IP19boot/cachefs.a
    usr/cpu/sysgen/IP20boot/cachefs.a
    usr/cpu/sysgen/IP22boot/cachefs.a
    usr/cpu/sysgen/IP4boot/cachefs.a
    usr/cpu/sysgen/IP5boot/cachefs.a
    usr/cpu/sysgen/IP6boot/cachefs.a
    usr/relnotes/patchSG0001067/TC
    usr/relnotes/patchSG0001067/ch1.z
    var/sysgen/mtune/cachefs


    DOWNLOAD PATCH
    Download Server File Name Date Added Size Download
    download.sgi.com patchSG0001067.tar 02-Jan-1996 795 K FTP HTTP Add to download cart 
    download.sgi.com patchSG0001067.tardist 02-Jan-1996 795 K FTP HTTP
     
    FTP = download using FTP protocol
    HTTP = download using HTTP protocol
    Add to shopping list= store in your basket for downloading later
  •  


    Document Id: 20021117063343-IRIXPatch-938