84222 Commits

Author SHA1 Message Date
jake
dff1689779 - Fix a bug where the faulting address for an mmu miss could sometimes be
clobbered due to some debug code.  This was harmless and just superfluous
  soft faults.
- Update some comments.
2002-12-23 02:18:45 +00:00
jake
8355ab5ec5 - Rearrange pmap_bootstrap slightly to be more in dependency order.
- Put the kernel tsb before before the kernel load address, below
  VM_MIN_KERNEL_ADDRESS, instead of after the kernel where it consumes
  usable kva.  This is magic mapped so the virtual address is irrelevant,
  it just needs to be out of the way.
2002-12-22 23:01:14 +00:00
dillon
c7acde574f Forgot to add rcconf.sh to the Makefile, and forgot to rename rcconf to
rcconf.sh in the last commit.
2002-12-22 22:25:53 +00:00
dillon
59db35bde2 Do not unconditionally load the configuration files for the RCNG case.
Instead, load them as part of the rc.d system.  This allows us to prioritize
the initidiskless script so it runs before the configuration files are loaded
and allows us to get rid of the exit 2 hack in /etc/rc.  The exit 2 never
worked anyway since it did not unset the prior configuration, causing the
diskless code to not operate properly.

Do a major cleanup and revamping of the diskless code for RCNG.  This will
be backported to the non-RCNG scripts as well as -stable.

With suggestions from: Mike Makonnen <mtm@identd.net>
MFC after:	7 days
2002-12-22 22:18:41 +00:00
mike
f2916da279 Add suseconds_t and useconds_t for storing microseconds. 2002-12-22 22:02:41 +00:00
dwmalone
21a52f8f3f Use '\033' rather than '\e' as the latter is a gccism.
PR:             46015
Submitted by:   Jeroen Ruigrok van der Werven <asmodai@wxs.nl>
MFC after:      1 week
2002-12-22 21:35:14 +00:00
schweikh
687750af7d english(4) police. 2002-12-22 21:04:59 +00:00
jake
02d8249471 - Add a spin lock to single thread cache invalidation and tlb flush ipis,
which allows ipis to be sent outside of Giant.
- Remove the ap boot mutex, which is unused.
2002-12-22 20:50:23 +00:00
kris
a658b7f4f9 Enforce correct ordering of the filedesc structure and pipe mutex, because
WITNESS can get the order wrong if it guesses based on first use.

Reviewed by:	jhb, alfred
2002-12-22 16:32:34 +00:00
pb
4fcb40fba4 Fix typo: vunerable -> vulnerable. 2002-12-22 15:29:48 +00:00
schweikh
b45cee5f77 Correct minor grammos.
MFC after:	3 days
2002-12-22 14:39:23 +00:00
pb
9e78a73e62 Remove forgotten INP_UNLOCK(inp) in my previous commit.
Reported by: hsu
2002-12-22 13:04:08 +00:00
kan
026b4cc01b Add a word, lost in previos commit. 2002-12-22 07:08:14 +00:00
kan
c043df2229 Add note about GCC -fno-pcc-struct-return being default again. The
breakage window was about 18 days long.

Submitted by:	juli
Approved by:	re (rwatson)
2002-12-22 07:00:45 +00:00
kan
7c2123d512 Back out the -fpcc-struct-return fixes.
Approved by:	re (rwatson)
2002-12-22 06:41:09 +00:00
tjr
0fa1ae4aca MB_LEN_MAX is not MD, move it to the MI limits.h. 2002-12-22 06:38:45 +00:00
kan
16d547a294 Fix a bug in GCC which effectively prevents DEFAULT_PCC_STRUCT_RETURN from
having any effect. This restores a calling convention traditionally used
by FreeBSD/i386 and which is expected by a number of assembly sources
in libc.

Reviewed by:	obrien
Approved by:	re (rwatson)
2002-12-22 05:57:53 +00:00
hsu
82e1e3bab0 SMP locking for ifnet list. 2002-12-22 05:35:03 +00:00
dillon
2afef11c57 The UP -current was not properly counting the per-cpu VM stats in the
sysctl code.  This makes 'systat -vm 1's syscall count work again.

Submitted by:	Michal Mertl <mime@traveller.cz>
Note:		also slated for 5.0
2002-12-22 05:04:30 +00:00
dillon
8a34ca48d9 Revert part of the last commit. Do not fake-up the cylinders to make
the sectors fit (at least, don't fake them up any more then they are
already faked up).
2002-12-22 04:46:44 +00:00
jmallett
785e008f9b Fix style (no space after return, twice-too-big continuation) and
cast (casting long to a void pointer, rather than intptr_t to a
void pointer) bogons.

Reviewed by:	bde
2002-12-22 03:20:16 +00:00
dillon
3c0d125aa8 So many people have asked me to describe my development environment that
my fingers are getting tired.  Here is a new manual page, 'development',
which describes a very powerful, generic, exportable development environment
suitable to developers, sysops, admins, and anyone at all who is
maintaining more the one FreeBSD box.  I have used this type of environment
for many years and have had to make virtually no changes to it for all that
time.

