Messages in this thread | | | From | "Kendall Bennett" <> | Date | Fri, 17 Jul 1998 13:12:49 -0800 | Subject | Re: I/O permissions for V86 tasks (Enhanced V86 Mode)? |
| |
Hi Ian and others,
After Ian's last email I started investigating what would be necessary to change the kernel code such that it has a variable sized I/O bitmap so that we can avoid the overhead of an 8Kb I/O bitmap for evert task. It appears that in the latest kernel development sources (I am looking at 108; I have yet to install 109) the tss.bitmap pointer is initially set to point past the end of the TSS structure so that it causes a seg fault for any I/O access (unless of course iopl(3) is in effect). The bitmap itself is not actually initialised until the first time a thread calls the ioperm() system call.
Now this means that the kernel *could* be modified such that the I/O bitmap is not allocated at all by default for a task, and the allocation of the I/O bitmap is staved off until a task calls the ioperm() system call. In order for this to work the I/O bitmap itself would need to be stored at the end of the task structure so that it can be variable in size, but I don't know if this is possible (is it?). Then the default size for a task can include a basically empty I/O bitmap, and the ioperm() system call can reallocate the task_struct to include the larger I/O bitmap as necesary.
Also if we do it that way, we can simply have the ioperm() system call allocate a full 8Kb I/O bitmap for all tasks that request specific I/O permissions, and those tasks are going to be few and far between (DOSEMU stuff mostly, since the X server will doing an iopl(3)).
Any comments on this? All the stuff is already in place in the current development kernels, so all I need to figure out is how to place the I/O bitmap at the end of the task structure and reallocate the memory for the task structure to include the enlarges I/O bitmap.
Or perhaps I am missing something really obvious here?
Regards,
+--------------------------------------------------------------------------+ | SciTech Software - Building Truly Plug'n'Play Software! | +--------------------------------------------------------------------------+ | Kendall Bennett | Email: KendallB@scitechsoft.com | | Director of Engineering | Phone: (530) 894 8400 | | SciTech Software, Inc. | Fax : (530) 894 9069 | | 505 Wall Street | ftp : ftp.scitechsoft.com | | Chico, CA 95928, USA | www : http://www.scitechsoft.com | +--------------------------------------------------------------------------+
- 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.altern.org/andrebalsa/doc/lkml-faq.html
| |