Writing the "most generic" dtrace script possible (please correct me
if wrong :-)):

pid$target:::entry,
pid$target:::return
/ execname == "YYYYY" /
{
        printf("u:");
}

fbt::*:entry,
fbt::*:return
/ execname == "YYYYY" /
{
        printf("k:");
}

I managed to trace the transition from user to kernel and vice versa:

  1   6847            sys_rtt_common:return k:
  1  67621                mutex_lock:return u:
  1   6846             sys_rtt_common:entry k:
  1   6847            sys_rtt_common:return k:
  1  62685           _malloc_unlocked:entry u:
  1   6846             sys_rtt_common:entry k:
  1   6847            sys_rtt_common:return k:
  1  62693                  cleanfree:entry u:
  1   6846             sys_rtt_common:entry k:
  1   5746                       trap:entry k:
  1   6940               do_interrupt:entry k:
  1   6842              cpu_idle_exit:entry k:
  1   6843             cpu_idle_exit:return k:
  1  26906            apic_intr_enter:entry k:
  1   6190             psm_get_cpu_id:entry k:
  1   6191            psm_get_cpu_id:return k:
  1  26907           apic_intr_enter:return k:
  1   3700        hilevel_intr_prolog:entry k:

the thing is that i keep seeing this sys_rtt_common() everywhere.
what is the purpose of this function?   the code is not understood by
me either:

http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/i86pc/os/intr.c

    994 /*
    995  * Common tasks always done by _sys_rtt, called with
interrupts disabled.
    996  * Returns 1 if returning to userland, 0 if returning to system mode.
    997  */
    998 int
    999 sys_rtt_common(struct regs *rp)
   1000 {

I cannot answer - who call sys_rtt_common()?    from any userspace API
(cleanfree() for example), how is the transition to kernel's
sys_rtt_common() done?

SYSENTER? (what code)?

and inside the function - why is it sometime returning back to
userspace, and sometime continuing processing in kernelspace?

-- 
Regards,
Peter Teoh
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to