From: Herbert Poetzl (herbert_at_13thfloor.at)
Date: Wed 26 Nov 2003 - 10:40:09 GMT
On Wed, Nov 26, 2003 at 10:25:27AM +0000, Jonathan Sambrook wrote:
> At 01:12 on Tue 25/11/03, herbert_at_13thfloor.at masquerading as 'Herbert Poetzl' wrote:
> > > At this point you're probably thinking something like: "So what? He's
> > > b*ll1xed up his moddifications to the vanilla s_context stuff. What's
> > > this got to do with me?". 
> > 
> > never would think that ... 8-)
> 
> Heavens, I did for ages :) 
> 
> Nonetheless the problem occurs with vanilla kernel + vanilla s_context patch,
> but only under unusual circumstances.
> 
> 
> > > Having battered my head against this problem for long enough, I've
> > > finally gotten around to re-writing my perl script in C so as to test a
> > > vanilla 2.4.20 + vanilla ctx17f. It locks up like the proverbial kipper
> > > - kgdb still functions, but the scheduler ain't called.
> > > 
> > > Any assistance gratefully received - you may just save my sanity :)
> > 
> > hmm .. could you try with vs1.00 adn vs1.1.5 on 2.4.22 too?
> 
> Problem still there in 2.4.22 + vs1.00. Will try 1.1.5 later on. 
okay, thanks, could you provide the yet-unknown
vutil.h, this way, I could test your program 8-)
> (Side benefit of testing on 2.4.22: it forced me to update to kgdb 1.6.
> 1.5 does an annoying kgdbreg=NULL, leading to all sorts of debugging
> trickery to find out what's going on in interrupt land.)
TIA,
Herbert
PS: maybe a chat on the irc channel would speed
this up?
> 
> Jonathan
> 
> 
> > 
> > will have a look at it, when I've got some sleep ...
> > 
> > TIA,
> > Herbert
> > 
> > 
> > > Regards,
> > > Jonathan
> > > 
> > > //----------------------------------------------------------------------
> > > 
> > > #include <stdio.h>
> > > #include <unistd.h>
> > > #include "vutil.h"
> > > 
> > > void start_ctx (int ctx_in) {
> > >   int ctxs[16];
> > >   int pid = fork ();
> > >   int ctx = 0;
> > > 
> > >   ctxs[0] = -1;
> > > 
> > >   switch (pid) {
> > >     case 0:
> > >     case -1:
> > >       break;
> > > 
> > >     default:
> > >       ctx = call_new_s_context(1,ctxs,0,0);
> > >       printf ("ctx: %d\n", ctx);
> > >       exit (0);
> > >   }
> > > }
> > > 
> > > void loop () {
> > >   printf( "loop()\n");
> > >   while (1) {
> > >     start_ctx (0);
> > >   }
> > > }
> > > 
> > > int main (int argc, char ** argv) {
> > > 
> > >   int i = 2;
> > > 
> > >   signal (SIGCHLD, SIG_IGN);
> > > 
> > >   while (i--) {
> > >     if (!fork()) {
> > >       loop ();
> > >     }
> > >   }
> > > 
> > >   while (1) {
> > >     printf ("%d\r", ++i);
> > >     fflush (stdout);
> > >     sleep (1);
> > >   }
> > > }
> > > 
> > > //----------------------------------------------------------------------
> > > 
> > > 
> > > 
> > > -- 
> > >                    
> > >  Jonathan Sambrook 
> > > Software  Developer 
> > >  Designer  Servers
> > 
> > 
> > _______________________________________________
> > Vserver mailing list
> > Vserver_at_list.linux-vserver.org
> > http://list.linux-vserver.org/mailman/listinfo/vserver
> 
> -- 
>                    
>  Jonathan Sambrook 
> Software  Developer 
>  Designer  Servers
_______________________________________________
Vserver mailing list
Vserver_at_list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver