Re: I/O permissions for V86 tasks (Enhanced V86 Mode)?

Kendall Bennett (KendallB@scitechsoft.com)
Fri, 17 Jul 1998 13:12:49 -0800


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