| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 the ability to debug kse coredumps in 8.0.
Suggested by: marcel
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
default.
Reported by: Giulio Ferro ( auryn AT zirakzigil DOT org )
Tested by: Giulio Ferro ( auryn AT zirakzigil DOT org )
|
| | |
| | |
| | |
| | |
| | | |
register. If MSI was disabled by hw.re.msi_disable tunable
expliclty clear the MSI enable bit.
|
| | |
| | |
| | |
| | | |
disable DAC by default.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 )
|
| | |
| | |
| | |
| | |
| | |
| | | |
Previously re(4) used to blindly enable VLAN hardware tag stripping
and Rx checksum offload regardless of enabled optional features of
interface.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
The is comment is left over from the old disklabel command.
Reviewed by: phk
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | | |
for each partitioning scheme. The gpart code is currently non-
optional.
|
| | |
| | |
| | |
| | |
| | |
| | | |
interlock here anymore.
Reported by: kris
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
from flash or from RAM.
Reported by: imp
MFC After: 3 days
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
could be commented out as they just duplicate the defaults that
are built into the code
Reviewed by: imp
MFC after: 1 week
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
a failed ath_hal_reset call
MFC after: 3 days
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
MFC after: 2 weeks
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
'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
|
| | |
| | |
| | |
| | | |
time clock id.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
node or directly open mfi0 and specify the card you want to talk to
in the ioctl.
|
| | |
| | |
| | |
| | | |
C++ lets me get away with it.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | | |
Not noticed by tb as TCP_SIGNATURE is not in LINT.
MFC after: 1 month
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
PR: kern/121808
Submitted by: Volker Werth <volker at vwsoft dot com>
Approved by: imp (mentor, implicit for trivial changes)
MFC after: 3 days
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
Approved by: jkoshy(mentor), kientzle
|
| | |
| | |
| | |
| | |
| | | |
a pool mutex to protect these sleep/wakeup/counter races. This
still is preferable to bloating each bio with a mtx.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
| | |
| | |
| | |
| | |
| | | |
otherwise rwlock is recursivly called when signal happens and the __error
was never resolved before.
|
| | |
| | |
| | |
| | |
| | | |
Approved by: imp (mentor)
Noticed by: rink
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
Changes from the PM WIP sneaked in and caused compile errors.
|
| | | |
|