On Sunday 08 May 2005 20:09, Ian Rogers wrote: > Blaisorblade wrote: > Thanks. I will implment an emulator through this mechanism. My current > mechanism performs: > > loadByte(addr) { > pte = addr >> 12; > offset = addr & 0xFFF; > result = memory[ptr][offset] > } Ok, memory is a square array. > you can imagine the store... mechanisms. Obviously the cost of the > ptrace calls is going to be a slow down compared to this. Well, if it's done only at setup, ok. However, can you please explain to me why it isn't possible to do it without SKAS? > I hope to look into creating a patch to allow multiple segments in a > linux process. So an extension to skas on i386 and I can get my %fs wish > :-) Well, it should be already doable in SKAS, with PTRACE_LDT (which relates to modify_ldt() the same way that writing DO_MMAP relates to mmap()). Then, after *setting* an appropriate descriptor in %fs (with PTRACE_POKEUSR if you need), you're done.
> btw: a similar thing should be possible on PowerPC given that > segmentation can be disabled for either or both the instruction and data > cache. It would be neat to wrap this up in a module for the performance > improvement of emulators. > Glad it was useful and thanks for your help - it's taught me what to do > for my emulator code. I hope I can post some more things back in the > future. Would the multi-segment stuff be useful for more people? Is > there an obvious reason to avoid multi-segments? Well, I've proposed some time ago to use segmentation for UML, but the proposal was dropped "because an access through segmentation is a little slower". Quite frankly, I'm quite unconvinced (because any access passes through segmentation, even if normally segments have a 0 base and a disabled limit); beyond, Xen uses segmentation in the same way that I was proposing for UML, IIRC. -- Paolo Giarrusso, aka Blaisorblade Skype user "PaoloGiarrusso" Linux registered user n. 292729 http://www.user-mode-linux.org/~blaisorblade ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel