From owner-freebsd-arch Fri Dec 21 20: 0:21 2001 Delivered-To: freebsd-arch@freebsd.org Received: from rwcrmhc53.attbi.com (rwcrmhc53.attbi.com [204.127.198.39]) by hub.freebsd.org (Postfix) with ESMTP id 4301937B41B for ; Fri, 21 Dec 2001 20:00:10 -0800 (PST) Received: from InterJet.elischer.org ([12.232.206.8]) by rwcrmhc53.attbi.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20011222040009.GFEW20122.rwcrmhc53.attbi.com@InterJet.elischer.org> for ; Sat, 22 Dec 2001 04:00:09 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id TAA60313 for ; Fri, 21 Dec 2001 19:53:06 -0800 (PST) Date: Fri, 21 Dec 2001 19:53:05 -0800 (PST) From: Julian Elischer To: arch@freebsd.org Subject: blurk! KSE vs the X86 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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