Linux MS DOS discussions
 help / color / mirror / Atom feed
* Cobol app takes 100% CPU
@ 2008-03-26 12:55 Rodrigo Real
  2008-03-26 15:28 ` Frank Cox
  0 siblings, 1 reply; 13+ messages in thread
From: Rodrigo Real @ 2008-03-26 12:55 UTC (permalink / raw)
  To: linux-msdos


Hello,

I am quiet here for sometime, so I am not exactly a new user of the
list, but a quiet one...

I've been using dosemu+freedos for a Cobol application for 4 or 5
years, we have a dedicated server for that aplication and everybody
rsh to it to run the application. In the begining we had 10 to 12
users, now we have 26.

This cobol app always tried to eat the most of cpu it can, with 10 or
12 users the situation were acceptable, but now with 26 it is been
very hard to work.

I tried many approaches, the computer is a AMD 64 running a 2.6.16
kernel (tried many kernels also), dosemu 1.2.2-8. I swapped an IDE
disk for two SATA in stripping. But nothing...

It seems that the cobol app keeps reading the keyboard all the time, I
talked to the app programmer and he said they use the ACCEPT call,
they don't do the loop, maybe accept does... I don't know. The funny
thing is that in Windows it just doesn't happen, the cpu stays in 1%
of usage.

My guess is that the problem is with some emulation that dosemu  does,
but I don't know what to think anymore.

Does anybody have any ideia?

Thanks,
Rodrigo

^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: Cobol app takes 100% CPU
@ 2008-03-30 14:12 Manfred Scherer
  2008-03-31 13:46 ` Rodrigo Real
  0 siblings, 1 reply; 13+ messages in thread
From: Manfred Scherer @ 2008-03-30 14:12 UTC (permalink / raw)
  To: linux-msdos


Hi all,
I have had the the same problem with other programs i.e. dbase 3+ word 4.0 ...
in dosemu 1.3.4 I have made a small change in
src/base/bios/int16.c  in function check_key_available():

here is the code for dosemu 1.3.4, I think this is equal to 1.4.0:

static unsigned check_key_available(int extended)
{
  unsigned keyptr = get_key(extended);
  if(keyptr == -1) {
    if(!port60_buffer || (port60_buffer & 0x80))
      trigger_idle();
    else
      reset_idle(0);
    /* 2006-12-13
     * dbase3+, word4.0, .... CPU-load is to heavy during idle. --ms
     * idle(500, 20, 0, INT2F_IDLE_USECS, "int16");
     */
    idle(10, 20, 0, INT2F_IDLE_USECS, "int16");
  } else {
    reset_idle(1);
  }
  return get_key(extended);
}

I think that may help for Cobol too.

Manfred


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2008-03-31 13:46 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-26 12:55 Cobol app takes 100% CPU Rodrigo Real
2008-03-26 15:28 ` Frank Cox
2008-03-27 12:11   ` Rodrigo Real
2008-03-27 14:20     ` Frank Cox
2008-03-27 15:57     ` Bart Oldeman
2008-03-27 17:53       ` Rodrigo Real
2008-03-27 17:53     ` Mike McCarty
2008-03-27 18:11       ` Rodrigo Real
2008-03-30 20:37         ` Jan Kandziora
2008-03-31  1:18           ` Rodrigo Real
  -- strict thread matches above, loose matches on Subject: below --
2008-03-30 14:12 Manfred Scherer
2008-03-31 13:46 ` Rodrigo Real
2008-03-31  9:47   ` Manfred Scherer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox