Date: Fri, 21 Dec 2001 19:53:05 -0800 (PST) From: Julian Elischer <julian@elischer.org> To: arch@freebsd.org Subject: blurk! KSE vs the X86 Message-ID: <Pine.BSF.4.21.0112211930050.53471-100000@InterJet.elischer.org>
next in thread | raw e-mail | index | archive | help
Ok so we have this wonderful thing called a TSS there is one per CPU by default, but you can ask that your process has it own.. that would be one per process.. it has such things as the address to load the system stack pointer from when running your process and take a trap e.g. syscall. This is in the PCB extension area. At this time there is only the capacity to set an extension into the single thread that would want it, and it isn't associated with the process as such via the proc structure, just via the PCB extension pointer. So since threads are transient in KSE processes when the thread migrates away (almost immediatly in some cases) you have no trace of your extension area (hense TSS) so at teh next swtch() it'll be gone again.. the QUICK answer is to say that vm86 and KSE can't be mixed, but is that the best solution we can do? who should inherrit a changed TSS? I an guessing that a KSEGROUP might have it's TSS changed and all threads instantiated thereafter could inherrit the new extension area, but unfortunatly there'd have to be as many as there were KSE's in that KSEGRP. Maybe they are hung off the KSEs? Now we are talking.. You could hang a separate one of each KSE, and the running thread on that KSE would use it... hmmmm that actually makes sense. It's even easy enough that swtch() could get it easily in Assembler. anyone up on this stuff..? what's the normal way these things are set? (the various fields in the extension pcb and the ldt etc.) Is there a connection between the pcb extension and the LDT? we could (as I showed before) have a per-KSE PCB extension in a KSEGRP which would make that work, but can you have per thread LGTs? They are pointed to by the per process mdproc structure at teh moment. is that good enough? probably... I haven't actually found the LDT itself being alocated.. yet :-) enough of this rant.. who's up on this stuff? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0112211930050.53471-100000>