]> Zhao Yanbai Git Server - minix.git/log
minix.git
14 years agoRemove obsolete _fpu_present variable from crtso.S
Erik van der Kouwe [Thu, 27 May 2010 09:46:42 +0000 (09:46 +0000)]
Remove obsolete _fpu_present variable from crtso.S

14 years agoOops, committed too much
Erik van der Kouwe [Thu, 27 May 2010 09:20:50 +0000 (09:20 +0000)]
Oops, committed too much

14 years agoAvoid use of C++ reserved word class in headers (reported by Aki Goto, tracker item...
Erik van der Kouwe [Thu, 27 May 2010 09:18:49 +0000 (09:18 +0000)]
Avoid use of C++ reserved word class in headers (reported by Aki Goto, tracker item 375)

14 years agoAvoid use of C++ reserved word class in headers (reported by Aki Goto, tracker item...
Erik van der Kouwe [Thu, 27 May 2010 08:48:53 +0000 (08:48 +0000)]
Avoid use of C++ reserved word class in headers (reported by Aki Goto, tracker item 375)

14 years agoReorganize some directories
Arun Thomas [Wed, 26 May 2010 22:49:57 +0000 (22:49 +0000)]
Reorganize some directories

servers/hgfs/hgfs_server => servers/hgfs
servers/hgfs/libhgfs => lib/libhgfs
servers/rs/service => commands/service
drivers/memory/memory_driver => drivers/memory
drivers/memory/ramdisk => drivers/ramdisk

14 years agoGCC build fixes/updates
Arun Thomas [Wed, 26 May 2010 18:45:55 +0000 (18:45 +0000)]
GCC build fixes/updates

-Set stack sizes for boot image processes
-Increase RS stack size
-Reduce ramdisk size
-HARDWARE task should use kernel stack
-Minor asm tweaks for leading underscores

14 years agodifferent rtl8169 shutdown code
David van Moolenbroek [Wed, 26 May 2010 11:22:06 +0000 (11:22 +0000)]
different rtl8169 shutdown code

14 years agomake IS report masked IRQs properly
David van Moolenbroek [Wed, 26 May 2010 08:44:50 +0000 (08:44 +0000)]
make IS report masked IRQs properly

14 years agoFixed ms-based scheduling for legacy timer
Tomas Hruby [Wed, 26 May 2010 08:20:29 +0000 (08:20 +0000)]
Fixed ms-based scheduling for legacy timer

14 years agoVarious small scheduling related fixes
Tomas Hruby [Wed, 26 May 2010 07:16:39 +0000 (07:16 +0000)]
Various small scheduling related fixes

14 years agoreset alarm timer on PRIVCTL
David van Moolenbroek [Wed, 26 May 2010 07:10:28 +0000 (07:10 +0000)]
reset alarm timer on PRIVCTL

14 years agoscheduling - time quantum in miliseconds
Tomas Hruby [Tue, 25 May 2010 08:06:14 +0000 (08:06 +0000)]
scheduling - time quantum in miliseconds

- Currently the cpu time quantum is timer-ticks based. Thus the
  remaining quantum is decreased only if the processes is interrupted
  by a timer tick. As processes block a lot this typically does not
  happen for normal user processes. Also the quantum depends on the
  frequency of the timer.

- This change makes the quantum miliseconds based. Internally the
  miliseconds are translated into cpu cycles. Everytime userspace
  execution is interrupted by kernel the cycles just consumed by the
  current process are deducted from the remaining quantum.

- It makes the quantum system timer frequency independent.

- The boot processes quantum is loosely derived from the tick-based
  quantas and 60Hz timer and subject to future change

- the 64bit arithmetics is a little ugly, will be changes once we have
  compiler support for 64bit integers (soon)

14 years agoFixed some inconsistent strict typing declarations.
Kees van Reeuwijk [Tue, 25 May 2010 07:23:24 +0000 (07:23 +0000)]
Fixed some inconsistent strict typing declarations.
Better strict typing.

14 years agofix int64.3 man page formatting
David van Moolenbroek [Mon, 24 May 2010 21:10:37 +0000 (21:10 +0000)]
fix int64.3 man page formatting

14 years agoOops, last commit included more than was intended
Erik van der Kouwe [Thu, 20 May 2010 08:07:47 +0000 (08:07 +0000)]
Oops, last commit included more than was intended

14 years agoMore system processes, this was not enough for the release script to run on some...
Erik van der Kouwe [Thu, 20 May 2010 08:05:07 +0000 (08:05 +0000)]
More system processes, this was not enough for the release script to run on some configurations

14 years agoMinor patch: increase size of root partition for minimal release, eve very small...
Erik van der Kouwe [Wed, 19 May 2010 20:11:22 +0000 (20:11 +0000)]
Minor patch: increase size of root partition for minimal release, eve very small additions with -c made it fail

14 years agoBuildsystem changes for GCC
Arun Thomas [Wed, 19 May 2010 13:24:15 +0000 (13:24 +0000)]
Buildsystem changes for GCC

-Makefile updates
-Update mkdep
-Build fixes/warning cleanups for some programs
-Restore leading underscores on global syms in kernel asm files
-Increase ramdisk size

14 years agopm - fix sched interaction
Ben Gras [Wed, 19 May 2010 13:22:29 +0000 (13:22 +0000)]
pm - fix sched interaction

For coredumping processes, PM forgets to inform SCHED that the
process has vanished, causing future fork()s to fail.

14 years agoMore sensible description for EPERM from http://www.opengroup.org/onlinepubs/00009539...
Erik van der Kouwe [Wed, 19 May 2010 11:51:49 +0000 (11:51 +0000)]
More sensible description for EPERM from http://www.opengroup.org/onlinepubs/000095399/basedefs/errno.h.html

14 years agocharset cp1251 contributed by Roman Ignatov.
Ben Gras [Wed, 19 May 2010 11:34:47 +0000 (11:34 +0000)]
charset cp1251 contributed by Roman Ignatov.

14 years agopackages: gcc-libs renamed, include gcc-4.4.3
Ben Gras [Wed, 19 May 2010 10:22:57 +0000 (10:22 +0000)]
packages: gcc-libs renamed, include gcc-4.4.3

14 years agouse oxpcie only if enabled to avoid baud bottleneck of uart.
Ben Gras [Wed, 19 May 2010 10:18:46 +0000 (10:18 +0000)]
use oxpcie only if enabled to avoid baud bottleneck of uart.

14 years agokernel: oxpcie serial card support.
Ben Gras [Wed, 19 May 2010 10:00:02 +0000 (10:00 +0000)]
kernel: oxpcie serial card support.

ask to map in oxpcie i/o memory and support serial i/o for it in the
kernel. set oxpcie=<address> in boot monitor (retrieve address using
pci_debug=1 output). (no sanity checking is done on the address
currently.) disabled by default.

The change also contains some other minor cleanup (a new serial.h to set
register info common to UART and the OXPCIe card, in-kernel memory
mapping a little more structured and env_get() to get sysenv variables
without knowing about the params_buffer).

14 years agoboot image - no need for entry point
Tomas Hruby [Tue, 18 May 2010 13:51:46 +0000 (13:51 +0000)]
boot image - no need for entry point

- removes the initial_pc from struct boot_image. It is always set
  to 0 and RS uses a.out headers.

14 years agoScheduling server (by Bjorn Swift)
Tomas Hruby [Tue, 18 May 2010 13:39:04 +0000 (13:39 +0000)]
Scheduling server (by Bjorn Swift)

In this second phase, scheduling is moved from PM to its own
scheduler (see r6557 for phase one). In the next phase we hope to a)
include useful information in the "out of quantum" message and b)
create some simple scheduling policy that makes use of that
information.