MFC after:	3 days
2002-12-22 02:07:05 +00:00
jake
e78787e4ef - Add a pmap pointer to struct md_page, and use this to find the pmap that
a mapping belongs to by setting it in the vm_page_t structure that backs
  the tsb page that the tte for a mapping is in.  This allows the pmap that
  a mapping belongs to to be found without keeping a pointer to it in the
  tte itself.
- Remove the pmap pointer from struct tte and use the space to make the
  tte pv lists doubly linked (TAILQs), like on other architectures.  This
  makes entering or removing a mapping O(1) instead of O(n) where n is the
  number of pmaps a page is mapped by (including kernel_pmap).
- Use atomic ops for setting and clearing bits in the ttes, now that they
  return the old value and can be easily used for this purpose.
- Use __builtin_memset for zeroing ttes instead of bzero, so that gcc will
  inline it (4 inline stores using %g0 instead of a function call).
- Initially set the virtual colour for all the vm_page_ts to be equal to their
  physical colour.  This will be more useful once uma_small_alloc is
  implemented, but basically pages with virtual colour equal to phsyical
  colour are easier to handle at the pmap level because they can be safely
  accessed through cachable direct virtual to physical mappings with that
  colour, without fear of causing illegal dcache aliases.

In total these changes give a minor performance improvement, about 1%
reduction in system time during buildworld.
2002-12-21 22:43:19 +00:00
imp
94d1ceabe0 Be nice. There are evidentally a number of different cards that
identify themselves as serial cards that it would be desirable to
attach a different driver than sio to.  Since we are claiming all
serial cards, this is not possible.  Instead, return -100 to indicate
that we're willing to take the card, but still allow other drivers to
attach.

Pointed out by: Maksim Yevmenkin
2002-12-21 22:37:54 +00:00
trhodes
629bbce50c Make newsyslog(8) print the correct date when the logs are turned over.
PR:		46395
Submitted by:	maxim
MFC:		eventually
2002-12-21 22:27:26 +00:00
bbraun
d025aceb5b Reduce libc's memory footprint by lazily allocating memory used internally
by setproctitle().

Reviewed by: jkh
2002-12-21 22:04:50 +00:00
dillon
63da09d1e6 do not try to free a mountpoint that we did not allocate.
X-MFC after:	immediately
2002-12-21 20:55:34 +00:00
pb
adc4b142ac In syncache_timer(), don't attempt to lock the inpcb structure
associated with the syncache entry: in case tcp_close() has been
called on the corresponding listening socket, the lock has been
destroyed as a side effect of in_pcbdetach(), causing a panic when
we attempt to lock on it.

