ChanServ changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard + Bifrost + Valhall - Logs https://oftc.irclog.whitequark.org/panfrost - I don't know anything about WSI. That's my story and I'm sticking to it.
camus has quit []
camus has joined #panfrost
<robclark> bbrezillon, robmur01: one thought.. on the reclaim/evict side we also need to be able to unmap buffers.. in the reclaim path itself.. it is an operation that can fail but it is also a situation where having a pool of avail pages for pgtable updates would probably be useful (since it is better to keep around a few spare pages for pgtable than fail to unmap a much larger gem obj)
<robclark> (also, general thought about VM_BIND.. I think we want that but also a concept of an active-set.. VM_BIND being about the vm but active-set about the currently needed buffers within the vm.. and ideally both exposed as vk extension)
<robclark> I think extension of the VM_BIND idea with some sort of a way for a submit to reference 1 (or more?) active sets would resolve my concerns about the approach for an eventual similar thing for msm ;-)
Dr_Who has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Leopold has quit [Remote host closed the connection]
Leopold has joined #panfrost
hanetzer2 has joined #panfrost
hanetzer1 has quit [Ping timeout: 480 seconds]
zhxt has joined #panfrost
anarsoul has quit [Ping timeout: 480 seconds]
anarsoul has joined #panfrost
zhxt has quit [Remote host closed the connection]
zhxt has joined #panfrost
rasterman has joined #panfrost
zhxt_ has joined #panfrost
zhxt has quit [Read error: Connection reset by peer]
zhxt_ has quit [Read error: Connection reset by peer]
zhxt_ has joined #panfrost
zhxt__ has joined #panfrost
zhxt_ has quit [Read error: Connection reset by peer]
floof58 is now known as Guest8520
floof58 has joined #panfrost
Guest8520 has quit [Ping timeout: 480 seconds]
pjakobsson has joined #panfrost
jelly has quit [Ping timeout: 480 seconds]
Guest8376 has quit []
Danct12 has joined #panfrost
floof58 is now known as Guest8534
floof58 has joined #panfrost
Guest8534 has quit [Ping timeout: 480 seconds]
floof58 is now known as Guest8539
floof58 has joined #panfrost
Guest8539 has quit [Ping timeout: 480 seconds]
zhxt_ has joined #panfrost
zhxt__ has quit [Ping timeout: 480 seconds]
<bbrezillon> robclark: you're talking about partial unmaps requiring an extra level in the page table tree?
<robclark> yeah, if a map splits a huge page
<robclark> s/map/unmap/
jelly has joined #panfrost
<bbrezillon> if the unmaps in the reclaim path is partial, does that mean you're partially unmapping the GEM object (and thus partially reclaiming its memory)? Or are you assuming that 2 GEMs can be assigned physically contiguous memory and the VM code would transparently merge the their VMA mappings if they're also virtually contiguous and have the same permissions?
Net147 has quit [Ping timeout: 480 seconds]
Net147 has joined #panfrost
<bbrezillon> robclark: if we keep GEM object mappings isolated (no transparent merging), and assume we always reclaim all pages of the GEM, we shouldn't have partial unmaps in the reclaim path. But maybe I'm missing something here.
<robclark> bbrezillon: the latter.. reclaim would always unmap full GEM obj, but it could just happen to form a huge(er) page with another obj
<robclark> yeah, I guess if you avoid merging it wouldn't be a problem, I think.. at cost of more TLB pressure
zhxt_ has quit [Read error: Connection reset by peer]
zhxt_ has joined #panfrost
guillaume_g has quit []
zhxt_ has quit [Read error: Connection reset by peer]
zhxt_ has joined #panfrost
<bbrezillon> just curious how often you think we'd end up in this situation, given we don't control the physical pages we bind to GEMs (maybe you do). I can see how merging virtually contiguous mappings pointing to same GEM can be useful, but I wonder if it's worth optimizing the other case.
zhxt__ has joined #panfrost
zhxt_ has quit [Ping timeout: 480 seconds]
Leopold_ has joined #panfrost
Leopold has quit [Ping timeout: 480 seconds]
<robclark> not sure in practice.. but I guess you'll typically be allocating a bunch of buffers at once and also allocating iova in the same order..
<robclark> But I guess we have to solve this problem somehow for the map path..
zhxt_ has joined #panfrost
zhxt__ has quit [Ping timeout: 480 seconds]
<bbrezillon> sure
<robclark> bbrezillon, I guess one option is for driver to calc # of pages assuming no merging with other allocations and having those in a pre-alloc pool would be the way forward.. that seems straightforward to calculate and guarantees there are always enough pages avail to unmap
<robclark> might mean we have a few extra pages laying around if merging does happen but it would be no worse than disabling merging
rasterman has quit [Quit: Gettin' stinky!]
zhxt_ has quit [Read error: Connection reset by peer]
zhxt_ has joined #panfrost
rcf1 has quit [Ping timeout: 480 seconds]
zhxt__ has joined #panfrost
zhxt_ has quit [Read error: Connection reset by peer]
paulk has joined #panfrost
zhxt__ has quit [Remote host closed the connection]
zhxt__ has joined #panfrost
greenjustin has quit [Remote host closed the connection]
rasterman has joined #panfrost
Dr_Who has joined #panfrost
rasterman has quit [Quit: Gettin' stinky!]
Dr_Who has quit []
zhxt_ has joined #panfrost
zhxt__ has quit [Ping timeout: 480 seconds]
zhxt__ has joined #panfrost
zhxt_ has quit [Read error: Connection reset by peer]
rasterman has joined #panfrost
zhxt_ has joined #panfrost
zhxt__ has quit [Ping timeout: 480 seconds]
Lyude has quit [Ping timeout: 480 seconds]
zhxt_ has quit [Read error: Connection reset by peer]
zhxt_ has joined #panfrost
rasterman has quit [Quit: Gettin' stinky!]
Lyude has joined #panfrost
rcf has joined #panfrost