Age | Commit message (Collapse) | Author |
|
Reviewed-on: http://git-master/r/51026
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
(cherry picked from commit 060055eea2082adb6da4cf27462ff699fdf2b4e9)
Change-Id: I9244dff21e9cd62b14f97bfb5a5349eb46f73847
Reviewed-on: http://git-master/r/56107
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Rebase-Id: Rd3f4f8799a3acad27234422b39a4def0a439e3f3
|
|
Bug 871094
(cherry picked from commit 7eb5215660d7e54d2ff84dae17cb00071695aed1)
Change-Id: I4fa16032ce90cd728b2eb32696034a7cfc506717
Reviewed-on: http://git-master/r/54845
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R61d721bbef3293f802a4358560f18bced53c1761
|
|
Don't allow root user allocating more than iovm limit to avoid pin
time issues.
Bug 864535
(cherry picked from commit 52e6b556bfc08cb085b283b5ee8d11efb1b07617)
Change-Id: If61577eb09cb96475d5fae5b58813beaee1f7b6f
Reviewed-on: http://git-master/r/54837
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R59951f6ecba2ed2b075b170630c0ce7c6a84aad5
|
|
Change-Id: Ic7fab1575312afd27430b46a50aa6f7a7de0ac4e
Reviewed-on: http://git-master/r/53843
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Rebase-Id: R44abb981f52475b4431975c5d38611e7ca93b59a
|
|
Make kernel boot up with CONFIG_TEGRA_IOVMM=n
(cherry picked from commit f10b613bbd27b8a5f25cbbaebecfe50fd9c0be3f)
Change-Id: I980d762bd9feac3881e00015e6db753ae36e79f9
Reviewed-on: http://git-master/r/54509
Tested-by: Hiro Sugawara <hsugawara@nvidia.com>
Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R0c90a78e3a9e8d5316faa1fee012f6269ee82035
|
|
- Use 0x0ff00000 (last 1MB of IOVM).
- For Tegra3 A01, use 0xeff00000.
Original-Change-Id: Ieb21d2bf38158171b97434e04ede7417823b3603
Reviewed-on: http://git-master/r/37742
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Tested-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: Ra84e71077c8c74fdbd977fc838e74f132f173018
|
|
Original-Change-Id: Ic50111924d7adf7838926cb534bbf841b7e8003a
Reviewed-on: http://git-master/r/45358
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R6399e487b817aa16c39e685d3f7860d1eefa8b09
|
|
This is needed to pick up definitions for pgprot*
bug 818525
Original-Change-Id: Idc2de3564eeba9d1bbb7c7211c9c707bc760d14f
Signed-off-by: Robert Morell <rmorell@nvidia.com>
Reviewed-on: http://git-master/r/40510
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Rb4c7f3cee9d813549bedb53b5fd7ed760f9a32d5
|
|
Original-Change-Id: I75e88d6cef2daf625c6ede38a937207b95e2b84c
Reviewed-on: http://git-master/r/44364
Reviewed-by: Ken Adams <kadams@nvidia.com>
Tested-by: Ken Adams <kadams@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Rebase-Id: Rd79c4aac3d3e03e601be5b35934fe36a35cd358f
|
|
Map uncahced memory as uncached, inner cached as inner cached and
cached as cached.
Bug 841109
Original-Change-Id: Id92532828ab2e69bac80b20f2be2fc243e4db888
Reviewed-on: http://git-master/r/43078
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Rebase-Id: R75168ffeab3c91d3080b53d4d66c4e550d6f9e12
|
|
Bug 39790
Original-Change-Id: I5ce0e35501442ed1a6818aebfeae1670ebb9d08d
Reviewed-on: http://git-master/r/39867
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: R5679d529af4779bde735d3055b04d368b765c620
|
|
Fix GART lockups caused by fragmentation by evicting
mapped areas from iovm space after unsuccessful array
pinning attempt.
Fix double unpin error happening during interrupted
submit.
Fix possible sleep in atomic context in iovmm code
(semaphore inside spinlock) by replacing spinlock
with mutex.
Fix race between handle_unpin and pin_handle.
bug 838579
bug 838073
bug 818058
Original-Change-Id: I420447ffb4e02fb78a7987e22a537eefc16ff524
Reviewed-on: http://git-master/r/36129
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R893c97003f2ec2f69e224f35d99d3488f673d620
|
|
In nvmap_munmap(), remove_vm_area just remove the allocated memory
page information. It doesn't de-allocate vm_struct. kfree()
should be used to avoid memory leak in nvmap.
Bug: 833796
Original-Change-Id: Ibd0309c1ff323fb8110870ace27819f5a1e006ba
Reviewed-on: http://git-master/r/35638
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
Rebase-Id: R417df608c4a24667af81f328bfb65cf3389e19ae
|
|
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Rebase-Id: R40af26da1b703abcca7c96c8fe9ca3f8a42b367d
|
|
Rebase-Id: Re05bf8da51b75cfd7c8a10677fce557c76593a43
|
|
Bug 835748
Original-Change-Id: I67766cc94496162816cbef4689fa806553d6edfa
Reviewed-on: http://git-master/r/35792
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Rebase-Id: Ree8a45408d5763ec8db2cc4072add4c347326f99
|
|
The kernel now receives wait tracking data (similar to gathers and
relocs) and compares the current syncpt with the threshold value.
If it's old, it gets a kernel mapping and rewrites the method data
to use a kernel reserved syncpt that is always 0 (so trivially pops
when seen by the HW).
Bug 519650
Bug 785525
Bug 803452
The waitchk implementation is also backward compatible with older
user space code that didn't supply waitchk data as part of the
submit.
(cherry picked from commit 4069d8e67665624ad3dceb628e572980dd57acd0)
(cherry picked from commit 6e4336408588e348804a62e53386acc9abc06823)
(cherry picked from commit 87a9efe751716ca741caac72b9061fdfdcec540a)
(cherry picked from commit 6d8d2c454e835f7cfe34371e07dac173f3153452)
Original-Change-Id: I1bf4c940fefb6e251aa8c396e92631fa3cbe32df
Reviewed-on: http://git-master/r/23159
Reviewed-on: http://git-master/r/30281
Reviewed-on: http://git-master/r/32669
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
Rebase-Id: Rbad4942a103de7d64d8a6a11d4a973740c56fa8e
|
|
Original-Change-Id: I95cdf71e74947d4394e0cfd272a29c47562d4059
Reviewed-on: http://git-master/r/31648
Reviewed-by: Niket Sirsi <nsirsi@nvidia.com>
Tested-by: Niket Sirsi <nsirsi@nvidia.com>
Rebase-Id: Rb8c6f92bdfd0bf124a878800a793828fa61c0043
|
|
When user doesn't use default heap policy and selects
GART or carveout allocation, automatic single-page-to-sysmem
rule doesn't work. Because of broken rule many single page
allocations take extra space in carveout and create
unnecessary page mappings in GART and SMMU.
The fix adds sysmem bit to heap mask when allocation is
single page and GART or carveout is present in heap mask.
bug 730124
bug 731923
The change also does sanity check of available system memory
before adding sysmem bit for carveout allocations.
bug 777839
Original-Change-Id: I13a62653825f6c80581adcd2682fb2608d3a284e
Reviewed-on: http://git-master/r/31383
Reviewed-by: Kirill Artamonov <kartamonov@nvidia.com>
Tested-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: R278606210f20aacc885fa9eb06b3a2a3d8677b55
|
|
bug 827505
Original-Change-Id: If6d4fd137b72c3a08bf8fb1094d8dd31ab361f1c
Reviewed-on: http://git-master/r/31633
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Tested-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Frank Thomas Bourgeois <fbourgeois@nvidia.com>
Rebase-Id: R563eaa39b299d89133f7a9fb4b1c7129e8ddb71e
|
|
Adding a build time CONFIG option to enable forcing of conversion
of non-IRAM CarveOut memory allocation requests to IOVM requests.
Default is "y" to force the conversion.
Each forced conversion is reported to console.
Allocation alignments larger than page size for IOVM are enabled.
Single page CarveOut allocations are converted to system memory.
CarveOut memory reservation has been removed for aruba, cardhu,
and enterprise.
Original-Change-Id: I3a598431d15b92ce853b3bec97be4b583d021264
Reviewed-on: http://git-master/r/29849
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R602260e283f721b7e0f0d802092516ff68c068fe
|
|
Original-Change-Id: I158d2be97c795313e7e74ce9fb4ec0bdc7d95496
Reviewed-on: http://git-master/r/27559
Tested-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Hiro Sugawara <hsugawara@nvidia.com>
Reviewed-by: Jin Qian <jqian@nvidia.com>
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: I0ff198daa548ed2837f7fb1794013bf0adf7e5a1
Rebase-Id: R83df5f3b5104183bfe774d8eed8ce94427c9b7fc
|
|
This commit:
tegra:video:nvmap: optimize cache_maint operation.
added some dead code
Original-Change-Id: I9193a7865f5e3126b06950efaf9b5a4b6c7fd919
Rebase-Id: R30ba7719d8aa6ad48d708714396299b154cf0131
|
|
Original-Change-Id: I2ffeaf6f8dfeb279b40ca6f69f6c9157401a746a
Rebase-Id: R5a6d087b717731c957b016f903fb82b4ea22b92d
|
|
Bug 764354
Original-Change-Id: I807433ff825bed1fe91ce0cf50a2b3691c64ef0a
Reviewed-on: http://git-master/r/12227
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: I3da91a438f98f2f51618446ce024f3fefd726a19
Rebase-Id: Rb1717b1f80aaf0242f4da555ce16c06946b7d072
|
|
nvmap's debugfs had a bad format so it was
very difficult to read the outputs. this commit
fixes it and added total allocation size along
with it
Bug 813891
Original-Change-Id: I6e3165b3ff917d9510d39f1e35b8e6b59c086592
Reviewed-on: http://git-master/r/27349
Reviewed-by: Donghan Ryu <dryu@nvidia.com>
Tested-by: Donghan Ryu <dryu@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: R0959d3648c3fe8e1d0a4bbbca5e79f0b5a744c6f
|
|
video:tegra:nvmap: Clean whole L1 instead of cleaning by MVA
For large allocations, cleaning each page of the allocation can
take a significant amount of time. If an allocation that nvmap needs
to clean or invalidate out of the cache is significantly larger than
the cache, just flush the entire cache by set/ways.
bug 788967
Reviewed-on: http://git-master/r/19354
(cherry picked from commit c01c12e63b1476501204152356867aeb5091fb80)
tegra:video:nvmap: optimize cache_maint operation.
optimize cache_maint operation for carveout and heap memories.
flush carveout memory allocations on memory free.
Bug 761637
Reviewed-on: http://git-master/r/21205
Conflicts:
drivers/video/tegra/nvmap/nvmap_dev.c
drivers/video/tegra/nvmap/nvmap_heap.c
drivers/video/tegra/nvmap/nvmap_ioctl.c
(cherry picked from commit 731df4df5e895e1d4999359d6d5939fc2095f883)
tegra:video:nvmap: optimize cache flush for system heap pages.
optimize cache flush for pages allocated from system heap.
Bug 788187
Reviewed-on: http://git-master/r/21687
(cherry picked from commit 3f318911ad91410aed53c90494210e2b8f74308b)
Original-Change-Id: Ia7b90ba0b50acfef1b88dd8095219c51733e027f
Reviewed-on: http://git-master/r/23465
Reviewed-by: Kirill Artamonov <kartamonov@nvidia.com>
Tested-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: R04f618f88ed1d2c7a680d51a8c5113f42de3f667
|
|
Bug 786016
Original-Change-Id: Ic72c57b710a305851dfea3dda3eb217156683b39
Reviewed-on: http://git-master/r/17795
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R9839c206d5606463e124c59f733282561ff8a48d
|
|
Enabled mutex debugging reavealed potential deadlocks
introduced with compaction.
Handle spin lock replaced with mutex. Heap functions cannot be
protected with spinlock because they call kernel slab allocation
functions which cannot be called from atomic context.
nvmap_client ref_lock is also replaced with mutex. Otherwise we
cannot access heap parameters protected by mutex nvmap_handle lock.
Extra locking for handle->owner removed.
bug 793364
Original-Change-Id: I635ce9ebf259dd7bf8802457567f93b7be5795ea
Reviewed-on: http://git-master/r/19850
Reviewed-by: Kirill Artamonov <kartamonov@nvidia.com>
Tested-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-by: Daniel Willemsen <dwillemsen@nvidia.com>
Rebase-Id: Reaa132703e278d75371d5e2b25426794aa8e0e4e
|
|
There are places where nvmap_free_handle_id is called
when interrupts are disabled and mutex cannot be used as
nvmap handle lock.
Original-Change-Id: Icc220fe627c08f21c677d936a54f70c818dc8e8c
Reviewed-on: http://git-master/r/19489
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Rb5a58e8226ad14340d1acae007d6b632960fae16
|
|
bug 762482
Original-Change-Id: Ifadebc1b0c4eb0df89e179091acca0ff6e527e56
Reviewed-on: http://git-master/r/15743
Reviewed-by: Kirill Artamonov <kartamonov@nvidia.com>
Tested-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R639e7f09f44c8919bd57a16a577b87db91160555
|
|
This reverts commit be7b9ce20d645c2c9293441830ee33a0a5fc489f.
Rebase-Id: R34033f7a7ed72aeb1e2a83ad5a09c219d3254048
|
|
Need cache maintenance on rw_handle to remove
display garbage issue which happens randomly.
Change-Id: I73606ae6551c0e75058e055f4a19e5f074a47004
Signed-off-by: Greg Roth <groth@nvidia.com>
|
|
Change-Id: I51fe70b92f256951e68c6bbd21e6b4d6081f4731
|
|
This reverts commit b3cc1d84d0b962fe80fc297d2e2417c3157508b6.
|
|
This reverts commit 2d49bf33f3885aab293f12d54447f66e911e3226.
|
|
The kernel now receives wait tracking data (similar to gathers and
relocs) and compares the current syncpt with the threshold value.
If it's old, it gets a kernel mapping and rewrites the method data
to use a kernel reserved syncpt that is always 0 (so trivially pops
when seen by the HW).
Patch has dependency to the user-space patches
Submitted on behalf of: Chris Johnson <cjohnson@nvidia.com>
original work by: Chris Johnson <cjohnson@nvidia.com>
Change-Id: I4d4e5d3b49cab860485c4172f87247f5b4f5ea6e
|
|
An attempt had been made to reduce the number of pte operations
while patching relocs. The optimization was incorrectly coded
and was not providing the expected speedup.
Credit for the find goes to Peter Pipkorn.
Change-Id: Ic83b20ee470e54d5053f747dbcbdf7b038b7c7c4
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
-Add a module param to enable/disable carveout killer
-Fix race condition in code to wait for something to free memory
after firing carveout killer
-Fix the check for current so we always compare task->group_leaders
Change-Id: Ie030978827dce6b0fbbfa1db0d80e4abe59eaa51
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
-Modify the carveout killer to only kill tasks with lower priorities
than the one that's trying to allocate
-After delivering a sigkill to a task, wait for something to exit and
cleanup before retrying the allocation
Change-Id: If62b6ed008a73fc3c347ff26735a83eee284909e
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
No need to maintain a reference to the task struct if the client
is a kernel thread. In this case just set the task to NULL.
Change-Id: Ica4785388932f6b298eeb0da04b78b0e1cdc3a44
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
This change attempts to reclaim carveout memory by killing
other carveout users when an allocation fails. Processes
are killed in order of priority from lowest to highest, and then
from largest to smallest users.
Change-Id: Iee8a6f36269bc8165d691000a153dbf9f4337775
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
Change-Id: I1ec34fd4a6bb21a6d84912a7228c209f459261be
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
A struct nvmap_handle may be shared by multiple clients. If the
original client (the handle "owner") is destroyed, but the handle is
still referenced by other clients, h->owner points to freed memory. To
prevent this, clear h->owner when the owner frees its reference to that
struct nvmap_handle.
Change-Id: I54722091568ce2058f5988e5f6e00e68605a8100
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
Fix the way the total number of carveout allocations is
managed per client.
Change-Id: I3e12e2a98a74cafc1f4c51a48e3c3c549e930160
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
This reverts commit e3ad53ad739afae7e8a4252c807a195e2311cfa7.
|
|
This modifies the api to allow the user to specify a name
for their clients. This will allow the system to track
allocations from the kernel by name.
Change-Id: I44aad209bc54e72126be3bebfe416b30291d206c
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
Moves the file tracking clients to debugfs
Add a debugfs file to track the list of allocations per client
Change-Id: I2bb683e3ac0599fa05d962c79ef0b7cbd0007d75
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
Prints a log message if the nvmap allocate ioctl fails.
Change-Id: Ia0777bc2fcd665dafff0f8948b01faad3f552d72
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|
In the current implementation handles hold references to a
client and clients hold references to their handles. As a
result when a process terminates it's handles can't be cleaned
up and we leak memory. Instead only hold references to handles
from clients.
Change-Id: Iba699e740a043deaf0a78b13b4ea01544675078f
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|