svn commit: r331319 - in stable/11: lib/libpmc sys/dev/hwpmc

Konstantin Belousov kib at FreeBSD.org
Wed Mar 21 19:33:01 UTC 2018


Author: kib
Date: Wed Mar 21 19:33:00 2018
New Revision: 331319
URL: https://svnweb.freebsd.org/changeset/base/331319

Log:
  MFC r328087 (by fabient):
  Fix pmcstat exit from kernel introduced by r325275.
  
  PR:	223689

Modified:
  stable/11/lib/libpmc/pmclog.c
  stable/11/sys/dev/hwpmc/hwpmc_logging.c
  stable/11/sys/dev/hwpmc/hwpmc_mod.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libpmc/pmclog.c
==============================================================================
--- stable/11/lib/libpmc/pmclog.c	Wed Mar 21 18:57:31 2018	(r331318)
+++ stable/11/lib/libpmc/pmclog.c	Wed Mar 21 19:33:00 2018	(r331319)
@@ -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: stable/11/sys/dev/hwpmc/hwpmc_logging.c
==============================================================================
--- stable/11/sys/dev/hwpmc/hwpmc_logging.c	Wed Mar 21 18:57:31 2018	(r331318)
+++ stable/11/sys/dev/hwpmc/hwpmc_logging.c	Wed Mar 21 19:33:00 2018	(r331319)
@@ -803,6 +803,8 @@ pmclog_close(struct pmc_owner *po)
 
 	PMCDBG1(LOG,CLO,1, "po=%p", po);
 
+	pmclog_process_closelog(po);
+
 	mtx_lock(&pmc_kthread_mtx);
 
 	/*

Modified: stable/11/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- stable/11/sys/dev/hwpmc/hwpmc_mod.c	Wed Mar 21 18:57:31 2018	(r331318)
+++ stable/11/sys/dev/hwpmc/hwpmc_mod.c	Wed Mar 21 19:33:00 2018	(r331319)
@@ -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)


More information about the svn-src-all mailing list