Lines 1655-1673
pmc_log_process_mappings(struct pmc_owner *po, struct proc *p)
Link Here
|
1655 |
continue; |
1655 |
continue; |
1656 |
} |
1656 |
} |
1657 |
|
1657 |
|
1658 |
if (lobj->type != OBJT_VNODE || lobj->handle == NULL) { |
1658 |
if ((lobj->type != OBJT_VNODE || lobj->handle == NULL) && |
|
|
1659 |
(lobj->type != OBJT_SWAP || (lobj->flags & OBJ_TMPFS) == 0)) { |
1659 |
if (lobj != obj) |
1660 |
if (lobj != obj) |
1660 |
VM_OBJECT_RUNLOCK(lobj); |
1661 |
VM_OBJECT_RUNLOCK(lobj); |
1661 |
VM_OBJECT_RUNLOCK(obj); |
1662 |
VM_OBJECT_RUNLOCK(obj); |
1662 |
continue; |
1663 |
continue; |
1663 |
} |
1664 |
} |
1664 |
|
1665 |
|
|
|
1666 |
if (lobj->type == OBJT_VNODE) |
1667 |
vp = lobj->handle; |
1668 |
else if (lobj->type == OBJT_SWAP && (lobj->flags & OBJ_TMPFS) != 0) |
1669 |
vp = lobj->un_pager.swp.swp_tmpfs; |
1670 |
|
1665 |
/* |
1671 |
/* |
1666 |
* Skip contiguous regions that point to the same |
1672 |
* Skip contiguous regions that point to the same |
1667 |
* vnode, so we don't emit redundant MAP-IN |
1673 |
* vnode, so we don't emit redundant MAP-IN |
1668 |
* directives. |
1674 |
* directives. |
1669 |
*/ |
1675 |
*/ |
1670 |
if (entry->start == last_end && lobj->handle == last_vp) { |
1676 |
if (entry->start == last_end && vp == last_vp) { |
1671 |
last_end = entry->end; |
1677 |
last_end = entry->end; |
1672 |
if (lobj != obj) |
1678 |
if (lobj != obj) |
1673 |
VM_OBJECT_RUNLOCK(lobj); |
1679 |
VM_OBJECT_RUNLOCK(lobj); |
Lines 1675-1680
pmc_log_process_mappings(struct pmc_owner *po, struct proc *p)
Link Here
|
1675 |
continue; |
1681 |
continue; |
1676 |
} |
1682 |
} |
1677 |
|
1683 |
|
|
|
1684 |
vref(vp); |
1685 |
|
1678 |
/* |
1686 |
/* |
1679 |
* We don't want to keep the proc's vm_map or this |
1687 |
* We don't want to keep the proc's vm_map or this |
1680 |
* vm_object locked while we walk the pathname, since |
1688 |
* vm_object locked while we walk the pathname, since |
Lines 1690-1697
pmc_log_process_mappings(struct pmc_owner *po, struct proc *p)
Link Here
|
1690 |
last_timestamp = map->timestamp; |
1698 |
last_timestamp = map->timestamp; |
1691 |
vm_map_unlock_read(map); |
1699 |
vm_map_unlock_read(map); |
1692 |
|
1700 |
|
1693 |
vp = lobj->handle; |
|
|
1694 |
vref(vp); |
1695 |
if (lobj != obj) |
1701 |
if (lobj != obj) |
1696 |
VM_OBJECT_RUNLOCK(lobj); |
1702 |
VM_OBJECT_RUNLOCK(lobj); |
1697 |
|
1703 |
|