13:33AndrewR: hello all! I got little trace from nouveau on 5.1.12 after resuming from s2ram, so far it seems harmless (machine running with usual X arsenal): https://pastebin.com/NDfGJuuB
13:34rhyskidd: kreyren: to be absolutely clear, i also can confirm i've never been "harassed" by nvidia for working on nouveau
13:34rhyskidd: all my few interactions with the actual ppl at nvidia have been super nice. they aren't horrible ppl
13:34rhyskidd: (they do make some great tech)
13:35imirkin: AndrewR: yeah, i think everyone but skeggsb have been getting these
13:35imirkin: "it can't happen", so a bit tricky to work out what happens
13:36kreyren: rhyskidd, so nvidia supports nouveau or do you know anything about their point of view on nouveau development? Assuming nvidia's past with proprietary tech i think it's sane to ask this question
13:36imirkin: kreyren: you may be interested in https://github.com/NVIDIA/open-gpu-doc as well
13:36imirkin: they tend to release docs well after we already know about stuff, but still nice to see something official
13:37AndrewR: imirkin, ok, will watch for any ill effects or repetition of such error. I think this one never surfaced with 5.1.6, but then may be it was just good luck. (looking for another 1-2 week uptime while doing usual stuff ...)
13:37imirkin: those display class docs is how i'm doing HDR enablement, for example. would have been quite a pain to trace it all, esp since i'm not sure blob supports it nicely
13:39kreyren: so iiuc they won't share any info about their proproetary code, but they will release it after FOSS deduce it and won't try to make effort to prevent nouveau development? Assuming that they made an effort in +- 2012 agains nvidia so that games like metro last light woudn't work well on AMD GPUs i could imagine something like GPU locking down after detecting nouveau etc..
13:39imirkin: it would be difficult to detect
13:40kreyren: well it would be diffucult, but they have resources to do that afaik
13:45kreyren: to put it into a context: i actually find it difficult to believe that none seems to be interested in nouveau development and i'm asking these questions because i was told that nvidia is trying to prevent nouveau from beeing a suitable alternative.
13:47imirkin: that bit is most likely referring to the firmware lockdown
13:47imirkin: the GPUs boot at low clocks (seems reasonable)
13:48imirkin: in order to change memory clocks, you need firmware to help change them to be higher
13:48imirkin: actually screw this. i did a long writeup about it. let me see if i can find it.
13:49kreyren: so there is an efford from nvidia to sabotage nouveau?
13:49imirkin: read that post
13:49imirkin: it should answer many of your questions
13:49imirkin: it also talks about some things you don't care about, but hopefully you can power through
13:52kreyren: sanity: there are no reference diagrams of nvidia GPU for non-OEM customers right?
13:54imirkin: definitely not
13:55imirkin: and even if there were, it's not extremely interesting to know that pin 12345 is vdd
13:56kreyren: well it would be assuming that you could make your own Nvidia GPU afterwards -> probably something that would help with development on linux.
13:57imirkin: it's the chip that's locked down, not the board layout
13:59kreyren: so just to clarify nvidia core is SoC with VBIOS that has board-specific info? so Nvidia provides VBIOS source to manufacturers?
14:00imirkin: nvidia provides a tool to manufacturers which creates a vbios
14:01imirkin: in the tool you can configure how things are wired up, what weird shit you've done, etc
14:01imirkin: (i'm kinda guessing about this, tbh)
14:01imirkin: (but i don't really see another way)
14:02kreyren: so Why doesn't it matter for nouveau? Because it's just board specific for nvidia chip to handle the components?
14:02imirkin: huh? it matters! no vbios, no nouveau
14:02imirkin: the vbios is in the option rom (or otherwise accessible) though
14:02kreyren: so nouveau provides it's own vbios? or what do i need to know about it
14:02imirkin: it's burned onto the gpu
14:03imirkin: or in the system acpi for laptops
14:03imirkin: by the manufacturer
14:04kreyren: i see so it's just a content table that provides values for the system that GPU is running on and video for BIOS,grub, etc.. ?
14:04imirkin: the bit that nouveau uses is the tables describing how the hardware is wired up
14:04imirkin: there's another bit of it which is basically a graphics driver for early boot
14:05kreyren: why is it relevant for nouveau to know how things are wired up? because it also needs to provide drivers for microcontrollers if any or?
14:06imirkin: well, for example --
14:06imirkin: the hpd for a particular connector could be on any gpio
14:06imirkin: in order for hpd to work, we have to know what gpio it's hooked up to
14:06kreyren:is going to take apart some nvidia GPU to have reference
14:06imirkin: (hpd = hotplug detect, i.e. when you plug a monitor into a port)
14:06imirkin: that's a really simple example. there are more complex ones.
14:07imirkin: general purpose i/o
14:07imirkin: basically a pin that can be set high or low
14:10kreyren: i see
14:14kreyren: what's PMU?
14:17kreyren: > So now for the "interesting" part. NVIDIA made it impossible (starting with GM200) for unsig.. so it doesn't accept unsigned firmware, but it accepts nouveau?
14:19imirkin: power management unit
14:19imirkin: it actually does accept unsigned firmware
14:19imirkin: but that firmware can't do certain things
14:20imirkin: nvidia provides signed firmware via linux-firmware, but this firmware cannot be used to reclock the gpus
14:20kreyren: what can be done about it to support nouveau then? or is it impossible ?
14:21imirkin: well, we could figure out how to extract the firmware from the blob
14:21kreyren: assuming that nvidia probably won't ship signature for nouveau
14:21imirkin: but as i mention in that post, even that's not a panacea
14:21imirkin: it would be useful for gm20x, but for gp10x, we'd have to have a way of figuring out how to perform the reclock sequence in the first place
14:21imirkin: since the memory controller is different
14:22kreyren: so possible, but pita to implement?
14:23kreyren: and with low priority assuming that it's only for PMU
14:23kreyren: assuming that we can force PMU to give us full power on GPU?
14:23imirkin: PMU is required to increase clocks to "high" levels
14:24imirkin: but if you have a shitty shader compiler, you'll still do a lot worse
14:24kreyren: so it's roadblock?
14:24imirkin: it's definitely not helping.
14:24kreyren: but we can hotfix it?
14:24imirkin: nouveau can run on those later gpu's
14:25imirkin: but it's hard to compute when your core/memory clocks are at 10% of their rated numbers
14:25imirkin: meaning no matter how good our driver is, if we can't reclock, it'll only ever run at a fraction of the speed that nvidia blob can
14:26kreyren: it would really help if someone made a document about things that doesnt work in nouveau and give more informartions to it like you are doing now.. would help up clear the hoax about nouveau and encourage development
14:26imirkin: go for it
14:26kreyren: writing it as we speak
14:27imirkin: ime, people can't uninstall nouveau fast enough
14:27imirkin: so there's a general lack of caring about open source in the linux community nowadays
14:28Tom^: imirkin: not on the red side imo
14:28kreyren: yep.. we accepted too many noobs in linux lately it will take time for it to change back as it was before
14:28kreyren: especially when most ppl doesn't care about educating them
14:28kreyren: meaning ubuntu and so on..
14:29imirkin: Tom^: eh... dunno. i suspect that's just coz there's a viable driver available.
14:29imirkin: with actual company backing behind it
14:31kreyren: > the hardware access required to perform reclocking is accessible from the PMU in unsecure mode.
14:31kreyren: whats unsecure mode?
14:31kreyren: we can force the GPU to load any firmware?
14:32imirkin: yep, definitely
14:32kreyren: so PMU can be ignored for the time beeing?
14:33kreyren: or taken with low priority
14:33imirkin: as long as you don't want fast graphics, sure
14:33kreyren: it wont allow us to go full power on unsecure mode?
14:33imirkin: the gpu boots to low clocks
14:33imirkin: the pmu must change to high clocks
14:34kreyren: so can we do that on nouveau?
14:34imirkin: on gm20x, it's a hilarious situation since we can actually change the clocks from non-secure mode
14:34imirkin: but we *can't* control the fan
14:34imirkin: on gp10x, we can't do the RE necessary to figure out how to perform the reclocking sequence
14:34kreyren: is there an issue with overheating if we can't controll the fan? or it that controlled by GPU itself?
14:35imirkin: the driver controls the fan
14:35imirkin: so the gpu would overheat
14:35imirkin: except on a laptop
14:35imirkin: where the fans are controlled by a EC rather than the gpu directly
14:35kreyren: So nvidia GPUs are overheating on nouveau?
14:35imirkin: we use the nvidia signed firmware, which allows us to control fans
14:36kreyren: we use closed-source blobs in nouveau?
14:36imirkin: for gm20x+
14:36kreyren: so PMU is hotfixed this way?
14:36imirkin: not sure what that means
14:36kreyren: it's using closed-source which is not ideal for nouveau implementation to get required function?
14:37imirkin: it's firmware
14:37imirkin: who cares
14:37kreyren: firmware on the card itself?
14:37kreyren: ah i see
14:37imirkin: the PMU is a cpu inside the gpu chip
14:37imirkin: (or rather, is controlled by ... )
14:38kreyren: ok ty for info
15:00imirkin_: kreyren: btw, other resources you may find useful, if you haven't already found them --
15:01kreyren: So far what i have https://github.com/RXT067/Research/blob/master/nouveau + notes locally more i have the better
15:01imirkin_: when in doubt, assume that what's in the wiki is out of date, but was right at some point