When the system starts up, PM will iterate over its process table and
ask SCHED to take over scheduling unprivileged processes. This is
done by sending a SCHEDULING_START message to SCHED. This message
includes the processes endpoint, the parent's endpoint and its nice
level. The scheduler adds this process to its schedproc table, issues
a schedctl, and returns its own endpoint to PM - as the endpoint of
the effective scheduler. When a process terminates, a SCHEDULING_STOP
message is sent to the scheduler.

The reason for this effective endpoint is for future compatibility.
Some day, we may have a scheduler that, instead of scheduling the
process itself, forwards the SCHEDULING_START message on to another
scheduler.

PM has information on who schedules whom. As such, scheduling
messages from user-land are sent through PM. An example is when
processes change their priority, using nice(). In that case, a
getsetpriority message is sent to PM, which then sends a
SCHEDULING_SET_NICE to the process's effective scheduler.

When a process is forked through PM, it inherits its parent's
scheduler, but is spawned with an empty quantum. As before, a request
to fork a process flows through VM before returning to PM, which then
wakes up the child process. This flow has been modified slightly so
that PM notifies the scheduler of the new process, before waking up
the child process. If the scheduler fails to take over scheduling,
the child process is torn down and the fork fails with an erroneous
value.

Process priority is entirely decided upon using nice levels. PM
stores a copy of each process's nice level and when a child is
forked, its parent's nice level is sent in the SCHEDULING_START
message. How this level is mapped to a priority queue is up to the
scheduler. It should be noted that the nice level is used to
determine the max_priority and the parent could have been in a lower
priority when it was spawned. To prevent a CPU intensive process from
hawking the CPU by continuously forking children that get scheduled
in the max_priority, the scheduler should determine in which queue
the parent is currently scheduled, and schedule the child in that
same queue.

