Re: [PATCH 08/10] gpu: nova-core: use projection for PFALCON and PFALCON2 registers
"Gary Guo" <[email protected]> Wed, 29 Jul 2026 11:24:55 +0100
| Newsgroups | dev.linux.lists.nova-gpu,dev.linux.lists.driver-core,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Tue Jul 28, 2026 at 9:07 PM BST, Danilo Krummrich wrote: > On Tue Jul 28, 2026 at 9:03 PM CEST, Gary Guo wrote: >> On Tue Jul 28, 2026 at 7:56 PM BST, Danilo Krummrich wrote: >>> On Tue Jul 28, 2026 at 8:26 PM CEST, Gary Guo wrote: >>>> On Tue Jul 28, 2026 at 6:01 PM BST, Danilo Krummrich wrote: >>>>> I may have a slight preference for a separate subregion() variant for= the >>>>> purpose of working around generic_const_exprs, as it probably is a bi= t closer to >>>>> the final solution, but trait methods are fine with me too. >>>> >>>> I am not sure that's the final solution that I want. I want arg-positi= on >>>> const-generics which would syntactically look more similar to `build_a= ssert!`. >>> >>> arg-position const generics would be great, but that's just a syntax di= fference >>> and not related to supporting expressions involving const generics? >>> >>> In any case, I think my point about being closer to the final solution = holds >>> regardless. >>> >>>> Personally I think most issues with `build_assert!` can be fixed by ha= ving >>>> lints, which is on my radar. >>> >>> I think it can be improved, but in the end it relies on compiler optimi= zation >>> that may or may not happen as expected. >> >> It'd be a compiler bug if const folding is expected to happen, the whole >> BUILD_BUG_ON depends on it working. >> >> `build_assert!` is a useful tool that I'm not giving up. If there is a n= eed to >> use it, then I'd use it compared to having two variants to do the same t= hing >> with different syntax. > > It is indeed useful and I don't want to give up on it either. > > But, it is more fragile than const evaluation, so we should only use it w= here > const evaluation is not sufficient. > > In the case we are discussing the problem is that const expressions invol= ving > const generics are not yet supported, but in general it should be. > > This is different compared to e.g. read() where the syntax difference wou= ld > actually hurt and const generics would limit flexibility, where we actual= ly rely > on the compiler to eliminate unreachable code paths regardless of a value= being > known at runtime only. The offset for `subregion` is no different to the offset for `read()`. In b= oth cases you are supposed to only supply build-time const values; and in both = cases you can argue they are needed there due to const generics being too limited= to what they do. We probably could even just add a method that gives you a subregion based o= n `IoLoc` similar to other methods. This actually might be a good idea that I= 'd pursue in next version. Best, Gary