Re: [uml-devel] [PATCH 8/10] UML - Maintain own LDT entries

From: Bodo Stroesser
Date: Tue Nov 08 2005 - 10:25:24 EST


Blaisorblade wrote:
On Monday 07 November 2005 13:20, Bodo Stroesser wrote:

Blaisorblade wrote:

On Monday 31 October 2005 05:39, Jeff Dike wrote:

From: Bodo Stroesser <bstroesser@xxxxxxxxxxxxxxxxxxx>


Or at least so I think (I must still give a proper look afterwards, and
I'll post patches). Actually it seems that this is done on purpose, but I
don't agree too much on this. I will see.


From the beginning my new code for SKAS included the checks/buffering you
later inserted for TT and SKAS. So this patch is a second version adapted
to your changes. It shifts your improvements into TT path only (where I
didn't do any changes in my old patch), while it uses my own stuff for
SKAS. Thus the patch doesn't really revert your improvements, but restricts
it to TT. As in SKAS0 UML now holds its own LDT data, there is no need for
buffering in this case. So I think it makes sense to have separate code for
SKAS.

Yep, ok - I'm undecided about the new code for SKAS3, but it may make sense (i.e. no opinion).

Instead, I have another question: is there a proper reason for using the processor format for storing the info and translating it back to (struct user_desc)? I am planning to avoid this double translation because I don't like it. Any opinion?

In my opinion there is no reason to change the current implementation for SAKS3/0.
Note: if someone reads LDT via [sys_]modify_ldt(), he will receive the requested
data in "processor format", that is LDT-descriptors. He will receive a list of
descriptors starting at the first descriptor of the LDT, thus no entry number is
needed in the enties.
The only case that uses user_desc is when writing one desriptor via modify_ldt().
modify_ldt(WRITE) exactly writes one LDT-descriptor, so user_desc must contain
the number of the entry to write. Thus user_desc is bigger than LDT descriptor.
It also uses an other data layout resulting in double the size of LDT-descriptor.
So I think it doesn't make sense to store user_desc. We save memory storing the
resulting LDT-descriptors, which then are copied transparently on modify_ldt(READ).
Conversion between user_desc and LDT-entry is done on modify_ldt(WRITE) in SKAS0
only. No other conversions are done in UML.

Bodo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/