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