Other fixes: The USER_Q in kernel/proc.h was incorrectly defined as
NR_SCHED_QUEUES/2. That results in a "off by one" error when
converting priority->nice->priority for nice=0. This also had the
side effect that if someone were to set the MAX_USER_Q to something
else than 0, then USER_Q would be off.

14 years agorename of mode/context switching functions
Tomas Hruby [Tue, 18 May 2010 13:00:39 +0000 (13:00 +0000)]
rename of mode/context switching functions

- this patch only renames schedcheck() to switch_to_user(),
  cycles_accounting_stop() to context_stop() and restart() to
  +restore_user_context()

- the motivation is that since the introduction of schedcheck() it has
  been abused for many things. It deserves a better name.  It should
  express the fact that from the moment we call the function we are in
  the process of switching to user.

- cycles_accounting_stop() was originally a single purpose function.
  As this function is called at were convenient places it is used in
  for other things too, e.g. (un)locking the kernel. Thus it deserves
  a better name too.

- using the old name, restart() does not call schedcheck(), however
  calls to restart are replaced by calls to schedcheck()
  [switch_to_user] and it calls restart() [restore_user_context]

14 years agoThis patch switches the MINIX3 ethernet driver stack from a port-based
David van Moolenbroek [Mon, 17 May 2010 22:22:53 +0000 (22:22 +0000)]
This patch switches the MINIX3 ethernet driver stack from a port-based
model to an instance-based model. Each ethernet driver instance is now
responsible for exactly one network interface card. The port field in
/etc/inet.conf now acts as an instance field instead.

This patch also updates the data link protocol. This update:
- eliminates the concept of ports entirely;
- eliminates DL_GETNAME entirely;
- standardizes on using m_source for IPC and DL_ENDPT for safecopies;
- removes error codes from TASK/STAT replies, as they were unused;
- removes a number of other old or unused fields;
- names and renames a few other fields.

All ethernet drivers have been changed to:
- conform to the new protocol, and exactly that;
- take on an instance number based on a given "instance" argument;
- skip that number of PCI devices in probe iterations;
- use config tables and environment variables based on that number;
- no longer be limited to a predefined maximum of cards in any way;
- get rid of any leftover non-safecopy support and other ancient junk;
- have a correct banner protocol figure, or none at all.

Other changes:
* Inet.conf is now taken to be line-based, and supports #-comments.
  No existing installations are expected to be affected by this.
* A new, select-based asynchio library replaces the old one.
  Kindly contributed by Kees J. Bot.
