From: Henry N. <Henry.Ne@Arcor.de> - 2008-05-11 10:37:51
|
Paolos test source: > int pid; > > int main() > { > pid=fork(); > if (pid==0) > { > while (1) printf("X"); > } > else > { > char c[1024]; > read(STDIN_FILENO,c,1); > kill(pid,9); > } > } This have fixed now. See attached patch. In SVN this are the revision 1041, 1042, 1043 New executables: http://www.henrynestler.com/colinux/testing/devel-0.8.0/20080511-ntconsoleflood/ I had a Vista Home Premium for short time this day and was seen the problem. This was a Dual Core CPU, that improved the problem. We have a "reactor"-queue, that stores messages from Linux, if the user land task (ntconsole) on host is busy. Under Windows XP the queue have 1 or 2 entries if the ntconsole is flooded with Paolos source. Under Vista this queue goes up to 300.000 and many more entries, and eats 800MB or more memory. After running Paolos program one minute and press enter, than the key is registered, but the ntconsole is printing all the stuff from queue first. This can be long time. After minimise the nt-console, the enter key will be seen faster. I feel, this is the problem with Dual Core: The core with colinux runs faster as the ntconsole on other core can print. Is the ntconsole slower under Vista as under XP? Or Vista has a better event managment, and the "ReadFile" will never get an IO_PENDING, as long we have data on the kernel side. The changed source stops this problem now. Colinux driver goes into sleep for 100ms, if the user task is busy and we have 1024 messages in queue. This makes the flow better and stops from eating all the memory we have. The example source and the hanging "hexdump /dev/cobd1" from Paolo is fixed now. But, I don't know why Mark have no keyboard response at login prompt. Mark, please run on one command promt: mode con lines=200 cols=100 colinux-debug-daemon -d -p -s misc=31 Than start coLinux. Don't worry about XML code. The output should stop, if your Login promot is seen in the console. Interesting are only the lines if you pressing a key in the linux console. In the debugger you should seen such lines on every key pressing: process_key_event vkey:13 down code:1c flags:20 This debugging is only availabe in the executables from 20080511-ntconsoleflood. -- Henry N. |