Messages in this thread | | | Date | Tue, 19 Oct 1999 20:36:23 -0400 | From | Jeff Dike <> |
| |
borislav@lix.polytechnique.fr said: Subject: Re: Emergent Call for help! In-Reply-To: Your message of "Tue, 19 Oct 1999 20:33:32 +0200." <19991019203332.A1571@wispa.polytechnique.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 19 Oct 1999 20:36:23 -0400 From: Jeff Dike <jdike@localhost>
> How difficult is it / when do you expect it to appear?
Not very/I don't know.
There are two things that need to be done to get an MP emulator:
- Give each process (and maybe each thread) its own address space. The tricky part here is to share the kernel data. My current plan is to copy the data segments into a file, unmap those segments, and map in the corresponding sections of that file. Each process would do the same in its own address space. This has the added benefit that it would greatly speed up context switches in the uP kernel.
- Implement some kind of defensible locking. I think this means implementing the lock/unlock primitives in terms of semaphores. This is straightforward, except that the current interface has no provision for releasing lock data when its data is freed, since there is no external data in a lock. This would lead to bigtime semaphore leaks if [vk]malloced/[vk]freed structures contain their own locks and are malloced/freed frequently. I'm currently pondering some kind of semaphore GC. I'm wide open for ideas on this. If anyone knows how to do this right, I'd love to know.
Jeff
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |