Commit Graph

96433 Commits

Author SHA1 Message Date
simokawa
d78e17d18b * Improve sbp device probe in boot process.
- Notify BUS RESET to CAM in sbp_attach().
	- Use last bus reset time to determine login delay.

Tested by: imura

* Add some sysctl MIB and tunables.
2003-11-10 03:51:23 +00:00
davidxu
5e2cdf1a78 If a thread masks all its signal, in cursig(), no signal will be exchanged
with debugger, so testing P_TRACED in SIGPENDING is useless. This test also
is the culprit which causes lots of 'failed to set signal flags properly for
 ast()' to be printed on console which is just a false complaint.
2003-11-10 03:11:08 +00:00
imp
0139b2158b Move 'guessing' code from the probe into the identify routine where it more
properly belongs.
2003-11-10 02:47:11 +00:00
alc
fa4ea5d2f2 - The Open Group Base Specifications Issue 6 specifies that an munmap(2)
must return EINVAL if size is zero.  Submitted by: tegge
 - In order to avoid a race condition in multithreaded applications, the
   check and removal operations by munmap(2) must be in the same critical
   section.  To accomodate this, vm_map_check_protection() is modified to
   require its caller to obtain at least a read lock on the map.
2003-11-10 01:37:40 +00:00
mini
918610ef5e NFC: Update stale comments.
Reviewed by:	alc
2003-11-10 00:44:00 +00:00
joe
f6f94ac7fc MFNetBSD:
date: 2003/10/18 04:50:35;  author: simonb
    Remove assigned-to but otherwise unused variables.
    Remove unreachable break after return statements.
2003-11-10 00:20:52 +00:00
joe
28ba6b05d3 MFNetBSD:
revision 1.142
    date: 2003/10/11 03:04:26;  author: toshii
    Fix a done list handling bug which exhibits under high shared
    interrupt rate and bus traffic.  As the interrupt register is
    read after checking hcca_done_head, there was a small chance
    of dropping a done list.  Ignore OHCI_WDH interrupt bit if
    hcca_done_head is zero so that OHCI_WDH is processed later.
2003-11-10 00:16:36 +00:00
joe
9313579fa7 MFNetBSD:
revision 1.141
    date: 2003/09/10 20:08:29;  author: mycroft;
    Update actlen even in the case where a TD returns an error --
    this is critical for the umass bulk-only STALL case.
2003-11-10 00:12:39 +00:00
joe
e5da636735 MFNetBSD:
revision 1.176
    date: 2003/11/04 19:11:21;  author: mycroft;
    Ignore a CRCTO error on a SETUP transaction in combination with
    STALLED or NAK.  This fixes problems with the GL641.
2003-11-10 00:08:41 +00:00
joe
6b8c93a1ab MFNetBSD:
date: 2003/09/12 16:18:08;  author: mycroft;
    Tweak a debugging printf().
2003-11-09 23:59:53 +00:00
joe
d29dc15237 Revise the NetBSD revision control strings. 2003-11-09 23:56:19 +00:00
joe
59ab76006a MFNetBSD:
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
2003-11-09 23:54:21 +00:00
bmah
a6e2965d62 Reorganize and trim devices from the aic(4), aha(4), ahb(4), and
ahc(4) sections.

Trim devices from sis(4), de(4), and ex(4).

Don't bother saying what standards are supported by the ATM stack;
this list is kind of misplaced here (and may not even be accurate
anymore).

Delete mention of pca; this driver has been removed.
2003-11-09 23:42:51 +00:00
sam
02ea9f180f fix typo that broke AP scanning by BSSID
Submitted by:	Len Widra
2003-11-09 23:36:46 +00:00
marcel
e8baed96b5 When a thread is being swapped-out, save the high FP registers. We
have a pointer in the PCPU to the PCB of the thread that currently
has its high FP registers loaded.
2003-11-09 23:13:23 +00:00
simon
1a57fb58c6 Trim device entries for sym(4)/ncr(4). 2003-11-09 23:08:05 +00:00
bmah
884c83264a Add some pc98-specific devices from the hardware notes. 2003-11-09 22:53:58 +00:00
simon
cb53ca4d12 Add two PC-98 devices, from the hardware notes, which was missed in
the last commit.

MFC after:	1 week
2003-11-09 22:36:04 +00:00
simon
c6917e1a41 - Sync the list of supported device with the hardware notes and the
driver source code.
- Use a mdoc list for the list of supported devices.

MFC after:	1 week
2003-11-09 22:21:21 +00:00
marcel
b4eb6c7533 Use get_mcontext() to construct the signal context in sendsig() and
use set_mcontext() to restore the context in sigreturn(). Since we
put the syscall number and the syscall arguments in the trapframe
(we don't save the scratch registers for syscalls, which allows us
to reuse the space to our advantage), create a MD specific flag so
that we save the scratch registers even for syscalls. We would not
be able to restart a syscall otherwise.

The signal trampoline does not need to flush the regiters anymore,
because get_mcontext() already handles that. In fact, if we set up
the context correctly, we do not need to have a trampoline at all.
This change however only minimally changes the trampoline code. In
follow-up commits this can be further optimized.

