Hi...

> >Do not ask me why CR4 TSD does not work for v86 tasks on some CPUs.
> Because Intel made a mistake with it that wasn't fixed until the Pentium 
> Pro, and AMD slavishly followed the error?

No idea, sorry. Maybe some misunderstanding about IOPL sensitivity
versus RDTSC? I would like to add that I can use RDTSC in Linux DOSEMU
v86 tasks. Remember: EMM386 does not modify CR4 (at least not in any
way which I have seen anywhere in the source) and STILL RDTSC, which
worked in real mode and which works in DOS extenders, stops to work
for the v86 task as soon as you are in EMM386.

Instead of doing long research about v86 versus CR4 TSD interaction on
old CPU generations I would prefer a small patch to make EMM386 emulate
RDTSC. Please. Thanks!

> EMM386 used to have a VCPI reserve that was 1/8th, not 1/2, of available 
> memory, with a maximum of 12M.  So what happened?  I got messages from 
> people complaining...

Ah. Okay. 1/8th would be okay, too. Or even "EMM386 will not load, as
you are trying to use a very old HIMEM. Update or specify EMM=... option
to use old-compatible manual mode.".

PS about RDTSC: A tight loop (12 bytes) with RDTSC inside
takes 2600 cycles per round in DOSEMU, while a very similar loop
with RDMSR (which already is emulated in EMM386) in plain DOS
takes 300 cycles per round. Suggests that DOSEMU has to emulate
RDTSC, too, so even DOSEMU has the problem that CR4 TSD does not
properly affect v86 tasks (DOSEMU itself is ring 3, so CR4 TSD
must be in "allow RDTSC" position, it only fails to work for v86).

Eric



-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to