00:52 pmoreau: Grrr…
01:49 RSpliet: mupuf: do you have a titan?
01:49 RSpliet: :-D
01:51 RSpliet: or a GTX780-like high-end GPU
02:01 mupuf: RSpliet: of course, I am a freaking millionaire
02:01 RSpliet: Intel pays well, doesn't it :-P
02:02 mupuf: no complaints there :D But I would rather save the money or use it for travelling than getting a card that noone else cares about using nouveau on
02:03 RSpliet: fair enough
02:03 RSpliet: I'm just looking around to see if I know anyone with such excessive hw ;-)
02:14 mupuf: RSpliet: what for?
02:14 RSpliet: research on ctxswitches
02:51 kivutar: Hi, If I get errors like that while compiling mesa, what packages should I upgrade?
02:51 kivutar: mesa-11.2.0-rc1/src/gallium/drivers/nouveau/nouveau_screen.c:153:4: error: implicit declaration of function 'nouveau_drm'
02:52 kivutar: my libdrm is up-to-date
02:52 RSpliet: kivutar: sure you're trying to build against the right libdrm headers?
02:54 pmoreau_: I would expect `nouveau_drm()` to have been around for quite some time
02:54 RSpliet: pmoreau_: have the parameters changed recently?
02:54 pmoreau_: Maybe? I'll have a look
02:58 kivutar: RSpliet, I think so, I'm building all from source, with openelec build system (an automated LFS)
02:59 kivutar: I'm using libdrm 2.4.67
03:00 RSpliet: that's sufficiently up to date
03:01 pmoreau_: Right, it was added by https://cgit.freedesktop.org/mesa/drm/commit/nouveau/nouveau.h?id=b845d61de93c762f73463a67a634ecb1ae8c4c35 on 2015-12-22.
03:01 pmoreau_: But I do have that function define with 2.4.67
03:01 pmoreau_: s/define/defined
03:06 kivutar: i'm cleaning, rebuilding and reinstalling libdrm just in case
03:12 kivutar: it doesn't fix the problem
03:12 pmoreau_: karolherbst: The new patch still works (for MMIO) :-)
03:13 karolherbst: pmoreau_: awesome :)
03:13 kivutar: I do have --enable-libkms and --enable-nouveau
03:13 pmoreau_: kivutar: Check that it's using the correct headers, as RSpliet pointed out.
03:15 kivutar: yeah, you're right, I don't see any other explanations
03:16 pmoreau_: Wait a second: `nouveau_drm()` is defined in `libdrm/nouveau/nouveau.h`, but `nouveau_screen.c` only includes `libdrm/nouveau_drm.h`which doesn't include `libdrm/nouveau/nouveau.h`...
03:18 pmoreau_: But `nouveau_context.h` does include it, and it is included by `nouveau_screen.c`, so it should work
03:21 RSpliet: kivutar: just out of interest: what compiler are you using?
03:25 karolherbst: ohhhh wait
03:26 karolherbst: what is his issue?
03:26 karolherbst: I had once an issue after upgrading libdrm to 2.5.67
03:26 karolherbst: *2.4.67
03:26 karolherbst: caused by stalled files inside include/libdrm
03:27 karolherbst: kivutar: if you use a local installation of libdrm and you are upgraded to 2.4.67, remove include/libdrm and install it again
03:27 karolherbst: and see if that helps
03:34 kivutar: ok, I was able to sort it, there were a deprecated header in my tree taking precedence over the new one
03:34 kivutar: you were right, thanks for the help!
03:35 RSpliet: glad it's sorted out!
03:36 hansg: Hi aLl, I'm currently working on fixing an issue where the second DVI output on a quadro fx 380 does not light up. I've been comparing the bios scripts executing of nouveau vs a mmio trace of the blob
03:37 hansg: Weirdly enough this card seems to use 2 different scripts for its 2 different connectors. skeggsb thought this might be an issue with how we pick the script, but the blob seems to be doing the same
03:38 RSpliet: whoa, few steps back :-P it's a G96 - they can only drive 2 monitors at a time - hence I assume it's just the two DVI monitors
03:38 RSpliet: is any of the two outputs trying to use dual-link DVI?
03:38 hansg: At least the first couple of register accesses done by the blob on supervisor interrupt 0x20 match those nvkm does, only after a few writes things start diverting. So I think we may be interpreting the script for the second dvi connector wrong
03:39 hansg: RSpliet, coorect, only 2 dvi connectors on the card, I'm using a single link dvi monitor, which works on the first connector but not on the second.
03:39 hansg: Note the above all was meant as intro do my actual question, which is easy to answer I think:
03:39 RSpliet: oh so it's not even a dual-monitor set-up :-) sorry, carry on
03:40 hansg: How do I dump the bios (x86_64 machine) and extract / decompile the scripts
03:40 pmoreau_: It seems that dual monitoring / internal laptop screen + external monitor, isn't working really well with G96s...
03:40 RSpliet: assuming you're after the VBIOS your best bet is grabbing the VBIOS from debugfs
03:40 hansg: (so that I can compare them manually with what the blob mmiotrace shows and with what nvkm does)
03:40 RSpliet: you can look inside it using envytools' nvbios tool
03:41 hansg: RSpliet, ack I want the VBIOS (specifically the scripts)
03:41 RSpliet: /sys/kernel/debug/dri/0/vbios.rom
03:41 hansg:fires up the test machine (I've only been looking at traces gathered yesterday so far)
03:42 RSpliet: make sure it loads nouveau, NVIDIA is not so kind to provide the vbios in debugfs ;-)
03:42 hansg: Good one, so I just copy that file and then run nvbios on it ?
03:42 RSpliet: yep
03:43 hansg: Sounds easy, I was wondering why there wasn't a wiki page for this, but if its that easy that explains :)
03:44 karolherbst: there should be
03:44 karolherbst: but then again, the pages are hardly updated :/
03:44 hansg: I couldn't find it, might be just me though
03:45 karolherbst: we really should update the wiki
03:45 pmoreau_: hansg: Regarding the backlight patch, `bl_interfaces_nbs` should have been `bl_interfaces_nb`. No idea why an 's' decided to join.
03:45 RSpliet: could be helpful grabbing a copy of your strap register as well (nvapeek 0x101000 > strap_peek), so that nvbios knows which entry to pick for those multi-pick register writes
03:45 RSpliet: karolherbst: I agree, but I recall it's quite a pain to get wiki write access (I wouldn't know my password anymore for sure :-P)
03:45 karolherbst: RSpliet: fdo account
03:46 karolherbst: I don't have one anyway
03:46 hansg: pmoreau, maybe when I figure out why the second dvi connect is acting up, the fix will help second displays on laptops too
03:46 hansg: could be it has the same root cause
03:46 pmoreau_: RSpliet: I'm sure I forgot the password, and the SSH key used might have been deleted some time ago as well. :-D
03:48 RSpliet: the faff around the wiki is not really helping :-P
03:48 pmoreau_: hansg: FYI, I have the same problem on my laptop (using the mini-DP output), but only with some adaptors. It did work with a DP -> HDMI (but flickered horribly when starting some GL program), but didn't work with DP -> DVI (or maybe the opposite)
03:49 karolherbst: let just move the wiki to github :D
03:49 karolherbst: there we have a git tree of the wiki and we can accept even PRs for the wiki
03:49 karolherbst: :p
03:49 pmoreau_: :-D
03:49 RSpliet: I propose we take an approach that leads to *less* faff if you don't mind
03:49 karolherbst: but to be honest
03:50 mupuf: karolherbst: the wiki is already a git repo
03:50 karolherbst: I was thinking about creating a nouveau organisation and move nouveau in there and have multiple groups with different access rights or something
03:50 karolherbst: mupuf: ahhh I see
03:50 karolherbst: mupuf: you just need a fdo account?
03:50 mupuf: nope
03:50 mupuf: just a wiki account, need one?
03:50 RSpliet: mupuf: I need mine recovered :-P
03:50 pmoreau_: karolherbst: Let's move it to the fdo phab instance
03:50 karolherbst: I have none, might come in handy
03:51 mupuf: RSpliet: and you have no fd.o account yet? :o
03:51 mupuf: https://wiki.freedesktop.org/sitewranglers/wiki/401/
03:52 mupuf: just PM me the htpasswd
03:53 karolherbst: mhh how do I get htpasswd? :D
03:53 mupuf: karolherbst: read the page :D
03:53 karolherbst: I mean the binary
03:54 karolherbst: I bet it is part of apache or something
03:54 mupuf: use the browser one then
03:54 karolherbst: broken
03:55 karolherbst: ahhh
03:55 mupuf: I see, just reported the bug
03:55 karolherbst: there is app-admin/apache-tools
03:55 karolherbst: nice
04:41 fdiebold: hi - I've got a thinkpad W540 with a Quadro K1100M and Optimus and I'm trying to attach an external monitor via displayport. this actually worked fine with linux 3.16, but on any kernel since, the monitor doesn't turn on; when I try hotplugging it, the system just hangs for a few seconds. anyone got an idea what to do?
04:41 fdiebold: http://pastebin.com/CQsucnK0 here's the dmesg when hotplugging the monitor
04:42 karolherbst: fdiebold: if the ports are wired to intel, it is an intel bug, not nouveau
04:48 fdiebold: karolherbst: I was under the impression that the DP port was wired to the discrete card, but I admit there's not a lot of nouveau in that dmesg
04:49 karolherbst: yeah well, you are better of if they are wired to the intel one anyway
04:49 karolherbst: be lucky
04:51 karolherbst: mwk: you encountered something funny with movw on fuc5?
06:16 hansg: Ok, I think I've found the bug, the problem is this bit of nvbios script:
06:17 hansg: 0xbc78: 75 0f CONDITION 0x0f
06:17 hansg: 0xbc7a: 38 NOT
06:17 hansg: 0xbc7b: 76 05 IO_CONDITION 0x05
06:17 hansg: 0xbc7d: 5b df bc CALL 0xbcdf
06:17 hansg: 0xbc80: 72 RESUME
06:18 hansg: Hi Ilia, excellent timing I've a problem you may be able to help with
06:18 imirkin: Jayhost: urghhh... demmt needs to be updated for the new nouveau ioctl stuff :(
06:18 hansg: Also good morning
06:19 imirkin: hansg: you're on irc! has the world ended?
06:19 hansg: So nvkm is behaving differently on a bios script then the blob
06:19 hansg: imirkin, who knows, maybe ?
06:19 mupuf: hansg: good to see you here
06:19 imirkin: that'd be nice, then you wouldn't have to worry about this stupid vbios issue :)
06:19 hansg: The problem is this script (bit) :
06:20 hansg: 0xbc78: 75 0f CONDITION 0x0f
06:20 hansg: 0xbc7a: 38 NOT
06:20 hansg: 0xbc7b: 76 05 IO_CONDITION 0x05
06:20 hansg: 0xbc7d: 5b df bc CALL 0xbcdf
06:20 hansg: 0xbc80: 72 RESUME
06:20 imirkin: oh, i remember IO_CONDITION 5
06:20 imirkin: you're not running on an ancient kernel are you?
06:20 hansg: Both conditions are false, yet the blob does the call 0xbcdf
06:20 hansg: imirkin, nope, latest master from torvalds
06:21 imirkin: load nouveau with nouveau.debug=bios=trace
06:21 imirkin: that will print lots of info
06:21 imirkin: that will hopefully help you avoid going *completely* insane
06:21 hansg: Right, already done that, and comparing it with an mmiotrace of the blob, which is why I know the blob does the call 0xbcdf and nvkm doesn't
06:21 imirkin: but i've debugged this very issue
06:22 imirkin: on G96, no less
06:22 imirkin: and fixed it
06:22 imirkin: like 2 years ago
06:22 hansg: Heh, can you dig up the commit fixing it ? Because guess what I'm on a g96
06:22 imirkin: you can see the full saga at https://bugs.freedesktop.org/show_bug.cgi?id=60680
06:23 hansg: Ok, reading, thx
06:23 imirkin: you might enjoy the way i diff'd the mmio traces :)
06:24 hansg: Hmm, that looks highly related, yet different. So the 2 conditions in my bios are:
06:24 hansg: [0x0f] R[0x000008] & 0x000000f0 == 0x00000010
06:24 hansg: [0x05] 0x03d4[0x94] & 0x80 == 0x80
06:24 hansg: And from the blobs mmiotrace:
06:24 hansg: MMIO32 R 0x000008 0x00000000 PMC.BOOT_2 => 0
06:25 hansg: MMIO32 R 0x619494 0x00080060 PDISPLAY.VGA.CR+0x94 => 0x80060
06:25 imirkin: errrr
06:25 imirkin: that & 80 == 0...
06:26 imirkin: there is a crazy hypothesis here that CALL shouldn't be affected by the execution mask
06:26 hansg: Yet despite both conditions being false, it seem to call 0xbcdf, as the trace goes on exactly as if bcdf is called
06:26 imirkin: and that the execution mask only applies to things that actually write and such
06:26 imirkin: that would be an ENORMOUS change though (well, the patch itself would be like 1 line... but testing... ouch.)
06:26 imirkin: should be easy to check in the disasm
06:27 imirkin: just need to find an old enough vbios whose assembly is still readable, but new enough that it has the CALL op :)
06:29 imirkin: hansg: https://github.com/skeggsb/nouveau/blob/master/drm/nouveau/nvkm/subdev/bios/init.c#L1346 -- change that to if (1)
06:31 hakzsam: imirkin, hey welcome back :)
06:33 hakzsam: imirkin, btw, there is no LDSLK on SM50... sad! But there is ATOMS which is probably much better
06:33 imirkin: hakzsam: yeah, sounds that way :)
06:33 imirkin: hakzsam: just don't do the lowering, and add emission logic
06:33 hakzsam: imirkin, yep
06:33 hakzsam: I'll do
06:34 hakzsam: imirkin, if by chance you have time today, I have a bunch of patches waiting for you on mesa-dev ;)
06:34 imirkin: sorry =/
06:35 hakzsam: np
06:41 hansg: imirkin, hmm, comparing the scripts after that call closer with the mmiotrace, I think I might be wrong and that it is not calling bcdf after all ...
06:41 imirkin: hansg: i've been staring at the disasm, but while it used to totally make sense, i can't seem to figure any of it out right now.
06:42 imirkin: hansg: try diff'ing the mmiotraces... that's how i identified the issue
06:42 hansg: imirkin, anyways thx for input, I'll keep going at it. For starters I'll also do a mmiotrace of nvkm
06:42 hansg: ack
06:42 imirkin: i have some good diff commands in that bug
06:42 hansg: I'll take a look and borrow them :)
06:44 pmoreau: gnurou: Finally got Nouveau to work with accel on the GM200 (thanks to mupuf): on the last tries, it did build every gallium driver except Nouveau, which wasn't going to help…
06:45 mupuf: pmoreau: tried some 3d apps?
06:45 pmoreau: glxgears ;-)
06:46 pmoreau: Not sure I have anything else beside that…
06:46 pmoreau: Oh, maybe I do
06:47 mupuf: xonotic?
06:48 pmoreau: A lab from our High Performance Graphics course
06:48 pmoreau: An OpenGL deferred renderer
07:01 gnurou: pmoreau: ah, excellent! a gallium driver might indeed be helpful here :P
07:04 mupuf: gnurou: really? Why ? :D
07:05 mupuf: anyway, that was for sure something wrong on his side because it just worked for me (TM)
07:05 gnurou: mupuf: not sure, I've been told it writes shit into buffers that may or may not be interpreted by the GPU...
07:05 mupuf: crazy!
07:05 mupuf: Anyway, about the PMU, anything to share yet? :D
07:06 mupuf: as in, planing on releasing nvidia's?
07:06 imirkin: hansg: btw, i think skeggsb has done a lot more vbios analysis than i have, so he probably has disassemblies of various ops on-hand
07:06 mupuf: or write another one that will be signed?
07:06 imirkin: hansg: all the newer vbios's (nv11+) use a table-based approach, which makes reading asm trickier [gotta find the table]
07:06 mupuf: or just sign our fw?
07:06 mupuf: but I guess no-one wants to do the security review of our PMU
07:07 gnurou: yeah that last one won't happen
07:07 mupuf: hehe, I had no hope of this
07:07 gnurou: we are currently lobbying to release the RM firmware and the real ACR in the same fashion
07:07 mupuf: ACR?
07:08 gnurou: the super-secure firmware that loads the others
07:08 mupuf: I see
07:08 gnurou: the current one is a custom-made version for Nouveau which starts the GR falcons after loading
07:08 gnurou: something the PMU firmware is normally in charge of doing
07:08 mupuf: ah, I see
07:09 gnurou: aligning all firmware with RM and getting automatic releases would be a big push forward...
07:09 gnurou: then we could also start talking NVDEC, NVENC, etc.
07:09 mupuf: yop!
07:09 gnurou: but again, no promises, no ETAs...
07:09 mupuf: maybe it will be ready two gens after pascal :p
07:10 gnurou: maybe faster! maybe only one gen after pascal! I know, it's crazey
07:11 mupuf: :)
07:11 mupuf: 3D first, it is the most important
07:11 mupuf: reclocking can come after (requiring PMU)
07:11 mupuf: video decoding/encoding is low priority
07:12 mupuf: gnurou: did you see that reclocking is almost there for maxwell already? :D
07:12 mupuf: it is apparently almost the same as kepler
07:12 gnurou: mupuf: wow. how's that
07:12 gnurou: ah, of course
07:12 gnurou: but you need the PMU firmware...
07:12 mupuf: not on the GTX 750
07:13 imirkin: nobody really cares about video decoding... if they did, *someone* would have looked at it on maxwell
07:13 mupuf: memory training from the host side is going to be interesting, but I guess nothing should prevent it
07:13 mupuf: imirkin: yeah, it matters on laptops only, and it just does not work out of the box :s
07:14 mupuf: nvidia could help here though
07:14 mupuf: by telling us: Yes, you may redistribute the fw you already have
07:14 mupuf: that should be sort of easy
07:15 imirkin: mupuf: meh, the people who expect stuff to work out of the box aren't going to help figure out how decoding works on maxwell
07:15 gnurou: from what I have seen, nvdec support on the kernel side is just loading firmware into a falcon and managing a channel, and the rest is entirely in user-space, right?
07:15 mupuf: gnurou: yep
07:15 imirkin: gnurou: you make it sound so simple.
07:15 mupuf: but we have no rights to redistribute the fw
07:15 imirkin: we still don't have perfect h264 decoding =/
07:15 RSpliet: don't Teslas and Fermis upload firmware from user-space as well?
07:15 imirkin: RSpliet: yes.
07:16 imirkin: xtensa/falcon blobs are supplied by userspace
07:16 gnurou: well if we can release the signed firmware this means redistribution will be possible... and we can also talk about previous (non-signed) generations too
07:16 imirkin: these do the actual heavy lifting... the thing loaded by the kernel is just a little RTOS
07:24 hansg: imirkin, I would not worry too much about bios disasm / our nv script call semantics, I think my initial analysis was wrong. Still don't know what is the actual problem though ...
07:24 hakzsam: except CAS, all shared+atomic operations on GM107 work
07:36 mupuf: gnurou: yep. It is not like we ask for a process or any work aside from a legal waiver saying: You may redistribute the firmwares that you extracted from our binary driver
07:37 gnurou: mupuf: it would be more like "you may redistribute the firmwares that we uploaded to linux-firmware" ;)
07:37 mupuf: ah ah, if you upload them yourself to the linux-fw, then we are all good :D
07:38 mupuf: and yes, that sounds better from nvidia's perspective
07:38 mupuf: it should be a one time effort anyway
07:38 mupuf: imirkin: do we have the fw for nvenc or not yet?
07:42 curvv: hi, trying to set up desktop environment on gentoo. getting this in Xorg.0.log: [mi] EQ overflow continuing
07:42 curvv: any idea what might be the cause?
07:44 curvv: getting a black screen and mouse pointer when launching session
08:00 RSpliet: curvv: which GPU, X.org version and driver are that?
08:03 karolherbst: gnurou: yeah, we are able to fully recklock gddr5 1gen maxwells, didn't try out the ddr3 ones, but who cares about those :D
08:03 RSpliet:raises hand
08:03 karolherbst: RSpliet: ahh you have a ddr3 maxwell1?
08:04 RSpliet: nope
08:04 RSpliet: but I care about equality :-$
08:04 karolherbst: :D
08:04 karolherbst: well
08:04 karolherbst: if somebody has such a maxwell, he can try out my branch and see if it works
08:04 RSpliet: mupuf?
08:04 RSpliet: anyway, good to know the mem controller hardly changed
08:05 mupuf: RSpliet: no, I do not have a cheap maxwell :s
08:05 karolherbst: yeah, I didn't go into the details though
08:05 karolherbst: it just looked pretty similiar to my gk106 and I thought I just try it out with the kepler code
08:05 curvv: RSpliet: x server 1.17.4 and nvidia geforce 8200M G
08:05 curvv: laptop
08:06 karolherbst: especially because I found out that the fuc5 pmu was broken, so even if somebody tried it out, memory recklocking shouldn't work at all
08:06 karolherbst: ahh I should post updated patches
08:06 RSpliet: curvv: MCP77, hmm, those are not extremely common I think
08:07 karolherbst: mupuf: anything against ld/st accepting addresses above 0xffff?
08:07 RSpliet: still, shouldn't matter: mind posting the dmesg and Xorg.0.log onto a paste website of choice and sharing the URLs?
08:07 mupuf: nope
08:07 mupuf: karolherbst: ^^
08:08 karolherbst: k, then I use simply imm32 there instead of mov
08:08 karolherbst: and cpp will constant fold the stuff away anyway
08:08 karolherbst: ohh wait, it won't
08:08 karolherbst: I don't care anyway
08:09 curvv: ok will do
08:13 curvv: RSpliet: Xorg.0.log - https://dpaste.de/4K1V
08:13 curvv: dmesg: https://dpaste.de/Pp9Y
08:14 curvv: once i get the black screen the only way i can get out is to log in via ssh and reboot
08:15 curvv: cannot switch to virt terminal, frozen
08:15 curvv: mouse pointer moves, though
08:18 karolherbst: mupuf: I was thinking, shouldn't be memory recklocking on gk20x be broken as well then?
08:18 curvv: i see reference to nvidiafb there. is that frambuffer drivers? i read somewhere that i had to disable framebuffer drivers for kernel... which i thought i did.
08:19 mupuf: karolherbst: it should
08:19 RSpliet: curvv: hmm, a couple of funny unrelated things, but have you tried it with a kernel 4.4 already?
08:19 curvv: no i haven't
08:19 karolherbst: mupuf: strange, did anybody complained about it?
08:19 mupuf: no-one tests reclocking
08:19 mupuf: it is too "risky"
08:20 curvv: i will try it
08:20 mupuf: and there are only a few GPUs in the gk2xx
08:20 karolherbst: meh
08:20 mupuf: and they are slow IIRC
08:20 RSpliet: curvv: that'd be helpful already. Next it'd be good if your nouveau ddx module has debugging symbols in the backtrace - although it looks like the card just stalls unnoticed
08:21 curvv: ok i'll try 4.4 kernel first
08:23 karolherbst: damn you 100 KB size limit...
08:31 RSpliet: karolherbst: for.... ?
09:08 martm: hi guys, i wanted to tell, that first time in life, i managed to capture a gpu lockup i used google-earth for some time, it was allready closed, and innocent banshee media player locked up the gpu
09:09 martm: i did not do any debugging of the issue, X never came up again, i think the console was responsive on it's own
09:09 martm: 01:00.0 VGA compatible controller: NVIDIA Corporation Device 0f02 (rev a1)
09:09 martm: 01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
09:10 Jayhost: imirkin "demmt needs to be updated". So wait patiently?
09:13 martm: i think i have low clocks, haven't even looked i have been so busy thinking about different type of things, but google-earth works and renders very well and fast still
09:13 martm: ouh...Another crash happened while handling crash!
09:13 martm: after the lock-up it does not start again
09:14 martm: but it worked kinda long and i did not see any issues, this low end card with low clocks was sa satisfying to deal with this program when it did work
09:22 martm: and that is it by me, i am taking a break from computer stuff, as there are no very high-attention needing issues left, and i am preparing for a trial against set of people here
09:22 martm: to once solve the issues i am seeing in my life
09:24 martm: cheers, ah well i kinda promised to offer another pseudo code for the scheduler, if i managed to get a nice hour without nightmares popping in, i really sorted it out ..then i put it on the pastebin for developers, who want to integrate the idea
09:25 martm: it should work out nicely, only a little work needed there amongst different cards and drivers, it isn't very complex , quite simple and effecient method it should be, bye at the moment
09:30 Yoshimo: karolherbst: so the find expression from last night, revealed:
09:31 Yoshimo: looks fine to me
09:31 Yoshimo: ./lib/modules/4.2.0-30-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko
09:31 Yoshimo: ./lib/modules/4.4.3-040403-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko
09:32 karolherbst: then most likely you didn't change the branch, forgot to rebuild or initramfs wasn't updated right
09:32 karolherbst: or
09:32 karolherbst: your vbios has issues
09:32 karolherbst: yeah, maybe it would be best to take a look at your vbios
09:33 Yoshimo: if the git checkout says that i am fully up to date with origin/maxwell_reclocking i at least assume the branch is correct
09:33 karolherbst: yeah
09:33 karolherbst: did you rebuilt inside drm?
09:33 Yoshimo: yes
09:34 Yoshimo: the vbios might already be somewhere in your db, it used to crash the tools
09:34 karolherbst: ohhhh
09:34 karolherbst: nvbios crashed?
09:34 Yoshimo: i think it used to, but that was quite some time ago
09:35 karolherbst: gm206 was it?
09:35 Yoshimo: 206 is the 950, i have a 980 so it is a 204
09:35 Yoshimo: nouveau 0000:01:00.0: NVIDIA GM204 (124000a1)
09:36 karolherbst: I have no idea if we have your vbios though
09:37 Yoshimo: i am not sure either, but it is a fairly simple process to dump it again
09:38 Yoshimo: might also be that i confuse it with the 560ti
09:38 Yoshimo: i'll be right back with a dump
09:48 Yoshimo: any good hoster without too much ads where i should dump that rom file?
09:54 Yoshimo: karolherbst: http://workupload.com/file/zxxJuGCS try that one
09:55 karolherbst: yeah okay, we got that one already
09:56 Yoshimo: nvagetbios had a couple of errors about mmio read faults, and an invalid signature
10:10 karolherbst: mupuf: it is the 0xc reg for sure
10:10 karolherbst: if I change it, performance changes by a lot, but nouveau reads the same clock out, now I just have to figure out how to adjust the readout
10:12 karolherbst: and 0x10 too :/
10:26 karolherbst: ohhh no...
10:26 karolherbst: there is a DVFS now?
11:05 snkcld: im on a macbook pro with nvidia graphics (using nouveau, and when i change my resolution , the screen goes black.
11:05 snkcld: has anyone heard of this issue?
11:14 pmoreau: snkcld: Which card(s) do you have?
11:15 snkcld: 01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 750M Mac Edition] (rev a1) (prog-if 00 [VGA controller])
11:15 snkcld: pmoreau: ^
11:15 pmoreau: Oh, an MBP Retina then?
11:16 pmoreau: It should have an integrated Intel GPU as well, are you sure you are on the NVIDIA one?
11:17 pmoreau: Could you give a link to your dmesg and Xorg.log please?
11:17 pmoreau: snkcld: ^
11:17 snkcld: no problem
11:18 snkcld: do you have a recommended easy way to get the logs to pastebin?
11:18 snkcld: actually
11:19 snkcld: http://pastebin.com/7m4eRMp6 <- nvidia from dmesg
11:19 snkcld: and,
11:19 karolherbst: no grep
11:19 karolherbst: second: why nvidia?
11:19 snkcld: OH
11:19 pmoreau: karolherbst: +1 ;-)
11:20 snkcld: my apologies
11:20 snkcld: i forgot that i rebooted to use nvidia, ill have to reboot into nouveau
11:20 snkcld: to show the proper log
11:20 mupuf: karolherbst: what do you mean by DVFS?
11:21 karolherbst: dynamiv voltage and frequency stuff, no idea what s was again :D
11:21 mupuf: well, you mean there would be that in HW?
11:21 mupuf: No way
11:21 pmoreau: the emergency frequency divider thing?
11:21 mupuf: clock gating, yes
11:21 karolherbst: Ill show you why I think that
11:21 karolherbst: mupuf: https://github.com/kfractal/nouveau/blob/hwref/drm/nouveau/include/nvkm/hwref/gm107/trim.h#L44-L48
11:22 karolherbst: I bet DVFS means something else here then :p
11:22 mupuf: nope, it is DFS
11:22 mupuf: dynamic frequency switching
11:22 karolherbst: ohh
11:22 karolherbst: so the DVFS part is just for show
11:22 mupuf: the V part
11:22 karolherbst: k
11:22 mupuf: now, how the fuck can this work :o
11:23 karolherbst: well it does affect performance at least
11:23 karolherbst: in a weird way
11:23 karolherbst: does nouveau have tegra X1 support yet?
11:23 mupuf: yes
11:23 karolherbst: k, then I will check there
11:23 mupuf: and you can have a look at the android tree
11:24 karolherbst: yeah, because gm20b has no clk subdev yet...
11:25 karolherbst: anyway
11:25 karolherbst: It might be that all maxwells would be currently underclocked through nouveau
11:26 mupuf: brb, goigng back home and I will have a look with you
11:26 mupuf: if there is DFS, there is activity signal
11:26 mupuf: and there is a function to link activity with clock
11:26 karolherbst: what of these are the right sources by the way? https://android.googlesource.com/kernel/tegra/
11:26 mupuf: there is no actual reclocking, so it likely is the equivalent of what the FSRM used to do
11:27 mupuf: will check when I am home
11:27 karolherbst: ahh okay
11:27 mupuf: brb
11:27 karolherbst: so, when no load, fake a lower clock to save _some_ power
11:27 karolherbst: well "fake"
11:27 karolherbst: the clock gets lower, but voltage stays the same
11:40 mupuf: yes
11:40 mupuf: it likely gates some ticks
11:41 mupuf: did you check with nvatiming or shall I do it?
11:41 karolherbst: sadly you don't have a gk110, because to add support for it first would be a bit simplier
11:41 karolherbst: I didn't check
11:42 karolherbst: here are the data from the blob: https://gist.github.com/karolherbst/b2bf786ed20503d1714c
11:43 karolherbst: no idea about the refclock though, I didn't dig through enough to actually also read this out
11:43 karolherbst: 0x13701c doesn't seem to have any effects though
12:01 karolherbst: mupuf: which of the nvatiming clocks is the gpc?
13:34 karolherbst: okay, letting nvidia set the voltage to 0.6V is a bad idea...
13:35 karolherbst: but why does the gpu completly disconnects itself from the bus? :/
13:36 pmoreau: (FYI, I'm using Reator)
14:01 karolherbst: ... those mode 3 entries are the weirdest ones...
14:05 karolherbst: it makes no sense...
14:08 karolherbst: ohh well
14:08 karolherbst: mode 3: (info.min + info.max) / 2
14:09 karolherbst: but why does nvidia won't load as long as c0 is below 128 or something...
14:48 snkcld: i booted back into nouveau, and when i change my resolution, the screen turns black and i cant do anything
15:08 Jayhost: karolherbst are you working on gm107 reclock?
15:10 snkcld: any idea whats going on?
15:13 karolherbst: Jayhost: it already works , just those patches has to be upstreamed
15:14 Jayhost: Had you fixed the lock up or do you just mean the kepler stable patches
15:18 karolherbst: Jayhost: well there might be different issues besides volting, but that I try to figure out after I got those volting stuff merged
15:18 karolherbst: also there is some gpu boost stuff which has to be taken care of too
15:19 karolherbst: it's kind of important that clocking itself works table enough, then we can deal with those rare instabilities
15:19 Jayhost: karolherbst how can I help?
15:20 pmoreau: snkcld: Do you have a dmesg from when using Nouveau?
15:21 pmoreau: mupuf: Where is piglit hidden on Reator?
15:22 gnurou: karolherbst: I have a gm20b clk subdev in my tree, did not submit it yet because I need to factorize all the duplicate code and logic with gk20a... the Android people did not care and copy/pasted before changing bits here and there :/
15:23 karolherbst: gnurou: I see
15:23 karolherbst: gnurou: currently we want to know what the 0xc and 0x10 reg do on the gpc
15:23 karolherbst: 13700c and 137010
15:23 gnurou:makes a note to look at that
15:24 karolherbst: thanks a lot :)
15:24 karolherbst: it also affects gk110 a bit though
15:24 karolherbst: currently we have troubles reading the clock out with the nouveau code on gk110+ gpus
15:24 karolherbst: Jayhost: which gpus do you have?
15:26 karolherbst: pmoreau: src is a lot of stuff, maybe it is in there?
15:26 karolherbst: *has
15:26 karolherbst: gnurou: well it would be enough to know how the clock changes according to 13700c and 137010 for now
15:26 gnurou: karolherbst: actually gm20b can work in PLL NA mode (whatever that means), and the logic is quite different in that case. Otherwise it seems like it can also be controlled the way gk20a is. How this translates to dGPU is unknown to me though
15:27 pmoreau: karolherbst: Yeah, thought about it as well, but couldn't find a folder with a similar name in it
15:27 karolherbst: gnurou: yeah I know, we checked with hwref already
15:27 karolherbst: gnurou: thing is just, that it may be that nouveau sets lower clocks now than it thinks it set
15:27 Jayhost: karolherbst I only have gm107 at the moment
15:28 karolherbst: Jayhost: k, get my maxwell_recklocking branch to work :)
15:28 karolherbst: and then do stuff at full clocks until the gpu crashes
15:29 karolherbst: gnurou: ohh wait
15:29 karolherbst: gnurou: gk20a already has the 0x13700c reg
15:29 karolherbst: this helps us with gk110 already
15:29 karolherbst: GPCPLL_CFG2 in nouveau code
15:30 Jayhost: karolherbst. Okay mirkin says demmt is outdated so what should I do when stuff crashes
15:31 karolherbst: Jayhost: I updated my branch the last days, so maybe it is better now :/
15:31 karolherbst: Jayhost: where you able to get full memory recklock?
15:32 Jayhost: alright I'll check it out. I just installed an SSD.
15:38 karolherbst: mupuf: I think gk20a_pllg_slide is the stuff we search
15:38 karolherbst: at least for gk110 that is
15:44 karolherbst: it doesn't make sense...
15:45 karolherbst: can somebody send a gk110 to mupuf? :D I really need one
16:49 karolherbst: pmoreau: still there?
17:07 karolherbst: Jayhost: any luck yet?
17:21 Jayhost: karolherbst the memory does not reclock
17:21 Jayhost: it shows 5400 but only goes 810
17:21 karolherbst: Jayhost: do you use my updated branch?
17:22 Jayhost: I believe so kepler stable
17:22 karolherbst: use maxwell_recklocking
17:22 Jayhost: Okay just a sec
17:22 karolherbst: ..
17:22 karolherbst: why do I always write reclocking wrong
17:25 Jayhost: muscle memory
17:26 Jayhost: I'm not sure how to get the maxwell branch
17:27 karolherbst: git checkout maxwell_reclocking
17:27 karolherbst: ohh
17:27 karolherbst: you should git fetch origin first
17:27 Jayhost: Still not there
17:28 Jayhost: I could just clone it again
17:28 karolherbst: well
17:28 karolherbst: does git checkout origin/maxwell_reclocking work?
17:30 Jayhost: okay in detached head mode
17:30 karolherbst: mhhh
17:30 karolherbst: k
17:30 karolherbst: then do this:
17:31 karolherbst: git checkout origin/maxwell_reclocking -b maxwell_reclocking
17:31 Jayhost: okay built
17:33 Jayhost: Something is blocking me from hotswap. GDM or something else
17:34 Jayhost: Yeah my script is set up for ldm
17:35 karolherbst: I didn't actually test it with a display, so it might mess up what is shown on the display :/
17:35 karolherbst: Jayhost: another question: did you had any sort of tearing?
17:35 Jayhost: Screen tearing
17:35 karolherbst: or vsync not working the right wait?
17:36 karolherbst: ahh, that might be fixed as well
17:36 Jayhost: What other kind of tearing
17:37 karolherbst: well I meant the ugly lines you see on the screen ;)
17:37 Jayhost: Nothing way out of the ordinary
17:37 karolherbst: and with as well I meant besides memory reclocking
17:37 Jayhost: when using kernel 3.16 it starts with red lines
17:38 Jayhost: And those lines go away when switch to terminal and back
17:40 karolherbst: mhh
17:40 karolherbst: interessting
17:40 karolherbst: does it still happen with the new branch?
17:41 Jayhost: no
17:42 Jayhost: But also I don't know how to use the new module with the old kernel
17:43 karolherbst: you can't
17:43 Jayhost: still mem 810 in pstate
17:43 karolherbst: dmesg
17:47 karolherbst: Jayhost: also can you check which is the newest commit in your git tree?
17:47 karolherbst: I am sure it should have worked though (well you still need to manucally recklock though)
17:48 Jayhost: okay
17:49 Jayhost: http://pastebin.ca/3386455
17:49 Jayhost: would be easier if I could scp the dmesg
17:50 karolherbst: maybe you want to reboot with the newest nouveau module
17:50 karolherbst: because by just loading the new one
17:50 karolherbst: you shouldn't get any errors
17:50 karolherbst: even after reclocking
17:50 Jayhost: Those errors I guess are from Doom3
17:51 karolherbst: most likely
17:52 karolherbst: it would be easier to test reclocking without running anything for now
17:52 karolherbst: so that dmesg don't get polluted
17:52 Jayhost: okay
17:53 Jayhost: command to check newest commit
17:53 Jayhost: nvm
17:53 karolherbst: newest should be "clk: don't create cstates which voltage is higher than what the gpu can do"
17:53 karolherbst: ...
17:53 karolherbst: wait
17:54 karolherbst: wrong branch
17:54 karolherbst: fb: maxwell memory reclocking looks like kepler, so try it out
17:57 karolherbst: Jayhost: how do you reload nouveau by the way? unbing vtcon, rmmod nouveau, insmod?
17:57 Jayhost: http://pastebin.ca/3386458
17:57 karolherbst: ahh okay, good
17:57 Jayhost: karolherbst modprobe instead of ins
17:57 karolherbst: ohh
17:57 karolherbst: try insmod to be sure it does load the compiled one :/
17:59 imirkin: Jayhost: you can also force it to use the old ioctls... somehow
18:00 imirkin: mupuf: no, i don't think anyone's bothered even extracting the nvenc fw. maybe mwk? not sure.
18:01 imirkin: curvv: weeeird. your gpu on boot has 2x the shader clock of the max perf level. that's probably not very good.
18:02 Jayhost: imirkin is that the best way to figure out what's going wrong
18:02 imirkin: curvv: try booting with nouveau.pstate=1 and then doing "echo 0f > /sys/class/drm/card0/device/pstate"
18:02 imirkin: Jayhost: you could also run the game with NV50_PROG_DEBUG=1 and capture all output until you see that error, and then stare at shader disassemblies.
18:03 imirkin: Jayhost: you had the invalid opcode thing right?
18:03 imirkin: karolherbst: gk208 memory reclocking works fine... at least it did for me.
18:05 Jayhost: imirkin GPC0/TPC0/MP trap: global 00000000 [] warp 3000e [MEM_OUT_OF_BOUNDS]
18:06 imirkin: that's not bad in and of itself... i think
18:06 karolherbst: imirkin: mhh odd, maybe for DDR3 the pmu script isn't as important? :/
18:07 imirkin: or it didn't hit on any of the issues
18:07 karolherbst: could be
18:08 karolherbst: I know I tested it a bit and it simply didn't work on gm107 without my pmu fixes
18:08 karolherbst: well
18:08 karolherbst: it somtimes worked though
18:08 karolherbst: and sometimes not so much
18:11 Jayhost: karolherbst insmod doesn't work. I had assumed it was outdated. modprobe had always worked for me before
18:11 karolherbst: well
18:11 karolherbst: if insmod doesn't work, there is something wrong
18:11 karolherbst: well you have to give a path to insmod
18:12 karolherbst: and if it fails you should check why
18:13 karolherbst: Jayhost: what error does insmod give you ?
18:15 Jayhost: It worked this time but still no mem
18:15 karolherbst: dmesg
18:15 karolherbst: also content of pstate would be nice
18:17 Jayhost: http://pastebin.ca/3386464
18:17 karolherbst: well
18:17 karolherbst: that's the old module
18:18 Jayhost: filebin.ca/2YvVfk4b3peC/temp-pstate
18:19 karolherbst: with the new branch "nouveau 0000:01:00.0: clk: base: 1176 MHz, boost: 1254 MHz" should be in two lines now
18:20 Jayhost: karolherbst It shouldn't be the old module because then I wouldn't be able to test pstate
18:21 karolherbst: Jayhost: well, it is the one you tried out from my branch, but it's not the new one with the maxwell memory fix
18:21 Jayhost: You should see Boost if you grep. unless I sent the wrong dmesg
18:22 karolherbst: Jayhost: it's there, but with the new branch it should be split in two lines
18:22 karolherbst: Jayhost: you may want to build inside drm again, remove nouveau
18:23 karolherbst: and insmod nouveau/nouveau.ko
18:23 Jayhost: karolherbst okay I should have it soon
18:35 karolherbst: Jayhost: I know that installing nouveau is a pain :/ Maybe if somebody has a good idea we can improve it a bit or at least have a better way to verify that the expected built was loaded
18:38 Jayhost: karolherbst okay two lines now
18:38 Jayhost: was confused a bit at having it reclock at startup
18:38 Jayhost: still 810
18:38 karolherbst: dmesg then
18:38 karolherbst: and content of pstate
18:38 Jayhost: okay after 0f
18:38 Jayhost: It's up
18:44 karolherbst: ahhh
18:44 karolherbst: nice :)
18:44 karolherbst: well
18:44 karolherbst: I will head to bed now anyway
18:44 karolherbst: but you can do some testing and see if the perf is also much better now
18:44 karolherbst: and stable
18:47 Jayhost: okay
18:48 Jayhost: karolherbst any good resources to read about reclocking other than what's on nouveau home page