02:53 karolherbst: okay no idea what's wrong pre rescheduling: https://gist.github.com/karolherbst/5125cc835efaa79ac2d8#file-2old post rescheduling:https://gist.github.com/karolherbst/5125cc835efaa79ac2d8#file-3new
02:57 karolherbst: maybe the order of the movs wrigin into the phi sources upsets it?
02:57 karolherbst: *writing
02:57 karolherbst: RSpliet: any idea about that?
03:14 karolherbst: this check fails by the way: https://github.com/karolherbst/mesa/blob/master/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp#L825
05:18 karolherbst: ... skeggsb can you get over this? I think I messed up updating your hack https://github.com/karolherbst/nouveau/commit/dfe243ba579244f04964f70d57529b100a93cab2
06:21 karolherbst: nope, don't get it to work :(
08:01 karolherbst: skeggsb: okay I was wrong, it seems to kind of work, but I get a lot of "timeout at /home/karol/Dokumente/repos/nouveau/drm/nouveau/nvkm/subdev/pmu/gk104.c:41/magic()!"
08:09 karolherbst: skeggsb: okay, besides that hack everything seems to work fine for me, too
09:12 karolherbst: does anybody have a tesla card here?
09:13 karolherbst: or something more ancient than that?
09:13 karolherbst: ohh no, only tesla
09:14 karolherbst: would like to now how many cards default to pcie v1 so I need to know what the value for nvapeek 0x00154c is
09:17 karolherbst: mupuf: I see that you have a strange tesla card there
09:17 karolherbst: nv84 and nv86
09:18 karolherbst: the blob tries to set them to v2 mode, but they stay at v1
10:31 RSpliet: karolherbst: sorry m8, enjoying the sun right now... photosynthesis is an important part of my day
10:44 karolherbst: meh
10:44 karolherbst: tha hot days were here 1 week ago
11:44 karolherbst: can there be only one joinat in a BB?
11:48 karolherbst: I think the bb already takes care of that luckily
11:48 tobijk: karolherbst: i think there can be several joinat's in one bb
11:49 karolherbst: mhh
11:50 karolherbst: because this bb->joinAt is kind of strange then
11:50 tobijk: karolherbst: no sorry several join
11:59 karolherbst: mhh okay
11:59 karolherbst: because then I don't have to touch it
12:00 karolherbst: okay nice
12:00 karolherbst: tobijk: you don't know these "ERROR: failed to coalesce phi operands" errors?
12:01 karolherbst: one of the few things left I have to solve before I can proper schedule instructions
12:06 karolherbst: uhhh
12:06 karolherbst: this part is like ancient
12:06 karolherbst: 2012
12:10 karolherbst: ohhhhhh well, seems like I have to figure this out and try to see myself whats goiing on there
12:13 karolherbst: I rather do the pcie kernel part then
12:14 karolherbst: tobijk: what kind of gpu do you have again?
13:06 karolherbst: looks good so far? https://github.com/karolherbst/nouveau/commit/ffb932ff9d00e4ffe8c34e6517145f2c4d611c16
13:07 karolherbst: want to fix the interface early before I have to rework the stuff later on
13:26 karolherbst: ohh right, kepler+ need a new pci subdev?
13:26 karolherbst: how should I handly it, because they use different reg ranges
13:27 imirkin: create a new pci thing
13:27 imirkin: look at how other things are done
13:27 imirkin: basically make a gk104.c file
13:32 karolherbst: and call it pci2?
13:32 imirkin: huh?
13:32 imirkin: no
13:33 karolherbst: mhh the thing is, that kepler also uses the old regs for some stuff
13:33 imirkin: add the generic functionality to the pci object
13:33 imirkin: as a function pointer or whatever the new thing is
13:33 karolherbst: ahhh right
13:33 imirkin: and then implement it one way in nv50.c and another way in gk104.c
13:34 karolherbst: and I can use the romal nv40 functions through priv.h anyway. okay, I think I got that
13:34 imirkin: yeah, actually you can probably call it nv40.c
13:34 imirkin: not nv50.c
13:34 imirkin: and then make a nv92.c which upgrades to pcie v2
13:34 imirkin: on init
13:35 karolherbst: funny though I found some cards where the blob tries to go to v2
13:35 karolherbst: sets speed to 5.0 but the card stays at v1
13:35 karolherbst: nv84
13:35 karolherbst: but speed 5.0 is reported nicely
13:35 imirkin: errrrr
13:35 imirkin: unlikely.
13:35 imirkin: nv84 doesn't support pciev2
13:36 karolherbst: maybe we wre wrong about this: "PPCI.CONFIG_LINK => { TARGET_SPEED = 5_0GT | CARD_SPEED = 5_0GT | SYSTEM_SPEED = 5_0GT | UNK16 = 0x60 | UNK28 = 0x3 }"
13:36 imirkin: it's probably a quirk in their logic, i wouldn't try to replicate it
13:36 imirkin: that's on a nv84?
13:36 karolherbst: yeah
13:36 imirkin: are you sure?
13:36 karolherbst: well its in the folder called nv84
13:36 imirkin: (can you check the mmio read 0 at the top)
13:36 karolherbst: "nv84-0x84000a2-0400-downclock.xz"
13:36 imirkin: does it say like cardtype = G84
13:36 karolherbst: ohh checking
13:37 karolherbst: "[0] 132.293389 MMIO32 R 0x000000 0x084000a2 PMC.ID => { STEPPING = 0xa2 | DEVICE_ID = 0 | CHIPSET = G84 | FOUNDRY = TSMC }" like this?
13:37 imirkin: yes, like that.
13:38 karolherbst: I will give you the part
13:38 imirkin: hrm. odd.
13:38 karolherbst: https://gist.github.com/karolherbst/018bac342e20232d89e4
13:39 karolherbst: "grep -e 0x00154c -e PPCI.*SPEED"
13:39 karolherbst: but it also sets v1 below
13:39 karolherbst: maybe there is another way for this?
13:39 imirkin: STA = { SPEED = 2_5GT | WIDTH = 16 | SL_CLK }
13:40 karolherbst: ahhh right
13:40 karolherbst: forgot about that
13:40 karolherbst: but still in CONFIG_LINK: SYSTEM_SPEED = 5_0GT
13:40 imirkin: well, that seems reasonable
13:40 karolherbst: maybe this value tells us something else
13:40 imirkin: it's the CARD_SPEED that is dod
13:41 karolherbst: I think CONFIG_LINK is really only for configuration
13:43 imirkin: karolherbst: oh, btw, whatever you do, make it possible to disable via a nouveau.config=bla thing
13:43 imirkin: karolherbst: because invariably it'll mess up in odd ways on a small number of systems
13:43 karolherbst: okay
13:44 imirkin: and it's nice to be able to tell those people "oh, boot with XYZ and it'll work" instead of making them compile patches
13:44 karolherbst: right
13:44 karolherbst: but what you think about hard fails? I would say if something goes wrong we shouldn't fail in total, but only print errors into dmesg
13:44 karolherbst: like pstate changes still possible, but without fancy pcie speed
14:33 karolherbst: anybody here with a tesla laptop?
14:33 imirkin: tobijk has one iirc
14:33 imirkin: as does pmoreau -- a macbook
14:33 karolherbst: I would need the vbios of both :)
14:33 karolherbst: thank you
14:39 imirkin: karolherbst: this is tobijk's: http://filebin.ca/2D3kyZwB4qUa/nv86.rom
14:41 imirkin: looks like it has pcie link width 16 even in the lowest state
14:42 imirkin: and i have a gt216m bios locally which lists pcie link width 255 :)
14:44 RSpliet: imirkin: that sounds like an aazingly old nvbios
14:44 RSpliet: +m
14:44 RSpliet: given how it's only 2 bits
14:44 imirkin: RSpliet: yeah, it's actually a 0, and i guess there's a -1 involved
14:45 imirkin: or... something
14:45 imirkin: -- ID 0x3 Voltage entry 80 PCIe link width 255 2.5 GT/s--
14:45 imirkin: 0xd391: 03 40 50 00 00 00 00 00 00 00 d6 19 ff 00 00 00
14:45 RSpliet: yeah... it kind of sounds like the link width code is how it was done in older VBIOSes
14:46 imirkin: and 2.5GT/s instead of 5GT/s on all levels
14:46 RSpliet: oh goodie, a new GT21x that doesn't reclock properly :-D
14:47 imirkin: RSpliet: hm?
14:47 imirkin: RSpliet: i'm like 99% sure that vbios is from you
14:47 imirkin: and 1% sure it's from someone who came in here saying your code didn't work :)
14:47 RSpliet: oh, no I refer to a card I nicked from the lab yesterday
14:48 imirkin: oh
14:49 RSpliet: a DDR2 NVA5
14:49 imirkin: ooh, rare
14:54 karolherbst: mhh
14:54 karolherbst: I always new apple does something which others just didn't care enough
14:54 karolherbst: *knew
14:54 karolherbst: but I guesss a width x1 may be a big perf impact
14:55 karolherbst: x1 and 2.5 ... well
14:56 karolherbst: imirkin: this vbios is in the git repository isn't it?
14:56 imirkin: dunno
14:56 karolherbst: I think I saw that or one very similiar
14:57 karolherbst: mhhh
14:57 karolherbst: would be nice to messure power consumption difference
14:57 karolherbst: if its like 0.1 W then I would say we just forget about that
15:05 karolherbst: anyway, now I have to parse the width and speed information out :/
15:05 karolherbst: I bet nouveau doesn't have anything about that
15:05 imirkin: should be easy
15:05 karolherbst: yeah, still
15:05 karolherbst: bios
15:05 karolherbst: never touched that
15:06 tobijk: oh somebody asked for my hardware? :D
15:06 karolherbst: I think we got that already
15:06 tobijk: ke
15:06 karolherbst: tesla laptop
15:06 karolherbst: pstate pci width and speed
15:07 karolherbst: I was wondering if only apple laptops report 1x width at lowest pstate
15:07 tobijk: i'm not sure what it does, i'll look at it
15:08 karolherbst: tobijk: can you messure power consumption on that laptop?
15:08 karolherbst: I really want to know what the difference is between x16 and x1
15:08 imirkin: about 16x ;)
15:08 karolherbst: in total power consumption
15:09 karolherbst: if its below 0.1W difference I wouldn't care
15:09 karolherbst: but if its more like 1W
15:09 karolherbst: then maybe
15:10 karolherbst: imirkin: int nvkm_pci_set_link(struct nvkm_pci *, enum pci_speed, u8 width);
15:10 karolherbst: or differente name?
15:11 imirkin: seems fine
15:11 imirkin: it should be a function pointer in nvkm_pci though
15:11 imirkin: which is set differently for nv40 and gk104
15:11 imirkin: see for example how...
15:11 karolherbst: sure about that with the new interface?
15:11 imirkin: sec
15:12 imirkin: compare http://cgit.freedesktop.org/~darktama/nouveau/tree/drm/nouveau/nvkm/subdev/ltc/gf100.c to http://cgit.freedesktop.org/~darktama/nouveau/tree/drm/nouveau/nvkm/subdev/ltc/gk104.c
15:13 imirkin: add a function ptr to http://cgit.freedesktop.org/~darktama/nouveau/tree/drm/nouveau/nvkm/subdev/pci/priv.h
15:13 karolherbst: yeah I want to add there some too
15:13 imirkin: and then you can call it from the pstate code
15:13 karolherbst: but code should only call this function
15:13 karolherbst: we have to do some stuff
15:14 karolherbst: fermi does some stuff like tesla and others like kepler
15:14 tobijk: oh reclocking isnt supported :D
15:14 karolherbst: I wanted to implement the base logic in this interface and call function pointers there
15:14 imirkin: no.
15:14 tobijk: do we have an experimental branch somewhere?
15:14 imirkin: add the logic in nv40.c and gk104.c
15:14 imirkin: and update the various things to set the function pointer correctly
15:14 karolherbst: mhh
15:14 karolherbst: won't work
15:15 karolherbst: fermi needs stuff that also kepler does
15:15 karolherbst: but kepler doesn't anything what tesla doesn't doo
15:15 karolherbst: ohh wait, different
15:15 karolherbst: but its not that straight
15:15 imirkin: yes it is.
15:15 tobijk: karolherbst: with the boot settings it has a link width of 16 with 2.5GT
15:16 imirkin: or rather, how is it not? what's the issue
15:16 karolherbst: tobijk: and what does the bios say?
15:16 tobijk: idk :)
15:16 karolherbst: imirkin: tesla uses the same reg for link cap as kepler
15:16 karolherbst: for example
15:16 imirkin: karolherbst: ok...
15:16 imirkin: so what's the issue with that?
15:16 karolherbst: but a different reg for speed
15:16 imirkin: link cap = pcie v1 vs v2 right?
15:17 karolherbst: mhhh
15:17 karolherbst: again
15:17 imirkin: that should be handled in the init function
15:17 karolherbst: tesla: 0x00154c for cap 0x088460 for speed
15:17 karolherbst: fermi: 0x02241c for cap 0x088460 for speed
15:17 imirkin: what is "cap"?
15:17 karolherbst: kepler+: 0x02241c for cap 0x08c040 for speed
15:17 karolherbst: link cap
15:17 imirkin: what is "link cap"
15:17 imirkin: it's the pcie v1 vs v2 junk right?
15:18 karolherbst: we have to increase it on tesla/fermie before increasing link speed
15:18 karolherbst: nope
15:18 karolherbst: this comes even before that
15:18 imirkin: oh, it's the 2.5 vs full thing?
15:18 karolherbst: somehow
15:18 karolherbst: check lspci
15:18 tobijk: isnt that speed :)
15:18 karolherbst: "LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us"
15:18 karolherbst: "nkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-"
15:18 karolherbst: if I decrease speed
15:19 karolherbst: cap stays 8.0
15:19 karolherbst: but changing cap on kepler crashes the card for some reasons
15:19 imirkin: ok
15:19 karolherbst: but its the same reg fermi uses
15:19 karolherbst: and on fermie you can change the cap
15:19 imirkin: well, propose something that makes sense
15:19 imirkin: and go from there
15:19 imirkin: if you need multiple subfunctions, that's fine
15:20 karolherbst: yeah, I wanted to let the subfunctions be func pointers
15:20 tobijk: isnt the cap just the maximum capabilites then, wahts the matter with it
15:20 karolherbst: because these are platfrom specific
15:20 karolherbst: but the core logic is not
15:20 imirkin: ok
15:20 imirkin: well do something that makes sense.
15:20 karolherbst: 1. v1->v2 transition 2. increase cap 3. increase speed
15:20 imirkin: however i think that the v1 -> v2 transition + enable full speed should be done in one go
15:20 imirkin: on init
15:20 imirkin: so the cap is only touched in the init function
15:21 imirkin: and then you futz with speed for the pstate stuff
15:21 karolherbst: yep, v1->v2 can be done in init
15:21 tobijk: karolherbst: if you change do v1-->v2, i would think the cap changes itself
15:21 karolherbst: should be fine
15:21 karolherbst: nope
15:21 karolherbst: different regs
15:21 karolherbst: allthough
15:21 karolherbst: wait
15:21 imirkin: huh
15:21 imirkin: who cares
15:21 imirkin: it's not about which regs it is
15:21 imirkin: it's about what you do and when
15:21 karolherbst: okay
15:21 karolherbst: I have to read the traces again :D
15:22 imirkin: anyways... the api should make sense
15:22 imirkin: you can create "private" api's that make impl simpler, and that's fie
15:22 imirkin: fine*
15:22 karolherbst: yeah
15:22 karolherbst: planned to do it that way
15:22 karolherbst: if its makes sense to decrease cap on one plattform then it shouldn't be the responsibility of the caller to do so
15:23 karolherbst: tobijk: do you have the laptop running?
15:23 karolherbst: and can you see current power consumption?
15:24 imirkin: karolherbst: i don't think it ever makes sense to decrease cap
15:25 tobijk: karolherbst: yep
15:25 tobijk: to fist, second no
15:25 karolherbst: sad :/
15:28 tobijk: why would you care about power consumption of pcie, that should be handle by pcie/mobo
15:28 karolherbst: mhhh
15:28 karolherbst: I don't think its that easy
15:29 karolherbst: because the card can somehow change the link on its own
15:29 karolherbst: we just write something into a gpu reg and suddengly link changed form 2.5 to 8.0
15:30 karolherbst: PPCI.CONFIG_LINK doesn't tell us the actualy speed, I think this is for the cap on tesla
15:31 tobijk: i was under the impression it communicates to change the width, havent you said something like that? :O
15:31 karolherbst: tobijk: can you do a 0x088460 and give me the lspci -vv of your gpu?
15:31 karolherbst: width also simple reg write
15:32 karolherbst: and PPCI.EXP_LNK_CMD_STA is the actuall speed
15:32 karolherbst: nvapeek 0x088088 would be also nice
15:33 karolherbst: best trace I found so far: https://gist.github.com/karolherbst/63c0dcada2dba9bf3934
15:35 karolherbst: wait a sec
15:36 tobijk: karolherbst: what to poke in 0x88560
15:36 tobijk: *460
15:36 karolherbst: peek
15:36 karolherbst: just want to check the value first
15:37 tobijk: ah ok
15:38 tobijk_: karolherbst: 00088460: 30601220
15:38 tobijk_: :o?
15:38 karolherbst: mhh okay
15:38 karolherbst: nvapeek 0x00154c
15:39 tobijk_: 0000154c: 0000009c
15:39 karolherbst: hehe nice
15:39 karolherbst: is your card at 01:00.0?
15:40 tobijk_: right
15:40 karolherbst: then lspci -s 01:00.0 -vv
15:40 karolherbst: I bet its on pci v1
15:40 tobijk_: it is
15:40 karolherbst: then also nvapeek 0x088088 and nvapeek 0x088084
15:41 karolherbst: can you paste me the whole output of lspci somewhere?
15:41 tobijk_: sure, sec
15:41 karolherbst: don't know how the v1 version looks like anymore
15:42 tobijk_: http://hastebin.com/goqoqejega.rb
15:42 tobijk_: 00088088: 11010048
15:42 tobijk_: 00088084: 00013d01
15:43 karolherbst: imirkin: saw how the card reports 5.0 for target and card and 2.5 for system?
15:43 karolherbst: I think this reg isn't reliable on tesla
15:43 karolherbst: at least not for current stuff
15:44 karolherbst: tobijk_: wanna do a nvapoke 0x00154c 0000009d ?
15:44 karolherbst: should bump pci to v2
15:44 tobijk_: i say bb :)
15:45 tobijk_: nope v1
15:45 tobijk_: it just stays there
15:45 karolherbst: mhhh
15:45 tobijk_: 0000154c: 0000009c
15:45 karolherbst: maybe your board really only supports v1
15:45 tobijk_: reg id fine though
15:45 karolherbst: yeah its okay
15:45 karolherbst: there are some traces where it fails too
15:45 karolherbst: just need to find some common pattern between those
15:46 tobijk_: well it still runs, just try the change and if it does not work, move on with live :-)
15:46 karolherbst: ohh found your trace
15:46 karolherbst: :/
15:46 karolherbst: to bad
15:46 karolherbst: want another one
15:47 karolherbst: okay, found one
15:47 karolherbst: mhh
15:47 karolherbst: also reports system_speed 2.5
15:47 karolherbst: okay
15:47 karolherbst: another idea though
15:48 tobijk_: i'm here, abuse this system, it isnt really used :D
15:48 karolherbst: nice
15:48 karolherbst: there is no commit on the cap, nice
15:48 karolherbst: but I don't see any writes
15:49 karolherbst: try to poke 00088084 00013d02
15:49 karolherbst: and then check reg again and cap in lspci
15:52 karolherbst: if that upsets the card, its kind of fine, just I don't know. maybe the system_speed also depends on the pcie version
15:52 karolherbst: that would be kind of bad
15:53 tobijk_: it just stays at 00013d01
15:53 karolherbst: okay
15:54 karolherbst: I think I've got enough, thanks for the help
15:54 tobijk_: no problem :)
15:56 karolherbst: ohh wait
15:56 karolherbst: we could change the pci lanes :D
15:57 tobijk_: sec, just drove an update, let me reboot
15:57 karolherbst: but without power consumption this is kind of pointless
16:00 tobijk_: ... slow system....
16:00 tobijk_: now lets change lanes and see if it likes it
16:01 tobijk_: karolherbst: -^ (jst to make sure we can do this savely on some systems)
16:01 karolherbst: doesn't powertop or something reports that?
16:01 karolherbst: I mean power consumption
16:02 karolherbst: (AC has to be disconnected for this usually)
16:03 tobijk_: mhm
16:04 karolherbst: anyway: nvapeek 0x088140
16:06 tobijk_: 00088140: 00010000
16:07 karolherbst: oh well, mhh let me check something
16:07 karolherbst: not that its odd, but it is
16:07 karolherbst: okay
16:08 karolherbst: nvapoke 00088140 00001101
16:08 tobijk_: jumped to x1
16:08 karolherbst: okay
16:08 karolherbst: and any decrease in speed?
16:08 karolherbst: like desktop usage
16:09 tobijk_: not that i see/feel some
16:09 karolherbst: mhh at least something
16:09 karolherbst: okay another thing
16:09 karolherbst: nvapoke 00088140 00010001
16:09 karolherbst: it should jump back to x16
16:10 karolherbst: thenvapoke 00088140 00001001
16:10 karolherbst: there is a unknown bit and I would like to know if thats required
16:10 karolherbst: the blob sets it, even if it was not set before
16:10 karolherbst: there are other things in that reg, but they never change so far
16:10 tobijk: it jumps to final state: "hung up"
16:10 tobijk: :D
16:13 tobijk_: last one is commit bit or something?
16:18 karolherbst: okay
16:18 karolherbst: modem is really shitty here
16:18 karolherbst: tobijk: on which poke did it die?
16:19 tobijk_: changing back to x16
16:19 karolherbst: mhhh
16:19 karolherbst: okay
16:19 karolherbst: then this one bit is kind of important
16:19 karolherbst: actually
16:19 tobijk_: you said there is an unknown reg
16:19 karolherbst: nvapoke 00088140 00001101
16:19 karolherbst: nvapoke 00088140 00010101
16:19 karolherbst: this should work
16:19 karolherbst: first is to x1
16:19 karolherbst: second to x16
16:19 tobijk_: is it written before link width change?
16:19 karolherbst: yeah the 0x100 bit is unknown
16:19 karolherbst: no
16:20 karolherbst: just with it
16:20 karolherbst: and stays
16:20 tobijk_: first works fine
16:20 tobijk_: i guess it will die again with the next one :/
16:21 karolherbst: don't think so
16:21 tobijk_: nope but is stays at x1
16:21 karolherbst: okay
16:21 karolherbst: mhhh
16:21 karolherbst: then try that:
16:21 karolherbst: nvapoke 00088140 00010100
16:21 karolherbst: nvapoke 00088140 00010101
16:22 tobijk_: still x1
16:25 karolherbst: tobijk_: wanna reboot? then we try without tha strange reg
16:25 karolherbst: if that works, then we are fine I guess
16:25 tobijk: just doing a forced reboot :)
16:27 tobijk_: ok next reg to poke? :D
16:27 karolherbst: nvapoke 00088140 00001001
16:27 tobijk_: x16->x1
16:28 karolherbst: nvapoke 00088140 00010001
16:28 tobijk: oh we had that, thats the hang up pattern :)
16:29 tobijk: i guess that pattern is right for x16, but we are missing something
16:29 karolherbst: maybe not now
16:29 karolherbst: this one bit may do something strange
16:30 karolherbst: did you try nvapoke 00088140 00010001 again?
16:31 karolherbst: if it dies, then its not safe to switch lanes for now
16:31 tobijk: it always dies on 00010001
16:31 tobijk: as you can see now
16:31 karolherbst: okay
16:51 karolherbst: mhh strange, but okay
16:51 karolherbst: then we can't do that
16:52 tobijk: well maybe you were right and we need to do something with power before going x1->x16
16:52 karolherbst: power?
16:52 tobijk: more or less poking another reg i guess :D
16:53 karolherbst: will check it
16:55 karolherbst: maybe I found one
16:55 karolherbst: blob messes with a reg before the width things
16:56 tobijk: we can check that, wont hurt
16:58 karolherbst: mhh first I have to get a feeling of how this may be related, I mean messing with something before anything doesn't mean its related at all
17:00 karolherbst: we could also try smaller steps
17:00 karolherbst: maybe going to and back to/from x8 works
17:01 karolherbst: nvapoke 00088140 00008001 => x8
17:01 karolherbst: nvapoke 00088140 00010001 => 16
17:01 tobijk: mhm eah why not
17:01 imirkin: it's a 2-step write
17:01 karolherbst: nvapoke 00088140 00004001 => x4
17:01 karolherbst: nvapoke 00088140 00002001 => x2 ;)
17:01 imirkin: first nvapoke without the commit bit
17:01 imirkin: then nvapoke again with the same value + commit bit
17:01 karolherbst: yeah, but well, do we actually have to do that? it never changed anything
17:01 imirkin: at least iirc that's what it was from the traces
17:01 karolherbst: yeah
17:02 karolherbst: same for kepler
17:02 karolherbst: but I never needed this
17:02 imirkin: we should do what the traces do
17:02 imirkin: they know how the hw works, we don't
17:02 karolherbst: okay
17:02 karolherbst: I bet it may be that the register is too slowly written and the we commit while writing stuff or something bad
17:02 imirkin: perhaps it only matters on like 1% of transitions. who knows.
17:03 karolherbst: yeah, right
17:03 karolherbst: its confusing that imirkin and tobijk have the same color here :/
17:04 karolherbst: oh well
17:04 karolherbst: at least x8 should work
17:04 karolherbst: because there are valid reasons to set this
17:04 karolherbst: and if that don't work I would say the card has an issue
17:05 tobijk: heh, i just tried it from upside down
17:05 tobijk: x1->x2 does not work either
17:05 karolherbst: yeah well
17:05 karolherbst: I think x2 and x1 may be buggy
17:05 tobijk: will test x8
17:06 karolherbst: I assume that x8 always works
17:06 karolherbst: x16 for boards/slots/card which supports it
17:06 karolherbst: and x4 mhhh difficult
17:06 karolherbst: I would say yes, but who knows
17:08 karolherbst: tobijk: want to try that out?
17:08 karolherbst: x16 => x8 => x16
17:08 tobijk: just did
17:08 karolherbst: and?
17:09 tobijk: 00008000 -> ok
17:09 tobijk: 00008001 -> x1
17:09 karolherbst: :D
17:09 tobijk: 00008000 -> ok
17:09 tobijk: 00008001 -> hang
17:09 karolherbst: yeah my gpu also hangs if I try to touch width, but its a kepler
17:09 karolherbst: mhhh
17:09 tobijk: so transition is somehow broken
17:09 karolherbst: so in general PCI_WIDTH => don't touchy
17:10 karolherbst: I am also kind of worries to enable it for cards where the pstate tells us so
17:10 karolherbst: without testing it first
17:11 karolherbst: soo conclusion: on some tesla cards we can't do a thing related to pci
17:11 tobijk: we could hide it behind a "super_special_powr_safe" option
17:11 karolherbst: mhhh
17:11 karolherbst: I will think about that when 95% of test system work
17:11 karolherbst: otherwise its not worth it
17:11 karolherbst: I mean
17:12 karolherbst: its like 1W power saved on old laptops with already brocken batteries
17:12 karolherbst: so who cares
17:12 tobijk: hehe
17:12 karolherbst: its a different sitatuion if it would work on like all gpus, but not otherwise
17:13 karolherbst: I couldn't find a way to do that on my kepler...
17:13 karolherbst: but imirkin told me he managed to do it without issues?
17:13 karolherbst: was it on fermi?
17:13 imirkin: yeah, worked on gt218
17:13 imirkin: er
17:13 imirkin: gt215
17:13 imirkin: and fermi
17:13 imirkin: both
17:13 karolherbst: okay
17:13 tobijk: did pstate tell you that its ok?
17:13 karolherbst: mhhh
17:13 tobijk: ...to do so?
17:14 imirkin: don't think so
17:14 karolherbst: did you check if changing back to x16 works?
17:14 tobijk: is that a cuppercino thingy? :D
17:14 imirkin: tobijk: did you unset some bits?
17:14 tobijk: unset?
17:14 imirkin: tobijk: what does 88084 read on boot?
17:14 karolherbst: nope
17:14 karolherbst: he didn't
17:15 karolherbst: it was plain 00010000 for him
17:15 imirkin: er right. 88140
17:15 imirkin: for me: 08010010
17:15 imirkin: for both the fermi and gt215
17:15 tobijk: mhm
17:15 karolherbst: I think the 8 is only there on newer teslas
17:16 imirkin: could be yea
17:16 karolherbst: didn't see it on those nv50 cards and whatever
17:17 tobijk: i poked it anyway, didn care, same result
17:18 tobijk: could be pciev1 related as well
17:19 imirkin: could be
17:20 karolherbst: okay
17:21 karolherbst: so
17:21 karolherbst: the 8 is there with nv94
17:26 karolherbst: I am like out of ideas now
17:32 karolherbst: okay well
17:32 karolherbst: mhh
17:32 karolherbst: think I will implement the tesla things first anyway
17:36 karolherbst: there has to be a reg for LnkCtl2 on my kepler somewhere
17:36 imirkin: meh.
17:36 karolherbst: yeah
17:36 karolherbst: got it get down to 2.5
17:37 karolherbst: by switching into v1 mode
17:37 karolherbst: and then I can't go up to 8.0 anymore with speed
17:37 tobijk: does it hang or is it more tolerant :D
17:37 karolherbst: I can play games on it
17:38 tobijk: i mean the 2.5 -> 8
17:38 tobijk: does that hang?
17:38 karolherbst: nope
17:38 karolherbst: it just does nothing
17:38 karolherbst: the reg changes though
17:39 karolherbst: but I can also poje stuff into it while in v1 mode
17:39 tobijk: and when you go to v2 it happily changes again?
17:39 karolherbst: no
17:39 karolherbst: but linkCtl2 is down to 2.5
17:39 karolherbst: and its on 8.0 usually
18:07 karolherbst: imirkin: check what I've got "ID 0xf Voltage entry 4 PCIe link width 255 8.0 GT/s"
18:07 karolherbst: width 255 => max width?
18:08 karolherbst: 0x7fab: 0f 00 04 08 00 00 00 00 00 00 16 0a 00 00 00 00 00 00 00 00
18:08 imirkin: i should think so.
18:08 karolherbst: 0x7fbf: 00 00 00 00 00
18:08 karolherbst: mhh
18:08 karolherbst: maybe its just wrongly parsed
18:09 imirkin: could
18:09 imirkin: could be :)
18:09 karolherbst: 08 is the same with all pstates
18:09 karolherbst: 0x7f31: 0a 00 08 08 00 00 00 00 00 00 16 38 00 00 00 00 00 00 00 00 : -- ID 0xa Voltage entry 8 PCIe link width 255 5.0 GT/s --
18:10 karolherbst: 0x7ef4: 07 00 0a 08 00 00 00 00 00 02 18 19 00 00 00 00 00 00 00 00 : -- ID 0x7 Voltage entry 10 PCIe link width 255 2.5 GT/s --
18:10 karolherbst: where is this width 8 kepler trace
18:10 imirkin: there's another vbios here: http://people.freedesktop.org/~imirkin/traces/nva3/nva3-gddr5.rom
18:11 imirkin: it also has width 255, but sets the GT/s higher for the highest perf level
18:13 karolherbst: mhhh
18:13 karolherbst: found a kepler with no 5.0 pcie speed
18:13 karolherbst: only 2.5 and 8.0
18:14 karolherbst: mhh
18:14 karolherbst: higher than 8.0?
18:14 imirkin: probably 5 doesn't make sense on yours
18:14 karolherbst: no, wasn't mine
18:14 karolherbst: mine is fine
18:15 karolherbst: the one you gave me is messed up :O
18:15 imirkin: you mean mine? :)
18:15 karolherbst: yeah
18:15 imirkin: nva3-gddr5.rom is mine
18:15 karolherbst: who does something like that
18:16 imirkin: hm?
18:16 karolherbst: check difference between 03 and 07
18:16 imirkin: it's a tesla, no 8gt/s
18:16 karolherbst: and then 0f
18:16 karolherbst: "-- ID 0xf Voltage entry 100 PCIe link width 255 8.0 GT/s--"
18:16 imirkin: -- ID 0xf Voltage entry 100 PCIe link width 255 5.0 GT/s--
18:16 imirkin: is what i see
18:16 karolherbst: mhh
18:16 karolherbst: how old is your nvbios?
18:17 imirkin: old
18:17 karolherbst: I see 8.0
18:17 imirkin: i get a build failure with it due to some local half-baked patch
18:19 karolherbst: your card looks like no pwoer: 03 and 07
18:19 karolherbst: or all power: 0f
18:20 karolherbst: 0f should give you a hughe performance boost
18:22 karolherbst: "uint8_t pcie_width = 0xff"
18:22 karolherbst: well
18:22 karolherbst: its like never set
18:23 karolherbst: ohhh
18:23 karolherbst: only for one case
18:23 karolherbst: mode_info_length >= 28 && version >= 0x25
18:23 karolherbst: with a big fat comment before that
18:23 karolherbst: that's most liekly completle garbage
18:24 karolherbst: fun
18:25 karolherbst: anyway, I think I will go to bed now
18:25 karolherbst: will try to post some patches in the following days
19:54 imirkin: gnurou: i sent a bunch of questions to the gpu-open-doc list... should i assume they were all just ignored?
19:55 imirkin: (or pick some polite euphemism for it, either way, that i'm not getting answers)
21:33 Hoolootwo: at some point the bug with the ancient nv17 missing some things was fixed
21:33 imirkin: "missing some things"?
21:33 Hoolootwo: sometimes text would be missing
21:33 imirkin: you mean the alpha blend thing?
21:34 Hoolootwo: yeah that one
21:34 imirkin: yeah, i fixed that like a year ago
21:34 Hoolootwo: I think I didn't notice because I got a new laptop
21:34 imirkin: http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/log/?id=29572e44c24613be9dec0c98ff2731e46ce6203b
21:35 Hoolootwo: ah right I think I knew that
21:35 imirkin: spent a bunch of quality time with rendercheck
21:35 imirkin: turned out something was messed up in the componentAlpha handling