* Inet now supports use of select() on IP devices.
  Combined, the last two changes together speed up dhcpd
  considerably in the presence of multiple interfaces.
* A small bug has been fixed in nonamed.

14 years agoAdd -M release.sh option to write out a symbol map, either to /usr/src on the image...
Erik van der Kouwe [Mon, 17 May 2010 16:52:48 +0000 (16:52 +0000)]
Add -M release.sh option to write out a symbol map, either to /usr/src on the image (without -m) or to the tools directory (with -m)

14 years agoFull 64-bit multitplication and division added to u64 library
Erik van der Kouwe [Mon, 17 May 2010 16:44:26 +0000 (16:44 +0000)]
Full 64-bit multitplication and division added to u64 library

14 years agoAwk build tweaks
Arun Thomas [Thu, 13 May 2010 19:29:42 +0000 (19:29 +0000)]
Awk build tweaks

-Make yacc invocation "less chatty to stderr" (again)
-Generate proctab.c (again)

14 years agoBuildsystem tweaks
Arun Thomas [Thu, 13 May 2010 13:26:27 +0000 (13:26 +0000)]
Buildsystem tweaks

Set build output verbosity level down to 1.
Make the 'install' target depend on the 'all' and 'depend' targets.

14 years agoFix permissions for halt, reboot, and shutdown
Arun Thomas [Thu, 13 May 2010 12:05:53 +0000 (12:05 +0000)]
Fix permissions for halt, reboot, and shutdown

14 years agoxargs does not support the -f flag
Erik van der Kouwe [Wed, 12 May 2010 19:17:17 +0000 (19:17 +0000)]
xargs does not support the -f flag

14 years agoConvert boot/ and commands/ over to bsdmake
Arun Thomas [Wed, 12 May 2010 16:28:54 +0000 (16:28 +0000)]
Convert boot/ and commands/ over to bsdmake

14 years agoDS: base number of data entries on NR_SYS_PROCS
David van Moolenbroek [Wed, 12 May 2010 13:21:15 +0000 (13:21 +0000)]
DS: base number of data entries on NR_SYS_PROCS

14 years agokernel: small ammendment to pagefault-in-kernel panic
Ben Gras [Wed, 12 May 2010 08:56:11 +0000 (08:56 +0000)]
kernel: small ammendment to pagefault-in-kernel panic

14 years agokernel/vm: change pde table info from single buffer to explicit per-process.
Ben Gras [Wed, 12 May 2010 08:31:05 +0000 (08:31 +0000)]
kernel/vm: change pde table info from single buffer to explicit per-process.

makes code in kernel more readable, and allows better sanity checking on
using the pde info.

14 years ago- Fixed a bug when running out of priv structures.
Cristiano Giuffrida [Tue, 11 May 2010 20:49:42 +0000 (20:49 +0000)]
- Fixed a bug when running out of priv structures.
- Tell VM about VM calls for every new service instance.

14 years agokernel - don't print info about scheduled process if pagefault happened in kernel.
Ben Gras [Tue, 11 May 2010 15:14:10 +0000 (15:14 +0000)]
kernel - don't print info about scheduled process if pagefault happened in kernel.

14 years agofix multiport support in ethernet drivers
David van Moolenbroek [Mon, 10 May 2010 20:19:55 +0000 (20:19 +0000)]
fix multiport support in ethernet drivers

14 years agoIntermediate boot verbosity level EXTRA (2), MAX moved to 3
Erik van der Kouwe [Mon, 10 May 2010 18:07:59 +0000 (18:07 +0000)]
Intermediate boot verbosity level EXTRA (2), MAX moved to 3

14 years agoNew options for release script: -m to make tiny image, ZIP to set compressor
Erik van der Kouwe [Mon, 10 May 2010 18:02:15 +0000 (18:02 +0000)]
New options for release script: -m to make tiny image, ZIP to set compressor

14 years agoPM signal handling check too strict
Tomas Hruby [Mon, 10 May 2010 14:27:22 +0000 (14:27 +0000)]
PM signal handling check too strict

