Peter Pentchev [Wed, 12 Dec 2001 10:12:20 +0000 (10:12 +0000)]
Set the script_name_sep variable to a safe value if it is not
already set (e.g. a failed/skipped mergemaster run during an upgrade).
Without this, if script_name_sep was not set in the rc.conf files,
local scripts will not be executed on startup or shutdown.
PR: misc/32687
Submitted by: Nicholas Paufler <echofox@discordia.ca> (the problem)
Sheldon Hearn (the idea behind the fix)
Reviewed by: sheldonh
MFC after: 1 week
Alfred Perlstein [Wed, 12 Dec 2001 08:02:24 +0000 (08:02 +0000)]
Fix a number of subtle and evil bugs in the libc_r wrapping of sendfile(2).
o) Since we unwrap the sendfile syscall, check the return value of
writev(2) to see if it didn't complete all the data.
Previously if only a partial writev() succeeded, it would proceed
to sendfile(2) even though the headers weren't completely sent.
o) Properly adjust the "bytes to send" to take into account sendfile(2)'s
behaviour of counting the headers against the bytes to be transfered
from the file.
o) Correct the problem where EAGAIN was being returned from _sys_sendfile(2)
however the wrapper didn't update the 'sent bytes' parameter to take into
account for it. This is because sendfile can return EAGAIN even though
it has actually transfered data.
Special thanks to Justin Erenkrantz <jerenkrantz@apache.org> for bringing
this to my attention and giving an excellent way to reproduce the problem.
Andrew R. Reiter [Wed, 12 Dec 2001 05:23:20 +0000 (05:23 +0000)]
- Move _jail sysctl node underneath _kern_security in order to standardize
where our security related sysctl tuneables are located. Also, this
will help if/when we move _security node out from under _kern as to help
make _kern less cluttered.
Bruce A. Mah [Tue, 11 Dec 2001 23:55:41 +0000 (23:55 +0000)]
Make manpage links for 5.0-CURRENT release documents explicitly access the
FreeBSD 5.0-CURRENT manpages on the Web site, instead of pointing at
the (possibly wrong) default manpages.
John Baldwin [Tue, 11 Dec 2001 23:33:44 +0000 (23:33 +0000)]
Overhaul the per-CPU support a bit:
- The MI portions of struct globaldata have been consolidated into a MI
struct pcpu. The MD per-CPU data are specified via a macro defined in
machine/pcpu.h. A macro was chosen over a struct mdpcpu so that the
interface would be cleaner (PCPU_GET(my_md_field) vs.
PCPU_GET(md.md_my_md_field)).
- All references to globaldata are changed to pcpu instead. In a UP kernel,
this data was stored as global variables which is where the original name
came from. In an SMP world this data is per-CPU and ideally private to each
CPU outside of the context of debuggers. This also included combining
machine/globaldata.h and machine/globals.h into machine/pcpu.h.
- The pointer to the thread using the FPU on i386 was renamed from
npxthread to fpcurthread to be identical with other architectures.
- Make the show pcpu ddb command MI with a MD callout to display MD
fields.
- The globaldata_register() function was renamed to pcpu_init() and now
init's MI fields of a struct pcpu in addition to registering it with
the internal array and list.
- A pcpu_destroy() function was added to remove a struct pcpu from the
internal array and list.
Robert Watson [Tue, 11 Dec 2001 22:36:10 +0000 (22:36 +0000)]
- Improve line-wrapping and spacing so as to improve readability.
- Add instructions regarding replacing 'my.domain', as this has come up
on freebsd-questions.
- Remove reference to rs.internic.net/templates, as that directory no
longer exists. Instead, encourage them gently to talk to their network
provider.
Alexey Zelkin [Tue, 11 Dec 2001 16:38:33 +0000 (16:38 +0000)]
Get rid of unsed since rev 1.109 of lib/Makefile WANT_CSRG_LIBM define.
We'll never install math.h wrapped by this define since msun's math.h
is using, so it should be removed from the source tree at some point
(after merge of useful stuff to msun's math.h which is installing now
to /usr/include)
Sheldon Hearn [Tue, 11 Dec 2001 16:21:40 +0000 (16:21 +0000)]
Update the default newfs block and fragment sizes from 8192/1024 to
16384/2048.
Following recent discussions on the -arch mailing list, involving dillon
and mckusick, this change parallels the one made over a decade ago when
the default was bumped up from 4096/512.
This should provide significant performance improvements for most
folks, less significant performance losses for a few folks and
wasted space lost to large fragments for many folks.
For discussion, please see the following thread in the -arch archive:
Subject: Using a larger block size on large filesystems
The discussion ceases to be relevant when the issue of partitioning
schemes is raised.
Stephen McKay [Tue, 11 Dec 2001 13:18:10 +0000 (13:18 +0000)]
Preserve directory timestamps with -p. Allow non-empty read-only
directories to be copied. Apply umask to newly created directories
when -p is not specified.
Peter Wemm [Tue, 11 Dec 2001 07:08:43 +0000 (07:08 +0000)]
(repeat after me, do not do cvs commit | more. Previous commit was:)
Do not compile in VM_MAXUSER_ADDRESS into gdb. This causes problems if
kvm extends into the user address space.
Also, print IdlePTD and initial pcb value clearly in hex instead of
one in decimal and the other hex (without 0x, so an all-numeric hex
number could easily be decimal)
Luigi Rizzo [Tue, 11 Dec 2001 02:47:53 +0000 (02:47 +0000)]
Avoid an unnecessary copy of a packet if it is already in a single mbuf.
Introduce an additional device flag for those NICs which require the
transmit buffers to be aligned to 32-bit boundaries.
(the equivalen fix for STABLE is slightly simpler because there are
no supported chips which require this alignment there.)
John Baldwin [Tue, 11 Dec 2001 00:49:34 +0000 (00:49 +0000)]
- Add 'fwrite' and 'fseek' words for writing to and seeking on files.
- Change the 'fopen' keyword to accept a mode parameter. Note that this
will break existing 4th scripts that use fopen. Thus, the loader
version has been bumped and loader.4th has been changed to check for a
sufficient version on i386 and alpha. Be sure that you either do a full
world build or install or full build and install of sys/boot after this
since loader.old won't work with the new 4th files and vice versa.
PR: kern/32389
Submitted by: Jonathan Mini <mini@haikugeek.com>
Sponsored by: ClickArray, Inc.
Matt Jacob [Tue, 11 Dec 2001 00:18:45 +0000 (00:18 +0000)]
Major restructuring for swizzling to the request queue and unswizzling from
the response queue. Instead of the ad hoc ISP_SWIZZLE_REQUEST, we now have
a complete set of inline functions in isp_inline.h. Each platform is
responsible for providing just one of a set of ISP_IOX_{GET,PUT}{8,16,32}
macros.
The reason this needs to be done is that we need to have a single set of
functions that will work correctly on multiple architectures for both little
and big endian machines. It also needs to work correctly in the case that
we have the request or response queues in memory that has to be treated
specially (e.g., have ddi_dma_sync called on it for Solaris after we update
it or before we read from it). It also has to handle the SBus cards (for
platforms that have them) which, while on a Big Endian machine, do *not*
require *most* of the request/response queue entry fields to be swizzled
or unswizzled.
One thing that falls out of this is that we no longer build requests in the
request queue itself. Instead, we build the request locally (e.g., on the
stack) and then as part of the swizzling operation, copy it to the request
queue entry we've allocated. I thought long and hard about whether this was
too expensive a change to make as it in a lot of cases requires an extra
copy. On balance, the flexbility is worth it. With any luck, the entry that
we build locally stays in a processor writeback cache (after all, it's only
64 bytes) so that the cost of actually flushing it to the memory area that is
the shared queue with the PCI device is not all that expensive. We may examine
this again and try to get clever in the future to try and avoid copies.
Another change that falls out of this is that MEMORYBARRIER should be taken
a lot more seriously. The macro ISP_ADD_REQUEST does a MEMORYBARRIER on the
entry being added. But there had been many other places this had been missing.
It's now very important that it be done.
Additional changes:
Fix a longstanding buglet of sorts. When we get an entry via isp_getrqentry,
the iptr value that gets returned is the value we intend to eventually plug
into the ISP registers as the entry *one past* the last one we've written-
*not* the current entry we're updating. All along we've been calling sync
functions on the wrong index value. Argh. The 'fix' here is to rename all
'iptr' variables as 'nxti' to remember that this is the 'next' pointer-
not the current pointer.
Devote a single bit to mboxbsy- and set aside bits for output mbox registers
that we need to pick up- we can have at least one command which does not
have any defined output registers (MBOX_EXECUTE_FIRMWARE).
John Baldwin [Tue, 11 Dec 2001 00:03:10 +0000 (00:03 +0000)]
Add support for overwriting the existing contents of a file to the UFS
driver in libstand. This specifically does not expand or truncate files
since the filesystem may be dirty or inconsistent.
PR: kern/32389
Submitted by: Jonathan Mini <mini@haikugeek.com>
Sponsored by: ClickArray, Inc.
John Baldwin [Mon, 10 Dec 2001 22:12:23 +0000 (22:12 +0000)]
Fix the mouse question again to only run the mouse menu if a user doesn't
have a USB mouse. Here's the deal on how this works: USB mouse have
moused run for them automatically by usbd so we don't need to setup moused
for them. We do need to setup moused for other mice though, so if the
user has a USB mouse, we don't need to do anything. Hence the wording
"Do you have a non-USB mouse installed?" for the question. The question
can be reworded as "Do you have a PS/2 or Serial mouse installed?" instead
if that is preferred.
David Malone [Mon, 10 Dec 2001 21:13:08 +0000 (21:13 +0000)]
Style improvements recommended by Bruce as a follow up to some
of the recent WARNS commits. The idea is:
1) FreeBSD id tags should follow vendor tags.
2) Vendor tags should not be compiled (though copyrights probably should).
3) There should be no blank line between including cdefs and __FBSDIF.
Guido van Rooij [Mon, 10 Dec 2001 20:27:18 +0000 (20:27 +0000)]
Get rid of irritating (bogus) message:
pcm0: ac97 codec failed to reset extended mode (0, got 80)
This was due to not masking off the correct extended function bits
in the read value from the extended status reg.