Commit Graph

88037 Commits

Author SHA1 Message Date
Jake Burkholder
7dafcb6914 - Add space for kernel floating point registers to the pcb. These will be
used to support block copy and zero operations in the kernel which use the
  floating point registers.
- While I'm changing the size, improve the layout of struct pcb, sort by size,
  then alphabetical etc.
- Add some assertions to validate assumptions made about how the pcb is
  allocated.
2003-04-03 18:28:03 +00:00
Jake Burkholder
8e4f1e2b8a - Generally improve register usage in cpu_switch. Use the 'in' registers
for temporaries relating to the state of the new process instead of the
  outs, so that functions can be called without fear of clobbering them.
- Use savefpctx instead of rolling our own.
2003-04-03 16:36:01 +00:00
Dag-Erling Smørgrav
91b928c950 <sys/disk.h> -> <geom/geom_disk.h> 2003-04-03 16:28:57 +00:00
Jake Burkholder
02798ad7e0 Don't assume the fp state is at offset 0 in the pcb. 2003-04-03 16:04:18 +00:00
Jake Burkholder
1db34e9d43 Fix typos (don't use * when taking the size of an array). 2003-04-03 15:50:17 +00:00
Maxime Henrion
e609b4d7db Remove all the bogus volatile qualifiers from the structs definitions
and associated evil casts to discard them.
2003-04-03 14:08:35 +00:00
Yoshihiro Takahashi
335ac29ccd MFi386: revision 1.188 2003-04-03 12:39:51 +00:00
Yoshihiro Takahashi
514301992a MFi386: revision 1.561 2003-04-03 12:39:18 +00:00
Poul-Henning Kamp
1e01677906 Don't pull in geom_enc.c any more. 2003-04-03 12:36:56 +00:00
Poul-Henning Kamp
76c4109ebb #include <sys/endian.h> as needed. 2003-04-03 11:56:10 +00:00
Poul-Henning Kamp
4d3651f456 Remove geom_enc.c, a superset of these functions are now available in
<sys/endian.h>
2003-04-03 11:40:06 +00:00
Poul-Henning Kamp
d8cb8a5137 Use <sys/endian.h> instead of geom_enc.c for endianess-agnostification. 2003-04-03 11:36:53 +00:00
Poul-Henning Kamp
82db45a5af Use sys/endian.h instead of geom_enc.c for endian-agnostfication. 2003-04-03 11:33:51 +00:00
Poul-Henning Kamp
4a36c1fdf3 Pointy hat commit:
Don't Cut&Paste from big endian to little endian function without subsequent
adjustments.
2003-04-03 11:32:01 +00:00
Poul-Henning Kamp
68f156409e Make sure we don't ignore error codes. 2003-04-03 11:19:24 +00:00
Poul-Henning Kamp
43e7e03ae6 Use "unsigned char" instead of "u_char" to avoid trouble. 2003-04-03 10:21:58 +00:00
Poul-Henning Kamp
8f24aac6b9 Add support for Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232
Submitted by:	sst@cybercity.dk
2003-04-03 09:47:15 +00:00
Poul-Henning Kamp
21ee4ab688 Add inline functions {be,le}{16,32,64}{enc,dec}() for encoding decoding
into byte strings of unknown alignment.
2003-04-03 08:58:04 +00:00
Poul-Henning Kamp
9f88fdfb88 NO_GEOM cleanup: Remove dkmakeminor(). 2003-04-03 08:51:22 +00:00
Poul-Henning Kamp
3ad3653c7a Don't use dkmakeminor(), create our own minor encoding instead. 2003-04-03 08:50:35 +00:00
Poul-Henning Kamp
70f7e53da1 Don't use dkmakeminor(), it has nothing to do with CDroms. 2003-04-03 08:49:49 +00:00
Warner Losh
2949da0a2e 2.x->3.0 upgrade tools are no longer needed. 5.x is unlikely to fit
on a 2.1/2.2 root disk anyway.

OK'd by: peter
2003-04-03 05:44:08 +00:00
Warner Losh
5e9b1e9f3c Kill upgrade target docs. It too is stale.
Submitted by: ru
2003-04-03 05:34:36 +00:00
Warner Losh
3226556327 Kill aout to elf upgrade path. From an old comment in the makefile:
# If -DWANT_AOUT is specified, a `make world' with OBJFORMAT=elf will
# update the legacy support for aout. This includes all libraries, ld.so
# and boot objects. This part of build should be regarded as
# deprecated and you should _not_ expect to be able to do this past the
# release of 4.0. You have exactly one major release to move entirely
# to elf.

Now that we're past 5.0, these aren't needed at all anymore and it is
well past its freshness date.
2003-04-03 05:28:09 +00:00
Juli Mallett
02a0965ef6 MFp4 @27667: WARNS=5 cleanup on i386.
Remove the unused FILE\ *tf from print_mesg args, and the
    bogus passing in of an uninitialised FILE* for it.

    Call a timeval 'now' instead of 'clock' due to shadowing.

    Remove a nested localtime declaration.

    Make the delete invite argument match the ID type, u_int32_t.

    Use const for pointers to const items.

    Cast to long where printing as such.

    Include netinet/in.h for htonl/htons.

Reviewed by:	imp
2003-04-03 05:13:27 +00:00
Jake Burkholder
55ad402a8f - Pass a ucontext_t to _set_curthread. If non-NULL the new thread is set
as curthread in the new context, so that it will be set automatically when
  the thread is switched to.  This fixes a race where we'd run for a little
  while with curthread unset in _thread_start.

Reviewed by:	jeff
2003-04-03 03:34:50 +00:00
Jeff Roberson
a8949de20e - Keep seperate statistics and run queues for different scheduling classes.
- Treat each class specially in kseq_{choose,add,rem}.  Let the rest of the
   code be less aware of scheduling classes.
 - Skip the interactivity calculation for non TIMESHARE ksegrps.
 - Move slice and runq selection into kseq_add().  Uninline it now that it's
   big.
2003-04-03 00:29:28 +00:00
Peter Wemm
cc66ebe2a9 Commit a partial lazy thread switch mechanism for i386. it isn't as lazy
as it could be and can do with some more cleanup.  Currently its under
options LAZY_SWITCH.  What this does is avoid %cr3 reloads for short
context switches that do not involve another user process.  ie: we can
take an interrupt, switch to a kthread and return to the user without
explicitly flushing the tlb.  However, this isn't as exciting as it could
be, the interrupt overhead is still high and too much blocks on Giant
still.  There are some debug sysctls, for stats and for an on/off switch.

The main problem with doing this has been "what if the process that you're
running on exits while we're borrowing its address space?" - in this case
we use an IPI to give it a kick when we're about to reclaim the pmap.

Its not compiled in unless you add the LAZY_SWITCH option.  I want to fix a
few more things and get some more feedback before turning it on by default.

This is NOT a replacement for Bosko's lazy interrupt stuff.  This was more
meant for the kthread case, while his was for interrupts.  Mine helps a
little for interrupts, but his helps a lot more.

The stats are enabled with options SWTCH_OPTIM_STATS - this has been a
pseudo-option for years, I just added a bunch of stuff to it.

One non-trivial change was to select a new thread before calling
cpu_switch() in the first place.  This allows us to catch the silly
case of doing a cpu_switch() to the current process.  This happens
uncomfortably often.  This simplifies a bit of the asm code in cpu_switch
(no longer have to call choosethread() in the middle).  This has been
implemented on i386 and (thanks to jake) sparc64.  The others will come
soon.  This is actually seperate to the lazy switch stuff.

Glanced at by:  jake, jhb
2003-04-02 23:53:30 +00:00
Jeff Roberson
996a395d37 - Don't overrun the ldt buffer.
Submitted by:	gordan@freebsd.org
2003-04-02 22:53:52 +00:00
Robert Watson
6ab0d6c220 When kill(-1) returns ESRCH, it could be because the current process
doesn't have a process group, which can occur if you're working with
a custom init that doesn't set up a full tty context.  Rather than
refusing to reboot, ignore ESRCH from the kill attempt in reboot(8).
2003-04-02 22:13:56 +00:00
John Baldwin
6751370f6f Lock the process before sending it a SIGIO. Not doing so is a panic(2)
implementation with INVARIANTS.
2003-04-02 21:54:51 +00:00
Poul-Henning Kamp
316aed030e Add handling for cancelled events in the g_call_me() methods. 2003-04-02 21:10:04 +00:00
Poul-Henning Kamp
afcbcfaed0 Change events to have an array of "void *" references, and give the
event posting functions varargs to fill these.

Attribute g_call_me() to appropriate g_geom's where necessary.

Add a flag argument to g_call_me() methods which will be used to signal
cancellation of events in the future.

This commit should be a no-op.
2003-04-02 20:41:18 +00:00
Robert Watson
7d7d429762 If stat() on the terminal specified in utmp fails due to ENOENT, don't
print a warning, and set the idletime variable for the entry to -1;
then pick up the -1 later in sprint() and lprint() and ignore those
idle times by printing just whitespace.  When third party applications,
such as kdm, insert utmp entries, they sometimes use strings like ":0",
which can't be stat()'d and currently result in warnings that are
not helpful to the user.
2003-04-02 20:22:29 +00:00
Ruslan Ermilov
70861b840c Drop the silly notion that fd* entries have both a' and b'
partitions; this does nothing except upsetting disklabel(8).
2003-04-02 20:16:02 +00:00
Matthew N. Dodd
2c56e246fa Back out support for RFC3514.
RFC3514 poses an unacceptale risk to compliant systems.
2003-04-02 20:14:44 +00:00
Ruslan Ermilov
cc76558ad4 Make disktab(5) MI (repo-copied from etc.i386/disktab). 2003-04-02 20:13:59 +00:00
Matthew N. Dodd
4f6425f7ae - Use the correct constant define.
- Add a missing break.
2003-04-02 18:02:58 +00:00
Maxime Henrion
b2badf0214 Convert the fxp(4) driver to the busdma API.
This patch is rather big because I had to significantly redesign
the driver to make the busdma conversion possible.  Most notably,
hardware and software structures were carefully splitted to get
rid of all the structs overlapping evilness.

Special thanks to phk and Richard Puga <puga@mauibuilt.com> for
providing me with fxp(4) hardware to do this work.

Thanks to marcel for testing this on ia64, and to Fred Clift
<fclift@verio.net> for testing this on alpha.

Tested on:	i386, ia64, alpha
2003-04-02 16:47:16 +00:00
Jeffrey Hsu
c31548c820 Need to hold the same SMP lock for (knote) list traversal as for
list manipulation.  This lock also protects read-modify-write operations
on the pipe_state field.
2003-04-02 15:24:50 +00:00
Maxim Konovalov
33e1dc7738 IP_EVIL -> IP_EF 2003-04-02 14:52:21 +00:00
Poul-Henning Kamp
8f6da0e4ac Only orphan things if the open/close actually succeeded. 2003-04-02 13:10:40 +00:00
Poul-Henning Kamp
c7e1925c7c Properly handle races between open/close and orphan.
KASSERT the race between close and strategy, it is an error in the upper
echelons if this happens,

Add XXX: comment explaining why the ioctl/orphan race is not closed.
2003-04-02 13:09:50 +00:00
Søren Schmidt
b539f9d523 Instead of not grapping a request binfinish(ENOMEM) it if malloc fails. 2003-04-02 11:36:43 +00:00
SUZUKI Shinsuke
ac03f2af25 fixed invalid pointer reference
Obtained from: KAME
2003-04-02 11:35:51 +00:00
Yoshihiro Takahashi
cffa957106 MFi386: revisions 1.556 and 1.557.
Backout revision 1.312.
2003-04-02 10:51:06 +00:00
Yoshihiro Takahashi
ca30868b63 Merged from sys/dev/syscons/syscons.c revision 1.400. 2003-04-02 10:49:48 +00:00
Matthew N. Dodd
8faf6df9b3 Sync constant define with NetBSD.
Requested by:	 Tom Spindler <dogcow@babymeat.com>
2003-04-02 10:28:47 +00:00
Maxim Konovalov
b026ec0eb8 o Fix error messages formatting, style.
Prodded by:	bde
Reviewed by:	bde
2003-04-02 09:20:08 +00:00
Jeff Roberson
5053d272c2 - Make the interactivity calculator decay faster.
- Make the pcpu estimator update faster.
2003-04-02 08:22:33 +00:00