- this panic may be unnecessarily triggered if PM gets the delayed
  stop signal from kernel before it gets reply from VFS to the UNPAUSE
  call.

- after this change PM does not proceed to delivering the signal until
  the reply from VFS is received. Perhaps PM could deliver the signal
  straight away as it knows that the process does not run. Possibly
 i dangerous.

- the signal is deliverd immediately after the UNPAUSE reply as the
  pending signals are always checked at the moment.

14 years agoRemoved defines not used since r6844.
Tomas Hruby [Mon, 10 May 2010 13:29:04 +0000 (13:29 +0000)]
Removed defines not used since r6844.

14 years agoUse of all NIL_* defines converted to NULL
Tomas Hruby [Mon, 10 May 2010 13:26:00 +0000 (13:26 +0000)]
Use of all NIL_* defines converted to NULL

14 years agokernel: new DEBUG_RACE option. try to provoke race conditions between processes.
Ben Gras [Sat, 8 May 2010 18:00:03 +0000 (18:00 +0000)]
kernel: new DEBUG_RACE option. try to provoke race conditions between processes.

it does this by
  - making all processes interruptible by running out of quantum
  - giving all processes a single tick of quantum
  - picking a random runnable process instead of in order, and
    from a single pool of runnable processes (no priorities)

This together with very high HZ values currently provokes some race conditions
seen earlier only when running with SMP.

14 years agovm: use arch_map2str to print pagefault info, to properly display code addrs
Ben Gras [Sat, 8 May 2010 17:25:54 +0000 (17:25 +0000)]
vm: use arch_map2str to print pagefault info, to properly display code addrs

14 years agokernel: print spurious interrupt message with increasing interval.
Ben Gras [Sat, 8 May 2010 17:21:37 +0000 (17:21 +0000)]
kernel: print spurious interrupt message with increasing interval.

14 years agoRS - fixed timeouts
Tomas Hruby [Fri, 7 May 2010 18:12:16 +0000 (18:12 +0000)]
RS - fixed timeouts

- rs does not assume hz==60

- rs adjusts its timeout ticks by the system clock frequency

- drivers have time to reply if hz is set too high (e.g. 1000+) for
  instance when debugging

14 years agopci synchronous start up
Tomas Hruby [Fri, 7 May 2010 16:23:07 +0000 (16:23 +0000)]
pci synchronous start up

- fixes a race between rs and pci

14 years agoA small mini_receive() cleanup
Tomas Hruby [Fri, 7 May 2010 11:22:49 +0000 (11:22 +0000)]
A small mini_receive() cleanup

- this patch substitutes *xpp for sender to increase readability of
  mini_receive().

- makes sure that the dequeued sender has p_q_link == NULL and that
  this condition holds when enqueuing the sender again.

- it is a sanity check to make sure that the new sender is not
  enqueued already. Before this change the dequeued sender's p_q_link
  may not be NULL and it was only set to NULL when enqueued again.

14 years agokernel: don't try to lookup ANY in debug output.
Ben Gras [Thu, 6 May 2010 22:39:11 +0000 (22:39 +0000)]
kernel: don't try to lookup ANY in debug output.

14 years agokernel: increase some per-process privilege limits.
Ben Gras [Thu, 6 May 2010 22:21:08 +0000 (22:21 +0000)]
kernel: increase some per-process privilege limits.

14 years agoFix Inet initialization race.
Cristiano Giuffrida [Thu, 6 May 2010 22:18:21 +0000 (22:18 +0000)]
Fix Inet initialization race.

14 years agoSmall cleanup of dead and/or redundant code.
Thomas Veerman [Thu, 6 May 2010 09:32:40 +0000 (09:32 +0000)]
Small cleanup of dead and/or redundant code.

14 years agovm: remove leftover diag print
Ben Gras [Wed, 5 May 2010 15:26:48 +0000 (15:26 +0000)]
vm: remove leftover diag print

14 years agofsctl.h doesn't exist.
Ben Gras [Wed, 5 May 2010 11:49:41 +0000 (11:49 +0000)]
fsctl.h doesn't exist.

