summaryrefslogtreecommitdiffstats
path: root/sys/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Compile in the cpu halt code even on SMP, instead just default thepeter2002-06-241-2/+4
| | | | | | | sysctl (machdep.cpu_idle_hlt) to off in the SMP case. This allows you to turn it on if you wish and do not particularly care about the small window where a cpu will remain halted even when a job is placed on the run queue (until the next clock tick).
* Add an MD callout like cpu_exit, but which is called after sched_lock isjake2002-06-241-0/+6
| | | | | | | | | obtained, when all other scheduling activity is suspended. This is needed on sparc64 to deactivate the vmspace of the exiting process on all cpus. Otherwise if another unrelated process gets the exact same vmspace structure allocated to it (same address), its address space will not be activated properly. This seems to fix some spontaneous signal 11 problems with smp on sparc64.
* userout -> out. These two labels are now identical.mini2002-06-241-7/+6
| | | | Approved by: alfred
* Remove unused diagnostic function cread_free_thread().mini2002-06-241-7/+0
| | | | Approved by: alfred
* Add additional cpuid feature flags and put into a canonical format.mp2002-06-221-18/+33
| | | | MFC after: 1 week
* Use rm -f in the clean target, as seems to be common practice, and also avoidsjmallett2002-06-221-1/+1
| | | | | | errors if no LINT exists. Submitted by: dwcjr
* Clock frequencies reported by sysctl should be unsigned values. Discoveredmp2002-06-222-4/+4
| | | | | | | | when machdep.tsc_freq returned a negative number on a 2.2GHz Xeon. Submitted by: Brian Harrison <bharrison@ironport.com> Reviewed by: phk MFC after: 1 week
* This commit adds basic support for the UFS2 filesystem. The UFS2mckusick2002-06-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | filesystem expands the inode to 256 bytes to make space for 64-bit block pointers. It also adds a file-creation time field, an ability to use jumbo blocks per inode to allow extent like pointer density, and space for extended attributes (up to twice the filesystem block size worth of attributes, e.g., on a 16K filesystem, there is space for 32K of attributes). UFS2 fully supports and runs existing UFS1 filesystems. New filesystems built using newfs can be built in either UFS1 or UFS2 format using the -O option. In this commit UFS1 is the default format, so if you want to build UFS2 format filesystems, you must specify -O 2. This default will be changed to UFS2 when UFS2 proves itself to be stable. In this commit the boot code for reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c) as there is insufficient space in the boot block. Once the size of the boot block is increased, this code can be defined. Things to note: the definition of SBSIZE has changed to SBLOCKSIZE. The header file <ufs/ufs/dinode.h> must be included before <ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and ufs_lbn_t. Still TODO: Verify that the first level bootstraps work for all the architectures. Convert the utility ffsinfo to understand UFS2 and test growfs. Add support for the extended attribute storage. Update soft updates to ensure integrity of extended attribute storage. Switch the current extended attribute interfaces to use the extended attribute storage. Add the extent like functionality (framework is there, but is currently never used). Sponsored by: DARPA & NAI Labs. Reviewed by: Poul-Henning Kamp <phk@freebsd.org>
* Deorbit suibyte(). It was only used for split address space systemspeter2002-06-202-12/+10
| | | | for supporting UIO_USERISPACE (ie: it wasn't used).
* Move the "- 1" into the RQB_FFS(mask) macro itself so thatpeter2002-06-201-1/+1
| | | | | | | | | | | | | | implementations can provide a base zero ffs function if they wish. This changes #define RQB_FFS(mask) (ffs64(mask)) foo = RQB_FFS(mask) - 1; to #define RQB_FFS(mask) (ffs64(mask) - 1) foo = RQB_FFS(mask); On some platforms we can get the "- 1" for free, eg: those that use the C code for ffs64(). Reviewed by: jake (in principle)
* - Introduce the new M_NOVM option which tells uma to only check the currentlyjeff2002-06-171-1/+1
| | | | | | | | | | | | | | | | allocated slabs and bucket caches for free items. It will not go ask the vm for pages. This differs from M_NOWAIT in that it not only doesn't block, it doesn't even ask. - Add a new zcreate option ZONE_VM, that sets the BUCKETCACHE zflag. This tells uma that it should only allocate buckets out of the bucket cache, and not from the VM. It does this by using the M_NOVM option to zalloc when getting a new bucket. This is so that the VM doesn't recursively enter itself while trying to allocate buckets for vm_map_entry zones. If there are already allocated buckets when we get here we'll still use them but otherwise we'll skip it. - Use the ZONE_VM flag on vm map entries and pv entries on x86.
* If trap() is called when ddb is active, then go directly to trap_fatal();bde2002-06-121-2/+9
| | | | | | | | | | | do not blunder around enabling interrupts and running trap handlers. trap_pfault() will normally pass control to ddb's fault handler which will normally do the right thing. This bug is very old. but in old versions of FreeBSD it is probably only serious for trap handling that involves sleeping. In -current, attempting to examine unmapped memory while stopped at a breakpoint at mi_switch() was always fatal.
* - Fixup / remove obsolete comments.jhb2002-06-071-34/+22
| | | | | | | | | | | - ktrace no longer requires Giant so do ktrace syscall events before and after acquiring and releasing Giant, respectively. - For i386, ia32 syscalls on ia64, powerpc, and sparc64, get rid of the goto bad hack and instead use the model on ia64 and alpha were we skip the actual syscall invocation if error != 0. This fixes a bug where if we the copyin() of the arguments failed for a syscall that was not marked MP safe, we would try to release Giant when we had not acquired it.
* Hook up the ahd driver.gibbs2002-06-061-0/+1
|
* Silence preprocessor warning, No need to use CONCAT with "," and "word".alfred2002-06-011-1/+1
|
* Fixed the return value of fpsetmask(). The API requires inversion of thebde2002-06-011-1/+2
| | | | | | | | | mask on both input and output to fpsetmask(), but this was only done for input, so fpsetmask() returned the complement of the old mask (ANDed with the mask bitfield). PR: 38170 MFC after: 4 weeks
* Fixed style bugs in rev.1.9.bde2002-06-011-9/+17
|
* Use a common function to map the bogus intlines.imp2002-06-011-11/+17
| | | | | | | Don't require pin be non-zero before we map bogus intlines, always do it. This fixes a number of problems on HP Omnibook computers. Tested/Reviewed by: Brooks Davis
* Move the definition of ElfN_Hashelt to common headers. The only platformdfr2002-05-301-11/+0
| | | | which has a different definition for this is alpha.
* Do not refer to the Intel PRO/1000 by its internal name.obrien2002-05-291-1/+1
| | | | Requested by: pdeuskar
* Restore the irq=0 => irq=255 hack to pci_cfgintr_search(). Just havingbrooks2002-05-291-0/+8
| | | | | | it in pci_cfgregread() wasn't sufficent on at least the HP Omnibook 500. Reviewed by: imp
* Add declarations of suword32 and suword64. Add implementations of one ordfr2002-05-262-0/+12
| | | | | the other (or both) to all the platforms. Similar for fuword32 and fuword64.
* Make the run queue parameters machine dependent. Optimize 64 bitjake2002-05-251-0/+46
| | | | | | | architectures by using a 64 bit word for the bit array which keeps track of non-empty queues. Reviewed by: peter
* Rename pause() to ia32_pause() so it doesn't conflict with the pause()jhb2002-05-221-2/+2
| | | | | function defined in <unistd.h>. I didn't #ifdef _KERNEL it because the mutex implementation in libpthread will probably need this.
* Restore us back to the rev 1.324 level of having an Intel gigE driver.obrien2002-05-221-0/+1
|
* Debug registers aren't selectors, so use saner names for the variables injhb2002-05-221-24/+24
| | | | the inline functions for reading and writing the debug registers.
* - Sort the pause() inline into the appropriate location.jhb2002-05-221-6/+25
| | | | - Add many missing prototypes to the non-GCC section.
* Rename cpu_pause() to pause(). Originally I was going to make this anjhb2002-05-221-1/+1
| | | | | | | | | MI API with empty cpu_pause() functions on other arch's, but this functionality is definitely unique to IA-32, so I decided to leave it as i386-only and wrap it in #ifdef's. I should have dropped the cpu_ prefix when I made that decision. Requested by: bde
* Permit alternative break sequence to break to debugger in GENERIC. Breakagerwatson2002-05-211-0/+1
| | | | | | | of serial break on -CURRENT seems rampant for some reason, and I like being able to get into ddb. Reviewed by: peter
* Add an inline function cpu_pause() for the IA32 'pause' instruction.jhb2002-05-211-0/+6
|
* Make this compile with gcc-3.1, which objects to the multi-line string.peter2002-05-191-64/+64
|
* Fixed a semantic error. va_arg(ap, u_short) is nonsense except on i386'sbde2002-05-131-5/+5
| | | | | | | | with 16-bit ints, since u_short is promoted when it is passed to a varargs function. gcc now warns about this. We always pass small integers (this is well obuscated), so there are no conversion problems. Fixed a related style bug (bogus cast).
* Fixed a syntax error (a label not followed by a statement).bde2002-05-131-1/+1
|
* Gcc 3.1 varargs support.obrien2002-05-101-0/+18
|
* Restore the ability interrupt dumps on i386, based onfenner2002-05-041-0/+7
| | | | | the old kern_shutdown.c . Other archs might be able to use similar code but I don't have anything to test on.
* Typo fix: detects -> detect.jmallett2002-05-031-1/+1
| | | | Reviewed by: phk
* Join the pissing contest: generate LINT with a single sed(1) command.des2002-05-021-2/+2
| | | | Smaller script, smaller (though equivalent) output.
* Use shell script version (using awk and sed) of makeLINT.pl.kuriyama2002-05-021-2/+2
|
* Don't export timecounter structures under debug. with sysctl, theyphk2002-04-302-12/+0
| | | | contain no truly interesting data anymore.
* Tidy up some loose ends.peter2002-04-293-57/+7
| | | | | | | | | | | | i386/ia64/alpha - catch up to sparc64/ppc: - replace pmap_kernel() with refs to kernel_pmap - change kernel_pmap pointer to (&kernel_pmap_store) (this is a speedup since ld can set these at compile/link time) all platforms (as suggested by jake): - gc unused pmap_reference - gc unused pmap_destroy - gc unused struct pmap.pm_count (we never used pm_count - we track address space sharing at the vmspace)
* For what it's worth, fix the compilation of an I386_CPU-only kernelalc2002-04-271-1/+8
| | | | now that certain warnings are fatal.
* Don't call vm_map_growstack() from trapwrite() as vm_fault() now performsalc2002-04-271-7/+4
| | | | this automatically.
* Add a CAM interface to the aac driver. This is useful in case you shouldscottl2002-04-271-0/+1
| | | | | | | | | | | | | | | ever connect a SCSI Cdrom/Tape/Jukebox/Scanner/Printer/kitty-litter-scooper to your high-end RAID controller. The interface to the arrays is still via the block interface; this merely provides a way to circumvent the RAID functionality and access the SCSI buses directly. Note that for somewhat obvious reasons, hard drives are not exposed to the da driver through this interface, though you can still talk to them via the pass driver. Be the first on your block to low-level format unsuspecting drives that are part of an array! To enable this, add the 'aacp' device to your kernel config. MFC after: 3 days
* Remove the tc_update() function. Any frequency change to thephk2002-04-262-4/+0
| | | | | | timecounter will be used starting at the next second, which is good enough for sysctl purposes. If better adjustment is needed the NTP PLL should be used.
* Don't use the symbol name to lookup the symbol value when we can usemarcel2002-04-251-11/+7
| | | | | | | | | | | | the symbol index defined by the relocation. The elf_lookup() support function is to be used by elf_reloc() when symbol lookups need to be done. The elf_lookup() function operates on the symbol index and will do a symbol name based lookup when such is required, otherwise it uses the symbol index directly. This solves the problem seen on ia64 where the symbol hash table does not contain local symbols and a symbol name based lookup would fail for those symbols. Don't pass the symbol name to elf_reloc(), as it isn't used any more.
* o Work around bugs in the powerof2 macro: It thinks that 0 is a power ofimp2002-04-241-12/+18
| | | | | | | | | | | | | | | | 2, but that's not the case. This fixes the case where there were slots in the PIR table that had no bits set, but we assumed they did and used strange results as a result. o Map invalid INTLINE registers to 255 in pci_cfgreg.c. This should allow us to remove the bogus checks in MI code for non-255 values. I put these changes out for review a while ago, but no one responded to them, so into current they go. This should help us work better on machines that don't route interrupts in the traditional way. MFC After: 4286 millifortnights
* Fix a PNPID in a commentimp2002-04-241-1/+1
| | | | Submitted by: David Xu
* Don't free(9) a pointer which has been modified.phk2002-04-231-6/+7
| | | | Chapeau de pointe: mux
* Stylify (mainly line up macro EOL-continuation \'s), and add a dummymarkm2002-04-211-21/+28
| | | | alternative for lint.
* Clean up:alfred2002-04-191-4/+10
| | | | | | | | Comment run_filter() to explain what it does. Remove chatty comments. void busdma_swi() { } -> void busdma_swi(void) { }
OpenPOWER on IntegriCloud