00:22phomes_[d]: mohamexiety[d]: I hate to say it but the issue is still there
00:31mohamexiety[d]: H-huh. That’s super messed up
00:32mohamexiety[d]: Are you sure it’s the right kernel? The new code basically goes through all the available alignments — including 4K — and there shouldn’t be any way to hit that warn on :blobcatnotlikethis:
00:33mohamexiety[d]: Since in the worst case it should just fall back to 4K. I am fully gone tomorrow but I might be able to check tomorrow night
00:36phomes_[d]: I think it is the right kernel. I posted the log in the issue.
00:36mohamexiety[d]: Yeah just saw it. Interesting
00:37mhenning[d]: Oh, I think I made a mistake in my suggestion for op_map_aligned_to_page_shift:
00:37mhenning[d]: return (op->va.addr & non_page_bits) == 0 &&
00:37mhenning[d]: (op->va.range & non_page_bits) == 0 &&
00:37mhenning[d]: (op->gem.offset & non_page_bits) == 0;
00:37mhenning[d]: we need parenthesis there since == comes before & in order of operations
00:38mohamexiety[d]: Woops, I completely forgot that
00:39mhenning[d]: yeah me too
00:39mohamexiety[d]: Yeah that could be the cause then. Sorry, this stuff doesn’t come up often and it fully slipped my mind that these come before the bitwise stuff
00:59mohamexiety[d]: Can’t do anything now sorry but I’ll see if I can type a quick patch early in the morning and if all is well send it on the ML at late night
01:21leftmostcat[d]: I'm gonna go out on a limb and guess that running hw_tests probably involves running it on hardware. 😛
01:59mhenning[d]: yes, it does
08:22mohamexiety[d]: https://gitlab.freedesktop.org/mohamexiety/nouveau/-/commits/compv4 this fixes the missing parenthesis. could you please check when you have time? phomes_[d]
08:23mohamexiety[d]: I’ll hold off on sending it to the ML till I am back tonight just in case it turns out there’s more needed
08:24mohamexiety[d]: final_final_final(copy).patch :frog_sweat:
08:57marysaka[d]: mhenning[d]: Yeah I think we should at some point look into trying to group things in the same TSG if it's from the same process
08:58marysaka[d]: and then handle timeslice GSP calls (didn't look if GSP had those but 99% sure it just have the same api surface as what nvgpu had back then here)
10:03phomes_[d]: mohamexiety[d]: It is beautiful. No more warnings
10:35karolherbst[d]: mohamexiety[d]: _generally_ it's better to have an IOCTL fail to detect features
10:35karolherbst[d]: but sometimes that's really ugly to do
10:35karolherbst[d]: better because version check sucks for anybody who is managing their own backported tree of stuff
10:39mohamexiety[d]: Yeah I wasn’t really sure of which way was better tbh especially since this isn’t really a new API or such it’s just expanding/fixing up an already existing API
10:39mohamexiety[d]: phomes_[d]: since I have a little bit of time I’ll send a v4 now
10:40mohamexiety[d]: thanks a lot ❤️
11:09karolherbst[d]: mohamexiety[d]: yeah.... I think in generally a version check against the driver is fine for all use cases I'm aware of (RHEL always backports the entire DRM tree), but version checks are annoying for anybody who is picking patches, but dunno if anybody does for drm, so might not matter at all... kernel version checks should be avoided at all costs tho
16:28cubanismo[d]: mohamexiety[d]: Why does the host memory space enforce PAGE_SHIFT page size in the downgrade path here? IOMMU or something?
16:28mohamexiety[d]: cubanismo[d]: My understanding was that you can only have 4K in host memory :thonk:
16:29cubanismo[d]: I don't think the GPU hardware has any such limitation.
16:29mohamexiety[d]: Huh….
16:29cubanismo[d]: And from the CPU, it's easy to use smaller page table entries to map e.g., a contiguous 64k range.
16:30cubanismo[d]: I was also wondering why it only happens in this fallback path
16:30cubanismo[d]: E.g., what if you happen to get host memory that's 64k aligned, so you skip this path due to the early-out?
16:30cubanismo[d]: If there really is such a requirement, seems like you'd violate it in that case.
16:32cubanismo[d]: I would have to check on whether there are GPU restrictions for sysmem though. I know we have GPUs that don't have that restriction. I never really thought about it beyond that.
16:32mohamexiety[d]: This would make my life a lot easier. I don’t know why but nouveau if you look at nvkm/subdev/mmu/vmmgp100.c, right down the bottom there's a table of what the page size info in nvif_vmm basically looks like and for some reason only 4K actually has the Host bit
16:32cubanismo[d]: Interesting.
16:32mohamexiety[d]: I did not question this table and thought that this was a HW limitation
16:32cubanismo[d]: I'm wondering if it's just something that made life easier when you had to CPU map or something.
16:33mohamexiety[d]: Interesting.. that’s really worth following up on and checking tbh
16:33cubanismo[d]: I'd expect that unless there's something in the PTE format preventing it, it should work.
16:34cubanismo[d]: E.g., we like to run on 64k CPU page size kernels on ARM whenever possible.
16:34cubanismo[d]: So I know it works there.
16:35cubanismo[d]: Additionally, most GPUs require 64k pages for compression, yes, but various Tegra GPUs can compress 4k pages.
16:35cubanismo[d]: How that works is sort of voodoo to me. I don't know if there's extra software work, or some hardware magic makes it work somehow.
16:36cubanismo[d]: I don't know if we have docs out for that, but it'd be in the nvgpu source, which is public.
16:39jannau: from a brief inspection it looked unlikely that nouveau supports CPU page size != 4k
16:40HdkR: 4k page size is the one true page size :)
16:40jannau:has an Mac Pro M2 Ultra those manadatory PCIe IOMMU only supports 16k pages
16:41jannau: PCIe is most likely busted for other reasons so I've never even tried
16:41cubanismo[d]: What's the path to a usable PCIe port on those thigns? One of those M.2 adapters?
16:41cubanismo[d]: Oh, I guess they have thunderbolt.
16:42HdkR: Mac Pro has PCIe slots
16:42cubanismo[d]: Ah, cool.
16:43cubanismo[d]: Looking forward to NewTek releasing a Video Toaster for Mac Pros.
16:45HdkR: That's a hecking deep cut.
16:46jannau: it also only has one 8-pin and two 6-pin PCIe power connectors so no high power GPUs
16:49cubanismo[d]: Meh. Just set a power supply next to it on a paper plate and jam a paperclip in some pins to get it to turn on all the time.
17:02cubanismo[d]: Anyway, mohamexiety[d], I replied on the thread for the select\_page\_shift() issue. I'm worried that's a functional problem. The rest is just potential optimization opportunities, so I don't want to derail your compression series over it. It could be done as follow-on work.
17:03cubanismo[d]: And the rest of the series looks good.
17:18mohamexiety[d]: cubanismo[d]: My mind is a bit not there rn so I might be forgetting something but re: the functional problem, I was under the impression that the bo allocation logic already protects us against this. In nouveau_bo.c, when allocating a new bo we end up going through a similar loop and if it’s in host memory it falls back down to 4K. Is this not as bullet proof as I thought it would be?
17:20cubanismo[d]: Is a BO necessarily known to be host memory at that time, or can it get migrated to host mem later? If so, does the limitation still apply for cases like that? The checks here seem to be against the physical memory or at least the target memory of the bind.
17:20mohamexiety[d]: https://gitlab.freedesktop.org/mohamexiety/nouveau/-/blob/compv4/drivers/gpu/drm/nouveau/nouveau_bo.c#L321
17:20mohamexiety[d]: hmm
17:20cubanismo[d]: If the BO page size limiting logic is sufficient, the check above that compares the bind page size to the BO pages size would be sufficient, and this check would be redundant.
17:21cubanismo[d]: I deleted that out of my email, because I assumed that BOs wouldn't have enough knowledge.
17:22cubanismo[d]: Thanks for the pointer. I see that's trying to intersect all the potential domains.
17:29mohamexiety[d]: The bo limiting logic should be sufficient for most cases but it doesn’t have enough information to protect us against cases where the client binds at an address that’s not aligned to the size we chose in the bo logic.
17:29mohamexiety[d]: (If say someone allocates 2M, that gets 2M pages but then they decide for some reason to bind it to an address of 0x1000) which is why that check exists
17:31mohamexiety[d]: But if the thing was marked for host it should always go to 4K which is why I _think_ in this case either way it’s always going to be sufficient
17:33mohamexiety[d]: Will have to reverify tomorrow when I am less sleep deprived, sorry. Thanks so much for the shout out!!
17:35cubanismo[d]: OK. If the BO page size selection is sufficient, this check seems redundant due to the other conditionals, but it would indeed be safe. I'm not sure if it's better to have the extra conditional just to keep it safe as the code evolves (I can imagine it making sense to defer BO page size selection until bind at some point) or make it clearer (It takes a few logical steps to realize why it's safe
17:35cubanismo[d]: without the check), so I wouldn't press it if you wanted to leave it.
19:16Reinheartpicler: Your kill-off attempts have been noticed next to ancient local ones. Brain picture of my supremacy tells million words compared to the lack of activity there for yours. Hence since i was under vast conspiracy naturally due to having superior organs to others, it was no risk for me, i am used to defending my life daily. Blocking many attempts yearly and working on it daily. If there was an easy trick for the others not to
19:16Reinheartpicler: do what they do to me, i would had used it, in practice there just isn't. So since they tried to murder me based of naturals getting more wasn't actually possible based of wrong paths of the code .
19:26jerahmie: exit
19:27jerahmie: quit
19:27HdkR: It's like trying to escape vim!
19:36dramaticzeros: I said , i have thousands of servers yet to drain weekly,toxic pony will not be able to block me, and no one in the world listens to him either, he is alone in this world until it gets knocked off.
22:30davidfenke: I have not dealt with hater or researched jewish tribes from my free time, so that i know which tribes or beliefs in the tribes are the worst there. But at least some tribes of jews do justify random killings of arian residents like me cause of holocaust as i see, and they mostly are gene deficient and are unanimously said to be involved in stealing by tyranny and terror and killing the donors etc. This is not alright and
22:30davidfenke: gonna lead to punishment again in the direction of such tribes if this is true after all.