summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* In prom_halt(), set the halt restart flags on the current CPU, not thejhb2001-08-131-2/+1
| | | | | | | | boot CPU. This was the reason reboots on SMP systems could result in weird hangs. Unlike the x86, we do not need to switch back to the boot CPU in order to reboot the machine. See Section 3.4.5 of Part III (Console Interface Architecture) from the Alpha Architecture Reference Manual (aka the Brown Book) for more info.
* Remove IPI_HALT to make way for a more correct fix for halts and restartsjhb2001-08-134-23/+0
| | | | on SMP alphas.
* Minor style nits: cleanup and add some function prototypes.jhb2001-08-131-2/+5
|
* - Close races with signals and other AST's being triggered while we are injhb2001-08-102-20/+2
| | | | | | | | | | | | | | | | | | | | | | the process of exiting the kernel. The ast() function now loops as long as the PS_ASTPENDING or PS_NEEDRESCHED flags are set. It returns with preemption disabled so that any further AST's that arrive via an interrupt will be delayed until the low-level MD code returns to user mode. - Use u_int's to store the tick counts for profiling purposes so that we do not need sched_lock just to read p_sticks. This also closes a problem where the call to addupc_task() could screw up the arithmetic due to non-atomic reads of p_sticks. - Axe need_proftick(), aston(), astoff(), astpending(), need_resched(), clear_resched(), and resched_wanted() in favor of direct bit operations on p_sflag. - Fix up locking with sched_lock some. In addupc_intr(), use sched_lock to ensure pr_addr and pr_ticks are updated atomically with setting PS_OWEUPC. In ast() we clear pr_ticks atomically with clearing PS_OWEUPC. We also do not grab the lock just to test a flag. - Simplify the handling of Giant in ast() slightly. Reviewed by: bde (mostly)
* Zap 'ptrace(PT_READ_U, ...)' and 'ptrace(PT_WRITE_U, ...)' since theypeter2001-08-082-62/+0
| | | | | | | | | | | | are a really nasty interface that should have been killed long ago when 'ptrace(PT_[SG]ETREGS' etc came along. The entity that they operate on (struct user) will not be around much longer since it is part-per-process and part-per-thread in a post-KSE world. gdb does not actually use this except for the obscure 'info udot' command which does a hexdump of as much of the child's 'struct user' as it can get. It carries its own #defines so it doesn't break compiles.
* Revert part of previous- I misunderstood the use of 'ncpus'- I thought it'dmjacob2001-08-011-3/+1
| | | | been hack to keep clocks from being reinitialized.
* Don't initialize a clock twice (it's not a function of number ofmjacob2001-08-011-3/+5
| | | | cpus).
* Use a machine dependent type, Elf_Hashelt, for the elements of the elfjake2001-07-311-0/+11
| | | | | | | | dynamic symbol table buckets and chains. The sparc64 toolchain uses 32 bit .hash entries, unlike other 64 bits architectures (alpha), which use 64 bit entries. Discussed with: dfr, jdp
* Make PMAP_SHPGPERPROC tunable. One shouldn't need to recompile a kernelpeter2001-07-271-1/+5
| | | | | | | for this, since it is easy to run into with large systems with lots of shared mmap space. Obtained from: yahoo
* Call the early tunable setup functions as soon as kern_envp is available.peter2001-07-261-0/+3
| | | | Some things depend on hz being set not long after this.
* - Do not handle the per-CPU containers in mbuf code as though the cpuidsbmilekic2001-07-261-5/+6
| | | | | | | | | | | | | | | | | were indices in a dense array. The cpuids are a sparse set and treat them as such, setting up containers only for CPUs activated during mb_init(). - Fix netstat(1) and systat(1) to treat the per-CPU stats area as a sparse map, in accordance with the above. This allows us to properly boot with certain CPUs disactivated. However, if we later decide to re-activate said CPUs, we will barf until we decide to implement CPU spinon/spinoff callback hooks to allow for said CPUs' per-CPU containers to get configured on their activation. Reported by: mjacob Partially (sys/ diffs) Submitted by: mjacob
* Simplify the implementation of pmap_emulate_reference(). The new versiondfr2001-07-243-59/+76
| | | | | | | simply manipulates the pte which faulted instead of traversing the mapping list for that page. This makes it possible to complete the trap without needing locks and incidentally improves the accuracy of some statistics used by the VM system.
* You were knocked senseless by the Boomerang, spun around by the Cyclone,wpaul2001-07-232-0/+2
| | | | | | | | | | | | | | | | | | blown over by the Hurricane and had a house dropped on you by the Tornado. Now it's time to have your parade rained on by... the Typhoon! This commit adds driver support for 3Com 3cR990 10/100 ethernet adapters based on the Typhoon I and Typhoon II chipsets. This is actually a port of the OpenBSD driver with many hacks by me. No Virginia, there isn't any support for the hardware crypto yet. However there is support for TCP/IP checksum offload and VLANs. Special thanks go to Jason Wright, Aaron Campbell and Theo de Raadt for squeezing enough info out of 3Com to get this written, and for doing most of the hard work. Manual page is included. Compiled as a module and included in GENERIC.
* Now that config(8) has stopped breaking POLA (mkmakefile.c rev 1.69) byobrien2001-07-151-25/+25
| | | | | always including <KERNEL>.hints if its exist reguardless of the lack of a "hints" directive in the <KERNEL> file; we can have a real hints file again.
* Turn off preemption on the Alpha for the time being. Peter and JHB aren'tobrien2001-07-151-1/+1
| | | | | | | | | | | | sure when things got so bad (JHB says preemption worked just fine for months before the AlbertVM commit). Even post DillionVM locking commit, Miatas (DEC Personal Workstations) are very fragile -- not making it thru a world build. With this patch it does. Those hacking on SMPng will want to locally back out this commit. The rest of us will want to run with it until the SMPng guys figure out the problem(s). Submitted by: peter
* Fix reboot hangs that have happened with multiple processorsmjacob2001-07-144-3/+26
| | | | | | | | | | | | | on Alpha 4100s. Basically, if you're halting or you're rebooting, you should tell all other processors to halt first. Define IPI_HALT- IPI_STOP is not what we want for this purpose, which will call prom_halt(0) on receipt. The processor running the halt or reboot wil send an IPI_HALT to all other processors, delay a bit, then continue to do what what it was planning on doing (prom_halt({0|1})).
* Move fxp to the miibus section where it belongs.dd2001-07-142-2/+2
|
* I really should have just commented out this intire file vs. removing allobrien2001-07-131-0/+25
| | | | | the contents. One may still want the contents as reference for creating /boot/device.hints.
* Hints processing is FUBAR'ed right now.obrien2001-07-131-25/+0
| | | | | | | By default, we will end up with a duplicate set of hints if people have a properly populated /boot/device.hints. So for now, remove the hints here until Peter revisits the new hints processing from mid-June that broke Alpha booting.
* `pcn' supports AMD Am79C97x cards, not Am79C79x cards.dd2001-07-132-2/+2
| | | | | PR: 28946 Submitted by: Ryuichiro Imura <imura@ryu16.org>
* Add 'hwatch' and 'dhwatch' ddb commands analogous to 'watch' andbsd2001-07-111-0/+33
| | | | | | | | | | 'dwatch'. The new commands install hardware watchpoints if supported by the architecture and if there are enough registers to cover the desired memory area. No objection by: audit@, hackers@ MFC after: 2 weeks
* Sanity guard- return ENODEV if we don't have a good IRQ resource.mjacob2001-07-111-0/+3
|
* Slight cleanliness- add an unlock of Giant in one dopanic case. Domjacob2001-07-111-9/+6
| | | | some very minor formatting changes.
* A set of changes to reduce the number of include files the kerneljulian2001-07-082-2/+2
| | | | | | takes from /usr/include. I cannot check them on alpha.. (will try beast) Briefly looked at by: Warner Losh <imp@harmony.village.org>
* Bracket call to vm_page_flag_set with required Giant lock/unlock.mjacob2001-07-051-1/+4
|
* You cannot require Giant to be locked when you haven't acquired it yet.mjacob2001-07-051-2/+4
|
* Move vm_page_zero_idle() from machine-dependant sections to adillon2001-07-051-64/+0
| | | | | machine-independant source file, vm/vm_zeroidle.c. It was exactly the same for all platforms and updating them all was getting annoying.
* Reorg vm_page.c into vm_page.c, vm_pageq.c, and vm_contig.c (for contigmalloc).dillon2001-07-041-1/+1
| | | | | | | | | | | Also removed some spl's and added some VM mutexes, but they are not actually used yet, so this commit does not really make any operational changes to the system. vm_page.c relates to vm_page_t manipulation, including high level deactivation, activation, etc... vm_pageq.c relates to finding free pages and aquiring exclusive access to a page queue (exclusivity part not yet implemented). And the world still builds... :-)
* With Alfred's permission, remove vm_mtx in favor of a fine-grained approachdillon2001-07-046-34/+19
| | | | | | | | | (this commit is just the first stage). Also add various GIANT_ macros to formalize the removal of Giant, making it easy to test in a more piecemeal fashion. These macros will allow us to test fine-grained locks to a degree before removing Giant, and also after, and to remove Giant in a piecemeal fashion via sysctl's on those subsystems which the authors believe can operate without Giant.
* Follow Bruce's suggestions. They're probably wrong, but better than before.mjacob2001-07-041-3/+10
|
* Allow Giant to be recursed when a process terminates.jhb2001-07-031-2/+2
|
* gif(4) and stf(4) modernization:brooks2001-07-022-2/+2
| | | | | | | | | | | - Remove gif dependencies from stf. - Make gif and stf into modules - Make gif cloneable. PR: kern/27983 Reviewed by: ru, ume Obtained from: NetBSD MFC after: 1 week
* Don't need the .keep_me files. Obrien and I committed past each other.imp2001-07-012-1/+1
| | | | | | | Add 0-9 to the list of possible kernel names at matsushita-san's suggestion. Submitted by: Makoto MATSUSHITA-san <matusita@jp.FreeBSD.org>
* Ensure sys/${MACHINE}/compile/FOO existsobrien2001-06-301-0/+0
| | | | Reviewed by: arch, imp, peter, and the USENIX terminal room secret kernel cabal
* Really do proper keepme files in the compile directories. Useimp2001-06-301-0/+1
| | | | | | | | | | .cvsignore file for [A-Za-z]* to keep these directories around rather than waste a file on .keepme. This should also make people's built trees place nice with CVS. Idea for .cvsignore: peter (although I suggested the regexp) Pointed out by: Makoto MATSUSHITA-san <matusita@jp.FreeBSD.org> Llama's costuming by: Fernamdo Llamas
* Repo copy i8237.h to dev/ic so we can get rid of some of the final vestigesimp2001-06-301-1/+1
| | | | of includes of i386 files from non-i386 ports.
* Move ast() and userret() to sys/kern/subr_trap.c now that they are MI.jhb2001-06-292-114/+0
|
* Add a new MI pointer to the process' trapframe p_frame instead of usingjhb2001-06-297-42/+40
| | | | | | various differently named pointers buried under p_md. Reviewed by: jake (in principle)
* Grab Giant around fault handling at the top level for now.jhb2001-06-291-0/+3
|
* Allow the clock lock to recurse.jhb2001-06-251-1/+1
|
* - Grab the vm lock around all of pmap_emulate_reference() as it manipulatesjhb2001-06-252-8/+14
| | | | | | | vm_page_t's. - Add a KTR_TRAP tracepoint to trap() on the alpha that displays the contents of a0, a1, and a2 to make debugging of nested traps that panic before displaying any useful output easier.
* fix oopslet for PROC_UNLOCK_NOSWITCHmjacob2001-06-241-1/+1
|
* - Grab the proc lock around CURSIG and postsig(). Don't release the procjhb2001-06-221-2/+4
| | | | | | | | lock until after grabbing the sched_lock to avoid CURSIG racing with psignal. - Don't grab Giant for addupc_task() as it isn't needed. Reported by: tegge (signal race), bde (addupc_task a while back)
* Be conservative and always perform an mb after an atomic_cmpset operation.jhb2001-06-221-0/+2
|
* Doh, missed a printf -> db_printf in the previous commit.jhb2001-06-221-1/+1
|
* Clean up some junk. The bogus trapframe on the stack was removed from thepeter2001-06-161-7/+0
| | | | MI code in August 2000 elsewhere.
* I'm a dunce. Clean up some warnings by axeing some unused variables fromjhb2001-06-151-2/+0
| | | | the previous commit.
* Updates and tweaks to the new trace functionality:jhb2001-06-151-37/+44
| | | | | | | | | | | | | - Use db_printf() instead of printf(). - Clean up decode_syscall() to use regular if-then-else rather than goto's. - Use the same method of parsing PID's for per-process traces as the x86 code does: that is, if the address passed in is not a valid kernel address, treat it is a decimal pid. - If the pid of the current process is specified, fall back to using the "default" parameters for the trace as curproc's pcb is not valid at this point. MFC after: 1 week
* oops. prepare_usermode() died in August 2000 in the MI and x86 code.peter2001-06-151-8/+0
| | | | Issue raised by: scottl
* If we're not going to use am7990_shutdown, comment it all out.mjacob2001-06-141-0/+4
| | | | MFC after: 2 weeks
OpenPOWER on IntegriCloud