I don't run TT mode UMLs. So, no I haven't tried that.
I don't know about the sighandler. The program runs as it was listed. It is running on a 'regular' server (Debian, and/or WBL3) with other processes running. And the host servers happen to be running other UMLs. I don't know if that information helps. (i.e. can a sighandler in another process on the UML or on the host cause this problem?)
I'd be happy to try out a skas patch - preferably if it just applied to the guest ;) To see if it fixes things or not.
Regards, Peter
Bodo Stroesser wrote:
Peter wrote:
I don't recall seeing an error where the obs and exp were equal. I saw plenty where they were not equal.
The code is pretty simple:
double observed = a[i];
double expected = (double) i;
if (observed != expected) {
printf ("failed at i=%u, k=%u (obs %.18g vs exp %.18g)\n",i, k,observed, expected);
};
Maybe it is just some unexpected handling on the != operator with doubles?
Are you seeing cases where obs!=exp? And difference if you run it on a uni-proc server vs. a smp server?
No. I just found a problem in SKAS sigcontext handling.
The fp-registers are not restored correctly. Then, I remembered the problems
with memtest, which uses floatpoint.
I modified the test to have sighandlers being started evey 10ms, using
the fpu in the sighandler. Then, *many* error occured in my "memtest2".
Without the modification, I couldn't reproduce the problems.
Two questions:
1) are you able to reproduce the problems in TT-mode?
2) do you have any idea, why a signal handler using floatpoint should be started,
while running the original memtest?
Have attached my memtest2.c
Regards Bodo
P.S.: Mail with full description of the problem I've found will follow soon.
Regards, Peter
Bodo Stroesser wrote:
Carl wrote:
Hi,
Running the piece of code from the URL below is generating errors on various UML kernels:
http://downloads.rimuhosting.com/memtest.c
Kernels tested are: 2.4.27, 2.4.27-bs1, 2.6.9-bb4.
Different UML host servers have been tried too, and only UMLs running on
SMP (dual Xeon) servers seem to have the problem (P4s with HT are fine).
Can anyone else reproduce the errors? Any ideas?
Thanks, Carl
Do you see messages like this one
"failed at i=17240, k=85 (obs 17240 vs exp 17240)"
with obs and exp being equal?
------------------------------------------------------------------------
#include <stdio.h> #include <stdlib.h> #include <signal.h> #include <sys/time.h>
#define N (20*1024)
void sighdlr(int sig) { double a;
a = 256;
double observed = a; double expected = 257;
if ( observed == expected ) printf("Error in sighdlr()\n"); }
int main (void) { size_t i, k; struct itimerval itimer = { { 0, 10000}, { 0, 10000} };
signal(SIGALRM, sighdlr); setitimer( ITIMER_REAL, &itimer, NULL);
for (k = 1; k < 1000; k++) { double *a = malloc (N * sizeof (double)); if (a == 0) { printf ("malloc failed at k=%u\n", k); exit (1); }
for (i = 0; i < N; i++) { a[i] = (double) i; double observed = a[i]; double expected = (double) i; if (observed != expected) { printf ("failed at i=%u, k=%u (obs %.18g vs exp %.18g)\n", i, k, observed, expected); } }
for (i = 0; i < N; i++) { double observed = a[i]; double expected = (double) i; if (observed != expected) { printf ("failed at i=%u, k=%u (obs %.18g vs exp %.18g)\n", i, k, observed, expected); // exit (1); } } free (a); } exit (0); }
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/
_______________________________________________
User-mode-linux-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel