| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Notes:
svn path=/head/; revision=129687
|
|\
| |
| |
| |
| |
| |
| | |
which included commits to RCS files with non-trunk default branches.
Notes:
svn path=/head/; revision=129685
|
| |
| |
| |
| | |
Notes:
svn path=/vendor-sys/acpica/dist/; revision=129684
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
power off for some users. The patch has been submitted to Intel.
Bug: http://bugme.osdl.org/show_bug.cgi?id=2109
Notes:
svn path=/vendor-sys/acpica/dist/; revision=128245
|
| |
| |
| |
| |
| |
| |
| | |
Noted by: jhb
Notes:
svn path=/head/; revision=129675
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129674
|
| |
| |
| |
| |
| |
| |
| | |
Noticed by: phk
Notes:
svn path=/head/; revision=129673
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
#ifndef BURN_BRIDGES.
Noticed by: phk
Notes:
svn path=/head/; revision=129672
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129671
|
| |
| |
| |
| |
| |
| |
| | |
Submitted by: jhb
Notes:
svn path=/head/; revision=129669
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129668
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
in the various pci specifications as readonly. vendor, subvendor,
device and subdevice are required to be loaded in hardware by some
means that isn't the system BIOS or other system software (although
some devices do have ways of accomplishing this). class and subclass
are defined to be read-only in section 6.2.1 (v2.2). Apart from the
status register, which we weren't touching, these are the only
read-only registers I could find in the 2.2 spec.
progif is also defined as being read-only in section 6.2.1. However,
the PCI IDE programming document specifically states that some of the
bits are read/write. Since we may have to restore registers before we
have a driver attached, go ahead and restore this one byte when
transitioning between D3 and D0.
The PCI spec also says that writes to reserved and unimplemented
registers must be completed normally. It makes no statements about
writes to read-only registers, so be as conservative as possible,
while covering the exception to the rule that is documented in a
subpart of the standard.
Requested by: socttl
Notes:
svn path=/head/; revision=129664
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
polarity rather than assuming that level triggered IRQs use active low and
edge triggered IRQs use active high. Both the MultiProcessor 1.4
and ACPI 2.0 Specifications state in their examples that level triggered
EISA IRQs are active low, but in practice they seem to be active high.
Reported by: Nik Azim Azam nskyline_r35 at yahoo dot com
Notes:
svn path=/head/; revision=129663
|
| |
| |
| |
| |
| |
| |
| |
| | |
have been ".p2align 4". This bug is cosmetic since the data section
happens to be empty.
Notes:
svn path=/head/; revision=129656
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ordinary functions, essentially by backing out half of rev.1.115 of
amd64/exception.S. The handlers must be between certain labels for
the purposes of profiling, and this was broken by scattering them in
separately compiled .S files, especially for ordinary functions that
ended up between the labels. Merge the files by #including them as
before, except with different pathnames and better comments and
organization. Changes to the scattered files are minimal -- just
move the labels to the file that does the #includes.
This also partly fixes profiling of IPIs -- all IPI handlers are now
correctly classified as interrupt handlers, but many are still missing
mcount calls.
Notes:
svn path=/head/; revision=129653
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129649
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129648
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed apparently-intentional disorder of the crypto files. Lists
of files should be sorted first on the pathname, not on the option
name or subsystem.
Notes:
svn path=/head/; revision=129646
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CTIO fast post routine to handle CTIO completions.
Submitted by: mjacob
Notes:
svn path=/head/; revision=129643
|
| |
| |
| |
| |
| |
| |
| |
| | |
Submitted by: candy@kgc.co.jp
PR: kern/67110
Notes:
svn path=/head/; revision=129640
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
mechanism so that early processing on mbufs can be performed before
a context switch to the NFS server threads. Because of this, if
the socket code is running without Giant, the NFS server also needs
to be able to run the upcall code without relying on the presence on
Giant. This change modifies the NFS server to run using a "giant
code lock" covering operation of the whole subsystem. Work is in
progress to move to data-based locking as part of the NFSv4 server
changes.
Introduce an NFS server subsystem lock, 'nfsd_mtx', and a set of
macros to operate on the lock:
NFSD_LOCK_ASSERT() Assert nfsd_mtx owned by current thread
NFSD_UNLOCK_ASSERT() Assert nfsd_mtx not owned by current thread
NFSD_LOCK_DONTCARE() Advisory: this function doesn't care
NFSD_LOCK() Lock nfsd_mtx
NFSD_UNLOCK() Unlock nfsd_mtx
Constify a number of global variables/structures in the NFS server
code, as they are not modified and contain constants only:
nfsrvv2_procid nfsrv_nfsv3_procid nonidempotent
nfsv2_repstat nfsv2_type nfsrv_nfsv3_procid
nfsrvv2_procid nfsrv_v2errmap nfsv3err_null
nfsv3err_getattr nfsv3err_setattr nfsv3err_lookup
nfsv3err_access nfsv3err_readlink nfsv3err_read
nfsv3err_write nfsv3err_create nfsv3err_mkdir
nfsv3err_symlink nfsv3err_mknod nfsv3err_remove
nfsv3err_rmdir nfsv3err_rename nfsv3err_link
nfsv3err_readdir nfsv3err_readdirplus nfsv3err_fsstat
nfsv3err_fsinfo nfsv3err_pathconf nfsv3err_commit
nfsrv_v3errmap
There are additional structures that should be constified but due
to their being passed into general purpose functions without const
arguments, I have not yet converted.
In general, acquire nfsd_mtx when accessing any of the global NFS
structures, including struct nfssvc_sock, struct nfsd, struct
nfsrv_descript.
Release nfsd_mtx whenever calling into VFS, and acquire Giant for
calls into VFS. Giant is not required for any part of the
operation of the NFS server with the exception of calls into VFS.
Giant will never by acquired in the upcall code path. However, it
may operate entirely covered by Giant, or not. If debug.mpsafenet
is set to 0, the system calls will acquire Giant across all
operations, and the upcall will assert Giant. As such, by default,
this enables locking and allows us to test assertions, but should not
cause any substantial new amount of code to be run without Giant.
Bugs should manifest in the form of lock assertion failures for now.
This approach is similar (but not identical) to modifications to the
BSD/OS NFS server code snapshot provided by BSDi as part of their
SMPng snapshot. The strategy is almost the same (single lock over
the NFS server), but differs in the following ways:
- Our NFS client and server code bases don't overlap, which means
both fewer bugs and easier locking (thanks Peter!). Also means
NFSD_*() as opposed to NFS_*().
- We make broad use of assertions, whereas the BSD/OS code does not.
- Made slightly different choices about how to handle macros building
packets but operating with side effects.
- We acquire Giant only when entering VFS from the NFS server daemon
threads.
- Serious bugs in BSD/OS implementation corrected -- the snapshot we
received was clearly a work in progress.
Based on ideas from: BSDi SMPng Snapshot
Reviewed by: rick@snowhite.cis.uoguelph.ca
Extensive testing by: kris
Notes:
svn path=/head/; revision=129639
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change is possible since all the relevant drivers have been
fixed to set if_capenable properly. The field if_capabilities tracks
supported capabilities, which may be disabled administratively.
Inheriting checksum offload support from the parent interface isn't
that easy because the checksumming capabilities of the parent may be
toggled on the fly. Disable the code for now.
Notes:
svn path=/head/; revision=129637
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
true. Otherwise, assertion checks for Giant in the network stack will
fail causing a panic.
Reported by: simon
Notes:
svn path=/head/; revision=129636
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
if_capenable unless the interface driver is actually able
to toggle the respective capability on and off.
Reviewed by: ru
Notes:
svn path=/head/; revision=129633
|
| |
| |
| |
| |
| |
| |
| |
| | |
if_hwassist should be in accord with the IFCAP_TXCSUM bit
of if_capenable.
Notes:
svn path=/head/; revision=129632
|
| |
| |
| |
| |
| |
| |
| | |
hardcoded to "ON" for these interfaces.
Notes:
svn path=/head/; revision=129631
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129630
|
| |
| |
| |
| |
| |
| |
| |
| | |
interface really needs changing to split out the various async request
types.
Notes:
svn path=/head/; revision=129628
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Kernel profiling for amd64's (normal and high resolution) should now
compile and work as (un)well as on i386's. It works better than user
profiling because:
- it uses _cyg_profile_func_*() instead of .mcount(), so it doesn't suffer
from gcc misspelling .mcount as mcount.
- it doesn't neglect saving %rax in .mcount().
The SMP case hasn't been tested. The high resolution subcase of this uses
the i8254, and as on i386's, the locking for this is deficient and the
i8254 is too inefficient. The acpi timer is also too inefficient.
Notes:
svn path=/head/; revision=129627
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- perfmon headers must be avoided until perfmon is supported.
- all call-used registers including return registers must be preserved
by .mcount(), etc., not quite as in profile.h. __cyg_profile_func_*()
don't require this, but they are (mis)implemented as aliases for
.mcount(), etc. so they preserve the registers.
- i386 ifdefs related to perfmon have not been adjusted yet.
Notes:
svn path=/head/; revision=129625
|
| |
| |
| |
| |
| |
| |
| | |
and removed buggy unnecessary FAKE_MCOUNT() in calltrap).
Notes:
svn path=/head/; revision=129624
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
amd64 as necessary. This is routine, except:
- the FAKE_MCOUNT($bintr) in doreti was missing the '$'. This gave a
a garbage address made up of padding bytes (with the nop byte 0x90 as
the MSB) instead of the intended address of bintr. This accidentally
worked on i386's because (0x90 << 24) is close enough to bintr, but
it doesn't work on amd64's because (0x90 << 56) is much further away
from bintr.
- the FAKE_MCOUNT($btrap) in calltrap was similarly broken. It hasn't
been needed since FreeBSD-1, so just delete it.
Notes:
svn path=/head/; revision=129623
|
| |
| |
| |
| |
| |
| |
| | |
Obtained from: NetBSD
Notes:
svn path=/head/; revision=129622
|
| |
| |
| |
| |
| |
| |
| | |
Obtained from: NetBSD
Notes:
svn path=/head/; revision=129621
|
| |
| |
| |
| |
| |
| |
| | |
FAKE_MCOUNT()s).
Notes:
svn path=/head/; revision=129620
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
and high resolution profiling of interrupt handlers. The adjustments
are routine once the magic stack offset 13*4 is decoded to be TF_RIP
(there were originally more types of stack frames so using TF_EIP for
one of them wouldn't have been much simpler).
Removed garbage comments attached to some of the FAKE_MCOUNT()s.
Notes:
svn path=/head/; revision=129618
|
| |
| |
| |
| |
| |
| |
| | |
for us.
Notes:
svn path=/head/; revision=129616
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129615
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
that the usual macro for "ret" hides the detail of calling .mexitcount
before returning.
Fixed missing call to .mexitcount in lgdt(). This was missing on
i386's, mainly because lgdt() uses lret[q] insted of ret. This is
very unimportant since lgdt() is not (normally?) called until after
profiling is initialized.
Notes:
svn path=/head/; revision=129612
|
| |
| |
| |
| |
| |
| |
| | |
they have the right values at the first bus reset.
Notes:
svn path=/head/; revision=129611
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
URL updates, from Jared Yanovich and jmc@openbsd, forwarded by the latter.
Obtained from: NetBSD
Notes:
svn path=/head/; revision=129610
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
in all USB ethernet drivers. The qdat structure contains a pointer
to the interface's struct ifnet and is used to process incoming
packets, so simultaneous use of two similar devices caused crashes
and confusion.
The if_udav driver appeared in the tree since Daan's PR, so I made
similar changes to that driver too.
PR: kern/59290
Submitted by: Daan Vreeken <Danovitsch@Vitsch.net>
Notes:
svn path=/head/; revision=129607
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
MFNetBSD 1.177; author: toshii
Use the correct wValue to get hub desriptors.
Also, make wValue checks of root hub codes less strict.
MFNetBSD 1.178: author: martin
Interrupt descriptors might become invalid while being processed in
uhci_check_intr - so remember their next pointer before calling it.
Patch provided by Matthew Orgass in PR kern/24542.
Obtained from: NetBSD
Notes:
svn path=/head/; revision=129606
|
| |
| |
| |
| | |
Notes:
svn path=/head/; revision=129605
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PR: 64656
Submitted by: Jianqin Qu <jqu@its.brooklyn.cuny.edu>
Reviewed by: dmlb
Notes:
svn path=/head/; revision=129602
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
the agp mutex. We do this because vm_page_grab() called with the
VM_ALLOC_RETRY flag can sleep.
Pointed out by: alc
Notes:
svn path=/head/; revision=129601
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
KERN_PROC_SESSION option which had been previously defined but
never implemented.
PR: bin/65803 (a very tiny piece of the PR)`
Submitted by: Cyrille Lefevre
Notes:
svn path=/head/; revision=129599
|
| |
| |
| |
| |
| |
| |
| | |
Submitted by: Cyrille Lefevre
Notes:
svn path=/head/; revision=129597
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
return value for BUS_READ_IVAR and thus don't generate the proper NULL
in cases where a device (i.e. on PCI) does not have a handle.
Found by: peadar, tjr
Notes:
svn path=/head/; revision=129594
|
| |
| |
| |
| |
| |
| |
| |
| | |
file.
- Remove a superfluous ';'.
Notes:
svn path=/head/; revision=129588
|