an array "fs_contigdirs[]" to avoid too many directories getting
created in each cylinder group. The memory required for this and
two other arrays (fs_csp[] and fs_maxcluster[]) is allocated with
a single malloc() call, and divided up afterwards. However, the
'space' pointer is not advanced correctly, so fs_contigdirs and
fs_maxcluster end up pointing to the same address.
Add the missing code to advance the 'space' pointer, and remove
an unnecessary update of the pointer that follows.
This is likely to fix the "ffs_clusteralloc: map mismatch" panics
that have been reported recently.
Submitted by: Luke Mewburn <lukem@wasabisystems.com>
message. Some scsi devices have rather elaberate flags, and it is
hard to know which ones were specified in pccard.conf when debug
information only includes the dmesg.
with the last change to the way the pmap_emulate_reference() works. This
should fix a number of memory corruption problems and also should stop the
mtimes of executables changing all the time.
o Define ELFMAG and SELFMAG as an alternative to test the ELF magic.
ELFMAG is the magic; SELFMAG is the size of the magic. Use with
strncmp() or memcmp().
o Define SHT_NUM as the number of predefined sections.
Note: style(9) deviation for consistency.
me (addition of vn_rdwr_inchunks). The problem Yahoo is solving is that
if you have large process images core dumping, or you have a large number of
forked processes all core dumping at the same time, the original coredump code
would leave the vnode locked throughout. This can cause the directory vnode
to get locked up, which can cause the parent directory vnode to get locked
up, and so on all the way to the root node, locking the entire machine up
for extremely long periods of time.
This patch solves the problem in two ways. First it uses an advisory
non-blocking lock to abort multiple processes trying to core to the same
file. Second (my contribution) it chunks up the writes and uses bwillwrite()
to avoid holding the vnode locked while blocking in the buffer cache.
Submitted by: ps
Reviewed by: dillon
MFC after: 2 weeks
o Introduce private types for use in linux syscalls for two reasons:
1. establish type independence for ease in porting and,
2. provide a visual queue as to which syscalls have proper
prototypes to further cleanup the i386/alpha split.
Linuxulator types are prefixed by 'l_'. void and char have not
been "virtualized".
o Provide dummy functions for all syscalls and remove dummy functions
or implementations of truely obsolete syscalls.
o Sanitize the shm*, sem* and msg* syscalls.
o Make a first attempt to implement the linux_sysctl syscall. At this
time it only returns one MIB (KERN_VERSION), but most importantly,
it tells us when we need to add additional sysctls :-)
o Bump the kenel version up to 2.4.2 (this is not the same as the
KERN_VERSION MIB, BTW).
o Implement new syscalls, of which most are specific to i386. Our
syscall table is now up to date with Linux 2.4.2. Some highlights:
- Implement the 32-bit uid_t and gid_t bases syscalls.
- Implement a couple of 64-bit file size/offset bases syscalls.
o Fix or improve numerous syscalls and prototypes.
o Reduce style(9) violations while I'm here. Especially indentation
inconsistencies within the same file are addressed. Re-indenting
did not obfuscate actual changes to the extend that it could not
be combined.
NOTE: I spend some time testing these changes and found that if there
were regressions, they were not caused by these changes AFAICT.
It was observed that installing a RH 7.1 runtime environment
did make matters worse. Hangs and/or reboots have been observed
with and without these changes, so when it failed to make life
better in cases it doesn't look like it made it worse.
1. establish type independence for ease in porting and,
2. provide a visual queue as to which syscalls have proper
prototypes to further cleanup the i386/alpha split.
Linuxulator types are prefixed by 'l_'. void and char have not
been "virtualized".
o Provide dummy functions for all unimplemented syscalls, except for
the osf1 syscalls. This can only be done if the osfulator
implements at least all syscalls used by the linuxulator. Remove
dummy functions for syscalls that are now truely unimplemented.
o Set the syscall namespace as follows: Mark a syscall as OSF1 if
the Linux kernel has prefixed the syscall with 'osf_' and has
provided special implementations for it. Otherwise mark the
syscall as LINUX by default. Some of the LINUX syscalls remain
marked as BSD or POSIX.
o Rename syscalls so they match the names used in the Linux kernel.
Also, provide more accurate prototypes. This generally improves
cross-referencing and reduces head-scratching.
o Fix the (g|s)etresuid syscalls. They mapped to (g|s)etresgid.
o Sanitize the the shm*, sem* and msg* syscalls. Their prototypes
were dictated by the way these syscalls were used in the i386
code. That has been fixed. NOTE: linux_semctl now passes it's
'arg' parameter by value and not by reference.
o Fix prototype of linux_utime. It takes a struct timeval, not a
struct utimbuf.
o Fix the linux_sysfs syscall. It's index is not 255, but 254.
o Implement the following syscalls:
linux_sysctl
o Add the following new syscalls:
(g|s)etresgid
linux_pivot_root (dummy)
linux_mincore (dummy)
linux_pciconfig_iobase (dummy)
linux_getdents64
1. establish type independence for ease in porting and,
2. provide a visual queue as to which syscalls have proper
prototypes to further cleanup the i386/alpha split.
Linuxulator types are prefixed by 'l_'. void and char have not
been "virtualized".
o Remove dummy functions for syscalls that are now truely
unimplemented.
o Rename syscalls so they match the names used in the Linux kernel.
Also, provide more accurate prototypes. This generally improves
cross-referencing and reduces head-scratching.
o Provide seperate implementations for the 16-bit uid_t and gid_t
based syscalls as Linux used to have. The new 32-bit uid_t and
gid_t based syscalls now map to their FreeBSD equivalents.
o Fix the linux_ipc syscall so that it doesn't force the shm*, sem*
and msg* syscalls to have the same syscall. The prototypes for
these syscalls now match the those used on Alpha. While here,
add the same kludge for MSGRCV as is present in the Linux kernel.
o Implement the following syscalls:
linux_stat64, linux_lstat64 and linux_fstat64
linux_sysctl
o Added syscalls numbered 198 - 221. This include:
- the 32-bit uid_t and gid_t bases syscalls
- 64-bit file offset/size based syscalls
allow an in-kernel webserver (or similar) to accept
and handle incoming connections using netgraph without ever leaving the
kernel. (allows incoming tunnel requests to be
handled totally within the kernel for example)
Needs work, but shouldn't break existing functionality.
Submitted by: John Polstra <jdp@polstra.com>
MFC after: 2 weeks
Avoid fully initialising the ACPI namespace if we are attempting to avoid
parts of it. This is a workaround for some systems that still crash
the interpreter.
Implement the ISA_IVAR_LOGICALID for ISA compatibility. Implement stubs
for other PnP ID-related ivars.