Dosemu and clipper applications eating all CPU
Hello.
Quoted 1 line · Maximiliano Curia
Yes, that dosemu doesn't detect the clipper idle calls.
OK, some nice guy at SF finally provided a clipper-based program for testing (that's why I like the SF tracker) and I was able to have a look at what it does myself. Indeed it calls int21h/1Ch, although so infrequently, that it doesn't seem to be usefull here.
It calls int16h/11h a bit more frequently, although also rather rarely.
The attached patch makes it to release the CPU a little, although perhaps still not enough.
Also note that clipper will work in protected mode only in dosemu 1.3.1. On any other versions it can work in real mode only, which may have a different CPU loads.
base/bios/int16.c +1 -1
@@ -126,7 +126,7 @@ trigger1=0 ;if (trigger1 >= config.hogthreshold*500 ) {if (oldESP==_ESP) { -if (++trigger >= config.hogthreshold*20 ) { +if (trigger++ >= (config.hogthreshold -1 ) *20 ) {usleep (INT2F_IDLE_USECS ); trigger=0 ; keyptr =get_key (extended);
Scanned by evaluation version of Dr.Web antivirus Daemon
http://drweb.ru/unix/
Stas,
it probably depends on the linker used to create the clipper app, here we use blinker to create a protect mode application, and this application calls src/base/async/int.c function ms_dos case 0x2C.
In 1.1.3 (which is the dosemu we use) I had to make the changes I told you, and I use hog_threshold(0) to have the clipper app to give back all the time it doesn't use.
But, on OS/2 I have the possibility to give back the rest of my cpu time slice, while in linux it usleep()s a fixed amount of time and this makes the program sluggish without my changes.
regards.
Stas Sergeev ha scritto:
Quoted 37 lines
Hello.
Quoted 1 line · Maximiliano Curia
Yes, that dosemu doesn't detect the clipper idle calls.
OK, some nice guy at SF finally provided a clipper-based program for testing (that's why I like the SF tracker) and I was able to have a look at what it does myself. Indeed it calls int21h/1Ch, although so infrequently, that it doesn't seem to be usefull here.
It calls int16h/11h a bit more frequently, although also rather rarely.
The attached patch makes it to release the CPU a little, although perhaps still not enough.
Also note that clipper will work in protected mode only in dosemu 1.3.1. On any other versions it can work in real mode only, which may have a different CPU loads.------------------------------------------------------------------------------
base/bios/int16.c Sat Mar 13 01:15:29 2004 renamed from base/bios/int16.c Sat Mar 13 00:40:05 2004 +1
-1@@ -126,7 +126,7 @@ trigger1=0; if(trigger1 >= config.hogthreshold*500) { if(oldESP==_ESP) { - if (++trigger >= config.hogthreshold*20) { + if (trigger++ >= (config.hogthreshold - 1) * 20) { usleep(INT2F_IDLE_USECS); trigger=0; keyptr = get_key(extended);
Quoted 3 lines
------------------------------------------------------------------------------
Scanned by evaluation version of Dr.Web antivirus Daemon
http://drweb.ru/unix/
--
__________
| | | |__| [email protected] |_|_|_|____| Team OS/2 Italia