kern/160275: dtrace -lv cause

Paul Ambrose ambrosehua at gmail.com
Mon Aug 29 07:20:10 UTC 2011


>Number:         160275
>Category:       kern
>Synopsis:       dtrace -lv cause
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 29 07:20:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Paul Ambrose
>Release:        9.0-beta2
>Organization:
>Environment:
[root at lateaxfreebsd ~]# uname -a
FreeBSD lateaxfreebsd 9.0-BETA2 FreeBSD 9.0-BETA2 #4 r+c45c70e: Mon Aug 29 14:34:54 CST 2011     root at lateaxfreebsd:/usr/obj/usr/src/sys/MYKERNEL  amd64
>Description:
dtrace -lv;
the output seems all right; but the dmesg has warnings like this:

fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
fbt_getargdesc(1302): Unknown function!
ctf_lookup_by_id(998): type 2363 exceeds max 2363
ctf_lookup_by_id(998): type 2363 exceeds max 2363

I notice the 'dtrace -l' output has something like this 
.......................
19324    syscall         freebsd32                              #518 entry
19325    syscall         freebsd32                              #518 return
19326    syscall         freebsd32                              #519 entry
19327    syscall         freebsd32                              #519 return
19328    syscall         freebsd32                              #520 entry
19329    syscall         freebsd32                              #520 return
19330    syscall         freebsd32                              #521 entry
19331    syscall         freebsd32                              #521 return
19332    syscall         freebsd32                 freebsd32_pselect entry
19333    syscall         freebsd32                 freebsd32_pselect return
19334    syscall         freebsd32                     getloginclass entry
19335    syscall         freebsd32                     getloginclass return
19336    syscall         freebsd32                     setloginclass entry
19337    syscall         freebsd32                     setloginclass return
19338    syscall         freebsd32                    rctl_get_racct entry
19339    syscall         freebsd32                    rctl_get_racct return
19340    syscall         freebsd32                    rctl_get_rules entry
19341    syscall         freebsd32                    rctl_get_rules return
19342    syscall         freebsd32                   rctl_get_limits entry
19343    syscall         freebsd32                   rctl_get_limits return
19344    syscall         freebsd32                     rctl_add_rule entry
19345    syscall         freebsd32                     rctl_add_rule return
19346    syscall         freebsd32                  rctl_remove_rule entry
19347    syscall         freebsd32                  rctl_remove_rule return
19348    syscall         freebsd32         freebsd32_posix_fallocate entry
19349    syscall         freebsd32         freebsd32_posix_fallocate return
19350    syscall         freebsd32                              #531 entry
19351    syscall         freebsd32                              #531 return

some of function column of syscall provider is #num, not the function name, I checked the syscalls.c, It seems the warning come from 
unimplemented syscall(the num is the syscall number),  this syscall exists in the syscall table, and dtrace produce relevant 
probe for it, but these syscall has no implementation, so 'dtrace -lv' found no ctf info 

plus, on 8.2-stable, the dtrace -lv cause page fault on fbt_getargdesc in fbt.c
 
	/* Check if this module hasn't been initialised yet. */
	if (*lc.ctfoffp == NULL) {                                                   //it seems ctfoffp == NULL
		/*
		 * Initialise the CTF object and function symindx to
		 * byte offset array.
		 */
		if (fbt_ctfoff_init(ctl, &lc) != 0)
			return;

		/* Initialise the CTF type to byte offset array. */
		if (fbt_typoff_init(&lc) != 0)
			return;
	}



>How-To-Repeat:
dtrace -lv with dtrace enabled; 
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list