Dear all :
          I am trying to run Web proxy server , squid , on FreeBSD using
Async-io

   and I modified the FreeBSD source file "vfs_aio.c" ,

   but  when I  run  "squid" ,  it  was killed by the SIGPROF or SIGVTALRM
signal

   I knew the the two signal  was produced by  hardclock() in kern_clock()

  by the following coding

      if (CLKF_USERMODE(frame) &&
                    timevalisset(&pstats->p_timer[ITIMER_VIRTUAL].it_value)
&&
                    itimerdecr(&pstats->p_timer[ITIMER_VIRTUAL], tick) == 0)
                {
                           psignal(p,SIGVTALRM);
                }
                if (timevalisset(&pstats->p_timer[ITIMER_PROF].it_value) &&
                    itimerdecr(&pstats->p_timer[ITIMER_PROF], tick) == 0)
                {
                        psignal(p, SIGPROF);
                }


so I try to add time interval in the file "vfs_aio.c"
to let   p->p_stats->p_timer[ITIMER_VIRTUAL] > 0
and        p->p_stats->p_timer[ITIMER_PROF] >0



    if(p->p_stats->p_timer[ITIMER_VIRTUAL].it_value.tv_sec < 50)
        {
                getmicrouptime(&ctv);
                timevaladd(&aitv.it_value, &ctv);
                p->p_stats->p_timer[ITIMER_VIRTUAL]=aitv;
        }

     if(p->p_stats->p_timer[ITIMER_PROF].it_value.tv_sec < 50)
        {
                getmicrouptime(&ctv);
                timevaladd(&aitv.it_value, &ctv);
                p->p_stats->p_timer[ITIMER_PROF]=aitv;
        }

Is the solution correct ?
how many timeval should I add ??
Thanks in Advance
                                                  Richard_Lin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to