00:01 TimurTabi: What is a "client", e.g. nouveau_cli ?
00:01 imirkin_: heh
00:02 imirkin_: iirc that's a VM
00:02 imirkin_: so every open file handle of the card(/render) node will have a client associated
00:02 TimurTabi: Ah
00:02 imirkin_: there's also the "system" client which is used to manage things like fbcon/etc
00:04 TimurTabi: Ah, I see that nouveau_drm_open() calls nouveau_cli_init(). And also in nouveau_drm_device_init() there are two calls to nouveau_cli_init(), one for "DRM-master" and another for "DRM"
00:04 imirkin_: dunno what the difference is
00:05 imirkin_: i was only aware of the "DRM" one
00:05 imirkin_: but it's also the sort of thing that sorta just works, so i don't go looking often
00:07 TimurTabi: I'm trying to understand the initialization code. I don't know NVidia hardware as well as I should, so it's a challenge.
00:07 imirkin_: "as you should"? how well *should* you know nvidia hw?
00:08 imirkin_: unless you've been hanging out here for a very long time (or are an nvidia engineer), the answer should be "not very well" :)
00:08 imirkin_: initialization is driven by nvkm/engine/device/base.c
00:08 TimurTabi: I am an NVidia engineer, but I haven't gotten a lot of training in this area.
00:08 imirkin_: oh heh
00:09 imirkin_: glad i had the exception clause there!
00:09 imirkin_: anyways, each device is a composition of subdevices (some of which are engines)
00:09 imirkin_: "devinit" is kinda special
00:10 imirkin_: the lifecycle of a subdev is wildly complicated
00:10 imirkin_: and takes things like runpm suspend, hibernate, etc
00:10 imirkin_: er, takes things into account like ...
00:10 imirkin_: but basically there's like a preinit, init, maybe a initonce
00:11 imirkin_: amusingly fini gets called before init does
00:13 imirkin_: also, while sometimes helpful, my answers are in no way authoritative
00:13 imirkin_: skeggsb is the authority on this stuff. but he's currently on vacation, i think
00:14 TimurTabi: Yeah, I think he's out until next week
00:16 karolherbst: TimurTabi: ohh, now I know why your name sounded familiar :D Hi Timur
00:16 TimurTabi: heh
00:17 karolherbst: TimurTabi: so regarding initialization, we have in each engine and subdev the *init functions which gets called in order
00:18 karolherbst: order is kind of defined by drm/nouveau/include/nvkm/core/device.h
00:18 karolherbst: enum nvkm_devidx
00:18 karolherbst: preinit gets called first on all engines/subdevs, then init
00:19 TimurTabi: I need to go get dinner now, so I'll be back tomorrow morning. Thanks!
00:19 karolherbst: imirkin_: fini gets called before, because we create the nouveau_device thing once to probe stuff and then clean it up again, or did you mean something else?
00:20 imirkin_: that's not exactly why, but what i mean is that one might not expect fini to be called prior to init
00:20 imirkin_: when looking at the list of hooks
00:21 karolherbst: well, it's not
00:22 imirkin_: ?
00:22 imirkin_: it very much is.
00:23 imirkin_: iirc it's explicitly called prior to init as part of the lifecycle stuff
00:23 karolherbst: preinit is the first thing here
00:24 karolherbst: ohh, I guess I was indeed wrong here
01:19 imirkin_: TimurTabi: are you working on accel init or something?
05:36 mupuf: imirkin_: bugzilla will be turned read-only at the end of the month
05:37 mupuf: so, if you don't want any bugs and want emails for everything, then I guess not doing anything is the way to go
11:44 RSpliet: https://www.accellera.org/downloads/standards/systemrdl
11:44 RSpliet: Looks like industry took a page from the RNN book :-P
15:39 imirkin_: mupuf: let's see what happens
16:33 codedmart: Lyude: it seems that without nvidia drivers installed chromium randomly freezes without hardware accel disabled. Is this related to my problems as well.
17:08 codedmart: Nevermind that question I think it is related to kernel 5.3 and intel DDX