14 years agosecondary cache feature in vm.
Ben Gras [Wed, 5 May 2010 11:35:04 +0000 (11:35 +0000)]
secondary cache feature in vm.

A new call to vm lets processes yield a part of their memory to vm,
together with an id, getting newly allocated memory in return. vm is
allowed to forget about it if it runs out of memory. processes can ask
for it back using the same id. (These two operations are normally
combined in a single call.)

It can be used as a as-big-as-memory-will-allow block cache for
filesystems, which is how mfs now uses it.

14 years agoLet memory allocation be aligned on 8-byte boundaries.
Kees van Reeuwijk [Tue, 4 May 2010 21:02:44 +0000 (21:02 +0000)]
Let memory allocation be aligned on 8-byte boundaries.

14 years agotty: don't use custom kputc; this fixes tty printf()s.
Ben Gras [Tue, 4 May 2010 09:26:01 +0000 (09:26 +0000)]
tty: don't use custom kputc; this fixes tty printf()s.

14 years agoawk Makefile: make yacc less chatty to stderr.
Ben Gras [Tue, 4 May 2010 09:23:31 +0000 (09:23 +0000)]
awk Makefile: make yacc less chatty to stderr.

14 years agolibc: malloc: don't enable SLOWDEBUG by default
Ben Gras [Mon, 3 May 2010 22:54:51 +0000 (22:54 +0000)]
libc: malloc: don't enable SLOWDEBUG by default

14 years agodriver.h: increase max no. of open minors.
Ben Gras [Mon, 3 May 2010 19:43:54 +0000 (19:43 +0000)]
driver.h: increase max no. of open minors.

14 years agoExtra assertions on free if SLOWDEBUG is enabled: check whether the block exists...
Erik van der Kouwe [Mon, 3 May 2010 19:42:08 +0000 (19:42 +0000)]
Extra assertions on free if SLOWDEBUG is enabled: check whether the block exists and has not been freed before

14 years agoAdd syslib function to obtain CPU frequency
Erik van der Kouwe [Mon, 3 May 2010 19:41:04 +0000 (19:41 +0000)]
Add syslib function to obtain CPU frequency

14 years agodeadlock() - more info
Tomas Hruby [Mon, 3 May 2010 17:38:54 +0000 (17:38 +0000)]
deadlock() - more info

- deadlock() is more verbose in case of a detected deadlock. First, it
  lists all processses in the deadlock group. Then it prints the proc
  extra info, not only  stack trace and register dump

14 years agodebugging - printing processes on serial
Tomas Hruby [Mon, 3 May 2010 17:37:18 +0000 (17:37 +0000)]
debugging - printing processes on serial

- this patch moves the former printslot() from arch_system.c to
  debug.c and reimplements it slightly. The output is not changed,
  however, the process information is printed in a separate function
  print_proc() in debug.c as such a function is also handy in other
  situations and should be publicly available when debugging.

14 years ago- Add test52 to test FPU context switching
Thomas Veerman [Mon, 3 May 2010 15:12:39 +0000 (15:12 +0000)]
- Add test52 to test FPU context switching
- Make test/run count how many tests it's going to perform instead of having to
  manually update it ourselves.

14 years agoPut the munmap and munmap_text trampolines in a separate .S file, so that they can...
Kees van Reeuwijk [Thu, 29 Apr 2010 20:12:56 +0000 (20:12 +0000)]
Put the munmap and munmap_text trampolines in a separate .S file, so that they can be overridden independenly of mmap.

14 years agoMake mdb compile in other places than just /usr/src.
Kees van Reeuwijk [Thu, 29 Apr 2010 20:05:01 +0000 (20:05 +0000)]
Make mdb compile in other places than just /usr/src.

14 years agocpufeature() - rename _SSEx and correct logic in cpufeature() in lib
Ben Gras [Thu, 29 Apr 2010 19:08:49 +0000 (19:08 +0000)]
cpufeature() - rename _SSEx and correct logic in cpufeature() in lib

