Age | Commit message (Collapse) | Author |
|
|
|
two directories. in reality, because of how we place files, it has four:
.../arch/A, .../arch/A/A, .../arch/M, and .../arch/M/M
formalize this A/A and M/M scheme directly in the Makefiles, which makes
them a lot more similar
drahn likes the idea a lot
|
|
|
|
DDR settings, and is reported to work by ysw at mpcj dot cn after cheating
the Version environment variable, so recognize its model number.
|
|
people thought skipping "make depend" or "make clean" was acceptable
|
|
|
|
|
|
|
|
arch and machine dependent files (and add the missing files)
ok miod drahn
|
|
|
|
|
|
|
|
ok miod drahn
|
|
|
|
ok miod
|
|
|
|
|
|
where there is almost nothing left to them, so that we can continue getting
rid of them
ok oga
|
|
most importantly swapoff) over to a mutex. No idea how many times i've
written this diff in the past.
ok deraadt@
|
|
libdrm bug recently.
Correct to what was intended.
|
|
accessed by the gpu or needing a flush). Since this implies that the object is
wanted, emit the flush then to save time.
Makes things a lot smoother than before in some GL applications, since
before we were claiming that object needing a flush were unbusy so the
next map stalled the gpu waiting on a flush.
From daniel vetter on intel-gfx.
|
|
conflicts.
|
|
If we just read access to some data that has been accessed by the gpu,
only sleep until the end of the gpus last write (which we track). So
instead of stalling the gpu until the last time accessed, both can read
at the same time (which is allowed and coherent as long as the right
invalidation happens).
Since we check offsets from userland before we exec a batchbuffer, this
helps 965 (with lots of read only relocations in the render path) quite
a lot.
|
|
Before, as well as being kinda nasty there was a very definite race, if
the last reference to an object was removed by uvm (a map going away),
then the free path happened unlocked, this could cause all kinds of
havoc.
In order to deal with this, move to fine-grained locking. Since uvm
object locks are spinlocks, and we need to sleep in operations that will
wait on the gpu, provide a DRM_BUSY flag that is set on a locked object
that then allows us to unlock and sleep (this is similar to several
things done in uvm on pages and some object types).
The rwlock stays around to ensure that execbuffer can have acces to the
whole gtt, so ioctls that bind to the gtt need a read lock, and
execuffer gets a write lock. otherwise most ioctls just need to busy the
object that they operate on. Lists also have their own locks.
Some cleanup could be done to make this a little prettier, but it is
much more correct than previously.
Tested very very vigorously on 855 (x40) and 965 (x61s), this found numerous
bugs. Also, the I can no longer crash the kernel at will.
A bunch of asserts hidden under DRMLOCKDEBUG have been left in the code for
debugging purposes.
|
|
these maps tend to be fairly long lived so it buys us nothing other than
code complexity.
|
|
Since this means the necessary gtt alignment may change. Nothing did
this already, so all it does it allows the code to be simpler.
idea from Daniel Vetter.
|
|
|
|
bother zeroing fault registers of CMMU which did not report faults.
|
|
used to depend on <sh/psl.h> bringing <machine/intr.h>.
|
|
removed. Extend carp demote logging to also show the reason for
the demote. Return EINVAL instead of ERANGE if a carpdemote request
is out range. Requested from otto.
OK mcbride, henning.
|
|
|
|
|
|
|
|
ok deraadt
|
|
to pad-align the size of the structure; it grows, the disklabel ioctl's are
break ABI. Change the uid to a character array. this also simplifies some
other stuff
ok jsing
|
|
|
|
|
|
4000 and 4300 will need more work, because they don't have as many distinct
software interrupt sources as required by this implementation, so a
different IPI scheme will be necessary.
Tested on dual-processor 4625 (AV530 family) and single processor 4300
(AV400 family).
|
|
trust the cpuid value returned by the prom itself (verified against
/usr/opt/sdk/include/sys/dg_sys_info.h on a DG-UX filesystem).
|
|
that gets manipulated in interrupt context is the kernel pmap, and we fully
populate its VP mappings during pmap_bootstrap(). Gets rid of the excessive
spl's at pmap_destroy() time noticed by deraadt@
ok deraadt@, drahn@
|
|
interrupt handler. So the locking and spl manipulation can simply go
away.
ok deraadt@, oga@
|
|
ioctls, instead of -1 or EINVAL. ENOTTY audit suggested to me by uwe.
ok dlg tedu
|
|
oga@.
ok deraadt@
|
|
since it is time to start transitioning away from the no-op behaviour.
ok oga kettenis
|
|
ok oga
|
|
I'm actually 99% sure that these locks are right and could be almost
trivially converted to an IPL_NONE mutex protecting the hashtable. Any
takers?
|
|
This is a similar case to the ntfs commit just made, howerver things a
somewhat more hard to audit because cd9660 actually implements vnode
locking (using lockmgr still due to vnode recursion *vomit*). No rwlock
on the hash table though so these locks can probably be converted to
mutexes fairly simply to prevent reentering the list code.
|
|
replace ntfs_nthash_slock usage with comments prefixed XXXLOCKING (for
grepability).
This lock looks to be correct, but it could well be the bad way to do it
(having a rwlock for inserts to avoid races inserting the same inode but
then simple locking on list accesses).
approach discussed with deraadt@
|
|
that kills gtt mappings.
In both of these case we want all writes to hit the bus before we do
whatever we're about to do.
Doesn't solve any problems that I know of but it may help.
|
|
When we disable tiling (for example whenever we free an object to out
userland cache), we stall the gpu so that we can get rid of the fence
register covering its bit of the gtt.
Instead, mark it as invalid and then free it on next use, leading to
less of a gpu stall if any. Leads to some slight performance improvement
on 8xx, 91x and 94x chipsets which are fence constrained.
|