Messages in this thread | | | Date | Sun, 03 Nov 2002 01:47:07 +0300 | From | Stas Sergeev <> | Subject | Re: Larger IO bitmap? |
| |
Hello.
Jos Hulzink wrote: > Increasing the IO bitmap size has huge effects on your Task State Segment > size. It sure is possible to increase that size, but be aware that this > means you are using megabytes for your TSS's only ! As far as I can read the code (not too far actually, so correct me please), we have a per-process IO bitmap copy, which gets copied into a per-cpu TSS upon a task switch. That means that you are right about the overhead, but at the same time I see nothing that keeps us from a dynamic memory allocation for the per-process copy, as soon as an ioperm() is called. Is this possible?
> Running iopl(3) isn't that bad, as long as your code knows what it is > doing... > Ioperm is only needed for virtual 8086 mode (aka DOS emulation mode) > With this in mind, dosemu is the only reason why the bitmap should be > extended. Well, at least I think that the VESA driver of X also uses v86 for the video bios invocations. It doesn't sucks as badly as dosemu does probably because even using vm86(), they still can keep IOPL==3, dosemu can't. So I think that would still be an improvement, probably not so noticeable as it could be for dosemu, but still.
> In my humble opinion, dosemu is not important enough to make TSS's huge > bloated things by default. What if we treat dosemu not as a single program, but as all that progs that can work under it and require VESA?:)
> Well... it might be an option in the kernel on x86 systems: [ ] bloat > kernel > memory usage with huge TSS's, but I really thing this should not be the > default way to go. By any means I am not going to pollute the memory by a useless per-process IO bitmap copies. As we have a per-cpu TSS (thanks for the hint, Denis), we'd have bloat only on a per-process copies, but I wonder if it is possible to avoid them except for the processes that require it?
I wouldn't ask so much and just try the things out, but for the one thing: what must be done, besides increasing the IO_BITMAP_SIZE const of a processor.h, in order to get the larger IO bitmap right now? As I want to experement a bit, I need to get it large at first, no matter how much memory will it eat. But how can I do even that?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |