IRC channel logs
2025-12-04.log
back to list of logs
<damo22>ok the queue.h implementation points the ->next at head of the list instead of NULL <damo22>or head->prev points to itself and the tail->next points to itself <azert>I think antrik on the mailing list misunderstood what libdrm is <azert>It’s not a thin abstraction supporting multiple backends <azert>and the ioctl api is official, it is not an internal detail <azert>also he seems to ignore that the api uses userspace pointers as handles <azert>finally, how can a framework for high performance kernel drivers be portable? <azert>of course it is not portable at all and all the bsd people are struggling to keep pace with that <azert>for the Hurd running Wayland on the console/grub frame buffer and enabling mesa software rendering would be more than sufficient <azert>but I suspect that mesa software rendering has been completely broken by the Linux drivers programmers <youpi>the mesa stack has been compiling fine over the years, except some PATH_MAX issues and non-drm build fixups popping here and there <youpi>I haven't worked on it recently so it's not building, but it shouldn't be hard to fixup <saravia`>Hi, question the thinkpad T60 require coreboot? for run a gnu/hurd distro? <damo22>ah crap, the problem is addresses of each callout structure is not unique because they are statically allocated <damo22>so reusing them breaks the structure <damo22>but i cannot kalloc inside an interrupt <damo22>what do i do? create a linked list of fixed size and chew elements from that? <saravia>excuse me for use T60, coreboot is require in hurd? <azert>damo22: I think that most of these interrupts could just use a single timeout element and change it on the fly <azert>using the equivalent of the FreeBSD callout_reset <azert>in some cases this might need a special allocator and a pool of objects, like you mentioned <damo22>i dont understand how it works because as soon as you are working from a copy of the timer object, the original no longer has the state <damo22>so how do you do things like stop the timer? <damo22>you need a valid expiry on the original timer to look up the copy <azert>damo22: can you point to the problematic call to set_timeout where you cannot kalloc? <damo22>09:46:30 AM) damo22: i dont understand how it works because as soon as you are working from a copy of the timer object, the original no longer has the state <damo22>so theres no handle to look up the copy <damo22>when you dont use a copy, you can use t->t_time <damo22>ie the expiry on the original object tells you which wheel spoke its in <damo22>if you make a copy of the timer, the original timer can only store t_time once <damo22>so its only valid for one of them in the wheel <damo22>and you dont know which one it corresponds to <damo22>so how can you make a copy and stop that timer? <azert>why do you need to make a copy? <damo22>i think you need to make a copy because the same timer is reused again and again in the wheel?