Matthew Dillon [Thu, 11 Dec 2003 20:50:21 +0000 (20:50 +0000)]
Add the -o file option to rcorder. This will cause rcorder to generate
the dependancy list required to execute a particular file.
Matthew Dillon [Thu, 11 Dec 2003 20:33:49 +0000 (20:33 +0000)]
Do not print out error messages in quiet mode to make shell scriptiong
with varsym easier.
Jeffrey Hsu [Wed, 10 Dec 2003 23:48:07 +0000 (23:48 +0000)]
Pull the sf_buf routines and structures out into its own files in
anticipation of wider future use.
Requested and reviewed by: dillon
Matthew Dillon [Wed, 10 Dec 2003 22:41:20 +0000 (22:41 +0000)]
More cleanups to make ports work better.
Matthew Dillon [Wed, 10 Dec 2003 22:27:27 +0000 (22:27 +0000)]
Add -fstack-protector support for the kernel.
http://www.trl.ibm.com/projects/security/ssp/
Submitted-by: Ryan Dooley <dooleyr@missouri.edu>
Jeffrey Hsu [Wed, 10 Dec 2003 22:26:19 +0000 (22:26 +0000)]
This patch improves the performance of sendfile(2). It adds a hash
table of active sf_buf mappings to ensure there is exactly one
(ref-counted) sf_buf for each vm_page. This saves on the number
of sf_bufs used when sendfile(2) sends the same file over and over
again to multiple connections simultaneously. It also does lazy
updates on the hw page table when a sf_buf ref count goes to zero,
placing them on a freelist instead, in effect, making sf_bufs a
cache of virtual-to-physical translations with LRU replacement on
the inactive sf_bufs. Finally, it does a wakeup_one() instead of
a broadcast wakeup() when a free sf_buf becomes available.
This patch roughly corresponds to FreeBSD revs 1.219 and 1.220 of
sys/i386/i386/vm_machdep.c:
revision 1.219
date: 2003/11/17 18:22:24; author: alc; state: Exp; lines: +48 -26
Change the i386's sf_buf implementation so that it never allocates
more than one sf_buf for one vm_page. To accomplish this, we add
a global hash table mapping vm_pages to sf_bufs and a reference
count to each sf_buf. (This is similar to the patches for RELENG_4
at http://www.cs.princeton.edu/~yruan/debox/.)
For the uninitiated, an sf_buf is nothing more than a kernel virtual
address that is used for temporary virtual-to-physical mappings by
sendfile(2) and zero-copy sockets. As such, there is no reason for
one vm_page to have several sf_bufs mapping it. In fact, using more
than one sf_buf for a single vm_page increases the likelihood that
sendfile(2) blocks, hurting throughput.
(See http://www.cs.princeton.edu/~yruan/debox/.)
revision 1.220
date: 2003/12/07 22:49:25; author: alc; state: Exp; lines: +10 -9
Don't remove the virtual-to-physical mapping when an sf_buf is freed.
Instead, allow the mapping to persist, but add the sf_buf to a free list.
If a later sendfile(2) or zero-copy send resends the same physical page,
perhaps with the same or different contents, then the mapping overhead is
avoided and the sf_buf is simply removed from the free list.
In other words, the i386 sf_buf implementation now behaves as a cache of
virtual-to-physical translations using an LRU replacement policy on
inactive sf_bufs. This is similar in concept to a part of
http://www.cs.princeton.edu/~yruan/debox/ patch, but much simpler in
implementation. Note: none of this is required on alpha, amd64, or ia64.
They now use their direct virtual-to-physical mapping to avoid any
emphemeral mapping overheads in their sf_buf implementations.
Reviewed by: dillon
Matthew Dillon [Wed, 10 Dec 2003 22:25:08 +0000 (22:25 +0000)]
Add -fstack-protector and -fno-stack-protector support to GCC. Note
that the default is set to no protection (what it was before). See:
http://www.trl.ibm.com/projects/security/ssp/
Submitted-by: Ryan Dooley <dooleyr@missouri.edu>
Matthew Dillon [Wed, 10 Dec 2003 22:15:36 +0000 (22:15 +0000)]
Add libc support for propolice. See:
http://www.trl.ibm.com/projects/security/ssp/
Submitted-by: Ryan Dooley <dooleyr@missouri.edu>
Matthew Dillon [Wed, 10 Dec 2003 00:29:26 +0000 (00:29 +0000)]
Add strlcpy and strlcat to libkern
David Rhodus [Tue, 9 Dec 2003 23:43:36 +0000 (23:43 +0000)]
* Add a part of the AGP update that was missed.
This also fixes the kernel compile.
Matthew Dillon [Tue, 9 Dec 2003 19:40:56 +0000 (19:40 +0000)]
This patch adds a bunch of stuff from FreeBSD5. It consistantly makes
vendor specific drivers depend on agp, consistantly checks the gart size
!= 0, changes agp_generic_enable to the FreeBSD5 function, initializing
the device as v2 or v3 accordingly, syncs up agpio.h, and adds a couple
PCI Ids from FreeBSD5.
Submitted-by: Craig Dooley <cd5697@albany.edu>
Eirik Nygaard [Mon, 8 Dec 2003 13:56:36 +0000 (13:56 +0000)]
* Merge fixes from libc to libcr.
Matthew Dillon [Sun, 7 Dec 2003 19:23:40 +0000 (19:23 +0000)]
PCI compat cleanup, part 1. This brings in the LNC and VX drivers
from FreeBSD-5. They are not the newest versions, just new enough to
use newbus, not the PCI compat code.
Submitted-by: Joerg Sonnenberger <joerg@britannica.bec.de>
Matthew Dillon [Sun, 7 Dec 2003 18:22:09 +0000 (18:22 +0000)]
Convert alpm to use the devmethod code.
Submitted-by: Joerg Sonnenberger <joerg@britannica.bec.de>
Matthew Dillon [Sun, 7 Dec 2003 04:26:41 +0000 (04:26 +0000)]
Thread testing code for libcaps.
Matthew Dillon [Sun, 7 Dec 2003 04:21:54 +0000 (04:21 +0000)]
Major update to libcaps. Implement support for virtual cpus using
rfork_thread() and implement IPIs, per-virtual-cpu globaldata areas,
and per-virtual-cpu LWKT scheduling.
Matthew Dillon [Sun, 7 Dec 2003 04:20:40 +0000 (04:20 +0000)]
Add additional functionality to the upcall support to allow us to wait for
an upcall instead of spin.
Also fix a bug in the trap code. %gs faults have to be handled in nested
interrupts because %gs is not saved and restored. It is also possible that
%fs may have to be handled the same way, but I am not sure yet.
Matthew Dillon [Sun, 7 Dec 2003 02:14:20 +0000 (02:14 +0000)]
Adjust a comment.
Matthew Dillon [Sun, 7 Dec 2003 01:17:53 +0000 (01:17 +0000)]
Modify the upcall code to access the critical count via the current thread
rather then embedding the critical count in the upcall structure.
Matthew Dillon [Sat, 6 Dec 2003 20:11:44 +0000 (20:11 +0000)]
Minor cleanups to sysport. Use ms_msgsize in the sendsys() call.
Submitted-by: Galen Sampson <galen_sampson@yahoo.com>
David Rhodus [Sat, 6 Dec 2003 03:11:36 +0000 (03:11 +0000)]
* Remove a few extra $FreeBSD$ tags
* Fix a few mis-spellings
Matthew Dillon [Thu, 4 Dec 2003 22:06:22 +0000 (22:06 +0000)]
Major libcaps work to support userland threading. Stage 1/2.
Hook the system's upcall mechanism into the globaldata structure
and hook up the LWKT thread switching primitives. Integrate the
mp_lock code from DragonFly into libcaps to serve as a master lock
for userland threading as well (it turns out that the BGL support in
DragonFly could be trivially ported to the userland threading code).
Still todo: hook up critical section handling, deal with FP regs,
hook up rfork support for multiple virtual cpu's via the upcall mechanism,
and testing of same.
Work by: Galen Sampson <galen_sampson@yahoo.com> and
Matthew Dillon <dillon@backplane.com>
Matthew Dillon [Thu, 4 Dec 2003 20:35:09 +0000 (20:35 +0000)]
Augment the upcall system calls to support a priority mechanism rather then
just a pending mechanism. When dispatching or polling for an upcall the
data field is used to supply a priority which will be compared against
the userland crit_count.
Matthew Dillon [Thu, 4 Dec 2003 20:09:33 +0000 (20:09 +0000)]
General cleanups as part of the libcaps userland threading work.
Matthew Dillon [Thu, 4 Dec 2003 00:12:40 +0000 (00:12 +0000)]
As part of the libcaps threading work a number of routines in lwkt_thread.c
are going to be separately implemented for userland. #ifdef _KERNEL out
the routines.
Submitted-by: Galen Sampson <galen_sampson@yahoo.com>
Matthew Dillon [Thu, 4 Dec 2003 00:01:14 +0000 (00:01 +0000)]
Add chmod 1777 for /tmp and make other minor adjustments.
Suggested-by: Peter Kadau <peter.kadau@tuebingen.mpg.de>
Matthew Dillon [Tue, 2 Dec 2003 20:19:39 +0000 (20:19 +0000)]
Add additional information on cvsup'ing various sources.
Suggested-by: David Rhodus <drhodus@catpa.com>
David Rhodus [Tue, 2 Dec 2003 15:08:38 +0000 (15:08 +0000)]
* Might help if we built gbk.c and gb18030.c
Eirik Nygaard [Tue, 2 Dec 2003 14:56:28 +0000 (14:56 +0000)]
* Remove unused #includes.
Obtained from: FreeBSD
Jeroen Ruigrok/asmodai [Tue, 2 Dec 2003 12:35:52 +0000 (12:35 +0000)]
Comment PFIL_HOOKS since it should not be needed in GENERIC.
Leave it in so that people know it is needed for packet filters.
Jeroen Ruigrok/asmodai [Tue, 2 Dec 2003 09:18:17 +0000 (09:18 +0000)]
Add the packet filtering files.
Jeroen Ruigrok/asmodai [Tue, 2 Dec 2003 08:00:22 +0000 (08:00 +0000)]
Add PFIL_HOOKS functionality. This allows us to plug in many firewalling
architectures by using/having generic hooks in the networking code.
David Rhodus [Mon, 1 Dec 2003 23:50:20 +0000 (23:50 +0000)]
* Sync comment with code's reality.
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 23:46:20 +0000 (23:46 +0000)]
* Fix problem where initgroups would silently truncate groups with
more than NGROUP elements without providing the opportunity to
setgroups to fail and correctly return error and set errno.
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 23:38:23 +0000 (23:38 +0000)]
* Add GBK encoding support.
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 23:29:25 +0000 (23:29 +0000)]
* Add support for gb18030 encoding.
Obtained from: FreeBSD
Matthew Dillon [Mon, 1 Dec 2003 23:19:16 +0000 (23:19 +0000)]
After testing the manual installation instructions on a real box make some
minor documentation changes and fix a bug (missing cpdup for /usr).
David Rhodus [Mon, 1 Dec 2003 23:17:08 +0000 (23:17 +0000)]
* Allow a return of 0 from __sys_write() to exit the loop in libc_r's
wrapped version of write().
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 23:02:22 +0000 (23:02 +0000)]
* Document the fact that send(2) can return EPIPE (like when a
socket is not connected).
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 22:58:44 +0000 (22:58 +0000)]
* don't fclose() a bogus FILE *.
Obtained from: FreeBSD
David Rhodus [Mon, 1 Dec 2003 22:56:22 +0000 (22:56 +0000)]
* Attempt to save the last dregs of emacs users' sanity by saving the
contents of the PR when an interrupt is received during the editor
session. This stops the use of ^G from deleting a filled PR from
underneath the user.
Obtained from: The FreeBSD project
Matthew Dillon [Mon, 1 Dec 2003 21:14:03 +0000 (21:14 +0000)]
Add a README file, rc.conf, and example fstab. Disable a number of system
gizmos in the rc.conf that don't make sense for a CD boot, like syslog
and cron.
Matthew Dillon [Mon, 1 Dec 2003 20:12:39 +0000 (20:12 +0000)]
Use mkiso -R instead of -r in order to properly record file modes. In
particular, the file modes associated with devices.
Matthew Dillon [Mon, 1 Dec 2003 19:32:56 +0000 (19:32 +0000)]
Add nreleae back in. It's a dummy target designed only to ensure that
the proper obj dir infrastructure is created so the nrelease Makefile's
can use ${.OBJDIR}.
Adjust the nrelease Makefile's to perform port checks only when actually
building the release.
Matthew Dillon [Mon, 1 Dec 2003 19:12:25 +0000 (19:12 +0000)]
Temporary disable the ports checks.. the Makefile has to be runnable from
buildworld in order to create the obj dir infrastructure only (not to actually
build a release).
David Rhodus [Mon, 1 Dec 2003 17:07:26 +0000 (17:07 +0000)]
* buildworld doesn't need to look at nrelease.
This was requiring things like mkisofs and cvsup to
complete a basic buildworld.
Matthew Dillon [Mon, 1 Dec 2003 10:10:22 +0000 (10:10 +0000)]
Fix a minor bug... install cvsup and mkisofs in the correct
directory.
Matthew Dillon [Mon, 1 Dec 2003 09:59:46 +0000 (09:59 +0000)]
Introduce /usr/src/nrelease which begins to implement the new 'live CD'
ISO builder idea. This initial commit is capable of creating bootable
ISO images which contain a complete working distribution but will boot
into a login prompt (login as root) rather then sysinstall or a
sysinstall-like utility. Development is ongoing. Critical subdirectories
are remounted as MFS so most normal commands, including vi, should work just
fine.
Jeroen Ruigrok/asmodai [Mon, 1 Dec 2003 09:29:11 +0000 (09:29 +0000)]
Add forgotten newline in debug output.
Synchs with FreeBSD's 1.7.
Jeroen Ruigrok/asmodai [Mon, 1 Dec 2003 09:02:10 +0000 (09:02 +0000)]
Get rid off FreeBSD mirrors and add our own three (in Germany, Ireland, and
Japan).
Matthew Dillon [Mon, 1 Dec 2003 08:52:20 +0000 (08:52 +0000)]
When attempting to open a file path do not treat a file that appears as a
path element as a directory. This can lockup the boot code.
Matthew Dillon [Mon, 1 Dec 2003 06:07:16 +0000 (06:07 +0000)]
Do not require -i0 when -o is used.
Matthew Dillon [Mon, 1 Dec 2003 04:38:26 +0000 (04:38 +0000)]
Add a missing PRELE() when the mfs_mount kernel process exits. Because
DragonFly does not teardown zombie processes while p_lock is non-zero this
prevented such processes from being reaped and deadlocked the init process.
Matthew Dillon [Mon, 1 Dec 2003 04:36:57 +0000 (04:36 +0000)]
Documentat mount_mfs -C
Matthew Dillon [Mon, 1 Dec 2003 04:35:39 +0000 (04:35 +0000)]
Add the -C option to mount_mfs. This option will automatically copy the
underlying filesystem into the MFS mount being created over it. It does
this by loading the directory and file structure into memory, creating the
MFS mount, then storing the directory and file structure back into the MFS
mount.
This will be used when booting from read-only media to generate an 'easy'
read-write template. For example:
mount_mfs -s 16384 -C swap /var
Softlinks, devices, regular files, directories, and hardlinks are maintained.
Fifos and sockets are not copied.
Matthew Dillon [Mon, 1 Dec 2003 02:20:14 +0000 (02:20 +0000)]
Add cpdup to /bin (not /usr/bin), so we can start using it during boot
to simplify things like diskless booting.
Matthew Dillon [Sun, 30 Nov 2003 20:14:18 +0000 (20:14 +0000)]
Add the MPIPE subsystem. This subsystem is used for 'pipelining' fixed-size
allocations. Pipelining is used to avoid lack-of-resource deadlocks by
still allowing resource allocations to 'block' by guarenteeing that an
already in-progress operation will soon free memory that will be immediately
used to satisfy the blocked resource.
Adjust the ATAold code to use the new mechanism and remove the code that
tried to back-off into PIO mode when resources were lacking.
David Rhodus [Sun, 30 Nov 2003 17:04:35 +0000 (17:04 +0000)]
* s/FreeBSD/DragonFly at the boot2 prompt.
David Rhodus [Sat, 29 Nov 2003 18:56:22 +0000 (18:56 +0000)]
* Prevent leakage of wired pages by setting start_entry
during vm_map_wire().
David Rhodus [Sat, 29 Nov 2003 15:23:33 +0000 (15:23 +0000)]
* Add quirk for LEXAR 256MB JUMPDRIVE
Matthew Dillon [Fri, 28 Nov 2003 19:32:41 +0000 (19:32 +0000)]
Fix bug in last commit (missing ..)
Submitted-by: YONETANI Tomokazu <qhwt@myrealbox.com>
Matthew Dillon [Thu, 27 Nov 2003 19:57:37 +0000 (19:57 +0000)]
Fix a DOS in rfork(). Disallow kernel-only flags.
Taken-from: FreeBSD-4.x kern_fork.c 1.72.2.16 and unistd.h 1.22.2.3
Matthew Dillon [Thu, 27 Nov 2003 19:11:17 +0000 (19:11 +0000)]
Cleanup POSIX real-time so the kernel compiles without the P1003_1B
option.
Submitted-by: Joerg Sonnenberger <joerg@britannica.bec.de>
Jeroen Ruigrok/asmodai [Wed, 26 Nov 2003 14:24:46 +0000 (14:24 +0000)]
Add support for the ICH 4 mobile chipset.
Jeroen Ruigrok/asmodai [Wed, 26 Nov 2003 07:49:57 +0000 (07:49 +0000)]
Temporary hack out release.9, which creates the floppies.
Jeroen Ruigrok/asmodai [Tue, 25 Nov 2003 18:04:48 +0000 (18:04 +0000)]
Get rid off the POSIX real-time extensions as well as the System V IPC and
slip support.
Matthew Dillon [Mon, 24 Nov 2003 23:56:07 +0000 (23:56 +0000)]
#include cleanups for lwkt_msgport.c and lwkt_thread.c... the committed
library name is libcaps, not liblwkt.
Matthew Dillon [Mon, 24 Nov 2003 21:32:33 +0000 (21:32 +0000)]
Set the close-on-exec flag for CAPS client descriptors.
Matthew Dillon [Mon, 24 Nov 2003 21:21:43 +0000 (21:21 +0000)]
Add /var/caps/root and /var/caps/users. IPC rendezvous services for root
is implemented as a unix domain socket by libcaps in /var/caps/root/<name>.
IPC rendezvous services for users are implemented in
/var/caps/users/<uid>/<name>. Allowing users to create services requires
manually creating a /var/caps/users/<uid> directory that is owned by that
uid.
Matthew Dillon [Mon, 24 Nov 2003 21:15:59 +0000 (21:15 +0000)]
Add a new library, libcaps, which is intended to encompass DragonFly-specific
core threading and IPC mechanisms.
As of this commit the library is very incomplete. It works just well enough
to run the IPC test program unthreaded. For the moment it is implemented
via unix domain sockets. The IPC mechanism is eventually expected to be
moved directly into the kernel and use an upcall for replies.
Matthew Dillon [Mon, 24 Nov 2003 20:46:05 +0000 (20:46 +0000)]
More LWKT messaging cleanups. Isolate the default port functions by making
them static and rename lwkt_init_port() to lwkt_initport() to conform with
lwkt_initmsg().
Matthew Dillon [Sun, 23 Nov 2003 22:15:22 +0000 (22:15 +0000)]
Fix the OID_AUTO collision with static sysctl numbers. This can occur
when things like DIVERT are turned on, because they use static oid's
larger then 100. Change the minimum OID_AUTO oid from 100 to 256 (taken
from FreeBSD-5.x), and add the assignment scan code from FreeBSD-4.x
rather then using a static variable.
Matthew Dillon [Sun, 23 Nov 2003 20:22:59 +0000 (20:22 +0000)]
NETISR_POLL cannot use isr 0. Use isr 1.
Bug reported by: TC Lewis <tfox@dimension-4.dnsalias.net>
Matthew Dillon [Sun, 23 Nov 2003 00:28:01 +0000 (00:28 +0000)]
Make the 'bad isr' panics a little more verbose.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 21:12:35 +0000 (21:12 +0000)]
Change $FreeBSD$ to $DragonFly$ on the output files.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 21:11:31 +0000 (21:11 +0000)]
Also revert the VI_UNLOCKED damage.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 21:01:50 +0000 (21:01 +0000)]
Remove KTR damage.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 20:00:37 +0000 (20:00 +0000)]
Add two more awk kernel build scripts from FreeBSD.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 19:58:48 +0000 (19:58 +0000)]
Add proper $FreeBSD$ identifier.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 19:48:32 +0000 (19:48 +0000)]
Remove haveseen_iobase(), it is not in use in the kernel.
This synchs with FreeBSD's 1.21 and 1.70.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 19:43:25 +0000 (19:43 +0000)]
Use malloc() + M_ZERO instead of malloc() + bzero().
Synchs with FreeBSD's 1.23.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 19:30:57 +0000 (19:30 +0000)]
Properly spell compatible and compatibility.
Eirik Nygaard [Sat, 22 Nov 2003 11:38:13 +0000 (11:38 +0000)]
* K&R function cleanup
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 09:51:45 +0000 (09:51 +0000)]
Remove the archaic wd(4) driver.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 09:50:36 +0000 (09:50 +0000)]
Remove the archaic wd(4) driver and its dependencies.
Tested with: LINT
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 08:39:46 +0000 (08:39 +0000)]
Use unsigned integers for the counters, since they cannot be negative
anyway.
Synchs with FreeBSD 1.5 and 1.7.
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 08:16:45 +0000 (08:16 +0000)]
Spell initialise correctly.
Sync with FreeBSD's 1.6 (which is also a commit by me)
Jeroen Ruigrok/asmodai [Sat, 22 Nov 2003 07:51:14 +0000 (07:51 +0000)]
Add details on how to get a "checked out" source tree.
Matthew Dillon [Fri, 21 Nov 2003 23:30:42 +0000 (23:30 +0000)]
When looking for files that have already been linked, strip off any
path prefix components.
Matthew Dillon [Fri, 21 Nov 2003 22:46:15 +0000 (22:46 +0000)]
Do some fairly major include file cleanups to further separate kernelland
from userland.
* Do not allow userland to include sys/proc.h directly, it must use
sys/user.h instead. This is because sys/proc.h has a huge number
of kernel header file dependancies.
* Do cleanups and work in lwkt_thread.c and lwkt_msgport.c to allow
these files to be directly compiled in an upcoming userland thread
support library.
* sys/lock.h is inappropriately included by a number of third party
programs so we can't disallow its inclusion, but do not include
any kernel structures unless _KERNEL or _KERNEL_STRUCTURES are
defined.
* <ufs/ufs/inode.h> is often included by userland to get at the
on-disk inode structure. Only include the on-disk components and do
not include kernel structural components unless _KERNEL or
_KERNEL_STRUCTURES is defined
* Various usr.bin programs include sys/proc.h unnecessarily.
* The slab allocator has no concept of malloc buckets. Remove malloc
buckets structures and VMSTAT support from the system.
* Make adjustments to sys/thread.h and sys/msgport.h such that the
upcoming userland thread support library can include these files
directly rather then copy them.
* Use low level __int types in sys/globaldata.h, sys/msgport.h,
sys/slaballoc.h, sys/thread.h, and sys/malloc.h, instead of
high level sys/types.h types, reducing include dependancies.
Matthew Dillon [Fri, 21 Nov 2003 18:44:53 +0000 (18:44 +0000)]
'Building databases' has 10 seconds worth of sleeps that it doesn't need.
Remove them.
Matthew Dillon [Fri, 21 Nov 2003 08:32:49 +0000 (08:32 +0000)]
Tweak the context data a bit and do some code cleanup. Save %edx as well
as %eax and %ecx so we can throw the upcall pointer into %edx, which makes
it possible to create self-contained context assembly code. This also
improves performance by giving the context assembly (see
src/test/sysperf/upcall.S) easier access to the upcall structure.
It's also safer (though not critical) to have the kernel save all the
call-used registers when setting up for an upcall.
Matthew Dillon [Fri, 21 Nov 2003 07:04:20 +0000 (07:04 +0000)]
Add some comments to the upcall test code.
Matthew Dillon [Fri, 21 Nov 2003 06:58:28 +0000 (06:58 +0000)]
Add an upcall performance test program + example context function
assembly code.
Matthew Dillon [Fri, 21 Nov 2003 06:41:58 +0000 (06:41 +0000)]
Add UPC_CRITADD, the value that crit_count must be increased or decreased
by.
Matthew Dillon [Fri, 21 Nov 2003 06:41:02 +0000 (06:41 +0000)]
Add a big whopping manual page for the upcall syscalls, upc_register and
friends.
Matthew Dillon [Fri, 21 Nov 2003 05:29:08 +0000 (05:29 +0000)]
Implement an upcall mechanism to support userland LWKT. This mechanism will
allow multiple processes sharing the same VM space (aka clone/threading)
to send each other what are basically IPIs.
Two new system calls have been added, upc_register() and upc_control().
Documentation is forthcoming. The upcalls are nicely abstracted and a
program can register as many as it wants up to the kernel limit (which
is 32 at the moment).
The upcalls will be used for passing asynch data from kernel to userland,
such as asynch syscall message replies, for thread preemption timing,
software interrupts, IPIs between virtual cpus (e.g. between the processes
that are sharing the single VM space).
Matthew Dillon [Thu, 20 Nov 2003 22:14:27 +0000 (22:14 +0000)]
Add a DECLARE_DUMMY_MODULE for snd_cmi to detect kld/static-kernel conflicts.
Matthew Dillon [Thu, 20 Nov 2003 22:07:34 +0000 (22:07 +0000)]
Add a DECLARE_DUMMY_MODULE() so we can get linker_set module names
for modules that normally use DRIVER_MODULE(). The problem is that
DRIVER_MODULE() will define names that do not match the module name,
so a DECLARE_DUMMY_MODULE() is needed for the kernel to be able to
figure out that a module has been statitically compiled in.
Eirik Nygaard [Thu, 20 Nov 2003 17:40:06 +0000 (17:40 +0000)]
* Make pkg_add fetch the packages from /packages-4-stable instead of
/packages-current so -r works again.
Reported by: Adam K Kirchhoff <adamk@voicenet.com>