14 years agoAllow loading images > 16M
Erik van der Kouwe [Thu, 29 Apr 2010 15:14:07 +0000 (15:14 +0000)]
Allow loading images > 16M

14 years agokernel: more diagnostics for privctl ENOMEM conditions.
Ben Gras [Thu, 29 Apr 2010 08:50:52 +0000 (08:50 +0000)]
kernel: more diagnostics for privctl ENOMEM conditions.

14 years agors: stacktrace if system process exits early.
Ben Gras [Thu, 29 Apr 2010 08:50:17 +0000 (08:50 +0000)]
rs: stacktrace if system process exits early.

14 years agoDon't panic when out of priv structures.
Cristiano Giuffrida [Wed, 28 Apr 2010 20:41:23 +0000 (20:41 +0000)]
Don't panic when out of priv structures.

14 years agoFix wrong word
Erik van der Kouwe [Wed, 28 Apr 2010 20:37:08 +0000 (20:37 +0000)]
Fix wrong word

14 years agoat_wini: remove unnecessary quirks debug message
Ben Gras [Wed, 28 Apr 2010 14:19:40 +0000 (14:19 +0000)]
at_wini: remove unnecessary quirks debug message

14 years agokernel: fpu_init: only enable OSXMMEXCPT in CR4 on at least SSE1 machines.
Ben Gras [Wed, 28 Apr 2010 13:51:02 +0000 (13:51 +0000)]
kernel: fpu_init: only enable OSXMMEXCPT in CR4 on at least SSE1 machines.

Found and debugged by totalinux at yandex.ru and Evgeniy Ivanov, thanks!

14 years agokernel: fpu init to separate function; also move fpu init down
Ben Gras [Wed, 28 Apr 2010 13:25:29 +0000 (13:25 +0000)]
kernel: fpu init to separate function; also move fpu init down

moving the fpu code causes exceptions raised by it to be trapped
neatly instead of causing a triple fault, before the IDT is initialized.

14 years agoScan all processes for that might be blocked on a lock
Thomas Veerman [Wed, 28 Apr 2010 11:54:22 +0000 (11:54 +0000)]
Scan all processes for that might be blocked on a lock

14 years agoat_wini: more general system to allow devices that behave like ata controllers.
Ben Gras [Wed, 28 Apr 2010 11:52:28 +0000 (11:52 +0000)]
at_wini: more general system to allow devices that behave like ata controllers.

(let silicon image sata controller that is pci class 1, subclass 0x80,
but works as a sata controller, work as such.)

14 years agopci: don't do sanity check for missing pci bus, the check can misfire.
Ben Gras [Wed, 28 Apr 2010 11:51:13 +0000 (11:51 +0000)]
pci: don't do sanity check for missing pci bus, the check can misfire.

14 years agotty: try more often to get the config byte.
Ben Gras [Wed, 28 Apr 2010 11:50:54 +0000 (11:50 +0000)]
tty: try more often to get the config byte.

14 years agoAvoid sbrk (in favour of malloc) in RS where possible
Erik van der Kouwe [Wed, 28 Apr 2010 08:35:54 +0000 (08:35 +0000)]
Avoid sbrk (in favour of malloc) in RS where possible

14 years agoFix types in debug register functions
Erik van der Kouwe [Wed, 28 Apr 2010 08:35:05 +0000 (08:35 +0000)]
Fix types in debug register functions

14 years agoEnable malloc assertions
Erik van der Kouwe [Wed, 28 Apr 2010 08:34:19 +0000 (08:34 +0000)]
Enable malloc assertions

14 years agoAdd timeout for test 7 to indicate which test (if any) hangs
Erik van der Kouwe [Wed, 28 Apr 2010 08:33:23 +0000 (08:33 +0000)]
Add timeout for test 7 to indicate which test (if any) hangs

14 years agopagefault() is private
Tomas Hruby [Tue, 27 Apr 2010 20:30:33 +0000 (20:30 +0000)]
pagefault() is private