Reviewed by:	hsu
2002-12-21 19:59:47 +00:00
des
a9741e060a The previous commit contained a stupid mistake: ctxt->pam_[cp]sock was
initialized after the call to pthread_create() instead of before.  It just
happened to work with threads enabled because ctxt is shared, but of
course it doesn't work when we use a child process instead of threads.
2002-12-21 15:09:58 +00:00
tjr
c877a609a9 Mark the INVALID keyword as being deprecated since the concept of
"invalid runes" is useless without the rest of the deprecated rune interface.
2002-12-21 11:37:05 +00:00
jake
74619d7495 Make pmap_qenter and pmap_qremove look more like the other pmaps. 2002-12-21 10:44:30 +00:00
tjr
c6a59dac98 Add the -P option which executes multiple copies of the specified utility
in parallel. Idea from GNU xargs.
2002-12-21 10:17:13 +00:00
jake
0f6e64a394 Removed unused pmap_qenter_flags. 2002-12-21 10:04:14 +00:00
jake
fba4477d95 Make the atomic arithmetic functions return the old value, since they're
all implemented with cas anyway.
2002-12-21 08:53:26 +00:00
bbraun
6e7d1bfe4c Reduce libc.so's memory footprint by lazily allocating memory used internally
by basename() and dirname().
Reviewed by: eric
2002-12-21 07:12:35 +00:00
tjr
4d5ffd6782 Import newer versions of div() and ldiv() from NetBSD which handle
the -fpcc-struct-return calling convention properly instead of
returning garbage. This may break backwards compatibility with some old
binaries that were compiled when -fno-pcc-struct-return was the default.
2002-12-21 05:11:39 +00:00
obrien
b5dd8790dc -mno-align-long-strings can make things smaller, so lets use it in hopes
that it does here.
2002-12-21 02:03:31 +00:00
marcel
b50430dafa Fix multiple registration of the elf_legacy_coredump sysctl variable.
The duplication is caused by the fact that imgact_elf.c is included
by both imgact_elf32.c and imgact_elf64.c and both are compiled by
default on ia64. Consequently, we have two seperate copies of the
elf_legacy_coredump variable due to them being declared static, and
two entries for the same sysctl in the linker set, both referencing
the unique copy of the elf_legacy_coredump variable. Since the second
sysctl cannot be registered, one of the elf_legacy_coredump variables
can not be tuned (if ordering still holds, it's the ELF64 related one).

The only solution is to create two different sysctl variables, just
like the elf<32|64>_trace sysctl variables. This unfortunately is an
(user) interface change, but unavoidable. Thus, on ELF32 platforms
the sysctl variable is called elf32_legacy_coredump and on ELF64
platforms it is called elf64_legacy_coredump. Platforms that have
both ELF formats have both sysctl variables.

These variables should probably be retired sooner rather than later.
2002-12-21 01:15:39 +00:00
tjr
db60a5d963 Remove unimplemented System V options from the getopt() option string. 2002-12-21 00:38:14 +00:00
dillon
093dfa7f7d Revamp the way rc.diskless1 creates and populates memory filesystems. Make
the whole thing generic.  That is, /conf/base, /conf/default,
/conf/${ipba}, and /conf/${ip} are all handled the same way.

Introduce an NFS remounting feature via the /conf/base/<dir>/diskless_remount
so you can avoid dup'ing system directories in /conf (described in rc file).

Introduce a memory filesystem sizing feature via the /conf/base/<dir>/md_size
file that allows you to override the default memory filesystem size.

Introduce a file containing relative paths to remove for each memory filesystem
directory as /conf/base/<dirname>.remove.

Make the cpio feature more generic (applies to any filesystem) (aka
/conf/base/<dirname>.cpio.gz).

Allow any root directories to be created as a memory filesystem via the
/conf/*/* mechanism.

Replace the copyright notice with a reference to the COPYRIGHT file and
do other cleanups.

(documentation and man page updates to follow).

MFC after:	3 days
2002-12-21 00:30:08 +00:00
sam
8de8a7fb5c replace the special-purpose rate-limiting code with the general facility
just added; this tries to maintain the same behaviour vis a vis printing
the rate-limiting messages but need tweaking
2002-12-21 00:08:20 +00:00
sam
a69a0ac712 define HAVE_PPSRATECHECK now that we have this stuff in the kernel
(probably belongs elsewhere; add it this way for now so the system
will build)
2002-12-20 23:57:22 +00:00
sam
78550cc698 add generic rate limiting support from netbsd; ratelimit is purely time based,
ppsratecheck is for controlling packets/second

Obtained from:	netbsd
2002-12-20 23:54:47 +00:00
jake
d522abfb6d Add page queue locking around functions that call vm_page_flag_set. This
fixes a failed assertion early in boot on sparc64.

Reported by:	Roderick van Domburg <r.s.a.vandomburg@student.utwente.nl>
2002-12-20 21:47:21 +00:00
alc
31d637dca5 Extend the scope of the page queues lock in vm_pgmoveco(). 2002-12-20 21:18:29 +00:00
alc
cf1d112d8e Increase the scope of the kmem_object locking in kmem_malloc(). 2002-12-20 18:59:23 +00:00
dillon
1ce25ddc40 Modify the fake cylinders calculation so it is >= the size of the device,
not < the size of the device.  This avoids geom complaints.

Fix a serious bug in the handling of the RS_NO_CLEAR_UA quirk.  When we
go and insert the test-unit-ready command the umass_cam_quirk_cb() function
sets the status as if the READ_CAPACITY command suceeded when, in fact, it
did not.  This leads to the CAM layer trying to use garbage in the return
buffer and panicing the system (or doing other bad things).

Add a quirk entry for MSYSTEMS DISK-ON-KEY, which is sold under the Sony
brand as a solid state disk-on-key usb device.  This device requires
several quirks to work properly.

Note that the disk-on-key device will not work properly until CAM also
gets a quirk entry for it, which has been submitted to the CAM maintainer,
and you may have to temporarily uncomment the DELAY() as well.  -current
does not properly wait for devices to power up so you may also have
to temporarily uncomment the DELAY(300000) to make your device work.
A solution must be found to that issue.

MFC after:	3 days
X-MFC note:	the quirk support must MFCd before this patch can be
2002-12-20 18:56:55 +00:00
dillon
5102bb345b Fix two bugs in the DMA chaining code for OHCI. The first bug is that
the dataphysend calculation could only possibly work if the virtual buffer
is also physically contiguous.  Calculate dataphysend by calculating the
ending virtual address first, then converting to a physical address.

The second bug applies only to NetBSD and OpenBSD and involves the curlen
calculation in the two-contiguous-physical-pages case (which we don't support).

Also cleanup the use of the OHIC_PAGE() macro on dataphysend and add a panic
if len goes negative (meaning we lost the physical page translation
representing the end of the buffer).

IMHO the dataphysend is still bokered since it might be misrepresented
by shared userland page mappings.  The whole section needs to be rewritten
to use the virtual address range.

MFC after:	3 days
2002-12-20 18:47:39 +00:00
mux
516031bb16 Don't forget to destroy the mutex if an error occurs
in the jail() system call.

Submitted by:	Pawel Jakub Dawidek <nick@garage.freebsd.pl>
2002-12-20 14:32:20 +00:00
ru
c01cb9bac0 mdoc(7) police: Fixed language. 2002-12-20 12:41:26 +00:00