Note that normally we preserve cfm and iip in the trapframe created
by the EPC syscall path when we restore a context in set_mcontext()
because those fields are not normally set for a synchronuous context.
The kernel puts the return address and frame info of the syscall
stub in there. By preserving these fields we hide this detail from
userland which allows us to use setcontext(2) for user created
contexts. However, sigreturn() is commonly called from the trampoline,
which means that if we preserve cfm and iip in all cases, we would
return to the trampoline after the sigreturn(), which means we hit
the safety net: we call exit(2). So, we do not preserve cfm and iip
when we have a synchronous context that also has scratch registers
(the uncommon context created by sendsig() only), under the assumption
that if such a context is created in userland, something special is
going on and the use of cfm and iip is then just another quirk. All
this is invisible in the common case.
2003-11-09 22:17:36 +00:00
alc
b2bc11d840 - Remove Giant from msync(2). Giant is still acquired by the lower layers
if we drop into the pmap or vnode layers.
 - Migrate the handling of zero-length msync(2)s into vm_map_sync() so that
   multithread applications can't change the map between implementing the
   zero-length hack in msync(2) and reacquiring the map lock in
   vm_map_sync().

Reviewed by:	tegge
2003-11-09 22:09:04 +00:00
scottl
b5775784dd Free the ata_request struct after we are done using it. This should stop
the memory leak seen when using ATAPICAM.
2003-11-09 20:46:08 +00:00
jmg
63482864f7 make minimum column size for interrupt name be the heading (depends upon
Total being shorter than interrupt)..

Pointed out by:	bde
2003-11-09 20:39:56 +00:00
marcel
21340f30b3 Change the clear_ret argument of get_mcontext() to be a flags argument.
Since all callers either passed 0 or 1 for clear_ret, define bit 0 in
the flags for use as clear_ret. Reserve bits 1, 2 and 3 for use by MI
code for possible (but unlikely) future use. The remaining bits are for
use by MD code.

This change is triggered by a need on ia64 to have another knob for
get_mcontext().
2003-11-09 20:31:04 +00:00
imp
87bc402cf2 Tweak the front end driver file list
Also some minor whitespace nits.
2003-11-09 20:02:47 +00:00
imp
4e71bf2bbd Add my copyright to aha_isa.c to make it crystal clear its license 2003-11-09 20:01:36 +00:00
imp
e060a36d77 Let bus space manage softc. 2003-11-09 19:51:16 +00:00
imp
9189a12295 Minor tweaks to make it behave better:
o When we're resetting the board, make sure that we error out the pending
  CCBs first.  Otherwise the aha_cmd won't accept further commands, such
  as those that are used to reset the card (AOP_INITIALIZE_MBOX).  This
  appears to cause a cascade failure where no more commands are possible
  to the card.
o Reduce from 10s down to 1s the amount of time we're willing to tolerate
  the card being awol.  This helps the above case.
o Add some error checking to two commands issued in the probe.

I have a dim memory of gibbs@ trying to tell me about this problem a
few years ago, so pointy hat to imp@ for sitting on it so long.
2003-11-09 17:16:39 +00:00
imp
1480b8c587 Minor comment smithing 2003-11-09 17:05:55 +00:00
dwmalone
3e991a3b59 Use kern_sendit rather than sendit for the Linux send* syscalls.
This means we can avoid using the stack gap for most send* syscalls
now (it is still used in the IP_HDRINCL case).
2003-11-09 17:04:04 +00:00
simon
81bc6553de Sync the sym(4) manual page with the hardware notes, and change the
list of supported controllers into a list.

Note that the 53C875A has not been included in the list of supported
devices, since this controller does not seem to be supported by the
version of the sym(4) driver currently in FreeBSD.

PR:		docs/55557
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at> (original version)
MFC after:	1 week
53C875A omission reviewed by:	silence from -scsi and groudier
2003-11-09 14:58:28 +00:00
simokawa
9b0ffa5c91 Increase MAXDEV up to 10. 2003-11-09 14:49:43 +00:00
bde
67e14c35e9 Quick fix for scaling of statclock ticks in the SMP case. As explained
in the log message for kern_sched.c 1.83 (which should have been
repo-copied to preserve history for this file), the (4BSD) scheduler
algorithm only works right if stathz is nearly 128 Hz.  The old
commit lock said 64 Hz; the scheduler actually wants nearly 16 Hz
but there was a scale factor of 4 to give the requirement of 64 Hz,
and rev.1.83 changed the scale factor so that the requirement became
128 Hz.  The change of the scale factor was incomplete in the SMP
case.  Then scheduling ticks are provided by smp_ncpu CPUs, and the
scheduler cannot tell the difference between this and 1 CPU providing
scheduling ticks smp_ncpu times faster, so we need another scale
factor of smp_ncp or an algorithm change.

This quick fix uses the scale factor without even trying to optimize
the runtime divisions required for this as is done for the other
scale factor.

