Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Aug 2014 22:08:51 +0000 (UTC)
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r269742 - in stable/10: sys/kern usr.bin/kdump
Message-ID:  <53e54a74.2c40.72548fb3@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rpaulo
Date: Fri Aug  8 22:08:51 2014
New Revision: 269742
URL: http://svnweb.freebsd.org/changeset/base/269742

Log:
  MFC r269408, r269409:
  
  shm_open()/shm_unlink() ktrace support.

Modified:
  stable/10/sys/kern/uipc_shm.c
  stable/10/usr.bin/kdump/kdump.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/uipc_shm.c
==============================================================================
--- stable/10/sys/kern/uipc_shm.c	Fri Aug  8 21:47:47 2014	(r269741)
+++ stable/10/sys/kern/uipc_shm.c	Fri Aug  8 22:08:51 2014	(r269742)
@@ -45,6 +45,7 @@
 __FBSDID("$FreeBSD$");
 
 #include "opt_capsicum.h"
+#include "opt_ktrace.h"
 
 #include <sys/param.h>
 #include <sys/capability.h>
@@ -53,6 +54,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/filedesc.h>
 #include <sys/fnv_hash.h>
 #include <sys/kernel.h>
+#include <sys/uio.h>
+#include <sys/signal.h>
+#include <sys/ktrace.h>
 #include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/mman.h>
@@ -727,7 +731,10 @@ sys_shm_open(struct thread *td, struct s
 	} else {
 		path = malloc(MAXPATHLEN, M_SHMFD, M_WAITOK);
 		error = copyinstr(uap->path, path, MAXPATHLEN, NULL);
-
+#ifdef KTRACE
+		if (error == 0 && KTRPOINT(curthread, KTR_NAMEI))
+			ktrnamei(path);
+#endif
 		/* Require paths to start with a '/' character. */
 		if (error == 0 && path[0] != '/')
 			error = EINVAL;
@@ -825,7 +832,10 @@ sys_shm_unlink(struct thread *td, struct
 		free(path, M_TEMP);
 		return (error);
 	}
-
+#ifdef KTRACE
+	if (KTRPOINT(curthread, KTR_NAMEI))
+		ktrnamei(path);
+#endif
 	fnv = fnv_32_str(path, FNV1_32_INIT);
 	sx_xlock(&shm_dict_lock);
 	error = shm_remove(path, fnv, td->td_ucred);

Modified: stable/10/usr.bin/kdump/kdump.c
==============================================================================
--- stable/10/usr.bin/kdump/kdump.c	Fri Aug  8 21:47:47 2014	(r269741)
+++ stable/10/usr.bin/kdump/kdump.c	Fri Aug  8 22:08:51 2014	(r269742)
@@ -1011,6 +1011,14 @@ ktrsyscall(struct ktr_syscall *ktr, u_in
 				ip++;
 				narg--;
 				break;
+			case SYS_shm_open:
+				print_number(ip, narg, c);
+				putchar(',');
+				flagsname(ip[0]);
+				printf(",0%o", ip[1]);
+				ip += 3;
+				narg -= 3;
+				break;
 			case SYS_minherit:
 				print_number(ip, narg, c);
 				print_number(ip, narg, c);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53e54a74.2c40.72548fb3>