jmg [Sun, 8 Aug 2004 02:37:22 +0000 (02:37 +0000)]
rearange some code that handles the thread taskqueue so that it is more
generic. Introduce a new define TASKQUEUE_DEFINE_THREAD that takes a
single arg, which is the name of the queue.
kientzle [Sun, 8 Aug 2004 02:22:48 +0000 (02:22 +0000)]
Oops. Use "unsigned long" instead of "int" for the intermediate variables
in wide-character conversions, since it's guaranteed to be large enough.
Thanks to: Andrey Chernov
kientzle [Sun, 8 Aug 2004 01:21:10 +0000 (01:21 +0000)]
Use 'int' for certain wide-character conversions instead of wchar_t.
That quiets some compiler warnings on platforms with 16-bit wchar_t.
With this change, libarchive now compiles cleanly on Win32/cygwin.
philip [Sun, 8 Aug 2004 01:10:23 +0000 (01:10 +0000)]
Update support for Synaptics Touchpads (Volume IV)
o Change the motion calculation to result in
a more reasonable speed of motion
This should fix the 'aiming' problems people have reported. It also
mitigates (but doesn't completely solve) the 'stalling' problems at
very low speeds.
Tested by: many subscribers to -current
Approved by: njl
philip [Sun, 8 Aug 2004 00:57:07 +0000 (00:57 +0000)]
Update support for Synaptics Touchpads (Volume II)
o Handle the 'up/down' buttons some touchpads have as
a z-axis (scrollwheel) as recommended by the specs
o Report the buttons as button4 and button5 instead
of button2 and button4, button2 can be emulated by
pressing button1 and button3 simultaneously. This
allows one to use the two extra buttons for other
purposes if one so desires.
Tested by: many subscribers to -current
Approved by: njl
alc [Sun, 8 Aug 2004 00:31:58 +0000 (00:31 +0000)]
With the advent of pmap locking it makes sense for pmap_copy() to be less
forgiving about inconsistencies in the source pmap. Also, remove a new-
line character terminating a nearby panic string.
marcel [Sun, 8 Aug 2004 00:28:07 +0000 (00:28 +0000)]
Implement single stepping when we leave the kernel through the EPC syscall
path. The basic problem is that we cannot set the single stepping flag
directly, because we don't leave the kernel via an interrupt return. So,
we need another way to set the single stepping flag.
The way we do this is by enabling the lower-privilege transfer trap, which
gets raised when we drop the privilege level. However, since we're still
running in kernel space (sec), we're not yet done. We clear the lower-
privilege transfer trap, enable the taken-branch trap and continue exiting
the kernel until we branch into user space.
Given the current code, there's a total of two traps this way before
we can raise SIGTRAP.
marcel [Sat, 7 Aug 2004 21:55:15 +0000 (21:55 +0000)]
Slightly move labels around to make sure we call ast() on our way out
after a fork(2) in fork_trampoline(). By moving the epc_syscall_return
label immediately before the call to do_ast() in epc_syscall(), we not
only achieve that but also handle the detour through exception_return
when the frame corresponds to an asynchronous kernel entry. Hence, we
simplified fork_trampoline() as a side-effect.
marcel [Sat, 7 Aug 2004 21:40:52 +0000 (21:40 +0000)]
De-inline gdb_cpu_signal() because we need to convert the trap vectors
related to breakpoints and single stepping into SIGTRAP so gdb(1) knows
why the remote target has stopped. In particular, gdb(1) needs to know
if the reason is something of its own doing.
kientzle [Sat, 7 Aug 2004 19:25:34 +0000 (19:25 +0000)]
Add --totals option. Unlike gtar, this reports the bytes actually
written to the archive, not the ones written to the compressor.
For uncompressed archives, these numbers are the same, of course.
kientzle [Sat, 7 Aug 2004 19:22:50 +0000 (19:22 +0000)]
Split archive_{read,write}_finish into separate "close" (finish the archive
and close it) and "finish" (destroy the object) functions. For backwards
compat and simplicity, have "finish" invoke "close" transparently if needed.
This allows clients to close the archive and check end-of-operation
statistics before destroying the object.
kientzle [Sat, 7 Aug 2004 17:17:11 +0000 (17:17 +0000)]
Linux port corrections:
* Add a more reasonable default device for linux
* Add an autoconf check for the FNM_LEADING_DIR extension
(which isn't yet obeyed in the code)
deischen [Sat, 7 Aug 2004 15:15:38 +0000 (15:15 +0000)]
Add a way to force 1:1 mode for libpthread. To do this, define
LIBPTHREAD_SYSTEM_SCOPE in the environment.
You can still force libpthread to be built in strictly 1:1 by
adding -DSYSTEM_SCOPE_ONLY to CFLAGS. This is kept for archs
that don't yet support M:N mode.
mlaier [Sat, 7 Aug 2004 09:32:04 +0000 (09:32 +0000)]
Add a "void *if_carp" placeholder to struct ifnet with prospect to bring in
the "Common address redundancy protocol" (CARP) during the 5-STABLE cycle.
Hence doing the ABI break now.
marcel [Sat, 7 Aug 2004 07:41:37 +0000 (07:41 +0000)]
Implement a remove command. The remove command iterates the GPT
partitions and removes any that matches the pre-conditions. The
options are the same for the add command and are used to select
the partitions to remove.
Currently the remove command without any options deletes all GPT
partitions. This is rather harmful and will need anti-footshooting
measures.
marcel [Sat, 7 Aug 2004 06:10:45 +0000 (06:10 +0000)]
o Save the partition number (=index) in the internal map. The index
starts at 1. No index is represented by 0.
o Change the show command to display the partition number at the expense
of the partition end columm. We already display the start and size.
o Enhance the add command to accept the -i option. The -i option allows
the user to specify which partition number the new partition should
get.
o Update the manpage accordingly.
imp [Sat, 7 Aug 2004 04:17:03 +0000 (04:17 +0000)]
Since we upgraded compilers, and the kernel build to match, we can't build
new kernels on older userlands. Document this fact in the entry that talked
about the system upgrade.
marcel [Sat, 7 Aug 2004 04:03:18 +0000 (04:03 +0000)]
Create an EFI partition when the user wants auto defaults. There's
some confusion as to how large the EFI system partition should be,
but 100MB seems to be either the maximum, the minimum or the default
size, so make the EFI partition 100MB.
kientzle [Sat, 7 Aug 2004 03:09:28 +0000 (03:09 +0000)]
libarchive now has two complete build systems. The usual "Makefile"
is present for FreeBSD. If you "make distfile" on FreeBSD, you will
soon have a tar.gz file suitable for deploying to other systems
(complete with the expected "configure" script, etc). This latter
relies (at least for now) on the GNU auto??? tools. (I like autoconf
okay, but someday I hope to write a custom Makefile.in and dispense
with automake, which is somewhat odious.)
As part of this, I've cleaned up some of the conditional
compilation options, added make-foo to construct archive.h dynamically
(it now contains some version constants), and added some useful
informational files.
kientzle [Sat, 7 Aug 2004 02:50:05 +0000 (02:50 +0000)]
Pass the pointy hat, please: Don't blow away the high-order
mode bits when setting permissions from ACL data.
Thanks to: David Gilbert for first reporting this and
Jimmy Olgeni for noticing that it only occurred on
ACL-enabled filesystems.
marcel [Sat, 7 Aug 2004 01:19:54 +0000 (01:19 +0000)]
o Save pointers to the chunks for root, home, swap, usr, var and tmp in
global variables. On ia64, save a pointer to the efi chunk as well.
o At the same time, change checkLabels() to define these globals instead
of having the caller of checkLabels() pass addresses to variables for
these. Change the two callers correspondingly.
o Spent a bit more time adjusting try_auto_label() to prepate for having
the EFI partition created on ia64.
o Remove efi_mountpoint(). The EFI chunk is now available without having
to iterate over the disks and chunks to find it every time we need it.
o On ia64, now that the root chunk is globally available, set the
vfs.root.mountfrom tunable in loader.conf. This avoids that one cannot
boot into FreeBSD after an install. The kernel cannot find the root
device without a little help...
grehan [Sat, 7 Aug 2004 00:20:00 +0000 (00:20 +0000)]
Always isync after a mtmsr. While perhaps not strictly necessary for PSL_EE
bit banging according to the OEA, it's better to be conservative than
having to continually audit uses of this inline.
rwatson [Fri, 6 Aug 2004 22:25:35 +0000 (22:25 +0000)]
Flag a broad range of VFS operations as GIANT_REQUIRED in order to
catch leaking into VFS without Giant.
Inch Giant a little lower in several file descriptor operations on
vnodes to cover only VFS operations that need it, rather than file
flag reading, etc.
njl [Fri, 6 Aug 2004 22:23:53 +0000 (22:23 +0000)]
Fix a panic in ata_generic_transaction(). The DMA pointer of the channel
was being unconditionally dereferenced but was NULL for PIO requests.
Check the request flags for a DMA transaction before dereferencing.
rwatson [Fri, 6 Aug 2004 22:06:14 +0000 (22:06 +0000)]
In thread_exit(), include more information about the thread/process
context in the KTR trace record. In particular, include the same
information as passed for mi_switch() and fork_exit() KTR trace
records.
rwatson [Fri, 6 Aug 2004 22:04:33 +0000 (22:04 +0000)]
Push UIDINFO_UNLOCK() slightly earlier in chgsbize(), as it's not
needed if we print the local variable version of the limit rather
than the shared version.
rwatson [Fri, 6 Aug 2004 22:00:55 +0000 (22:00 +0000)]
Avoid acquiring Giant for some common light-weight or already MPSAFE
fcntl() operations, including:
F_DUPFD dup() alias
F_GETFD retrieve close-on-exec flag
F_SETFD set close-on-exec flag
F_GETFL retrieve file descriptor flags
For the remaining fcntl() operations, do acquire Giant, especially
where we call into fo_ioctl() as a result. We're not yet ready to
push Giant into fo_ioctl(). Once we do, this can all become quite a
bit prettier.
rwatson [Fri, 6 Aug 2004 21:56:26 +0000 (21:56 +0000)]
Generate KTR trace records for syscall enter and exit in i386 system
calls. Note that the information included is a bit different from the
existing KTR traces generated on powerpc, as I'm primarily interested
in kernel context (thread, syscall #, proc, etc), not the user
arguments to the system call. Some convergence would be useful here.
rwatson [Fri, 6 Aug 2004 21:52:38 +0000 (21:52 +0000)]
Generate KTR trace records for uma_zalloc_arg() and uma_zfree_arg().
This doesn't trace every event of interest in UMA, but provides
enough basic information to explain lock traces and sleep patterns.
rwatson [Fri, 6 Aug 2004 21:49:00 +0000 (21:49 +0000)]
Cut a KTR record whenever a callout is invoked. Mark whether it runs
with Giant or not, and include the function point so it can be looked
up against the kernel symbol table during trace analysis.
kensmith [Fri, 6 Aug 2004 20:08:38 +0000 (20:08 +0000)]
I've had 'make release' problems on a large/fast dual processor machine
with doFS.sh consistently dying here because the device didn't exist
in the namespace fast enough after doing the mdconfig. But the device
did eventually show up. There have been similar complaints on mailing
lists that might boil down to this being the problem too.
This is obviously a hack, if anyone knows what might cause a delay
between mdconfig running and when the name appears in the /dev namespace
(inside a chroot-ed environment if that matters) I'd be happy to back
this out.
marcel [Fri, 6 Aug 2004 17:07:40 +0000 (17:07 +0000)]
Now that make(1) passes variables that were given on the command line
to subordinate make(1) invocations through MAKEFLAGS, we cannot add
CFLAGS onto the make(1) command line. This will conflict with the
individual makefiles wanting to append to it, which is not respected
when CFLAGS is given on the command line. Hence build breakage.
So, put CFLAGS in the environment instead.
marcel [Fri, 6 Aug 2004 15:51:31 +0000 (15:51 +0000)]
Do not use hardware flow control for the moment. There are some issues
with it that need to be understood better before they can be resolved.
This takes time and time is already in short supply.
jmg [Fri, 6 Aug 2004 15:06:06 +0000 (15:06 +0000)]
remove /boot/kernel from the default path.. There is already code that
will prepend the current kernel booting... This prevents a problem of
loading /boot/kernel's modules when a different kernel has no modules,
but you left your module_load="YES" in loader.conf...
pjd [Fri, 6 Aug 2004 09:55:40 +0000 (09:55 +0000)]
Fix I/O leakage. We're cloning bios in g_stripe_start_fast(), but when
something goes wrong while running in "fast" mode, we free all bios and
falling back to "economic" mode. Freeing bios, doesn't mean decrease
bio_children, so bio_inbed couldn't be equal to bio_children and request
was never finished.
Decrease bio_children manually when destroying bios.
Reported by: Sam Lawrance <boris@brooknet.com.au>, simon
roam [Fri, 6 Aug 2004 09:08:33 +0000 (09:08 +0000)]
Do not attempt to clean up data that has not been initialized yet.
This fixes two kernel panics on boot when the xl driver fails to
allocate bus/port/memory resources.