After applying Charles' fix to handleRCP() from milestone 150c83 to a copy of milestone f9bda0, I have a fully functional version of the IPC-less dps8m emulator running under Windows.
It is extremely slow compared to milestone 397201, which I am running in Ubuntu Mate 15.04. It feels like 100 students are all logged in compiling FORTRAN programs.
If I force processor affinity to a single core, it runs that core at 100%. If I set two cores, the total is a little more than 100%.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
--
Harry W. Reed | Never ascribe to malice that which can
doon386@reedclan.org | adequately be explained by stupidity.
+--------------------+--------------------+----------------------------------+
"Of all tyrannies a tyranny sincerely exercised for the good of its victims
may be the most oppressive. It may be better to live under robber barons
than under omnipotent moral busybodies, The robber baron's cruelty may
sometimes sleep, his cupidity may at some point be satiated; but those who
torment us for own good will torment us without end, for they do so with
the approval of their own conscience." - C.S. Lewis, God in the Dock
+--------------------+--------------------+----------------------------------+
"Truth often suffers more by the heat of its defenders than the arguments
of its opponents." -- Sir William Penn
"Right is right, even if everyone is against it; and wrong is wrong, even
if everyone is for it." -- Sir William Penn
+--------------------+--------------------+----------------------------------+
If the assumptions are wrong, the conclusions aren't likely to be very good.
Corollary: If men neglect to pay plumbers and philosophers neither their pipes
nor their theories will hold water.
+--------------------+--------------------+----------------------------------+
When people start to comment on the form of the message, it is a sign that they
have problems accepting the truth of the message -- ???
+--------------------+--------------------+----------------------------------+
"It is proof of a base and low mind for one to wish to think with the masses
or majority, merely because the majority is the majority. Truth does not
change because it is, or is not, believed by a majority of the people."
Giordano Bruno
+--------------------+--------------------+----------------------------------+
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw
I did run a test to see if was a rarely used doFault path (like the "pl1 -ls" issue) by instrumenting each call to doFault, running the test, and un-instrumenting the commonly called paths; repeat until only unusual paths remain. This left code that failed the test, but never indicated that a rarely taken path was used.
That test should have revealed if the LUF code was at issue; it did not. Trying removing the LUF code anyway. Waiting on the results of that test.
Breaking the install script into two pieces, so as to allow running just the failing sequence makes the problem go away, implying that the issue is that the emulator is behaving differently on a reboot than a restart.
I got a ambiguous result during the bisection; one commit failed, then later ran; either operator error, or a race condition.
One of the tests scheduled to run is to turn steady_clock back on; it that fixes the issue, then a race condition is very likely.
ecddde8 just passed the test. Last time it failed.
Unsure on how to proceed. Testing intermittents is hard.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
"Unsure on how to proceed. Testing intermittents is hard."
Heh, yup. Let's see it could be ....
1) an emulator bug; or uninitialized variable.
2) a needed, but unimplemented feature;
3) a compiler bug (what compiler does this show up under - gcc or clang?);
4) a Multics bug;
5) a Multics race condition.
I did run a test to see if was a rarely used doFault path (like the
"pl1 -ls" issue) by instrumenting each call to doFault, running the
test, and un-instrumenting the commonly called paths; repeat until
only unusual paths remain. This left code that failed the test, but
never indicated that a rarely taken path was used.
That test should have revealed if the LUF code was at issue; it did
not. Trying removing the LUF code anyway. Waiting on the results of
that test.
Breaking the install script into two pieces, so as to allow running
just the failing sequence makes the problem go away, implying that the
issue is that the emulator is behaving differently on a reboot than a
restart.
I got a ambiguous result during the bisection; one commit failed, then
later ran; either operator error, or a race condition.
One of the tests scheduled to run is to turn steady_clock back on; it
that fixes the issue, then a race condition is very likely.
ecddde8 just passed the test. Last time it failed.
Unsure on how to proceed. Testing intermittents is hard.
Since that info goes to stdout but not the specified log file, I'll have to run both again, and hope that the cygwin console window buffer will hold all the lines so I can copy the buffer to the clipboard.
Unless there's a setting I can change to force everything to the log file.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
--
Harry W. Reed | Never ascribe to malice that which can
doon386@reedclan.org | adequately be explained by stupidity.
+--------------------+--------------------+----------------------------------+
"Of all tyrannies a tyranny sincerely exercised for the good of its victims
may be the most oppressive. It may be better to live under robber barons
than under omnipotent moral busybodies, The robber baron's cruelty may
sometimes sleep, his cupidity may at some point be satiated; but those who
torment us for own good will torment us without end, for they do so with
the approval of their own conscience." - C.S. Lewis, God in the Dock
+--------------------+--------------------+----------------------------------+
"Truth often suffers more by the heat of its defenders than the arguments
of its opponents." -- Sir William Penn
"Right is right, even if everyone is against it; and wrong is wrong, even
if everyone is for it." -- Sir William Penn
+--------------------+--------------------+----------------------------------+
If the assumptions are wrong, the conclusions aren't likely to be very good.
Corollary: If men neglect to pay plumbers and philosophers neither their pipes
nor their theories will hold water.
+--------------------+--------------------+----------------------------------+
When people start to comment on the form of the message, it is a sign that they
have problems accepting the truth of the message -- ???
+--------------------+--------------------+----------------------------------+
"It is proof of a base and low mind for one to wish to think with the masses
or majority, merely because the majority is the majority. Truth does not
change because it is, or is not, believed by a majority of the people."
Giordano Bruno
+--------------------+--------------------+----------------------------------+
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw
After applying Charles' fix to handleRCP() from milestone 150c83 to a copy of milestone f9bda0, I have a fully functional version of the IPC-less dps8m emulator running under Windows.
It is extremely slow compared to milestone 397201, which I am running in Ubuntu Mate 15.04. It feels like 100 students are all logged in compiling FORTRAN programs.
If I force processor affinity to a single core, it runs that core at 100%. If I set two cores, the total is a little more than 100%.
I believe that the emulator is running slowly, very possibly related to the "TTF" hang issue.
It might be interesting to diff the install procedure logs between d58ea5 and bleeding edge, paying attention to the cycle and fault counts.
Last edit: Charles Anthony 2015-07-10
What have you determined about the TTF hang issue?
On 7/10/15 7:36 AM, Charles Anthony wrote:
--
Harry W. Reed | Never ascribe to malice that which can
doon386@reedclan.org | adequately be explained by stupidity.
+--------------------+--------------------+----------------------------------+
"Of all tyrannies a tyranny sincerely exercised for the good of its victims
may be the most oppressive. It may be better to live under robber barons
than under omnipotent moral busybodies, The robber baron's cruelty may
sometimes sleep, his cupidity may at some point be satiated; but those who
torment us for own good will torment us without end, for they do so with
the approval of their own conscience." - C.S. Lewis, God in the Dock
+--------------------+--------------------+----------------------------------+
"Truth often suffers more by the heat of its defenders than the arguments
of its opponents." -- Sir William Penn
"Right is right, even if everyone is against it; and wrong is wrong, even
if everyone is for it." -- Sir William Penn
+--------------------+--------------------+----------------------------------+
If the assumptions are wrong, the conclusions aren't likely to be very good.
Corollary: If men neglect to pay plumbers and philosophers neither their pipes
nor their theories will hold water.
+--------------------+--------------------+----------------------------------+
When people start to comment on the form of the message, it is a sign that they
have problems accepting the truth of the message -- ???
+--------------------+--------------------+----------------------------------+
"It is proof of a base and low mind for one to wish to think with the masses
or majority, merely because the majority is the majority. Truth does not
change because it is, or is not, believed by a majority of the people."
Giordano Bruno
+--------------------+--------------------+----------------------------------+
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw
Still under investigation.
Appears to be:
I did run a test to see if was a rarely used doFault path (like the "pl1 -ls" issue) by instrumenting each call to doFault, running the test, and un-instrumenting the commonly called paths; repeat until only unusual paths remain. This left code that failed the test, but never indicated that a rarely taken path was used.
That test should have revealed if the LUF code was at issue; it did not. Trying removing the LUF code anyway. Waiting on the results of that test.
Breaking the install script into two pieces, so as to allow running just the failing sequence makes the problem go away, implying that the issue is that the emulator is behaving differently on a reboot than a restart.
I got a ambiguous result during the bisection; one commit failed, then later ran; either operator error, or a race condition.
One of the tests scheduled to run is to turn steady_clock back on; it that fixes the issue, then a race condition is very likely.
ecddde8 just passed the test. Last time it failed.
Unsure on how to proceed. Testing intermittents is hard.
"Unsure on how to proceed. Testing intermittents is hard."
Heh, yup. Let's see it could be ....
1) an emulator bug; or uninitialized variable.
2) a needed, but unimplemented feature;
3) a compiler bug (what compiler does this show up under - gcc or clang?);
4) a Multics bug;
5) a Multics race condition.
Fun, fun, fun.....
H
On 7/10/15 4:48 PM, Charles Anthony wrote:
Since that info goes to stdout but not the specified log file, I'll have to run both again, and hope that the cygwin console window buffer will hold all the lines so I can copy the buffer to the clipboard.
Unless there's a setting I can change to force everything to the log file.
I've re-enabled the steady clock and trying to boot the system I built.
BTW this system boots with the MR12.3X I made yesterday, which nukes the clock checking from scs_and_clock_init.pl1.
Cool. So, Is this the 1st source change to Multics in 15 yrs or so?
Something of a milestone, no?
On 7/10/15 5:54 PM, Daiyu Hurst wrote:
--
Harry W. Reed | Never ascribe to malice that which can
doon386@reedclan.org | adequately be explained by stupidity.
+--------------------+--------------------+----------------------------------+
"Of all tyrannies a tyranny sincerely exercised for the good of its victims
may be the most oppressive. It may be better to live under robber barons
than under omnipotent moral busybodies, The robber baron's cruelty may
sometimes sleep, his cupidity may at some point be satiated; but those who
torment us for own good will torment us without end, for they do so with
the approval of their own conscience." - C.S. Lewis, God in the Dock
+--------------------+--------------------+----------------------------------+
"Truth often suffers more by the heat of its defenders than the arguments
of its opponents." -- Sir William Penn
"Right is right, even if everyone is against it; and wrong is wrong, even
if everyone is for it." -- Sir William Penn
+--------------------+--------------------+----------------------------------+
If the assumptions are wrong, the conclusions aren't likely to be very good.
Corollary: If men neglect to pay plumbers and philosophers neither their pipes
nor their theories will hold water.
+--------------------+--------------------+----------------------------------+
When people start to comment on the form of the message, it is a sign that they
have problems accepting the truth of the message -- ???
+--------------------+--------------------+----------------------------------+
"It is proof of a base and low mind for one to wish to think with the masses
or majority, merely because the majority is the majority. Truth does not
change because it is, or is not, believed by a majority of the people."
Giordano Bruno
+--------------------+--------------------+----------------------------------+
"The power of accurate observation is called cynicism by those
who have not got it." - George Bernard Shaw