|
Patch 3566 : 6.2 all platform kernel rollup : [IRIX 6.2]
INDEX
RELATIONS
RELEASE NOTES
1. Patch SG0003566 Release Note
Patch SG0003566 replaces patches SG0001222, SG0001243,
SG0001323, SG0001353, SG0001389, SG0001429, SG0001493,
SG0001534, SG0001488, SG0001569, SG0001622, SG0001624,
SG0001650, SG0001733, SG0001717, SG0001990, SG0002119,
SG0002187, SG0002298, SG0002401, SG0002777, SG0002859,
SG0003110, SG0003156, SG0003252 and SG0003285.
1.1 Supported Hardware Platforms
This patch contains bug fixes for all SGI systems supported
in IRIX 6.2.
1.2 Supported Software Platforms
This patch contains bug fixes for IRIX 6.2 (version
1232792137). The software cannot be installed on other
configurations.
1.3 Bugs Fixed by Patch SG0003566
This patch contains fixes for the following bugs in IRIX
6.2. Bug numbers from Silicon Graphics bug tracking system
are included for reference. For bugs fixed in prior
patches, fix descriptions are grouped under the replaced
patches.
o Bug #625667: On R4600 Indys, a NULL region pointer
could be passed to cache_operation() code which would
panic the machine. Most often the steps to reproduce
involved the July patch set and NFS3 mounted
filesystems.
Bugs fixed in Path SG00003554:
o Bug #627685: A bug has been fixed that may cause the
date to be set incorrectly when the system is off over
the 2/29 - 3/1 transition, (midnight), on leap years,
(..., 1996, 2000, 2004, ...).
Bugs fixed in Patch SG0003285:
o Bug #443457: Some versions of Sybase (e.g., 11.0.2)
could cause kernel panics.
o Bug #462005: The attr_multi system call produced
errors if the count of operations was greater than 1.
o Bug #606663: idle terminal sessions on O200 are SLOW
when resumed. When releasing the STREAMS monitor, we
were waiting for all activity to finish on the STREAM
before continuing.
o Bug #624673: A bug has been fixed in the network code
path that would cause a process doing writes to a
socket to loop forever in the kernel if it was trying
to send data out from a regular file mmap'ed region if
the file had been truncated or deleted.
o Bug #631926: Panic from ipcrm caused by SHM_SHATTR
option on shmat(2). Use of the SHM_SHATTR option on an
shmat(2) system call that fails because of an limits
check or address check can result in a system panic
when the SHM data segment is deleted.
Bugs fixed in Patch SG0003252:
o Bug #582054: This patch has a modification that lets
users issue more data than before via a msgsnd(),
subject to the limits in the mtune/msg file.
o Bug #613859: This patch fixes some race conditions
that were causing processes to hang while using
msgsnd() and msgrcv().
o Bug #618055: Corrects a problem introduced by patch
SG0003110 which disables write clustering.
Bugs fixed in Patch SG0003156:
o Bug #586920: Setregid() was improperly removing the
real-group-id from the supplementary group list and
also was adding the new real-group-id to the
supplementary list.
o Bug #538876: This bug was that the kernel would
possibly panic if a pthread process received a signal
during its exit path. This was a problem where
sigtosharegroup didn't have any locking against exiting
sproc processes - thus an exiting process could call
detachshaddr, setting p_shaddr to null, while the
caller of sigtosharegroup was trying to use the
p_shaddr field.
Bugs fixed in Patch SG0003110:
o Bug #497089 : assertion failed cpu 1: waiting, file:
../io/streams/strmon.c,. Chain reaction when a service
monitor service process sleeps and releases the
monitor. When it reawakens, it tries to process
anything that is on the mon_runq and can file off
another service process. This sequence can repeat
untill all the service processes are in use.
o Bug #449927 : Fix a kernel panic caused by passing a
NULL value into the sched_set* params instead of a
valid address.
o Bug #536028 : Stepping over functions in a debugger
can cause a bus error or hang of the process on a 32
bit kernel.
o Bug #578446 : Fix a problem where the kernel would not
quite set up a process image properly during exec if
the a.out was compiled with non standard compile
options.
o Bug #561700 : The patch has some kernel interfaces
that are needed to install and run CA UniCenter
software.
o Bug #588650 : The patch has a fix that prevents a
previous bug wherein a user process doing a msgsnd()
could hang indefinitely under some conditions.
o Bug #550278 : Increased the upper limit on the number
of text regions that can be profiled to 10000. All
references to the PROFIL_MAX constant were changed to
correctly reference the nprofile variable.
o Bug #551821 : This patch has some VCE avoidance fixes
that will benefit the Indy platform.
o Bug #572106 : timer_gettime() now works properly on
Indy and Indiglo2 systems.
o Bug #577512 : Some systems would incorrectly
compensate for a false 1998 leap year leading to a loss
of one day. This problem has only been seen on systems
running during the change over from February 28, 1998
to March 1, 1998 and rebooted after the change over.
This problem was due to differences, which have been
fixed, between the kernel time of day and the TOD chip.
o Bug #529218 : Indigo2 systems could experience a
gradual time drift. This problem is now fixed.
o Bug #705217 : Has been corrected in the Irix 6.5 BETA
release, and its XFS filesystem format changes need to
be propogates to earlier releases. An XFS patch is
forthcoming to include those changes. This kernel
portion of the changes needs to be in place prior to
application of the XFS patch. The changes made to the
kernel involve some new flags, and mapping of those
flags.
o Bug #592836 : A call to mknod() specifying S_IFDIR in
an EFS or XFS filesystem would create a zero-length
directory file (no . or ..). This directory would be
regarded as corrupt by the repair programs fsck and
xfs_repair.
Bugs fixed in Patch SG0002119, SG0002187, SG0002298,
SG0002401, or SG0002777:
o Bug #559619 : The bug was that sysmips(MIPS_FIXADE, 1,
0, 0) was not working properly. And indeed, for
double-word stores, this was broken since 6.2 shipped.
This bug affected platforms that use 32-bit kernels -
IP17, IP20, and IP22. This also only affected n32-
based binaries. Store-doubles that were 'fixed' by
FIXADE would be trashed, so subsequent uses of that
data would return trash.
o Bug #552632 : After using prctl(PR_SETABORTSIG) to
establish a sproc() group abort signal, a subsequent
exec() by a sproc() thread caused the abort signal to
be sent.
o Bug #551348 : Scache error handling fixes for IP19
platforms.
o Bug #531626 : Addresses scaling problem for I/O on
pollable channels. This includes sockets, pipes, and
most devices.
o Bug #528471 : This fixes a crash caused when a file
that is mmapped by a process is truncated by another
process.
o Bug #520131 : Fixes HARDWARE ERROR STATE contains
useless information. This was only relevant on IP25-
based systems where speculation could cause an
undesirable side-effect and in some cases there would
be useless info from the analysis.
o Bug #519323 : Need to log panic output to NVRAM on
Challenge. We now store PANIC string in NVRAM as well
as EFrame when there is a SW failure. For Hardware
failures we store the output of the FRU analzer as well
as the panic string. Use the "nvlog" command to read
the NVRAM log, use "nvlog -c" to clear it.
o Bug #520020 : Kernel should dump eframe to
putbuf/promlog on panic. We now dump the panic string
to the NVRAM as well so that we can determine the
source of the failure.
o Bug #520021 : Should dump eframe into nvram and the
putbuf for kernel faults.
o Bug #520022 : Need a fru analyzer patch for Irix 6.2
Challenges. This patch includes the FRU analyzer for
hardware failure analysis.
o Bug #525192 : IP19 system hang and loss of nvram
variables. Buffer ovverrun when running Debug kernels
and lots of panic output. Fixed with new NVRAM logging
codes.
o Bug #517393 : Patches 2401 and 2119 did not work for
Challenge DM systems (Single CPU IP19). This was
because of a problem with the tlbmiss handler which had
too many instructions for 250Mhz IP19 systems. We now
use the MP utlbmiss prologue for IP19 and treat all
IP19 (MP/UP) in the same way (fixing the problem).
Customers who install this patch will have all the
latest bugfixes.
o Bug #502234 : Fix problems with pthread programs
freeing the posix timer structure multiple times in the
exec and exit paths.
o Bug #474898 : Fix cases where NLM cancel requests are
not honored properly.
o Bug #438964 : Fix possible kernel panics during NLM
request processing.
o Bug #377254 : Race condition between vhand and sched
accessing page tables Fix a bug involving a race
condition between vhand and sched. Due to the way
locking is implemented, it was possible for sched to be
trimming the page table of a process while vhand is
trying steal pages from that process. This could have
potential race condition, and result in a system crash.
This has been fixed.
o Bug #456165 : With a large number of processes and
open files on the system, we were overflowing the
reference count field in the kernel internal credential
structure that was leading to kmem_zone_alloc panics.
This has been fixed in this patch by using a larger
field to hold the reference count.
o Bug #494445 : prctl(PR_SETEXITSIG, signal) doesn't
provide the semantics needed by most multi-threaded
applications. The semantics of PR_SETEXITSIG were
defined at a time when parallel Fortran codes were the
order of the day. In that world, if any thread exited
the application for any reason whatsoever, the
application needed to terminate. With multi-threaded
applications there is still the desire to terminate the
application if any of the threads terminate abnormally,
but calls to exit() and exec() by a thread shouldn't
cause application termination. This patch adds a new
prctl(PR_SETABORTSIG, signal) which does exactly that.
If any thread aborts due to a signal, the share group
will be sent the specified signal. On the other hand,
if a thread exits the share group via a call to exit()
or exec() the signal will not be sent. PR_SETEXITSIG
and PR_SETABORTSIG are mutually exclusive; setting
either one will nullify any previous setting of the
other. As with PR_SETEXITSIG, doing a
prctl(PR_SETABORTSIG, 0) disables the abort signal
processing.
o Bug #493505 : The kernel messages and handling of
these messages in response to an NMI was incorrect.
o Bug #483230 : Debugging of programs that used sproc
and shared memory could cause a kernel memory leak,
leading to out of memory conditions in extreme cases.
o Bug #477641 : When gang processes are executed while
simultaneously isolating/restricting processors, the
system can hang. This bug has been particularly
encountered while running Sirius application which
performs isolation/restriction. Also see 505362 below.
o Bug #470142 : A data structure that links related
sproc processes was not being accessed with the proper
protocol by a /proc procedure. A ps(1) that occurred
while an sproc was exitting could have caused a system
crash.
o Bug #464517 : An error in emulating some branch
conditions that trap into the kernel was fixed. With
some input values, this could affect the results of the
exp() library function.
o Bug #494132: Fixed a buffer overrun security
vulnerability in the pset(1M) command.
o Bug #494558 : When a cpu cach error occurs on an IP19,
the ecc_handler was not using the correct pair of data
words to compute the expected ECC and hence was not
correctly determining whether the error was correctable
or uncorrectable.
o Bug #705897 : ORIGIN PROGRAM FAILS WITH F77 7.2 USING
-O3
This was a bug in the floating point emulation code in
the kernel. If a floating point exception is taken on
an instruction in a branch delay slot, the kernel must
emulate the branch in order to compute the proper
program counter for the faulting program. The emulation
code for the MIPS4 bc1t/bc1f family of instructions was
incorrect, thus resulting in an incorrect program
counter when the user program was restarted after the
exception.
o Bug #488923 : Allow R10K Revision 3.X parts in IP25
systems.
o Bug #505850 : Corrects corrupted in memory inode when
an open O_TRUNC system call for a DMAPI file is
rejected by the DMAPI application.
o Bug #484792 : mmap() and mmap64() at file offsets > 2
GByte had problems.
o Bug #506220 : idbg stops printing when a DMAPI file
system encountered.
o Bug #507109 : System controller daemon should print
more useful information about unknown alarms and
conditions. The system controller daemon did not
previously list a voltage supply as having VDC
variance, now it logs such conditions. Also, the system
controller will now log unknown alarms and monitor
blower speeds more accurately.
o Bug #507093 : Race condition in Everest error handler
could cause double panic. This was a bug dealing with
Everest error handler code which did not use a TAS to
avoid a race condition.
o Bug #504209 : VMECC panic due to simple memory access
from single board computer. On IP25 systems, due to
the speculative execution of the R10K, it is possible
that we can take a CC error interrupt and not see any
CC_ERTOIP bit set. This can happen if this cpu is
getting IP25_CC_ERROR_MY_DATA as a result of another
cpu doing a vme probe which results in an error. This
is caused by a bug in the A-chip and is fixed by
checking to see if IP25_CC_ERROR_PARITY_D is caused by
a user level vme probe, and if so, clear the error and
clear the IP25_CC_ERROR_MY_DATA error for all other
cpus.
o Bug #505362 : Correct a fix for bug #477641, which can
be seen in patch 2119. With patch 2119, where the fix
is incorrect, the system may hang when
sysmp(MP_ISOLATE), sysmp(MP_UNISOLATE),
sysmp(MP_RESTRICT) or sysmp(MP_EMPOWER) is performed;
typically, these system calls are issued by the
mpadmin(1M) system utility program.
o Bug #511559 : It was possible for the fsync system
call to return before all file data was flushed to disk
on an XFS filesystem.
o Bug #512105 : This patch contains a fix for a problem
that can cause systems to cease responding to network
requests when the system is low on memory under certain
conditions. The problem has only been seen on systems
running more than 10,000 Netscape server processes, but
it could theoretically happen on less heavily loaded
machines. The problem is caused when the system is low
on memory and the paging daemon wakes up the shake
daemon ('shaked') in an attempt to free memory
resources used by some of the kernel's internal
allocation mechanisms. The shake daemon can run for
many seconds without yielding the cpu and there is a
bug that causes processes which still have affinity to
the cpu on which the shaked thread is running not to be
moved off the local run queue of that cpu. As a result
they can't run, even though they are ready to run,
until the shake daemon finishes. If one of those
ready-to-run processes holds a kernel resource (lock,
mutex or semaphore) on which other processes are
waiting, then the system can appear to be hung for
seconds or minutes. The fix insures that the ready-
to-run processes get moved to the global run queue to
be executed by other cpus, even when the original cpu
is executing kernel thread as opposed to a normal user
process.
o Bug #523501: A header file change in patch 2187 caused
the pset(1M) command to malfunction in that patch. In
the current patch and later patches, pset(1M) has been
recompiled in order to pick up the new structure
definitions.
o Bug #526031 : Correct a problem where gather_chunk is
recursively called during a low memory situation, with
the buffer already locked. By examining 6.3 and 6.4
code pathes, it appears that this problem was fixed as
a result of PV 414081. This code is already in 6.3 and
6.4.
Bugs fixed in Patch SG0001990:
o Bug #470926 : All pthreads in a pthread program did
not share the posix timer ids. With this patch all
pthreads share the timerid name space.
o Bug #421932 : Calling suser form interrupt causes
<0>PANIC: CPU 0: vfault: curproc is NULL. CAP_ABLE was
being used to check credential of process. Problem is
that action could be the result of a STREAMS service
routine and there is either no process or the process
is not the one who made the request.
o Bug #439590 : streams perf problem.
spinunlock_qmonitor uses the timeout thread to execute
deferred monitor requests on the global monitor. This
introduces excessive latency. This is replaced by a
pool of kernel threads. Note this patch disables the
systune "monqtimeout" parameter.
o Bug #465038 : Bug #470796 : For IP25 systems only,
fixed a graphics performance problem introduced as a
side effect of another bug fix.
o Bug #469770 : This is a fix for an R4000/R4400 chip
bug. The chip bug went as follows: In the tlbmiss
refill handler, we had the C0_WRITER opcode in the
delay slot of a branch instruction. That branch/WRITER
pair was near the end of the icache line. Suppose that
there is a C0_READI hanging out in the icache, and that
READI happens to be in the first word of the next line
of the icache. The R4000/4400 starts the READI down the
pipeline before it realizes that it is actually a cache
miss, but apparently some processor state is not
properly restored when the READI is killed. This leads
to a processor hang.
o Bug #478104 : Software should set 90 Mhz IP21 cpus
boards to low 3V for better HW margins.
o Bug #479714 : This is a bug where nanosleep remainders
were a factor of 10 too big on IP22, IP26 and IP28 when
the process has real time priority.
o Bug #480136 : This is a fix where EPERM somtimes would
be incorrectly returned as an error for the nanosleep
system call.
o Bug #483943 : This patch adds a common API for MIPS
ABI applications to support licensing requirements.
The command _MIPS_SI_SERIAL is added to sysinfo() to
return a unique hardware serial number. See
"sys/systeminfo.h" for the definition of
_MIPS_SI_SERIAL.
Bugs fixed in Patch SG0001717:
o Bug #372937 : Enabled macro names for reader/writer
lock operations such as RW_LOCK in
usr/include/sys/ksynch.h.
o Bug #405092 : For IP21 systems only, include the
missing vmeuli.o binary.
o Bug #450840 : For IP25, serialize config writes/intrs
to avoid a potential hardware deadlock.
o Bug #453979 : For IP25, turn off piggyback reads to
avoid a potential hardware hang.
o Bug #455481 : For Challenge (EVEREST) systems,
increased the dang chip timeout since it was too small.
o Bug #457843 : For IP21 systems only, correct a kernel
fault in the ULI_wakeup library call.
o Bug #465061 : Passing bogus values into sprofil()
could panic kernel.
o Bug #465063 : Possible kernel panic when using
WorkShop's "Step Over" function on a pthreads
application.
o Bug #469254 : For EVEREST systems, stop all cpus
before reading MC3 Config Registers to avoid a
potential hang.
o Bug #470333 : One case of unique id (uuid) comparison
in the kernel was incorrect; also the error codes
returned for different flavors of invalid uuids were
not in compliance with the DCE specification.
Bugs fixed in Patch SG0001733:
o Bug #451134 : For Challenge (EVEREST) systems, use
uncached reads to synchronize between cpus and io
instead of config read of an A-chip reg. This fixes a
hardware deadlock.
Bugs fixed in Patch SG0001650:
o Bug #412011 : Fixes bug which amongst other things
would result in error messages like
"preg_color_validation: virtual color mismatch" when
running some N32 applications on earlier revisions of
the R5000 CPU.
o Bug #425381 : Fixes a very slow kernel page leak which
occurs when running N32 applications on earlier
revisions of the R5000 CPU which require the workaround
for the cvt instruction.
o Bug #433639 : If the clock crystal is off a little bit
(either inherently slightly off speed or due to
temperature), an Indy may be confused about whether it
has a 175Mhz (R4400) or 180Mhz (R5000) processor. This
could lead to incorrect output from hinv, the system
clock may run inaccurately, etc.
o Bug #443076 : The newarraysess(2) system call was
unnecessarily restricted to the superuser. Any user
may now execute the newarraysess system call, although
superuser privileges are still needed to actually
modify the array session handle.
o Bug #445198 : Update memory system support for on the
Indigo2 10000 for systems with two or three memory
banks that include one bank of 64MB SIMMs (256MB
upgrade). Affected configurations cannot use the
kernel debugger, symmon with this change, until the
next major IRIX release.
o Bug #447743 : Truncate system calls to files in XFS
filesystems did not check for write permission
correctly. A current XFS kernel patch is also required
for the complete fix to this problem.
o Bug #448015 : For IP25 systems only, this fixes a
panic introduced in patch1624 in mc3 error logging
code.
o Bug #448859 : The uuid routines were not checking for
illegal uuid variants. The changes here affect only
kernel users of the uuid routines. The fix for
programs that use the uuid(3) routines is in libc in
rollup patch 1571 (and its successors).
o Bug #450581 : For IP25 systems only, this fixes a
panic introduced in patch1624 in io4 error clearing
code.
Bugs fixed in Patch SG0001624:
o Bug #310210, #373477, #391065, #430303 : Fix panics in
audit system.
o Bug #345536 : The kernel open file offset pointer was
not always managed correctly. This could happen when
simultaneous or overlapping read or write operations
were made to a user file descriptor that was being
shared (either parent and child process sharing file
descriptors or an sproc(2) group created with the
PR_SFDS or PR_SALL attributes).
o Bug #480640 : A pthread that blocked a particular
signal then attempted to wait for the signal via
sigwait(3) or sigtimedwait(3) would not be notified of
the signal's delivery.
o Bug #358103 : par command has partial write problem
when timer goes off and interrupts the write.
o Bug #358534 : The syssgi() call for SGI_DBA_CONFIG was
not correctly returning the current parameters for
kernel async I/O. This fix corrects that problem.
o Bug #358539 : A performance enhancement for disk I/O
was inadvertently removed from the 6.2 release. This
fix reinstates that enhancement.
o Bug #360218 : IRIX 6.2 is now Posix 1003.1b compliant.
Kernel support for Posix: message passing, process
memory locking, real-time scheduling, semaphores, and
timers has been added.
o Bug #381260 : Direct I/O read on IP28 needs R10000
speculative execution workaround.
o Bug #383918 : Partial support for the server side of
the Bulk Data Service.
o Bug #388860 : Fixes the shmctl hang that occurs when
an invalid shared memory segment is specified for
removal.
o Bug #418568 : This fixes a scip code panic for IP19
and IP25 systems. The code makes sure that PIOWRITES
are flushed out to IO in the right sequence. Fixed
this bug for R8k Power Challenges (IP21) as well.
o Bug #418570 : For IP25 only, this code is a workaround
for an R10000 LL/SC bug.
o Bug #423671 : Temp. fix to get around the known sat
(system audit trail) subsytem bug which panics the
kernel. This change excludes sat. If reqd., sat needs
to be included explicitly after the patch is installed.
o Bug #423676 : Adds missing file offset mutex
constructors and destructors.
o Bug #423841 : User called cacheflush fixed for R10000
based Challenge/POWER Challange.
o Bug #428281 : If a program using kernel async I/O
placed an aio request block at an address higher than
0xffffffff, only the lower 32 bits of the pointer would
be used. With this fix, programs may safely place
request blocks anywhere in the virtual address space.
o Bug #428472 : Fixed a case for R10000 based systems,
where a bad user address passed as an argument to
syscall would panic the system.
o Bug #429948 : Fixes accuracy of POSIX timers using
absolute time on an Indy.
o Bug #431097 : Fixes return values for rtlocks.
o Bug #431100 : Fixes the NFS nanosleep interface,
returning the proper time remainder when interrupted.
o Bug #433007 : Fixes cachectl system call.
o Bug #434065 : Fix problem which tends to show up on
small processor count MP systems when a job uses an
SPROC group and kernel asynch I/O. When one of the
processes belonging to the group exits while another
process is actively using kaio, the exiting process may
hang the processor.Wq
o Bug #434940 : Clear IO4 error state caused by R10000
speculation which may result in misleading FRU
analysis.
o Bug #439394 : real-time jitter problem when accessing
/proc. Real time processes handling SIGALRM signals
generated by interval timers experience occasional
delays when being accessed through /proc. The jitter
is removed as long as /proc access is read-only and
process has no watchpoints.
o Bug #439590 : streams perf problem. Added a tuneable
parameter, monqtimeout, that can be adjusted by
systune(1m) to alter the timeout between a
streams_interrupt() call and the processing of any
deferred streams requests. The default value is 2 ticks
(previous value). The allowed values for "monqtimeout"
are 0, 1, 2. Lower values will decrease the latency
and thus improve streams performance for streams
networking using the global streams monitor.
o Bug #442793 : Use cache aliasing and duplicate cache
tag writes instead of secondary cache ops on IP25
systems for SBE and cache error recovery.
Bugs fixed in Patch SG0001569:
o Bug #414116 : This patch has a code modification to
avoid a known hardware bug for the Challenge/POWER
Challenge/Onyx platforms with R4400 and R10000
processor.
o Bug #417299 : IP22 only: system hangs while performing
network-intensive operations. The mouse cursor doesn't
move, no crash dump is produced, the power button
doesn't work; a ``paperclip reset'' is required.
o Bug #419742 : This patch fixes a bug in the
performance monitoring code for the R10000.
o Bug #435141 : Put in validity checks for user-passed
arguments for setitimer/getitimer calls.
Bugs fixed in Patch SG0001488:
o Bug #290185 : Fixes stack underflow/overflow crash
that occurs during branch at end of page correction.
o Bug #348498 : Allow system dumps to be directed to
/dev/dump instead of default swap device if /dev/dump
exists. If /dev/dump does not exist, then /dev/swap
will be used as before.
o Bug #396013 : Minor tuneup and optimization of the low
level interrupt handling code for IP19 and IP25
platforms.
o Bug #399759 : Calls to rename() for files in loopback
filesystems were failing.
o Bug #404913 : Kernel could lock up in an endless loop
in code which handles shared text pages modified for
processor-specific workarounds.
o Bug #404995 : Guard against negative and other illegal
process group IDs in function BSDsetpgrp().
Bugs fixed in Patch SG0001534:
o Bug #397611 : For IP25 only, this fix is to prevent
system hardware deadlock which results in a IO4
EBUS_TIMEOUT error.
o Bug #399891 : For IP25 only, this fix is to prevent
Mbuf corruption seen in ipg code.
Bugs fixed in Patch SG0001429:
o Bug #254494 : The readv() and writev() system calls
could not be used in conjunction with direct I/O.
o Bug #371229 : The /var/sysgen/Makefile.kernio supplied
with 6.2 did not have the compile options for the IP25.
This patch supplies a new version of the file with the
IP25 compile options specified.
o Bug #383422 : R10K perf counters bug where if the user
was getting a signal on overflow, then the counts were
inexact.
o Bug #384003 : libfpe on R8K loops on an FPE when used
with SpeedShop.
o Bug #385308 : R10K perf counters bug where the
counters weren't read from the appropriate cpu.
o Bug #391815 IP28 system ECC error handler fix. A
missing label could cause the ECC error handler on IP28
systems to fail in random ways.
o Bug #395329 : Add support for Indigo2 IMPACT 10000
(IP28) to kernel rollup.
o Bug #400456 : R10K Cache error recovery code for
primary data cache and secondary cache errors could
incorrectly invalidate a dirty line under some
circumstances.
o Bug #403192 : Applications using large Shared Memory
segments (greater than 500 Megs) can cause kernel
virtual memory to be exhausted. This happens when a lot
of independent processes (hundreds) are attaching to
the same SHM segment. On large configurations, several
Relational Databases may exhibit this behavior. If the
kernel virtual memory becomes exhausted the system
appears unable to perform any work and a reboot is
necessary. This patch fixes this problem, by allowing
independent processes to share the kernel data
structures that describe their address space. These
data structures are called Page Tables and contain
information about the virtual to physical address
translation. For instance let's assume that a SHM
segment has size 750 Megabytes and 500 processes are
attached to it. With private Page Tables IRIX uses 375
Megabytes of Kernel Memory. With shared Page Table
IRIX uses 750 Kilobytes. Another big benefit of
sharing Page Table is speed. In fact any new process
attaching to the SHM segment benefits from the page
faulting activity performed by other attached
processes. This dramatically reduces the number of
page faults and makes a great difference in the overall
performance. This patch is highly recommended for
installation running large Oracle Data Bases.
Processes that want to make use of this feature should
specify a special flags when calling shmat. This option
is only available if both the attaching address and the
size of the SHM segment satisfy appropriate
restrictions. See shmat(2) for detailed information.
Bugs fixed in Patch SG0001389:
o Bug #313568 : The kernel did not contain certain
performance enhancements which are need for a future
release of SoftWindows.
o Bug #357358 : Access to XFS file systems could hang
under load from a large number of processes. The
portion of this bug fix requiring changes to generic
kernel subsystems is included in this patch. The other
portion of the fix is in the XFS rollup patch.
o Bug #373353 : The shaked system daemon would sometimes
appear to run out of control when the available memory
in the system ran low.
Bugs fixed in Patch SG0001353:
o Bug #359208 : Some multiple IO4 IP21 systems
experience g-cache errors upon upgrading to 6.2. The
software workaround for 323277 uncovers another
hardware problem with the IP21 cpu which causes those
cpus to report g-cache parity errors. The fix
contained in this patch either eliminates or
dramatically reduces the rate of occurrence of this g-
cache problem. Also fixes bug in workaround for 323277
which could occur on IP21 systems with more than 4 GB
of physical memory.
o Bug #370236 : statfs fails for nfs mount points if the
backing filesystem is loopback mounted on the server,
as is the case with ISO9660 and DOS file systems.
Bugs fixed in Patch SG0001323:
o Bug #375618 : The R5000 Rev. 1.1 processor sometimes
executes cvt.d.l and cvt.s.l incorrectly.
o Bug #379617 : The initial workaround for the R5000
Rev. 1.1 problem in regard a load or store in the delay
slot of a branch at the end of an odd page introduced
more system overhead than was necessary. This patch
makes the overhead negligible.
Bugs fixed in Patch SG0001243:
o Bug #362736 : A chip bug cause my ebus data error on
IP25.
Bugs fixed in Patch SG0001222:
o Bug #354768 : If the syssgi call for T5 counter
profiling is made on an R4K machine, the call generates
a signal, rather than just returning an error. For
consistency with other calls, it should just return an
error (ENODEV seems reasonable). The current behavior
is not how the man page reads.
o Bug #363194 : User level VME probe operations that
failed would cause panic. This occurs on IP25 only.
o Bug #365043 : File system ``unique universal
identifiers'' (UUIDs) were not always unique. This
could cause problems in XFS and XLV.
o Bug #366384 : This bug would cause the prda to become
corrupted on machines using the R4600 processor.
o Bug #376366 : Logged but undisplayed recoverable cache
errors were not printed on system panic. This problem
occurs on IP25 only.
o Bug #417900 : Fixed bug where sproc'ed processes may
see kernel Instruction Bus Error panics with some
kernels, depending on how they were linked. This
problem occured on IMPACT 10000 (IP28) only.
o Bug #464517 : Fixed bug kernel's emulate_branch code.
This scenario can happen whenever there is a floating
point instruction in the shadow of one of these
branches. Found because the exponential function in
libfastm was sometimes failing.
o Bug #483230 : Made an optimization in the code dealing
with shaddr sproc processes which are being debugged
and had locked instruction pages. Each sproc being
debugged would get its own copy of all the locked
instruction pages, leading to bloat. This page copying
has been minimized so that only the page which is being
modified by the debugger (eg for setting breakpoints)
will be made private to the target sproc.
o Bug #493505 : While taking an nmi kernel dump, set a
special variable to enable the code not to wait for
spinlocks (putbuf lock).
o Bug #581708 : The scheduler maintains processor
affintity for processes by keeping the processes in
local queues until their affinity to the processor
expires (usually about 10 milliseconds). However, due
to a bug in the routine that clears the local queues,
some of the local queues were not being scanned;
particularly, the absolute priority queue was being
skipped. With recent changes to XFS, processes waking
up from certain I/O operations were being granted an
absolute priority, and hence such processes would be
more prone to being under-serviced in the local queue
of a processor.
1.4 Subsystems Included in Patch SG0003566
This patch release includes these subsystems:
o patchSG0003566.dev_man.irix_lib
o patchSG0003566.eoe_hdr.lib
o patchSG0003566.eoe_sw.kdebug
o patchSG0003566.eoe_sw.perf
o patchSG0003566.eoe_sw.unix
o patchSG0003566.nfs_sw.dskless_client
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. The inst program does not allow you to install
patches that are incompatible with your hardware or
software.
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> prompt, type
install patchSGxxxxxxx
where xxxxxxx is the patch number.
2. Initiate the installation sequence. Type
Inst> go
3. You may find that two patches have been marked as
incompatible. (The installation tools reject an
installation request if an incompatibility is
detected.) If this occurs, you must deselect one of
the patches.
Inst> keep patchSGxxxxxxx
where xxxxxxx is the patch number.
4. After completing the installation process, exit the
inst program by typing
Inst> quit
1.6 Patch Removal Instructions
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.
1.7 Known Problems
The fix for bug #497089 require that patch #2054 (or
successor streams rollup patch) and this patch be installed
together. If patch #2054 or a successor streams rollup
patch is not installed, then the fix for for bug #497089
will be inactive. The two patches may be installed in
either order.
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): 09662 11 ./patchSG0003566.eoe_hdr 63609 102 ./patchSG0003566.idb 06535 28 ./patchSG0003566.dev_man 27360 81 ./README 24299 148 ./patchSG0003566.nfs_sw 65173 4626 ./miniroot/unix.IP22 22274 4146 ./miniroot/unix.IP20 18794 9028 ./miniroot/unix.IP21 62297 7483 ./miniroot/unix.IP26 10313 9295 ./miniroot/unix.IP25 30867 7952 ./miniroot/unix.IP28 40784 9715 ./miniroot/unix.IP19 27360 81 ./README.patch.3566 10487 35 ./patchSG0003566 47526 27594 ./patchSG0003566.eoe_sw INST SUBSYSTEM FILE LISTINGS The following lists the files which get installed from each subsystem in the patch:
DOWNLOAD PATCH
|
||||||||||||||||||||||||||||||||||||
Document Id: 20021117074326-IRIXPatch-1355
|
||||||||||||||||||||||||||||||||||||