hwpmc_mod.c (233628) | hwpmc_mod.c (241896) |
---|---|
1/*- 2 * Copyright (c) 2003-2008 Joseph Koshy 3 * Copyright (c) 2007 The FreeBSD Foundation 4 * All rights reserved. 5 * 6 * Portions of this software were developed by A. Joseph Koshy under 7 * sponsorship from the FreeBSD Foundation and Google, Inc. 8 * --- 16 unchanged lines hidden (view full) --- 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * SUCH DAMAGE. 29 * 30 */ 31 32#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2003-2008 Joseph Koshy 3 * Copyright (c) 2007 The FreeBSD Foundation 4 * All rights reserved. 5 * 6 * Portions of this software were developed by A. Joseph Koshy under 7 * sponsorship from the FreeBSD Foundation and Google, Inc. 8 * --- 16 unchanged lines hidden (view full) --- 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * SUCH DAMAGE. 29 * 30 */ 31 32#include <sys/cdefs.h> |
33__FBSDID("$FreeBSD: head/sys/dev/hwpmc/hwpmc_mod.c 233628 2012-03-28 20:58:30Z fabient $"); | 33__FBSDID("$FreeBSD: head/sys/dev/hwpmc/hwpmc_mod.c 241896 2012-10-22 17:50:54Z kib $"); |
34 35#include <sys/param.h> 36#include <sys/eventhandler.h> 37#include <sys/jail.h> 38#include <sys/kernel.h> 39#include <sys/kthread.h> 40#include <sys/limits.h> 41#include <sys/lock.h> --- 1585 unchanged lines hidden (view full) --- 1627 1628/* 1629 * Log the mappings for a single process. 1630 */ 1631 1632static void 1633pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) 1634{ | 34 35#include <sys/param.h> 36#include <sys/eventhandler.h> 37#include <sys/jail.h> 38#include <sys/kernel.h> 39#include <sys/kthread.h> 40#include <sys/limits.h> 41#include <sys/lock.h> --- 1585 unchanged lines hidden (view full) --- 1627 1628/* 1629 * Log the mappings for a single process. 1630 */ 1631 1632static void 1633pmc_log_process_mappings(struct pmc_owner *po, struct proc *p) 1634{ |
1635 int locked; | |
1636 vm_map_t map; 1637 struct vnode *vp; 1638 struct vmspace *vm; 1639 vm_map_entry_t entry; 1640 vm_offset_t last_end; 1641 u_int last_timestamp; 1642 struct vnode *last_vp; 1643 vm_offset_t start_addr; --- 93 unchanged lines hidden (view full) --- 1737 VM_OBJECT_UNLOCK(lobj); 1738 1739 VM_OBJECT_UNLOCK(obj); 1740 1741 freepath = NULL; 1742 pmc_getfilename(vp, &fullpath, &freepath); 1743 last_vp = vp; 1744 | 1635 vm_map_t map; 1636 struct vnode *vp; 1637 struct vmspace *vm; 1638 vm_map_entry_t entry; 1639 vm_offset_t last_end; 1640 u_int last_timestamp; 1641 struct vnode *last_vp; 1642 vm_offset_t start_addr; --- 93 unchanged lines hidden (view full) --- 1736 VM_OBJECT_UNLOCK(lobj); 1737 1738 VM_OBJECT_UNLOCK(obj); 1739 1740 freepath = NULL; 1741 pmc_getfilename(vp, &fullpath, &freepath); 1742 last_vp = vp; 1743 |
1745 locked = VFS_LOCK_GIANT(vp->v_mount); | |
1746 vrele(vp); | 1744 vrele(vp); |
1747 VFS_UNLOCK_GIANT(locked); | |
1748 1749 vp = NULL; 1750 pmclog_process_map_in(po, p->p_pid, start_addr, fullpath); 1751 if (freepath) 1752 free(freepath, M_TEMP); 1753 1754 vm_map_lock_read(map); 1755 --- 3387 unchanged lines hidden --- | 1745 1746 vp = NULL; 1747 pmclog_process_map_in(po, p->p_pid, start_addr, fullpath); 1748 if (freepath) 1749 free(freepath, M_TEMP); 1750 1751 vm_map_lock_read(map); 1752 --- 3387 unchanged lines hidden --- |