Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2018 16:41:22 +0000 (UTC)
From:      Fabien Thomas <fabient@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328087 - in head: lib/libpmc sys/dev/hwpmc
Message-ID:  <201801171641.w0HGfMhH068525@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: fabient
Date: Wed Jan 17 16:41:22 2018
New Revision: 328087
URL: https://svnweb.freebsd.org/changeset/base/328087

Log:
  Fix pmcstat exit from kernel introduced by r325275.
  pmcstat request for close will generate a close event.
  This event will be in turn received by pmcstat to close the file.
  
  Reviewed by:	kib
  Tested by:	pho
  MFC after:	1 week
  Sponsored by: Stormshield

Modified:
  head/lib/libpmc/pmclog.c
  head/sys/dev/hwpmc/hwpmc_logging.c
  head/sys/dev/hwpmc/hwpmc_mod.c

Modified: head/lib/libpmc/pmclog.c
==============================================================================
--- head/lib/libpmc/pmclog.c	Wed Jan 17 15:12:52 2018	(r328086)
+++ head/lib/libpmc/pmclog.c	Wed Jan 17 16:41:22 2018	(r328087)
@@ -335,6 +335,8 @@ pmclog_get_event(void *cookie, char **data, ssize_t *l
 			ev->pl_u.pl_cc.pl_pc[npc] = (uintfptr_t) 0;
 		break;
 	case PMCLOG_TYPE_CLOSELOG:
+		ev->pl_state = PMCLOG_EOF;
+		return (-1);
 	case PMCLOG_TYPE_DROPNOTIFY:
 		/* nothing to do */
 		break;

Modified: head/sys/dev/hwpmc/hwpmc_logging.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_logging.c	Wed Jan 17 15:12:52 2018	(r328086)
+++ head/sys/dev/hwpmc/hwpmc_logging.c	Wed Jan 17 16:41:22 2018	(r328087)
@@ -799,6 +799,8 @@ pmclog_close(struct pmc_owner *po)
 
 	PMCDBG1(LOG,CLO,1, "po=%p", po);
 
+	pmclog_process_closelog(po);
+
 	mtx_lock(&pmc_kthread_mtx);
 
 	/*

Modified: head/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_mod.c	Wed Jan 17 15:12:52 2018	(r328086)
+++ head/sys/dev/hwpmc/hwpmc_mod.c	Wed Jan 17 16:41:22 2018	(r328087)
@@ -2928,7 +2928,6 @@ pmc_syscall_handler(struct thread *td, void *syscall_a
 			    po : NULL);
 		} else if (po->po_flags & PMC_PO_OWNS_LOGFILE) {
 			pmclog_proc_ignite(pmclog_proc_handle, NULL);
-			pmclog_process_closelog(po);
 			error = pmclog_close(po);
 			if (error == 0) {
 				LIST_FOREACH(pm, &po->po_pmcs, pm_next)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801171641.w0HGfMhH068525>