Commit graph

792 commits

Author SHA1 Message Date
Ben Gras
d844d2a547 Fixed nasty bug that would cause FS to loop forever in rw_scattered (while
syncing, for instance) if blocks are unwritable. This could happen if:

  . write goes beyond device boundary to a block device
  . write is done for a complete block or more; thus the
    block is not retrieved first (at which point it would be noticed
    it doesn't exist), but the buffer is simply allocated
  . at write time, the device i/o doesn't succeed, but rw_scattered
    doesn't understand this and loops forever trying to get the block
    written.

Currently, if no blocks can be written, the loop aborts, leaving all
buffers intact but potentially dirty. When invalidate() is called on the
device, the buffers will disappear (even if dirty). Same story for if
the buffer is removed due to rmed from lru chain. There's not much we
can do about this, however - we can't keep these blocks around, forever
occupying a buffer in the buffer cache.

The second part of the solution is not to let unwritable buffers be
created in the first place. How to do this, however, without doing a
wasteful read first?

It looks like this code was in 2.0.4 too.
2005-06-19 22:33:49 +00:00
Ben Gras
34a9677a5b Made mkfs a little smarter about how to report empty devices.
Also a little smarter about manually specified number of blocks that is
larger than the device capacity.
2005-06-19 22:28:05 +00:00
Ben Gras
9aae3002ed Made libpci recognize my pci controller at home (again) 2005-06-19 22:11:04 +00:00
Ben Gras
6e99cc494d Fixed various nits in the make/release process. 2005-06-17 16:28:36 +00:00
Ben Gras
5954c7e303 Part of fs timers library, forgot to add this in previous commit. 2005-06-17 13:49:56 +00:00
Ben Gras
3ba1ddb037 Fixes for /root homedir. 2005-06-17 13:48:16 +00:00
Ben Gras
39c90d6c90 Added (fake) readlink().
Compile fix for fslib (BITS_PER_BLOCK was renamed to FS_BITS_PER_BLOCK).

Added extra arg to various timer functions.
2005-06-17 13:47:29 +00:00
Ben Gras
ed2a024d47 Select test-set imported from the minix contributions, with permission
to modify and distribute from Jose Manuel Gomez, the author
(jmgomez@linuxmail.org).
2005-06-17 13:45:40 +00:00
Ben Gras
f81ac6ae5c Various compile fixes.
Imported gzip.

Changed setup script not to insist cwd is / when running from cd.
2005-06-17 13:42:53 +00:00
Ben Gras
47474b6341 Renamed commands to cmds - make is confused that the commands directory
exists.
2005-06-17 13:42:06 +00:00
Ben Gras
9664ba0c4f Started select() implementation.
Added interface to select() for pipes (also named pipes), and select()
stubs for regular files.

Added timer library in FS that select() is the first customer of.


This is unfinished, but committed anyway to get a new release out to
Al and testers.
2005-06-17 13:41:12 +00:00
Ben Gras
471e0448c3 Changed timer library function args.
Added select() support for tty fd's (not ptys yet).
2005-06-17 13:37:41 +00:00
Ben Gras
3c7120d830 Changed arguments of timer library functions. 2005-06-17 13:36:01 +00:00
Ben Gras
2f25279105 Started select() manpage.
Added lstat() comment to stat().
2005-06-17 13:35:21 +00:00
Ben Gras
c40770ce68 Various select() support flags, prototypes, definitions.
Major numbers for inet, tty, ctty.

Defined _MINIX_VERSION to check for major minix version in applications.

Prototype for (fake) readlink().
2005-06-17 13:34:47 +00:00
Ben Gras
2f588c50ea Added back boot banner for CD 2005-06-17 13:25:06 +00:00
Jorrit Herder
7279bb68ef Applied MINIX 2.0.4 pathes provides by Al Woodhull. 2005-06-17 13:00:04 +00:00
Jorrit Herder
330d7eba56 Updated boot monitor help menu. 2005-06-17 11:52:55 +00:00
Ben Gras
b7c75fab5b Added dummy readlink() call that returns an error (we don't have symlinks
yet)

also select() stub
2005-06-17 11:43:24 +00:00
Jorrit Herder
ae018feae2 Removed unnecessary call to unlock() from exception(). 2005-06-17 09:50:12 +00:00
Jorrit Herder
47e3d11e42 Fixed code passed to boot monitor after shutdown. 2005-06-17 09:40:02 +00:00
Jorrit Herder
4b887108eb Removed duplicate 'done' output after calling readall. 2005-06-17 09:36:08 +00:00
Jorrit Herder
f88e71c9d8 *** empty log message *** 2005-06-17 09:34:44 +00:00
Jorrit Herder
108d993201 Capitalized output. 2005-06-17 09:33:00 +00:00
Jorrit Herder
36c3091342 *** empty log message *** 2005-06-17 09:15:39 +00:00
Jorrit Herder
37a1e3f8e3 Removed mem chunks dump. (No longer available from kernel.) 2005-06-17 09:13:32 +00:00
Jorrit Herder
92f9bd02f8 Parsing of free memory chunks is now done at the process manager. 2005-06-17 09:10:30 +00:00
Jorrit Herder
e0a98a4d65 * Fixed bug relating to nested locking in interrupt handlers. The nested lock
caused interrupts to be reenabled (due to unlock), which caused a race. The
problems were especially visible on slower machines.
* Relocated free memory parsing to process manager. This saved quite some
code at the kernel level. Text size was reduced by about 650 bytes.
* Removed locks for updating the realtime in the clock's main loop and the
get_uptime function. Interrupts are no longer reentrant, so realtime is
immediately updated.
2005-06-17 09:09:54 +00:00
Jorrit Herder
90b80ad31e Relocated echo "Multiuser startup in progress ..." to top. 2005-06-17 09:00:31 +00:00
Jorrit Herder
4a2817cea1 Changed uname to retrieve actual OS release and version number at runtime. 2005-06-17 08:53:33 +00:00
Jorrit Herder
f673723b1f Minor changes in PM interface affected these commands.
Getty now retrieves the actual release and version number at runtime.
2005-06-17 08:52:53 +00:00
Jorrit Herder
8621d392b0 Fixed typo in run output;
Reduced NR_ITERATIONS for tests dealing with MAX_LINKS.
2005-06-17 08:51:28 +00:00
Ben Gras
85f2038c7c Undid \c from default leader and trailer 2005-06-17 08:00:13 +00:00
Philip Homburg
dc23e18cef Improved compatibility with other Unix systems. 2005-06-10 15:12:03 +00:00
Philip Homburg
d9b609c70f Hack for buffer overflow, should be fixed properly. 2005-06-08 11:05:27 +00:00
Jorrit Herder
c2cd510adf Removed debug dumps from the PM and FS servers. The dumps are now done by the
IS servers, which obtains a copy of the data through the getsysinfo() system
call. CTRL-F1 now is a special TTY key to shows function key mappings.
2005-06-07 14:43:35 +00:00
Ben Gras
4de736535c fix for ~root being / and buggering up system with chroot -R 2005-06-07 13:33:57 +00:00
Jorrit Herder
0e2a7a9730 Kernel cleanup.
Reduced kernel size by 512KB by moving private buffer into cstart() function.
Replaced assertions with erroneous return values. Removed assertions relating
to isuserp(rp), since all processes should become user processes; system
processes are now treated similar to other processes.
2005-06-07 12:34:25 +00:00
Jorrit Herder
bb2ef4e039 Added welcome message to POSIX test suite. 2005-06-07 11:52:35 +00:00
Philip Homburg
b658df42d0 Use relative paths. 2005-06-06 16:18:05 +00:00
Ben Gras
aca763443a removed debug message 2005-06-06 14:58:47 +00:00
Jorrit Herder
2f74381dcc Fixed 'ps' utility: now get process table addresses with getsysinfo() calls.
To be done: get copies of process tables instead of using /dev/(k)mem.
2005-06-06 13:51:50 +00:00
Ben Gras
cde16504a1 check relaxation for bios memory 2005-06-06 11:54:58 +00:00
Ben Gras
e44e9ad261 small compile fixes; initial select() stubs; release.sh script doesn't
need /tmp any more since 16MB root device; increase to 3.0.5 to make new
CD with working FXP driver. (not tagged 3.0.5 yet as at driver bios-copy
workaround hasn't been done.)
2005-06-06 11:40:32 +00:00
Ben Gras
9392dde997 bugfix 2005-06-06 11:31:20 +00:00
Jorrit Herder
c281867f46 Fixed bug relating to FS and MEMORY during startup;
Relocated some syslib functions to utils library;
Changed location of 'Multiuser startup ..." echo in /etc/rc
2005-06-06 09:30:44 +00:00
Jorrit Herder
f2a85e58d9 Various updates.
* Removed some variants of the SYS_GETINFO calls from the kernel;
  replaced them with new PM and utils libary functionality. Fixed
  bugs in utils library that used old get_kenv() variant.
* Implemented a buffer in the kernel to gather random data.
  Memory driver periodically checks this for /dev/random.
  A better random algorithm can now be implemented in the driver.
  Removed SYS_RANDOM; the SYS_GETINFO call is used instead.
* Remove SYS_KMALLOC from the kernel. Memory allocation can now
  be done at the process manager with new 'other' library functions.
2005-06-03 13:55:06 +00:00
Ben Gras
4904a5537a process manager must be able to send to rtl driver 2005-06-03 09:02:19 +00:00
Ben Gras
308d9a693c prettified rtl driver:
. no more kmalloc
 . no more umaps + physcopies / abscopies
 . the status register is directly readable from the drivers own
   address space now, and no physcopy is needed to read it
 . map+physcopy call combinations are replaced by vircopy calls
2005-06-03 08:59:54 +00:00
Ben Gras
d0b5cf84cb Undid usage of vector-copy function. It's a good idea but there's a bug
there somewhere. I'll debug first, then recommit.
2005-06-02 16:49:33 +00:00