Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Feb 2005 00:28:47 -0800
From:      "Ashwin Chandra" <ashcs@ucla.edu>
To:        <freebsd-hackers@freebsd.org>
Subject:   Kernel Monitor?
Message-ID:  <000c01c5126f$354f81c0$58e243a4@ash>

next in thread | raw e-mail | index | archive | help
Hi everyone,
Im having issues with the following code running as a kernel thread. =
when i do the prinft (which i traced with kgdb) it crashes...but those =
two variables that i print out, are fine if i do comparisons or store =
them into variables...only printing them causes a panic. anyone have any =
ideas in what im doing wrong?






static void     kernmon(void);
static void     kernmon_thread(void);
static void     kern_print(void);

static struct kproc_desc kernmon_kp =3D {
        "kernmon",
        kernmon_thread,
        NULL
};

SYSINIT(kernmon, SI_SUB_KERN_MON, SI_ORDER_FIRST, kproc_start, =
&kernmon_kp)

static void
kernmon(void)
{
  kern_print();
}

static void
kernmon_thread(void)
{
  int nowake =3D 0;
  for (;;) {
    kernmon();
    tsleep(&nowake, curthread->td_priority, "-", 7*hz);

  }
}

static void
kern_print(void)
{
  struct proc *p;

  FOREACH_PROC_IN_SYSTEM(p) {
    mtx_lock(&Giant);
    PROC_LOCK(p);
    printf("%d %d\n", (int)p->p_stats->p_ru.ru_isrss, =
(int)p->p_stats->p_ru.ru_idrss);
    PROC_UNLOCK(p);
    mtx_unlock(&Giant);
  }


}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000c01c5126f$354f81c0$58e243a4>