summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* The 32 bit compatability ld-elf32.so.1 cannot use i386_set_ldt() whenpeter2004-11-061-0/+6
| | | | | running on an amd64 kernel. Use the recently exposed direct %fs/%gs set routines instead for the TLS setup of 32 bit binaries.
* Use the recently exposed fs/gs set functions when compiling libthr topeter2004-11-061-0/+12
| | | | | | | run as a 32 bit support library for an amd64 kernel. 32 bit consumers of libthr have zero chance of running on an amd64 kernel since we don't implement the i386_set_ldt() family of functions. Note that this commit doesn't make it actually work, it just removes one more obstacle.
* When building the custom i386 libraries for use on amd64 kernels, wepeter2004-11-066-0/+170
| | | | | | | | | can't use the i386_set_ldt() family of routines, because they are not implemented. Instead, use the recently exposed direct access sysarch routines for setting what %fs and %gs point to. Use this for the i386 TLS _set_tp() routine, but only when compiling to run as a 32 bit support binary for amd64 kernels.
* Begin an invasion of i386-land by amd64.peter2004-11-061-0/+11
| | | | | | Expose some of the amd64-specific sysarch functions to allow alternative implementations of the %fs/%gs code for TLS, threads, etc. USER_LDT does not exist on the amd64 kernel, so we have to implement things other ways.
* Convert tools/lib32/build.sh into world connectable hooks. This stillpeter2004-11-062-1/+95
| | | | | | | | | | | | rates pretty high on the "hack!" scale, but it works for me. Adding -DWANT_LIB32 to the world build command line, or 'WANT_LIB32=yes' to /etc/make.conf will include the 32 bit libraries with the build. I have not made this default behavior. Cross compiling this stuff is an adventure I have not investigated. This is still a WIP. We needed this at work so that we could install from a readonly obj tree - lib32/build.sh wasn't up to that.
* Don't define SOFTFLOAT directly in source files, it's now done in the Makefile.cognet2004-11-052-2/+1
|
* Fix signalcontext and makecontext.cognet2004-11-053-14/+17
|
* Remove getcontext.S, it is not needed.cognet2004-11-052-64/+1
|
* Import a Makefile for arm.cognet2004-11-051-0/+8
|
* Partial support of KSE for arm.cognet2004-11-058-118/+132
|
* Disable interrupts for atomic_cmpset_32, this one is just not atomic.cognet2004-11-051-10/+13
| | | | Don't export it to userland.
* Respect TDF_SINTR, don't suspend uninterruptible thread.davidxu2004-11-051-4/+3
|
* Note that sysctls documentation is missing.pjd2004-11-052-0/+4
|
* Backout previous commit, the P_STOPPED_BOUNDARY flag was alreadydavidxu2004-11-051-1/+1
| | | | cleared at the begin of thread_single() when needed.
* - Store threads on sleep queues in FIFO order rather than sorted byjhb2004-11-051-16/+19
| | | | | | | | | | | | | | | | | priority. The sleep queues don't get updated when the priority of threads changes, so sleepq_signal() might not always wakeup the highest priority thread. Updating the queues when thread priorities change cannot be easily done due to lock orders, so instead we do an O(n) walk of the queue for a sleepq_signal() operation instead of O(1). On the other hand, adding a thread to a sleep queue now goes from O(n) to O(1) so it ends up as an even tradeoff. The correctness here with regards to priorities is actually fairly important. msleep() gives interactive threads their priority "boost" after they are placed on the queue, but before this fix that "boost" wasn't used to determine the highest priority thread that sleepq_signal() awoke. - Fix up some comments. Inspired by: ups, bde
* Don't change the priority to PUSER when sleeping, just keep the currentjhb2004-11-051-2/+4
| | | | priority.
* Copy the syscall args in a tmp variable instead of directly using thecognet2004-11-051-23/+55
| | | | | trapframe, as it can be modified in the syscall. Call thread_user_enter() when appropriate.
* Save a few cycles in context switch.cognet2004-11-051-90/+36
| | | | Update comments to reflect reality.
* If we're still running at the physical address, jump to the virtual addresscognet2004-11-052-33/+20
| | | | | instead before calling initarm(). This removes the need to map virtual == physical in initarm().
* Be more verbose about cache capacities.cognet2004-11-051-2/+18
|
* Implement casuptr.cognet2004-11-052-6/+51
|
* Call pmap_pte_init_arm9 instead of pmap_pte_init_generic ifcognet2004-11-051-0/+4
| | | | ARM9_CACHE_WRITE_THROUGH is defined.
* - Add a new MD per-CPU field for Alpha 'pal_id' which is the PAL IDjhb2004-11-054-41/+54
| | | | | | | | | | associated with each processor. This ID is inferred from the index of the pcs structure in the hwprb. - Give Alpha CPUs FreeBSD CPU IDs more like other architectures where the boot processor is always CPU 0 and the other processors are numbered 1 ... N. List active CPUs in the system in cpu_mp_announce() as well. Silence on: alpha@
* - Set the priority of the page zeroing thread using sched_prio() when thejhb2004-11-051-14/+5
| | | | | | | | | | thread is created rather than adjusting the priority in the main function. (kthread_create() should probably take the initial priority as an argument.) - Only yield the CPU in the !PREEMPTION case if there are any other runnable threads. Yielding when there isn't anything else better to do just wastes time in pointless context switches (albeit while the system is idle.)
* - Make setting of IT_ENTROPY a bit simpler in ithread_update().jhb2004-11-051-10/+10
| | | | | | | | | - Tweak the updating of the ithread name in ithread_update() so that the '+' and '*' characters for device names that were too short only get added at the end after as many device names as possible were fit into the allocated space. Prior to this, some long devices would result in '+' chars showing up between two different devices rather than at the end.
* Restrict the sched_bind to cpu 0 to i386 and amd64 for now. I forgot thatpeter2004-11-051-1/+1
| | | | alpha still doesn't use logical cpu id's.
* Walk through the snp softc list instead of abusing tp->ts_c to find thecognet2004-11-051-8/+17
| | | | | snp attached to a tty. This fixes the panic that happens when using snp.
* In cpu_critical_fork_exit(), make sure to set td_md.md_critnest so thatcognet2004-11-051-0/+2
| | | | | | interrupts will be enabled. Spotted out by: jhb
* Bind to cpu0 for boot() processing. (Note this is reboot, not startup)peter2004-11-051-0/+8
| | | | | This means we'll always call the event hooks, device_shutdown etc on the BSP and theoretically means we can de-cruftify the cpu_reset_proxy stuff.
* MFi386 1.238 (jhb): Allow hints to disable cpuspeter2004-11-051-1/+16
|
* MFi386:peter2004-11-051-28/+79
| | | | | rev 1.61 (scottl): Add KTR tracing rev 1.62 (scottl): Optimize (td->pmap, inlines, etc)
* Don't forget to make sure that there are no not-finished requests beforepjd2004-11-052-30/+66
| | | | | | marking components as clean. Pointed out by: scottl
* - Mark all raid3 components as clean after kern.geom.raid3.idletime seconds.pjd2004-11-052-2/+82
| | | | - Make kern.geom.raid3.timeout variable tunable.
* Mark raid3 devices as clean on shutdown (after all file systems arepjd2004-11-051-3/+52
| | | | | | unmounted). Suggested by: scottl
* - Use ->index consumer's field to track number of in-flight requests.pjd2004-11-051-2/+10
| | | | - Remove unused #include.
* Stop method for swap1 script was introduced, because gmirror needed it.pjd2004-11-051-1/+1
| | | | | Now gmirror use shutdown hooks to mark mirrors as clean on shutdown, so this is not needed anymore.
* Use shutdown hooks to mark mirrors as clean after all file systems arepjd2004-11-051-1/+47
| | | | | | unmounted. Suggested by: scottl
* Remove unused #include.pjd2004-11-051-1/+0
|
* Now with the remote job support removed there can be no remote jobs andharti2004-11-053-111/+32
| | | | | no jobs that need to be remigrated. Remove the flags and the associated code.
* - Add a sysctl kern.geom.mirror.idletime, so one can specify after how manypjd2004-11-051-13/+37
| | | | | | | | seconds of idling, DRITY flags are removed. - If mirror is in idle state or is not open for writing, sleep without timeout when waiting for I/O requests. - Don't use atomic operations, for now sysctls are protected by Giant. - Update debugs.
* When the last line of a file is missing a newline in -f mode, pass atjr2004-11-051-3/+5
| | | | | | | length argument to mbrtowc() that accounts for the terminating newline character we add automatically. Failing to do this caused the loop to unexpectedly run out of characters and incorrectly signal an "Illegal byte sequence" error.
* Check that ee's standard input and output is a terminal.fjoe2004-11-051-4/+5
| | | | | | | Do not ignore all the signals in range [1..24]. PR: 65892 MFC after: 2 weeks
* MFp4:pjd2004-11-052-13/+69
| | | | | | | | | | | | | | | | | | | | | | - Fix for good (I hope) force-stopping mirrors and some filure cases (e.g. the last good component dies when synchronization is in progress). Don't use ->nstart/->nend consumer's fields, as this could be racy, because those fields are used in g_down/g_up, use ->index consumer's field instead for tracking number of not finished requests. Reported by: marcel - After 5 seconds of idle time (this should be configurable) mark all dirty providers as clean, so when mirror is not used in 5 seconds and there will be power failure, no synchronization on boot is needed. Idea from: sorry, I can't find who suggested this - When there are no ACTIVE components and no NEW components destroy whole mirror, not only provider. - Fix one debug to show information about I/O request, before we change its command.
* Sync acpi_asus(4) manual with reality.philip2004-11-051-2/+12
|
* - Make the header conform to standard rc.d style.mtm2004-11-052-4/+4
| | | | | - The 'before ipfw' directive seems bogus, and should instead be 'before rcconf'.
* Fix support for the Asus-compatible gadgets in Samsung P30/P35 laptops.philip2004-11-052-18/+94
| | | | | PR: 73380 Submitted by: Sebastian Schulze Struchtrup <seb@struchtrup.com>
* Two changes to vm_pgmoveco():alc2004-11-051-3/+1
| | | | | | | - Eliminate an initialized but unused variable. - Eliminate an unnecessary call to clear the page's PG_BUSY flag. (The call to vm_page_rename() already clears the page's PG_BUSY flag through its call to vm_page_remove().)
* During traversal of the inactive queue, try locking the page's containingalc2004-11-051-4/+9
| | | | object before accessing the page's flags or the object's reference count.
* Eliminate another unnecessary call to vm_page_busy() that immediatelyalc2004-11-051-1/+0
| | | | | precedes a call to vm_page_rename(). (See the previous revision for a detailed explanation.)
* Correct error handling on failed writeskientzle2004-11-052-5/+3
| | | | to the archive.
OpenPOWER on IntegriCloud