14 years agomtree: no more /lib and /lib/i386.
Ben Gras [Tue, 27 Apr 2010 13:44:48 +0000 (13:44 +0000)]
mtree: no more /lib and /lib/i386.

14 years agoAdd missing newline at end of file
Erik van der Kouwe [Tue, 27 Apr 2010 13:30:46 +0000 (13:30 +0000)]
Add missing newline at end of file

14 years agoRemove debug printfs in breakpoints.c, they should never have been there
Erik van der Kouwe [Tue, 27 Apr 2010 12:25:04 +0000 (12:25 +0000)]
Remove debug printfs in breakpoints.c, they should never have been there

14 years agoUnified crash recovery and live update.
Cristiano Giuffrida [Tue, 27 Apr 2010 11:17:30 +0000 (11:17 +0000)]
Unified crash recovery and live update.

RS CHANGES:
- Crash recovery is now implemented like live update. Two instances are kept
side by side and the dead version is live updated into the new one. The endpoint
doesn't change and the failure is not exposed (by default) to other system
services.
- The new instance can be created reactively (when a crash is detected) or
proactively. In the latter case, RS can be instructed to keep a replica of
the system service to perform a hot swap when the service fails. The flag
SF_USE_REPL is set in that case.
- The new flag SF_USE_REPL is supported for services in the boot image and
dynamically started services through the RS interface (i.e. -p option in the
service utility).
- Fixed a free unallocated memory bug for core system services.

14 years agoRemoved unused prototype
Tomas Hruby [Mon, 26 Apr 2010 23:39:05 +0000 (23:39 +0000)]
Removed unused prototype

14 years agoChanged pagefault delivery to VM
Tomas Hruby [Mon, 26 Apr 2010 23:21:26 +0000 (23:21 +0000)]
Changed pagefault delivery to VM

this patch changes the way pagefaults are delivered to VM. It adopts
the same model as the out-of-quantum messages sent by kernel to a
scheduler.

- everytime a userspace pagefault occurs, kernel creates a message
  which is sent to VM on behalf of the faulting process

- the process is blocked on delivery to VM in the standard IPC code
  instead of waiting in a spacial in-kernel queue (stack) and is not
  runnable until VM tell kernel that the pagefault is resolved and is
  free to clear the RTS_PAGEFAULT flag.

- VM does not need call kernel and poll the pagefault information
  which saves many (1/2?) calls and kernel calls that return "no more
  data"

- VM notification by kernel does not need to use signals

- each entry in proc table is by 12 bytes smaller (~3k save)

14 years agocd boot workaround for bioses that didn't want to boot >4 image sectors.
Ben Gras [Mon, 26 Apr 2010 22:07:21 +0000 (22:07 +0000)]
cd boot workaround for bioses that didn't want to boot >4 image sectors.

boot is a normal binary with a.out again. use 'cdbootblock,' a CDBOOT
variant of bootblock, both from bootblock.s, as the first boot image
that then loads boot, exactly like the bootblock loads boot when booting
from harddisk. the sector numbers (2048 byte iso sectors) are patched in
by writeisofs, like installboot does for bootblock. bootblock unchanged.

14 years agovfs: start at vmnt[0] to sync mounted filesystems, not vmnt[1].
Ben Gras [Mon, 26 Apr 2010 17:12:34 +0000 (17:12 +0000)]
vfs: start at vmnt[0] to sync mounted filesystems, not vmnt[1].

14 years agoremove intr_disabled() as interrupts are always disabled in the kernel now.
Ben Gras [Mon, 26 Apr 2010 15:32:42 +0000 (15:32 +0000)]
remove intr_disabled() as interrupts are always disabled in the kernel now.

14 years agoFixed printf warning in the filter driver
Tomas Hruby [Mon, 26 Apr 2010 14:44:20 +0000 (14:44 +0000)]
Fixed printf warning in the filter driver

14 years agoSet IPC status code only for RECEIVE
Cristiano Giuffrida [Mon, 26 Apr 2010 14:43:59 +0000 (14:43 +0000)]
Set IPC status code only for RECEIVE