Age | Commit message (Collapse) | Author |
|
On some systems, ext2fs.static would regularly hang at startup, as a
race condition meant it would process paging requests while remounting.
To fix this, libpager has been altered to allow inhibiting and resuming
its worker threads, and ext2fs uses this to inhibit paging while
remounting.
* console/pager.c (pager_requests): New variable.
(user_pager_init): Updated call to pager_start_workers to use new
pager_requests variable.
* daemons/runsystem.sh: Removed artificial delay working around the race
condition.
* ext2fs/ext2fs.c (diskfs_reload_global_state): Call new
inhibit_ext2_pager and resume_ext2_pager functions, and leave sblock as
non-NULL so it will be munmapped.
* ext2fs/ext2fs.h (inhibit_ext2_pager,resume_ext2_pager): New functions.
* ext2fs/pager.c (file_pager_requests): New variable.
(create_disk_pager): Updated call to pager_start_workers to use new
file_pager_requests variable.
(inhibit_ext2_pager,resume_ext2_pager): New functions.
* fatfs/fatfs.h (inhibit_fat_pager,resume_fat_pager): New functions.
* fatfs/pager.c (file_pager_requests): New variable.
(create_fat_pager): Updated call to pager_start_workers to use new
file_pager_requests variable.
(inhibit_fat_pager,resume_fat_pager): New functions.
* libdiskfs/disk-pager.c (diskfs_disk_pager_requests): New variable.
(diskfs_start_disk_pager): Updated call to pager_start_workers to use
new diskfs_disk_pager_requests variable.
* libdiskfs/diskfs-pager.h (diskfs_disk_pager_requests): New variable.
* libpager/demuxer.c (struct pager_requests): Renamed struct requests to
struct pager_requests. Replaced queue with queue_in and queue_out
pointers. Added inhibit_wakeup field.
(pager_demuxer): Updated to use new queue_in/queue_out pointers. Only
wake up workers if not inhibited.
(worker_func): Updated to use new queue_in/queue_out pointers. Final
worker thread to sleep notifies the inhibit_wakeup condition variable.
(pager_start_workers): Added out parameter for the requests instance.
Allocate heap space shared by both queues. Initialise new inhibit_wakeup
condition.
(pager_inhibit_workers,pager_resume_workers): New functions.
* libpager/pager.h (struct pager_requests): Public forward definition.
(pager_start_workers): Added out parameter for the requests instance.
(pager_inhibit_workers,pager_resume_workers): New functions.
* libpager/queue.h (queue_empty): New function.
* storeio/pager.c (pager_requests): New variable.
(init_dev_paging): Updated call to pager_start_workers to use new
pager_requests variable.
|
|
Signed-off-by: Stefan Weil <sw@weilnetz.de>
|
|
This patch adds a minimalist init program. It is somewhat lacking in
features, but is able to bring up a Hurd system with the runsystem and
rc scripts. In fact, it roughly does what the former /hurd/init did,
modulo all the very early bootstrapping stuff and the startup
protocol. It is started when all the essential servers are up and
running, so it can make use of most of the POSIX goodies, making its
implementation much simpler.
* Makefile (prog-subdirs): Add init.
* daemons/runsystem.sh: Generalize runsystem so that it can start any
init as specified on the kernel command line. By default, it starts
/hurd/init.
* daemons/runsystem.hurd: This is a verbatim copy of runsystem.sh. It
is started by /hurd/init.
* daemons/rc.sh: Do not start /hurd/mach-defpager as it is already
started in runsystem.sh.
* daemons/Makefile (SRCS): Add runsystem.hurd.
* init/Makefile: New file.
* init/init.c: Likewise.
|
|
* daemons/getty.c (load_banner): Drop first newline from default banner.
(print_banner): Print a newline.
|
|
Previously, a banner was hardcoded in Hurds getty. Load /etc/issue
instead. Fall back to a hardcoded version if that fails. Expand
common \char sequences. If no /etc/issue is provided, the old
behavior is retained.
* daemons/getty.c (load_banner): New function.
(print_banner): Expand \char sequences.
|
|
* daemons/rc.sh: Accept fsck returning 5 and 9 too.
|
|
* daemons/rc.sh: When fsck returned 2 or 3, reboot the system.
|
|
runsystem.sh checks whether /servers/socket/1 exists and creates it
using settrans -c if it does not. But at this point in the boot the
root filesystem is normally not writable. This patch fixes this.
* daemons/runsystem.sh: Make sure / is writable before attempting to
set up pflocal.
|
|
Only run setsid(2) if the process is not already the group leader.
* daemons/console-run.c (open_console): Fix setsid(2).
|
|
Needed early for shell pipelines.
* daemons/runsystem.sh: See whether pflocal is setup already, and do so if
not (install case)
|
|
* init/init.c (launch_something): Check with file_name_lookup that runsystem
script exists before calling start_child.
* daemons/console-run.c (main): Check with file_name_lookup that runsystem
script exists before opening a console for it.
|
|
This patch makes sure /libexec/console-run creates and installs
/dev/console on the first run without considering it a failure if it
didn't exist already.
* daemons/console-run.c (TERMINAL_FIRST_TRY): Change node to
`/dev/console'.
(TERMINAL_SECOND_TRY): Change node to `/tmp/console'.
(open_console): Clear FALLBACK when TRY == 1 and the
`file_set_translator' call suceeded.
|
|
* Fix spelling with codespell[1] and manually review it.
[1] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
|
|
* daemons/runsystem.sh: Call umask 022.
|
|
* daemons/Makefile (SRCS): Add `runsystem.sh'.
|
|
* ChangeLog: Wipe out content, and add instructions about how to get it back.
* auth/ChangeLog: Remove file.
* benchmarks/ChangeLog: Likewise.
* boot/ChangeLog: Likewise.
* bsdfsck/ChangeLog: Likewise.
* config/ChangeLog: Likewise.
* console-client/ChangeLog: Likewise.
* console/ChangeLog: Likewise.
* daemons/ChangeLog: Likewise.
* defpager/ChangeLog: Likewise.
* doc/ChangeLog: Likewise.
* exec/ChangeLog: Likewise.
* ext2fs/ChangeLog: Likewise.
* fatfs/ChangeLog: Likewise.
* fstests/ChangeLog: Likewise.
* ftpfs/ChangeLog: Likewise.
* hostmux/ChangeLog: Likewise.
* hurd/ChangeLog: Likewise.
* include/ChangeLog: Likewise.
* init/ChangeLog: Likewise.
* isofs/ChangeLog: Likewise.
* libcons/ChangeLog: Likewise.
* libdirmgt/ChangeLog: Likewise.
* libdiskfs/ChangeLog: Likewise.
* libfshelp/ChangeLog: Likewise.
* libftpconn/ChangeLog: Likewise.
* libhurdbugaddr/ChangeLog: Likewise.
* libihash/ChangeLog: Likewise.
* libiohelp/ChangeLog: Likewise.
* libnetfs/ChangeLog: Likewise.
* libpager/ChangeLog: Likewise.
* libpipe/ChangeLog: Likewise.
* libports/ChangeLog: Likewise.
* libps/ChangeLog: Likewise.
* libshouldbeinlibc/ChangeLog: Likewise.
* libstore/ChangeLog: Likewise.
* libthreads/ChangeLog: Likewise.
* libtrivfs/ChangeLog: Likewise.
* login/ChangeLog: Likewise.
* mach-defpager/ChangeLog: Likewise.
* nfs/ChangeLog: Likewise.
* nfsd/ChangeLog: Likewise.
* pfinet/ChangeLog: Likewise.
* pflocal/ChangeLog: Likewise.
* proc/ChangeLog: Likewise.
* release/ChangeLog: Likewise.
* serverboot/ChangeLog: Likewise.
* storeio/ChangeLog: Likewise.
* sutils/ChangeLog: Likewise.
* term/ChangeLog: Likewise.
* tmpfs/ChangeLog: Likewise.
* trans/ChangeLog: Likewise.
* ufs-fsck/ChangeLog: Likewise.
* ufs-utils/ChangeLog: Likewise.
* ufs/ChangeLog: Likewise.
* usermux/ChangeLog: Likewise.
* utils/ChangeLog: Likewise.
|
|
* Makefile (HURDLIBS): Add fshelp and ports.
|
|
* getty.c (main) <execl>: Correctly specify sentinels to avoid GCC 4.3
warnings.
|
|
* getty.c: Include <termios.h>.
(set_speed): New function.
(main): Take linespec from argc[1], not argc[2]. Call set_speed.
|
|
|
|
* console-run.c (open_console): Use ERR, not errno.
|
|
* runsystem.sh: For now, this requires bash.
|
|
|
|
* runttys.c (setup_terminal, add_terminal, init_ttys): Check for
malloc failures.
(add_terminal): Fix type used for sizeof calculation in realloc.
(init_ttys): Likewise.
2001-11-21 Ryan M Golbeck <rmgolbeck@uwaterloo.ca>
* runttys.c (setup_terminal: make_args): Fixed off by one error.
|
|
|
|
* runsystem.sh: Don't check for MULTIBOOT_CMDLINE environment variable.
Instead, expect it as normal arguments from init.
|
|
|
|
* rc.sh: Start /hurd/mach-defpager before swapon.
|
|
* rc.sh: Include $? value in message about unexpected fsck exit.
|
|
2001-01-17 Neal H Walfield <neal@cs.uml.edu>
* console-run.c (open_console): Conform to new
fshelp_start_translator semantics.
init/
2001-01-17 Neal H Walfield <neal@cs.uml.edu>
* init.c (open_console): Conform to new fshelp_start_translator
semantics.
libfshelp/
2001-01-17 Neal H Walfield <neal@cs.uml.edu>
* fshelp.h: Add two new parameters to fshelp_open_fn_t:
a port to the new task and a cookie.
Add a new parameter, cookie, to fshelp_start_translator and
fshelp_start_translator_long that will be passed to
fshelp_open_fn_t.
* fetch-root.c (fshelp_fetch_root): Conform to new
fshelp_start_translator_long semantics.
* start-translator-long.c (service_fsys_startup): Likewise.
(fshelp_start_translator_long): Likewise.
* start-translator.c (fshelp_start_translator): Likewise.
libtreefs/
Conform to new fshelp_start_translator semantics.
trans/
2001-01-17 Neal H Walfield <neal@cs.uml.edu>
* pump.c (start_pfinet): Conform to new fshelp_start_translator
semantics.
utils/
2001-01-17 Neal H Walfield <neal@cs.uml.edu>
* mount.c (do_mount): Conform to new fshelp_start_translator
semantics.
* settrans.c (main): Conform to new fshelp_start_translator
semantics therby allowing us to print the pid of the an
active translator.
|
|
* getty.c (main): Report an error if login_tty failed.
|
|
|
|
* getty.c: Undo last change.
|
|
|
|
* getty.c (main): Make TTY our controlling terminal with TIOCSCTTY.
|
|
* getty.c: Include <utmp.h> for login_tty decl.
|
|
|
|
* runttys.c (main): Only call error if setsid returns -1.
From Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
|
|
* runttys.c (run): Only call error if setsid returns -1.
* console-run.c (open_console): Likewise.
|
|
|
|
* console-run.c (open_console): Move first setting of TERMINAL and
ARGZ_LEN outside of loop, quiets compiler warning.
|
|
|
|
* lmail.c: Add #include <sys/mman.h> for munmap decl.
|
|
* lmail.c (bfree): Use munmap instead of vm_deallocate.
|
|
* rc.sh: Specify bash instead of sh.
(remove_translators): Don't descend into "." or "..". Alter
calling convention slightly and require the `nullglob' option to
be set. Change caller to suit. From Kalle Olavi Niemitalo
<tosi@ees2.oulu.fi>.
|
|
|
|
* rc.sh: Clean /tmp using special hackery to nuke translators.
|
|
|
|
* runttys.c: New file.c
* Makefile (targets, SRCS): Add runttys, runttys.c.
(runttys): New target.
(runttys-LDLIBS): New variable, -lutil.
|
|
* runsystem.sh: New file.
* Makefile (targets, special-targets): Add runsystem.
(runsystem): New target.
|