History log of /src/sys/uvm/uvm_init.c |
Revision | | Date | Author | Comments |
1.59 |
| 23-Sep-2023 |
ad | Repply this change with a couple of bugs fixed:
- Do away with separate pool_cache for some kernel objects that have no special requirements and use the general purpose allocator instead. On one of my test systems this makes for a small (~1%) but repeatable reduction in system time during builds presumably because it decreases the kernel's cache / memory bandwidth footprint a little. - vfs_lockf: cache a pointer to the uidinfo and put mutex in the data segment.
|
1.58 |
| 12-Sep-2023 |
ad | Back out recent change to replace pool_cache with then general allocator. Will return to this when I have time again.
|
1.57 |
| 10-Sep-2023 |
ad | - Do away with separate pool_cache for some kernel objects that have no special requirements and use the general purpose allocator instead. On one of my test systems this makes for a small (~1%) but repeatable reduction in system time during builds presumably because it decreases the kernel's cache / memory bandwidth footprint a little. - vfs_lockf: cache a pointer to the uidinfo and put mutex in the data segment.
|
1.56 |
| 17-Jul-2023 |
riastradh | uvm(9): One rndsource for faults -- not one per CPU.
All relevant state is per-CPU anyway; the only substantive difference this makes is how many entries appear in `rndctl -l' output and what they are called -- formerly the somewhat confusing `cpuN', meaning `page faults on cpuN', and now just `uvmfault'. I don't think there's any real value in being able to enable or disable measurement or counting of page faults on one CPU vs others, so although this could be a minor compatibility change, it's hard to imagine it matters much.
XXX kernel ABI change in struct cpu_info
|
1.55 |
| 04-Nov-2020 |
chs | In uvmpd_tryownerlock(), if the initial try-lock of the owner lock fails then rather than do more try-locks and eventually sleep for a tick, take a hold on the current owner's lock, drop the page interlock, and acquire the lock that we took the hold on in a blocking fashion. After we get the lock, check if the lock that we acquired is still the lock for the owner of the page that we're interested in. If the owner hasn't changed then can proceed with this page, otherwise we will skip this page and move on to a different page. This dramatically reduces the amount of time that the pagedaemon sleeps trying to get locks, since even 1 tick is an eternity to sleep in this context and it was easy to trigger that case in practice, and with this new method the pagedaemon only very rarely actually blocks to acquire the lock that it wants since the object locks are adaptive, and when the pagedaemon does block then the amount of time it spends sleeping will be generally be much less than 1 tick.
|
1.54 |
| 07-Oct-2020 |
chs | branches: 1.54.2; Add a new, more aggressive allocator for uvm_pglistalloc() to allocate contiguous physical pages, and try this new allocator if the existing one fails. The existing contig allocator only tries to allocate pages that are already free, which works fine shortly after boot but rarely works after the system has been up for a while. The new allocator uses the pagedaemon to evict pages from memory in the hope that this will free up a range of pages that satisfies the constraits of the request. This should help with things like plugging in a USB device, which often fails for some USB controllers because they can't get contigous memory.
|
1.53 |
| 06-Mar-2020 |
ad | Fix a comment.
|
1.52 |
| 27-Dec-2019 |
ad | Redo the page allocator to perform better, especially on multi-core and multi-socket systems. Proposed on tech-kern. While here:
- add rudimentary NUMA support - needs more work. - remove now unused "listq" from vm_page.
|
1.51 |
| 13-Dec-2019 |
ad | Break the global uvm_pageqlock into a per-page identity lock and a private lock for use of the pagedaemon policy code. Discussed on tech-kern.
PR kern/54209: NetBSD 8 large memory performance extremely low PR kern/54210: NetBSD-8 processes presumably not exiting PR kern/54727: writing a large file causes unreasonable system behaviour
|
1.50 |
| 01-Dec-2019 |
ad | Give each of the page queue locks their own cache line.
|
1.49 |
| 19-May-2018 |
jdolecek | branches: 1.49.2; Remove emap support. Unfortunately it never got to state where it would be used and usable, due to reliability and limited & complicated MD support.
Going forward, we need to concentrate on interface which do not map anything into kernel in first place (such as direct map or KVA-less I/O), rather than making those mappings cheaper to do.
|
1.48 |
| 23-Dec-2016 |
cherry | branches: 1.48.14; "Make NetBSD great again!"
Introduce uvm_hotplug(9) to the kernel.
Many thanks, in no particular order to:
TNF, for funding the project.
Chuck Silvers - for multiple API reviews and feedback. Nick Hudson - for testing on multiple architectures and bugfix patches. Everyone who helped with boot testing.
KeK (http://www.kek.org.in) for hosting the primary developers.
|
1.47 |
| 22-Dec-2016 |
cherry | Add a new function called uvm_md_init() that can be called at the appropriate time in the boot path by MD code.
|
1.46 |
| 03-Apr-2015 |
riastradh | branches: 1.46.2; Initialize P->V tracking for unmanaged device pages in uvm_init.
Conditional on __HAVE_PMAP_PV_TRACK until we add it to all pmaps.
MI part of pmap_pv(9) change proposed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
|
1.45 |
| 29-Jan-2013 |
para | branches: 1.45.12; 1.45.14; improve on comments
|
1.44 |
| 17-Feb-2012 |
matt | branches: 1.44.2; Make sure to export uvmexp_* if MODULAR is defined. Make the uvmexp_page* be a pointer to a const int as well as having the pointer be const as well.
|
1.43 |
| 28-Jan-2012 |
rmind | pool_page_alloc, pool_page_alloc_meta: avoid extra compare, use const. ffs_mountfs,sys_swapctl: replace memset with kmem_zalloc. sys_swapctl: move kmem_free outside the lock path. uvm_init: fix comment, remove pointless numeration of steps. uvm_map_enter: remove meflagval variable. Fix some indentation.
|
1.42 |
| 27-Jan-2012 |
para | extending vmem(9) to be able to allocated resources for it's own needs. simplifying uvm_map handling (no special kernel entries anymore no relocking) make malloc(9) a thin wrapper around kmem(9) (with private interface for interrupt safety reasons)
releng@ acknowledged
|
1.41 |
| 24-Apr-2011 |
rmind | branches: 1.41.4; 1.41.8; Initialize UVM loaning subsystem a bit later, after kmem(9). Makes UVMHIST work again.
|
1.40 |
| 23-Apr-2011 |
rmind | Replace "malloc" in comments, remove unnecessary header inclusions.
|
1.39 |
| 02-Feb-2011 |
chuck | udpate license clauses on my code to match the new-style BSD licenses. based on diff that rmind@ sent me.
no functional change with this commit.
|
1.38 |
| 14-Nov-2010 |
uebayasi | branches: 1.38.2; 1.38.4; Oops. Fix thinko.
|
1.37 |
| 14-Nov-2010 |
uebayasi | Platforms that dynamically set PAGE_{SIZE,MASK,SHIFT}, those values are saved in struct uvmexp. Expose only the relevant part for symbol users, so that they don't need to include the whole uvm(9) API.
|
1.36 |
| 21-Oct-2009 |
rmind | branches: 1.36.2; 1.36.4; Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828. - Some simplification in threading and sleepq subsystems. - Eliminates pmap_collect() and, as a side note, allows pmap optimisations. - Eliminates XS_CTL_DATA_ONSTACK in scsipi code. - Avoids few scans on LWP list and thus potentially long holds of proc_lock. - Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k. - Removes __SWAP_BROKEN cases.
Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on acorn26 (thanks to <bjh21>).
Discussed on <tech-kern>, reviewed by <ad>.
|
1.35 |
| 28-Jun-2009 |
rmind | Ephemeral mapping (emap) implementation. Concept is based on the idea that activity of other threads will perform the TLB flush for the processes using emap as a side effect. To track that, global and per-CPU generation numbers are used. This idea was suggested by Andrew Doran; various improvements to it by me. Notes:
- For now, zero-copy on pipe is not yet enabled. - TCP socket code would likely need more work. - Additional UVM loaning improvements are needed.
Proposed on <tech-kern>, silence there. Quickly reviewed by <ad>.
|
1.34 |
| 18-Oct-2008 |
rmind | branches: 1.34.8; 1.34.12; - Initialize pool subsystem and kmem(9) earlier, when UVM is up enough. - Remove uao_hashinit() workaround used for anon-objects. - Replace malloc with kmem.
OK by <yamt>.
|
1.33 |
| 04-Jun-2008 |
ad | branches: 1.33.4; Replace the global vm_page hash with a per vm_object rbtree. Proposed on tech-kern@.
|
1.32 |
| 28-Jan-2008 |
yamt | branches: 1.32.6; 1.32.8; 1.32.10; 1.32.12; remove a special allocator for uareas, which is no longer necessary. use pool_cache instead.
|
1.31 |
| 02-Jan-2008 |
ad | Merge vmlocking2 to head.
|
1.30 |
| 14-Nov-2007 |
yamt | branches: 1.30.2; 1.30.6; call debug_init earlier. ie. before malloc is used.
|
1.29 |
| 18-Aug-2007 |
ad | branches: 1.29.2; 1.29.6; 1.29.8; Make the uarea cache per-CPU and drain in batches of 4.
|
1.28 |
| 21-Jul-2007 |
ad | branches: 1.28.4; 1.28.6; Merge unobtrusive locking changes from the vmlocking branch.
|
1.27 |
| 09-Jul-2007 |
ad | branches: 1.27.2; Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes - select()/poll() improvements - miscellaneous MT safety improvements
|
1.26 |
| 15-Sep-2006 |
yamt | branches: 1.26.10; 1.26.12; merge yamt-pdpolicy branch. - separate page replacement policy from the rest of kernel - implement an alternative replacement policy
|
1.25 |
| 25-May-2006 |
yamt | branches: 1.25.6; move wait points for kva from upper layers to vm_map. PR/33185 #1.
XXX there is a concern about interaction with kva fragmentation. see: http://mail-index.NetBSD.org/tech-kern/2006/05/11/0000.html
|
1.24 |
| 11-Dec-2005 |
christos | branches: 1.24.4; 1.24.6; 1.24.8; 1.24.14; merge ktrace-lwp.
|
1.23 |
| 27-Jun-2005 |
thorpej | branches: 1.23.2; Use ANSI function decls.
|
1.22 |
| 11-May-2005 |
yamt | allocate anons on-demand, rather than reserving static amount of them on boot/swapon.
|
1.21 |
| 23-Jan-2005 |
chs | move the call to link_pool_init() to the end of uvm_init(). needed for sun3.
|
1.20 |
| 25-Apr-2004 |
simonb | branches: 1.20.4; Initialise (most) pools from a link set instead of explicit calls to pool_init. Untouched pools are ones that either in arch-specific code, or aren't initialiased during initial system startup.
Convert struct session, ucred and lockf to pools.
|
1.19 |
| 26-Oct-2003 |
jdolecek | update comment - kmem_map is created in kmeminit(), not uvm_km_init()
|
1.18 |
| 10-May-2003 |
thorpej | branches: 1.18.2; Back out the following chagne: http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html
There were some side-effects that I didn't anticipate, and fixing them is proving to be more difficult than I thought, do just eject for now. Maybe one day we can look at this again.
Fixes PR kern/21517.
|
1.17 |
| 08-May-2003 |
thorpej | Simplify the way the bounds of the managed kernel virtual address space is advertised to UVM by making virtual_avail and virtual_end first-class exported variables by UVM. Machine-dependent code is responsible for initializing them before main() is called. Anything that steals KVA must adjust these variables accordingly.
This reduces the number of instances of this info from 3 to 1, and simplifies the pmap(9) interface by removing the pmap_virtual_space() function call, and removing two arguments from pmap_steal_memory().
This also eliminates some kludges such as having to burn kernel_map entries on space used by the kernel and stolen KVA.
This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code, this giving MD code greater flexibility over the bounds of the managed kernel virtual address space if a given port's specific platforms can vary in this regard (this is especially true of the evb* ports).
|
1.16 |
| 04-Mar-2003 |
thorpej | Fix the following pathological scanario: * User allocates ZFOD region, but does not actually touch the buffer to fault in the pages. * In a loop, user writes this buffer to a network socket, triggering sosend_loan(). * uvm_loan() calls uvm_loanzero() once for each page in the loaned region (since the pages have not yet faulted in). This causes a page to be allocated and zero'd. The result is the kernel spends a lot of time allocating and zero'ing pages.
This fixes creates a special object which owns a single zero'd page. This single zero'd page is used to satisfy all loans of non-resident ZFOD mappings.
Thanks to Allen Briggs for discovering the problem and for providing an initial patch.
|
1.15 |
| 10-Nov-2001 |
lukem | add RCSIDs, and in some cases, slightly cleanup #include order
|
1.14 |
| 27-Jun-2000 |
mrg | branches: 1.14.2; 1.14.4; 1.14.8; remove include of <vm/vm.h>
|
1.13 |
| 26-Jun-2000 |
mrg | remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h> <vm/vm_inherit.h> -> <uvm/uvm_inherit.h> <vm/vm_kern.h> -> into <uvm/uvm_extern.h> <vm/vm_object.h> -> nothing <vm/vm_pager.h> -> into <uvm/uvm_pager.h>
also includes a bunch of <vm/vm_page.h> include removals (due to redudancy with <vm/vm.h>), and a scattering of other similar headers.
|
1.12 |
| 29-Mar-2000 |
simonb | Don't need to include <sys/conf.h> here.
|
1.11 |
| 25-Mar-1999 |
mrg | branches: 1.11.8; remove now >1 year old pre-release message.
|
1.10 |
| 24-Jan-1999 |
chuck | cleanup/reorg: - break anon related functions out of uvm_amap.c and put them in their own file (uvm_anon.c). includes break up uvm_anon_init into an amap and an an anon init function - ensure that only functions within the amap module access amap structure fields (add macros to amap api as needed)
|
1.9 |
| 13-Aug-1998 |
eeh | Merge paddr_t changes into the main branch.
|
1.8 |
| 09-Aug-1998 |
perry | bzero->memset, bcopy->memcpy, bcmp->memcmp
|
1.7 |
| 05-May-1998 |
kleink | branches: 1.7.2; Remove inclusions of syscall (and syscall argument) related header files; we don't need them here.
|
1.6 |
| 09-Mar-1998 |
mrg | KNF.
|
1.5 |
| 10-Feb-1998 |
mrg | - add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
1.4 |
| 07-Feb-1998 |
mrg | restore rcsids
|
1.3 |
| 07-Feb-1998 |
chs | enable paging of kernel_object.
|
1.2 |
| 06-Feb-1998 |
thorpej | RCS ID police.
|
1.1 |
| 05-Feb-1998 |
mrg | branches: 1.1.1; Initial revision
|
1.1.1.1 |
| 05-Feb-1998 |
mrg | initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some minor portions derived from the old Mach code. i provided some help getting swap and paging working, and other bug fixes/ideas. chuck silvers <chuq@chuq.com> also provided some other fixes.
this is the UVM kernel code portion.
this will be KNF'd shortly. :-)
|
1.7.2.1 |
| 30-Jul-1998 |
eeh | Split vm_offset_t and vm_size_t into paddr_t, psize_t, vaddr_t, and vsize_t.
|
1.11.8.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.14.8.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.14.4.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.14.2.3 |
| 17-Apr-2002 |
nathanw | Catch up to -current.
|
1.14.2.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.14.2.1 |
| 05-Mar-2001 |
nathanw | Initial commit of scheduler activations and lightweight process support.
|
1.18.2.5 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.18.2.4 |
| 24-Jan-2005 |
skrll | Sync with HEAD.
|
1.18.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.18.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.18.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.20.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.23.2.6 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.23.2.5 |
| 21-Jan-2008 |
yamt | sync with head
|
1.23.2.4 |
| 15-Nov-2007 |
yamt | sync with head.
|
1.23.2.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.23.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.23.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.24.14.1 |
| 19-Jun-2006 |
chap | Sync with head.
|
1.24.8.3 |
| 15-Sep-2006 |
yamt | make UVM_KICK_PDAEMON() a real function and stop including uvm_pdpolicy.h from uvm.h. this also fixes build of pmap(1).
|
1.24.8.2 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.24.8.1 |
| 05-Mar-2006 |
yamt | separate page replacement policy from the rest of kernel.
|
1.24.6.1 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.24.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.25.6.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.26.12.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.26.10.5 |
| 21-Aug-2007 |
yamt | fix some races around pagedaemon and uvm_wait. ok'ed by Andrew Doran.
|
1.26.10.4 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
1.26.10.3 |
| 28-Apr-2007 |
ad | Split uvm_hashlock into an array of 32 locks.
|
1.26.10.2 |
| 05-Apr-2007 |
ad | - Put a per-LWP lock around swapin / swapout. - Replace use of lockmgr(). - Minor locking fixes and assertions. - uvm_map.h no longer pulls in proc.h, etc. - Use kpause where appropriate.
|
1.26.10.1 |
| 13-Mar-2007 |
ad | Pull in the initial set of changes for the vmlocking branch.
|
1.27.2.2 |
| 03-Sep-2007 |
skrll | Sync with HEAD.
|
1.27.2.1 |
| 15-Aug-2007 |
skrll | Sync with HEAD.
|
1.28.6.2 |
| 21-Jul-2007 |
ad | Merge unobtrusive locking changes from the vmlocking branch.
|
1.28.6.1 |
| 21-Jul-2007 |
ad | file uvm_init.c was added on branch matt-mips64 on 2007-07-21 19:21:55 +0000
|
1.28.4.2 |
| 14-Nov-2007 |
joerg | Sync with HEAD.
|
1.28.4.1 |
| 03-Sep-2007 |
jmcneill | Sync with HEAD.
|
1.29.8.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.29.8.1 |
| 19-Nov-2007 |
mjf | Sync with HEAD.
|
1.29.6.1 |
| 18-Nov-2007 |
bouyer | Sync with HEAD
|
1.29.2.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.29.2.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.30.6.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.30.2.2 |
| 18-Dec-2007 |
ad | Lock readahead context using the associated object's lock.
|
1.30.2.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
1.32.12.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.32.10.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.32.10.2 |
| 18-Jul-2009 |
yamt | sync with head.
|
1.32.10.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.32.8.1 |
| 17-Jun-2008 |
yamt | sync with head.
|
1.32.6.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.32.6.1 |
| 05-Jun-2008 |
mjf | Sync with HEAD.
Also fix build.
|
1.33.4.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.34.12.2 |
| 04-Apr-2012 |
matt | Move the uvm_scheduler_mutex and cv init to uvm_init since they are independent of VMSWAP.
|
1.34.12.1 |
| 09-Feb-2012 |
matt | Major changes to uvm. Support multiple collections (groups) of free pages and run the page reclaimation algorithm on each group independently.
|
1.34.8.1 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.36.4.4 |
| 12-Jun-2011 |
rmind | Do not call uvm_loan_init() twice.
|
1.36.4.3 |
| 31-May-2011 |
rmind | sync with head
|
1.36.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.36.4.1 |
| 16-Mar-2010 |
rmind | Change struct uvm_object::vmobjlock to be dynamically allocated with mutex_obj_alloc(). It allows us to share the locks among UVM objects.
|
1.36.2.1 |
| 16-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.38.4.1 |
| 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.38.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.41.8.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.41.4.3 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.41.4.2 |
| 17-Apr-2012 |
yamt | sync with head
|
1.41.4.1 |
| 20-Nov-2011 |
yamt | - fix page loaning XXX make O->A loaning further - add some statistics
|
1.44.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.44.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.45.14.2 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.45.14.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.45.12.1 |
| 23-Apr-2015 |
snj | Pull up following revision(s) (requested by mrg in ticket #718): sys/arch/x86/include/pmap.h: revision 1.56 sys/arch/x86/x86/pmap.c: revision 1.188 sys/dev/pci/agp_amd64.c: revision 1.8 sys/dev/pci/agp_i810.c: revision 1.118 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: revision 1.16 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.29 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: revision 1.4 sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c: revision 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c: revisions 1.7-1.10 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c: revision 1.5 sys/external/bsd/drm2/i915drm/intelfb.c: revision 1.13 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revisions 1.12, 1.13 sys/external/bsd/drm2/include/linux/mm.h: revision 1.5 sys/external/bsd/drm2/include/linux/pci.h: revisions 1.16, 1.17 sys/external/bsd/drm2/nouveau/nouveaufb.c: revision 1.2 sys/external/bsd/drm2/radeon/radeon_pci.c: revisions 1.8, 1.9 sys/uvm/uvm_init.c: revision 1.46 Hack against the blank console problem: Leave the CLUT alone on ancient cards. At least this leaves us with a semi working console (red and blue are flipped). Leave an example of what seems to be happening but disable it because colors are better than 444 bit greyscale. -- Initialize P->V tracking for unmanaged device pages in uvm_init.
Conditional on __HAVE_PMAP_PV_TRACK until we add it to all pmaps.
MI part of pmap_pv(9) change proposed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Implement pmap_pv(9) for x86 for P->V tracking of unmanaged pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Use pmap_pv(9) to remove mappings of Intel graphics aperture pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Use pmap_pv(9) to remove mappings of device pages in TTM.
Adapt nouveau and radeon to do pmap_pv_track for their device pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Fix error branches in agp_amd64.c.
- agp_generic_detach always. - Free asc if it was allocated. (Found by Brainy, noted by maxv@.) - Free the GATT if it was allocated. -- pmf_device_register returns false on failure, not true -- In DRM_SPIN_WAIT_ON, don't stop after waiting only one tick.
Continue the loop to recheck the condition and count the whole duration. -- Don't use the video BIOS memory as an i915 flush page! -- Don't let anyone else allocate the video BIOS either. -- Missed a zero: it's 0x100000, not 0x10000. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- almost add radeondrmkms suspend/resume support. it unfortunately doesn't work. -- Need the page's uvm object lock to do pmap_page_protect. -- Use KASSERTMSG to show bad base/offset. -- KASSERT about page-alignment on initialization too. -- Don't break when hardclock_ticks wraps around.
Since we now only count time spent in wait, rather than determining the end time and checking whether we've passed it, timeouts might be marginally longer in effect. Unlikely to be an issue. -- Remove broken drm2 vm_mmap stub. Can't possibly have ever worked. -- apply some of the additional changes from Arto Huusko in PR#49645: - call pmf_device_deregister on detach.
i've kept the "resume = true" for radeon_resume_kms() call as it seems to work for me (indeed, code inspection shows it is unused on netbsd :-)
my old nforce4 box that can resume old drm (or could, last i tried several years ago) while X and GL apps were running, can at least survive a resume if X hasn't started. my one attempt so far with X exited, but having run, did not work. -- First attempt to make ttm_buffer_object_transfer less bogus. -- Make sure mem.bus.is_iomem is initialized. PR 49833
|
1.46.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.48.14.1 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.49.2.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.54.2.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|