summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | To date, we have assumed that the TLB will only set the PG_M bit in aalc2008-03-231-38/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PTE if that PTE has the PG_RW bit set. However, this assumption does not hold on recent processors from Intel. For example, consider a PTE that has the PG_RW bit set but the PG_M bit clear. Suppose this PTE is cached in the TLB and later the PG_RW bit is cleared in the PTE, but the corresponding TLB entry is not (yet) invalidated. Historically, upon a write access using this (stale) TLB entry, the TLB would observe that the PG_RW bit had been cleared and initiate a page fault, aborting the setting of the PG_M bit in the PTE. Now, however, P4- and Core2-family processors will set the PG_M bit before observing that the PG_RW bit is clear and initiating a page fault. In other words, the write does not occur but the PG_M bit is still set. The real impact of this difference is not that great. Specifically, we should no longer assert that any PTE with the PG_M bit set must also have the PG_RW bit set, and we should ignore the state of the PG_M bit unless the PG_RW bit is set. However, these changes enable me to remove a work-around from pmap_promote_pde(), the superpage promotion procedure. (Note: The AMD processors that we have tested, including the latest, the Phenom, still exhibit the historical behavior.) Acknowledgments: After I observed the problem, Stephan (ups) was instrumental in characterizing the exact behavior of Intel's recent TLBs. Tested by: Peter Holm
* | | Yield the cpu in the kernel while iterating the list of thekib2008-03-233-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vnodes belonging to the mountpoint. Also, yield when in the softdep_process_worklist() even when we are not going to sleep due to buffer drain. It is believed that the ULE fixed the problem [1], but the yielding seems to be needed at least for the 4BSD case. Discussed: on stable@, with bde Reviewed by: tegge, jeff [1] MFC after: 2 weeks
* | | When updating the install list for files which have had local changescperciva2008-03-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | merged with upgrade changes, don't try to compute the SHA256 hash of files which don't exist. Reported by: Jaakko Heinonen MFC after: 1 week
* | | - Restore kse.h in this directory so other tools don't find it by mistake.jeff2008-03-233-1/+137
| | | | | | | | | | | | | | | | | | - Restore the ability to debug kse coredumps in 8.0. Suggested by: marcel
* | | Prevent the overflow in the calculation of the next page directory.kib2008-03-232-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The overflow causes the wraparound with consequent corruption of the (almost) whole address space mapping. As Alan noted, pmap_copy() does not require the wrap-around checks because it cannot be applied to the kernel's pmap. The checks there are included for consistency. Reported and tested by: kris (i386/pmap.c:pmap_remove() part) Reviewed by: alc MFC after: 1 week
* | | MSI handling on some RealTek chips are broken so disable it byyongari2008-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | default. Reported by: Giulio Ferro ( auryn AT zirakzigil DOT org ) Tested by: Giulio Ferro ( auryn AT zirakzigil DOT org )
* | | For MSI capable hardwares, enable MSI enable bit in RL_CFG2yongari2008-03-232-0/+14
| | | | | | | | | | | | | | | register. If MSI was disabled by hw.re.msi_disable tunable expliclty clear the MSI enable bit.
* | | Some RealTek chips are known to be buggy on DAC handling, soyongari2008-03-231-1/+6
| | | | | | | | | | | | disable DAC by default.
* | | VLAN hardware tag information should be set for all desciptors of ayongari2008-03-231-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | multi-descriptor transmission attempt. Datasheet said nothing about this requirements. This should fix a long-standing VLAN hardware tagging issues with re(4). Reported by: Giulio Ferro ( auryn AT zirakzigil DOT org ) Tested by: Giulio Ferro ( auryn AT zirakzigil DOT org )
* | | Always honor configured VLAN/checksum offload capabilities.yongari2008-03-231-3/+8
| | | | | | | | | | | | | | | | | | Previously re(4) used to blindly enable VLAN hardware tag stripping and Rx checksum offload regardless of enabled optional features of interface.
* | | New release notes: KSE removed, cmx(4), uslcom(4), sf(4) update,bmah2008-03-231-5/+63
| | | | | | | | | | | | | | | | | | | | | | | | re(4) update, vr(4) update, TCP options padding fix, ata(4) spindown, hptrr(4) 1.2, mmap(2)/ZFS fix, chflags(1) -v/-f, cp(1) -a, find(1) primaries to match GNU find, split(1) -n, tar(1) -Z, bzip2 1.0.5. Modified release notes: CVS post-1.11.12 snapshot from 10 March 2008.
* | | Remove comment about "-r" flag from readlabel. "-r" is a no-op.rodrigc2008-03-231-1/+0
| | | | | | | | | | | | | | | | | | The is comment is left over from the old disklabel command. Reviewed by: phk
* | | Remove commented out code, thread suspension is done in thread library.davidxu2008-03-231-2/+1
| | |
* | | - Only return 1 from sync_vnode() in cases where the vnode is stilljeff2008-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | at the head of the sync list. This prevents sched_sync() from re-queueing a vnode which may have been freed already. Discussed with: kib
* | | Instead of making a single geom_part.ko module, make a modulemarcel2008-03-236-15/+66
| | | | | | | | | | | | | | | for each partitioning scheme. The gpart code is currently non- optional.
* | | - Pass BO_MTX(bo) to lockmgr in vtruncbuf, we don't own the vnodejeff2008-03-231-1/+1
| | | | | | | | | | | | | | | | | | interlock here anymore. Reported by: kris
* | | Redefine G_PART_SCHEME_DECLARE() from populating a private linker setmarcel2008-03-237-27/+128
| | | | | | | | | | | | | | | | | | | | | | | | to declaring a proper module. The module event handler is part of the gpart core and will add the scheme to an internal list on module load and will remove the scheme from the internal list on module unload. This makes it possible to dynamically load and unload partitioning schemes.
* | | Add g_retaste(), which given a class will present all non-open providersmarcel2008-03-232-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to it for tasting. This is useful when the class, through means outside the scope of GEOM, can claim providers previously unclaimed. The g_retaste() function posts an event which is handled by the g_retaste_event(). Event suggested by: phk
* | | We need to prototype _start() as well, as we use it to test if we're runningcognet2008-03-221-0/+1
| | | | | | | | | | | | | | | | | | | | | from flash or from RAM. Reported by: imp MFC After: 3 days
* | | Reuse the mbuf that was just retrieved from the receive ring if mbufqingli2008-03-221-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | exhaustion is encountered. There was a fix made previously for this problem but the solution (breaking out of the receive loop) does not seem to work. mbuf reuse strategy is already adopted by other drivers such as if_bge. The problem was recreated and the patch is also verified in the same test environment.
* | | add hints to specify how NPE ports are mapped to MAC+PHY; thesesam2008-03-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | could be commented out as they just duplicate the defaults that are built into the code Reviewed by: imp MFC after: 1 week
* | | Improve mac+phy configuration so that hints can be used to describesam2008-03-221-16/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | layouts different than the defaults: o hint.npe.0.mac="A", "B", etc. specifies the window for MAC register accesses o hint.npe.0.mii="A", "B", etc. specifies PHY registers o hint.npe.1.phy=%d specifies the PHY to map to a port This allows devices like NSLU to be setup w/o code changes and will also be used for forthcoming support for more Avila boards. Reviewed by: imp MFC after 1 week
* | | sync w/ p4: minor cleanups to improve msgssam2008-03-221-15/+9
| | |
* | | In abort2(2): Accept a NULL arg pointer if nargs == 0phk2008-03-221-6/+8
| | |
* | | (finally) add the hal status to the diagnostic generated aftersam2008-03-221-3/+4
| | | | | | | | | | | | | | | | | | a failed ath_hal_reset call MFC after: 3 days
* | | Defer state change on disassociate to avoid unnecessarily dropping thesam2008-03-221-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lease: track the current bssid and if it changes (as reported in an assoc/reassoc) event only then kick the state machine. This gives us immediate response when roaming but otherwise causes us to fallback on the normal state machine. Reviewed by: brooks, jhb MFC after: 3 weeks
* | | correct syslog mask so LOG_DEBUG msgs are not lostsam2008-03-221-1/+1
| | | | | | | | | | | | MFC after: 2 weeks
* | | Add a test case for options.c revision 1.26.stefanf2008-03-222-0/+15
| | |
* | | Reset the internal state used for the 'getopts' built-in when 'shift' or 'set'stefanf2008-03-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | are used to modify the arguments. Not doing so caused random memory reads or null pointer dereferences when 'getopts' was called again later (SUSv3 says getopts produces unspecified results in this case). PR: 48318
* | | In route.c in newroute() there's a call to exit(0) if the command wasremko2008-03-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'get'. Since rtmsg() always gets called and returns 0 on success and -1 on failure, it's possible to exit with a suitable exit code by calling exit(ret != 0) instead, as is done at the end of newroute(). PR: bin/112303 Submitted by: bruce@cran.org.uk MFC after: 1 week
* | | Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpudavidxu2008-03-225-0/+52
| | | | | | | | | | | | time clock id.
* | | - Complete part of the unfinished bufobj work by consistently usingjeff2008-03-2218-253/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BO_LOCK/UNLOCK/MTX when manipulating the bufobj. - Create a new lock in the bufobj to lock bufobj fields independently. This leaves the vnode interlock as an 'identity' lock while the bufobj is an io lock. The bufobj lock is ordered before the vnode interlock and also before the mnt ilock. - Exploit this new lock order to simplify softdep_check_suspend(). - A few sync related functions are marked with a new XXX to note that we may not properly interlock against a non-zero bv_cnt when attempting to sync all vnodes on a mountlist. I do not believe this race is important. If I'm wrong this will make these locations easier to find. Reviewed by: kib (earlier diff) Tested by: kris, pho (earlier diff)
* | | Fix a race where timeout/untimeout could cause crashes for Giant lockedalfred2008-03-221-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code. The bug: There exists a race condition for timeout/untimeout(9) due to the way that the softclock thread dequeues timeouts. The softclock thread sets the c_func and c_arg of the callout to NULL while holding the callout lock but not Giant. It then drops the callout lock and acquires Giant. It is at this point where untimeout(9) on another cpu/thread could be called. Since c_arg and c_func are cleared, untimeout(9) does not touch the callout and returns as if the callout is canceled. The softclock then tries to acquire Giant and likely blocks due to the other cpu/thread holding it. The other cpu/thread then likely deallocates the backing store that c_arg points to and finishes working and hence drops Giant. Softclock resumes and acquires giant and calls the function with the now free'd c_arg and we have corruption/crash. The fix: We need to track curr_callout even for timeout(9) (LOCAL_ALLOC) callouts. We need to free the callout after the softclock processes it to deal with the race here. Obtained from: Juniper Networks, iedowse Reviewed by: jhb, iedowse MFC After: 2 weeks.
* | | Use linker set to collection all target operations.davidxu2008-03-224-13/+22
| | |
* | | Add in a compat. mode so you can either open the card's deviceambrisko2008-03-221-0/+9
| | | | | | | | | | | | | | | node or directly open mfi0 and specify the card you want to talk to in the ioctl.
* | | No need to be gratuitously style(9) non-compliant here, even thoughimp2008-03-211-1/+1
| | | | | | | | | | | | C++ lets me get away with it.
* | | Replace reference from vinum.8 to gvinum.8, it was advised in the PR toremko2008-03-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replace this with vinum.4, but that's the kernel interface manual, which is not appropriate in my understanding. I think that gvinum is a suitable replacement for this. PR: docs/121938 Submitted by: "Federico" <federicogalvezdurand at yahoo dot com> MFC after: 3 days
* | | Add ';' missed with the SYSINIT changes.bz2008-03-211-1/+1
| | | | | | | | | | | | | | | | | | Not noticed by tb as TCP_SIGNATURE is not in LINT. MFC after: 1 month
* | | Add the i915 GME device to DRM.remko2008-03-212-1/+3
| | | | | | | | | | | | | | | | | | | | | PR: kern/121808 Submitted by: Volker Werth <volker at vwsoft dot com> Approved by: imp (mentor, implicit for trivial changes) MFC after: 3 days
* | | Reduce contention on the vnode interlock by not acquiring the BO_LOCKkib2008-03-211-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | around the check for the BV_BKGRDINPROG in the brelse() and bqrelse(). See the comment for the explanation why it is safe. Tested by: pho Submitted by: jeff
* | | Reduce the acquisition of the vnode interlock in the ffs_read() andkib2008-03-211-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | ffs_extread() when setting the IN_ACCESS flag by checking whether the IN_ACCESS is already set. The possible race there is admissible. Tested by: pho Submitted by: jeff
* | | Add MLINK for archive_write_close.kaiw2008-03-211-0/+1
| | | | | | | | | | | | Approved by: jkoshy(mentor), kientzle
* | | - Reduce contention on the global bdonelock and bpinlock by usingjeff2008-03-211-30/+34
| | | | | | | | | | | | | | | a pool mutex to protect these sleep/wakeup/counter races. This still is preferable to bloating each bio with a mtx.
* | | - Add a new td flag TDF_NEEDSUSPCHK that is set whenever a thread needsjeff2008-03-216-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to enter thread_suspend_check(). - Set TDF_ASTPENDING along with TDF_NEEDSUSPCHK so we can move the thread_suspend_check() to ast() rather than userret(). - Check TDF_NEEDSUSPCHK in the sleepq_catch_signals() optimization so that we don't miss a suspend request. If this is set use the expensive signal path. - Set NEEDSUSPCHK when creating a new thread in thr in case the creating thread is due to be suspended as well but has not yet. Reviewed by: davidxu (Authored original patch)
* | | Resolve __error()'s PLT early so that it needs not to be resolved again,davidxu2008-03-211-0/+3
| | | | | | | | | | | | | | | otherwise rwlock is recursivly called when signal happens and the __error was never resolved before.
* | | The last commit was:remko2008-03-200-0/+0
| | | | | | | | | | | | | | | Approved by: imp (mentor) Noticed by: rink
* | | Explicitly use spinlock_enter/exit rather than locking the icu_lock spinjhb2008-03-202-30/+28
| | | | | | | | | | | | | | | | | | lock in the 8259A drivers as these drivers are only used on UP systems. This slightly reduces the penalty of an SMP kernel (such as GENERIC) on a UP x86 machine.
* | | Implement a BUS_BIND_INTR() method in the bus interface to bind an IRQjhb2008-03-205-0/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | resource to a CPU. The default method is to pass the request up to the parent similar to BUS_CONFIG_INTR() so that all busses don't have to explicitly implement bus_bind_intr. A bus_bind_intr(9) wrapper routine similar to bus_setup/teardown_intr() is added for device drivers to use. Unbinding an interrupt is done by binding it to NOCPU. The IRQ resource must be allocated, but it can happen in any order with respect to bus_setup_intr(). Currently it is only supported on amd64 and i386 via nexus(4) methods that simply call the intr_bind() routine. Tested by: gallatin
* | | Unbreak the last commit.sos2008-03-201-8/+9
| | | | | | | | | | | | Changes from the PM WIP sneaked in and caused compile errors.
* | | pay attention to default cluster limits when sizing receive queueskmacy2008-03-202-8/+32
| | |
OpenPOWER on IntegriCloud