The main algorithmic problem is the clamp on the scheduling tick counts.
This was 295; it is now approximately 295 * smp_ncpu.  When the limit
is reached, threads get free timeslices and scheduling becomes very
unfair to the threads that don't hit the limit.  The limit can be
reached and maintained in the worst case if the load average is larger
than (limit / effective_stathz - 1) / 2 = 0.65 now (was just 0.08 with
2 CPUs before this change), so there are algorithmic problems even for
a load average of 1.  Fortunately, the worst case isn't common enough
for the problem to be very noticeable (it is mainly for niced CPU hogs
competing with less nice CPU hogs).
2003-11-09 13:45:54 +00:00
sos
1528f8f6b7 Fix typo in breaking up requests to size limit.
Found by: Peter Edwards <pmedwards@eircom.net>
2003-11-09 10:11:15 +00:00
brueffer
32946a73bf Add the 'package-recursive' option
PR:		57838
Submitted by:	Alexander Haderer <alexander.haderer@charite.de>
MFC after:	5 days
2003-11-09 09:30:39 +00:00
tanimura
7eade05dfa - Implement selwakeuppri() which allows raising the priority of a
thread being waken up.  The thread waken up can run at a priority as
  high as after tsleep().

- Replace selwakeup()s with selwakeuppri()s and pass appropriate
  priorities.

- Add cv_broadcastpri() which raises the priority of the broadcast
  threads.  Used by selwakeuppri() if collision occurs.

Not objected in:	-arch, -current
2003-11-09 09:17:26 +00:00
marcel
9cbd7fa025 Implement PAL_HALT_LIGHT now that the kernel halts the processor
when idle. All we have to do is return.
2003-11-09 07:42:16 +00:00
marcel
f8d7139835 Do not strip skiload when installed. The stripped binary does not load
in the simulator.
2003-11-09 06:53:37 +00:00
alc
269cf5aa09 - Rename vm_map_clean() to vm_map_sync(). This better reflects the fact
that msync(2) is its only caller.
 - Migrate the parts of the old vm_map_clean() that examined the internals
   of a vm object to a new function vm_object_sync() that is implemented in
   vm_object.c.  At the same, introduce the necessary vm object locking so
   that vm_map_sync() and vm_object_sync() can be called without Giant.

Reviewed by:	tegge
2003-11-09 05:25:35 +00:00
marcel
3f532e652b Port truss(1) to 64-bit architectures:
o  Syscall return values do not fit in int on 64-bit architectures.
   Change the type of retval in <arch>_syscall_exit() to long and
   change the prototype of said function to return a long as well.
o  Change the prototype of print_syscall_ret() to take a long for
   the return address and change the format string accordingly.
o  Replace the code sequence
	tmp = malloc(X);
	sprintf(tmp, format, ...);
   with X by definition too small on 64-bit platforms by
        asprintf(&tmp, format, ...);

With these changes the output makes sense again, although it does
mess up the tabulation on ia64. Go widescreen...

Not tested on: alpha, sparc64.
2003-11-09 03:48:13 +00:00
scottl
9162843df0 Sprinkle GIANT_REQUIRED asserts around the xpt layer to aid with locking the
SCSI drivers.
2003-11-09 02:22:33 +00:00
imp
fde6659142 Update list of supported devices for ahb 2003-11-09 01:52:13 +00:00
imp
bf5f2bc451 Complete the variants of 1522/1520 cards 2003-11-09 01:46:28 +00:00
imp
e01b0dbfd1 AHA-1505 also alegedly supported 2003-11-09 01:44:16 +00:00
imp
7253a0e9b9 Flesh out the list of supported devices for this driver.
Add bugs that describe the current state of this driver.

# Note: Don't ask me about the driver: I can't get it to work well either :-)
2003-11-09 01:41:11 +00:00
imp
c1acbaa576 o Update to closer to the official names for these cards.
o Remove entries for 1510, 152x and 1535.  These are supported, for some value
  of supported, by the aic driver.
o Add notes about 1542-CP being plug and play, but it can still conflict with
  other resources because all the resources it uses are set with the onboard
  BIOS.
2003-11-09 01:30:46 +00:00
obrien
8eacd94a3c Alternate version of rev 1.20.
Comment out rather than totally remove the ipfilter pieces that we need
reconnected some day.  This is now only ipnat as it is for configuring NAT.
ipfstat is meant for reporting statistics/filter lists.  For /rescue it is
enough to configure lists but not view the installed ones.
2003-11-09 01:22:27 +00:00
imp
2d5987075a Make this driver a little more style(9) compliant 2003-11-09 00:51:52 +00:00
bmah
5834e9c712 Synchronize list of supported cards with hardware notes, reformat
as a bullet list.
2003-11-09 00:50:55 +00:00
davidxu
27be031526 If a thread in critical region got a synchronous signal, according current
signal handling mode, there is no chance to handle the signal, something
must be wrong in the library, just call kse_thr_interrupt to dump its core.
I have the code for a long time, but forgot to commit it.
2003-11-09 00:37:14 +00:00