diff options
Diffstat (limited to 'arch/ia64/kernel/perfmon.c')
-rw-r--r-- | arch/ia64/kernel/perfmon.c | 161 |
1 files changed, 82 insertions, 79 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index f55fa07849c4..59169bf7145f 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -158,14 +158,14 @@ | |||
158 | */ | 158 | */ |
159 | #define PROTECT_CTX(c, f) \ | 159 | #define PROTECT_CTX(c, f) \ |
160 | do { \ | 160 | do { \ |
161 | DPRINT(("spinlock_irq_save ctx %p by [%d]\n", c, current->pid)); \ | 161 | DPRINT(("spinlock_irq_save ctx %p by [%d]\n", c, task_pid_nr(current))); \ |
162 | spin_lock_irqsave(&(c)->ctx_lock, f); \ | 162 | spin_lock_irqsave(&(c)->ctx_lock, f); \ |
163 | DPRINT(("spinlocked ctx %p by [%d]\n", c, current->pid)); \ | 163 | DPRINT(("spinlocked ctx %p by [%d]\n", c, task_pid_nr(current))); \ |
164 | } while(0) | 164 | } while(0) |
165 | 165 | ||
166 | #define UNPROTECT_CTX(c, f) \ | 166 | #define UNPROTECT_CTX(c, f) \ |
167 | do { \ | 167 | do { \ |
168 | DPRINT(("spinlock_irq_restore ctx %p by [%d]\n", c, current->pid)); \ | 168 | DPRINT(("spinlock_irq_restore ctx %p by [%d]\n", c, task_pid_nr(current))); \ |
169 | spin_unlock_irqrestore(&(c)->ctx_lock, f); \ | 169 | spin_unlock_irqrestore(&(c)->ctx_lock, f); \ |
170 | } while(0) | 170 | } while(0) |
171 | 171 | ||
@@ -227,12 +227,12 @@ | |||
227 | #ifdef PFM_DEBUGGING | 227 | #ifdef PFM_DEBUGGING |
228 | #define DPRINT(a) \ | 228 | #define DPRINT(a) \ |
229 | do { \ | 229 | do { \ |
230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), current->pid); printk a; } \ | 230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
231 | } while (0) | 231 | } while (0) |
232 | 232 | ||
233 | #define DPRINT_ovfl(a) \ | 233 | #define DPRINT_ovfl(a) \ |
234 | do { \ | 234 | do { \ |
235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), current->pid); printk a; } \ | 235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
236 | } while (0) | 236 | } while (0) |
237 | #endif | 237 | #endif |
238 | 238 | ||
@@ -913,7 +913,7 @@ pfm_mask_monitoring(struct task_struct *task) | |||
913 | unsigned long mask, val, ovfl_mask; | 913 | unsigned long mask, val, ovfl_mask; |
914 | int i; | 914 | int i; |
915 | 915 | ||
916 | DPRINT_ovfl(("masking monitoring for [%d]\n", task->pid)); | 916 | DPRINT_ovfl(("masking monitoring for [%d]\n", task_pid_nr(task))); |
917 | 917 | ||
918 | ovfl_mask = pmu_conf->ovfl_val; | 918 | ovfl_mask = pmu_conf->ovfl_val; |
919 | /* | 919 | /* |
@@ -992,12 +992,12 @@ pfm_restore_monitoring(struct task_struct *task) | |||
992 | ovfl_mask = pmu_conf->ovfl_val; | 992 | ovfl_mask = pmu_conf->ovfl_val; |
993 | 993 | ||
994 | if (task != current) { | 994 | if (task != current) { |
995 | printk(KERN_ERR "perfmon.%d: invalid task[%d] current[%d]\n", __LINE__, task->pid, current->pid); | 995 | printk(KERN_ERR "perfmon.%d: invalid task[%d] current[%d]\n", __LINE__, task_pid_nr(task), task_pid_nr(current)); |
996 | return; | 996 | return; |
997 | } | 997 | } |
998 | if (ctx->ctx_state != PFM_CTX_MASKED) { | 998 | if (ctx->ctx_state != PFM_CTX_MASKED) { |
999 | printk(KERN_ERR "perfmon.%d: task[%d] current[%d] invalid state=%d\n", __LINE__, | 999 | printk(KERN_ERR "perfmon.%d: task[%d] current[%d] invalid state=%d\n", __LINE__, |
1000 | task->pid, current->pid, ctx->ctx_state); | 1000 | task_pid_nr(task), task_pid_nr(current), ctx->ctx_state); |
1001 | return; | 1001 | return; |
1002 | } | 1002 | } |
1003 | psr = pfm_get_psr(); | 1003 | psr = pfm_get_psr(); |
@@ -1051,7 +1051,8 @@ pfm_restore_monitoring(struct task_struct *task) | |||
1051 | if ((mask & 0x1) == 0UL) continue; | 1051 | if ((mask & 0x1) == 0UL) continue; |
1052 | ctx->th_pmcs[i] = ctx->ctx_pmcs[i]; | 1052 | ctx->th_pmcs[i] = ctx->ctx_pmcs[i]; |
1053 | ia64_set_pmc(i, ctx->th_pmcs[i]); | 1053 | ia64_set_pmc(i, ctx->th_pmcs[i]); |
1054 | DPRINT(("[%d] pmc[%d]=0x%lx\n", task->pid, i, ctx->th_pmcs[i])); | 1054 | DPRINT(("[%d] pmc[%d]=0x%lx\n", |
1055 | task_pid_nr(task), i, ctx->th_pmcs[i])); | ||
1055 | } | 1056 | } |
1056 | ia64_srlz_d(); | 1057 | ia64_srlz_d(); |
1057 | 1058 | ||
@@ -1370,7 +1371,7 @@ pfm_reserve_session(struct task_struct *task, int is_syswide, unsigned int cpu) | |||
1370 | 1371 | ||
1371 | error_conflict: | 1372 | error_conflict: |
1372 | DPRINT(("system wide not possible, conflicting session [%d] on CPU%d\n", | 1373 | DPRINT(("system wide not possible, conflicting session [%d] on CPU%d\n", |
1373 | pfm_sessions.pfs_sys_session[cpu]->pid, | 1374 | task_pid_nr(pfm_sessions.pfs_sys_session[cpu]), |
1374 | cpu)); | 1375 | cpu)); |
1375 | abort: | 1376 | abort: |
1376 | UNLOCK_PFS(flags); | 1377 | UNLOCK_PFS(flags); |
@@ -1442,7 +1443,7 @@ pfm_remove_smpl_mapping(struct task_struct *task, void *vaddr, unsigned long siz | |||
1442 | 1443 | ||
1443 | /* sanity checks */ | 1444 | /* sanity checks */ |
1444 | if (task->mm == NULL || size == 0UL || vaddr == NULL) { | 1445 | if (task->mm == NULL || size == 0UL || vaddr == NULL) { |
1445 | printk(KERN_ERR "perfmon: pfm_remove_smpl_mapping [%d] invalid context mm=%p\n", task->pid, task->mm); | 1446 | printk(KERN_ERR "perfmon: pfm_remove_smpl_mapping [%d] invalid context mm=%p\n", task_pid_nr(task), task->mm); |
1446 | return -EINVAL; | 1447 | return -EINVAL; |
1447 | } | 1448 | } |
1448 | 1449 | ||
@@ -1459,7 +1460,7 @@ pfm_remove_smpl_mapping(struct task_struct *task, void *vaddr, unsigned long siz | |||
1459 | 1460 | ||
1460 | up_write(&task->mm->mmap_sem); | 1461 | up_write(&task->mm->mmap_sem); |
1461 | if (r !=0) { | 1462 | if (r !=0) { |
1462 | printk(KERN_ERR "perfmon: [%d] unable to unmap sampling buffer @%p size=%lu\n", task->pid, vaddr, size); | 1463 | printk(KERN_ERR "perfmon: [%d] unable to unmap sampling buffer @%p size=%lu\n", task_pid_nr(task), vaddr, size); |
1463 | } | 1464 | } |
1464 | 1465 | ||
1465 | DPRINT(("do_unmap(%p, %lu)=%d\n", vaddr, size, r)); | 1466 | DPRINT(("do_unmap(%p, %lu)=%d\n", vaddr, size, r)); |
@@ -1501,7 +1502,7 @@ pfm_free_smpl_buffer(pfm_context_t *ctx) | |||
1501 | return 0; | 1502 | return 0; |
1502 | 1503 | ||
1503 | invalid_free: | 1504 | invalid_free: |
1504 | printk(KERN_ERR "perfmon: pfm_free_smpl_buffer [%d] no buffer\n", current->pid); | 1505 | printk(KERN_ERR "perfmon: pfm_free_smpl_buffer [%d] no buffer\n", task_pid_nr(current)); |
1505 | return -EINVAL; | 1506 | return -EINVAL; |
1506 | } | 1507 | } |
1507 | #endif | 1508 | #endif |
@@ -1547,13 +1548,13 @@ pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) | |||
1547 | unsigned long flags; | 1548 | unsigned long flags; |
1548 | DECLARE_WAITQUEUE(wait, current); | 1549 | DECLARE_WAITQUEUE(wait, current); |
1549 | if (PFM_IS_FILE(filp) == 0) { | 1550 | if (PFM_IS_FILE(filp) == 0) { |
1550 | printk(KERN_ERR "perfmon: pfm_poll: bad magic [%d]\n", current->pid); | 1551 | printk(KERN_ERR "perfmon: pfm_poll: bad magic [%d]\n", task_pid_nr(current)); |
1551 | return -EINVAL; | 1552 | return -EINVAL; |
1552 | } | 1553 | } |
1553 | 1554 | ||
1554 | ctx = (pfm_context_t *)filp->private_data; | 1555 | ctx = (pfm_context_t *)filp->private_data; |
1555 | if (ctx == NULL) { | 1556 | if (ctx == NULL) { |
1556 | printk(KERN_ERR "perfmon: pfm_read: NULL ctx [%d]\n", current->pid); | 1557 | printk(KERN_ERR "perfmon: pfm_read: NULL ctx [%d]\n", task_pid_nr(current)); |
1557 | return -EINVAL; | 1558 | return -EINVAL; |
1558 | } | 1559 | } |
1559 | 1560 | ||
@@ -1607,7 +1608,7 @@ pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) | |||
1607 | 1608 | ||
1608 | PROTECT_CTX(ctx, flags); | 1609 | PROTECT_CTX(ctx, flags); |
1609 | } | 1610 | } |
1610 | DPRINT(("[%d] back to running ret=%ld\n", current->pid, ret)); | 1611 | DPRINT(("[%d] back to running ret=%ld\n", task_pid_nr(current), ret)); |
1611 | set_current_state(TASK_RUNNING); | 1612 | set_current_state(TASK_RUNNING); |
1612 | remove_wait_queue(&ctx->ctx_msgq_wait, &wait); | 1613 | remove_wait_queue(&ctx->ctx_msgq_wait, &wait); |
1613 | 1614 | ||
@@ -1616,7 +1617,7 @@ pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) | |||
1616 | ret = -EINVAL; | 1617 | ret = -EINVAL; |
1617 | msg = pfm_get_next_msg(ctx); | 1618 | msg = pfm_get_next_msg(ctx); |
1618 | if (msg == NULL) { | 1619 | if (msg == NULL) { |
1619 | printk(KERN_ERR "perfmon: pfm_read no msg for ctx=%p [%d]\n", ctx, current->pid); | 1620 | printk(KERN_ERR "perfmon: pfm_read no msg for ctx=%p [%d]\n", ctx, task_pid_nr(current)); |
1620 | goto abort_locked; | 1621 | goto abort_locked; |
1621 | } | 1622 | } |
1622 | 1623 | ||
@@ -1647,13 +1648,13 @@ pfm_poll(struct file *filp, poll_table * wait) | |||
1647 | unsigned int mask = 0; | 1648 | unsigned int mask = 0; |
1648 | 1649 | ||
1649 | if (PFM_IS_FILE(filp) == 0) { | 1650 | if (PFM_IS_FILE(filp) == 0) { |
1650 | printk(KERN_ERR "perfmon: pfm_poll: bad magic [%d]\n", current->pid); | 1651 | printk(KERN_ERR "perfmon: pfm_poll: bad magic [%d]\n", task_pid_nr(current)); |
1651 | return 0; | 1652 | return 0; |
1652 | } | 1653 | } |
1653 | 1654 | ||
1654 | ctx = (pfm_context_t *)filp->private_data; | 1655 | ctx = (pfm_context_t *)filp->private_data; |
1655 | if (ctx == NULL) { | 1656 | if (ctx == NULL) { |
1656 | printk(KERN_ERR "perfmon: pfm_poll: NULL ctx [%d]\n", current->pid); | 1657 | printk(KERN_ERR "perfmon: pfm_poll: NULL ctx [%d]\n", task_pid_nr(current)); |
1657 | return 0; | 1658 | return 0; |
1658 | } | 1659 | } |
1659 | 1660 | ||
@@ -1692,7 +1693,7 @@ pfm_do_fasync(int fd, struct file *filp, pfm_context_t *ctx, int on) | |||
1692 | ret = fasync_helper (fd, filp, on, &ctx->ctx_async_queue); | 1693 | ret = fasync_helper (fd, filp, on, &ctx->ctx_async_queue); |
1693 | 1694 | ||
1694 | DPRINT(("pfm_fasync called by [%d] on ctx_fd=%d on=%d async_queue=%p ret=%d\n", | 1695 | DPRINT(("pfm_fasync called by [%d] on ctx_fd=%d on=%d async_queue=%p ret=%d\n", |
1695 | current->pid, | 1696 | task_pid_nr(current), |
1696 | fd, | 1697 | fd, |
1697 | on, | 1698 | on, |
1698 | ctx->ctx_async_queue, ret)); | 1699 | ctx->ctx_async_queue, ret)); |
@@ -1707,13 +1708,13 @@ pfm_fasync(int fd, struct file *filp, int on) | |||
1707 | int ret; | 1708 | int ret; |
1708 | 1709 | ||
1709 | if (PFM_IS_FILE(filp) == 0) { | 1710 | if (PFM_IS_FILE(filp) == 0) { |
1710 | printk(KERN_ERR "perfmon: pfm_fasync bad magic [%d]\n", current->pid); | 1711 | printk(KERN_ERR "perfmon: pfm_fasync bad magic [%d]\n", task_pid_nr(current)); |
1711 | return -EBADF; | 1712 | return -EBADF; |
1712 | } | 1713 | } |
1713 | 1714 | ||
1714 | ctx = (pfm_context_t *)filp->private_data; | 1715 | ctx = (pfm_context_t *)filp->private_data; |
1715 | if (ctx == NULL) { | 1716 | if (ctx == NULL) { |
1716 | printk(KERN_ERR "perfmon: pfm_fasync NULL ctx [%d]\n", current->pid); | 1717 | printk(KERN_ERR "perfmon: pfm_fasync NULL ctx [%d]\n", task_pid_nr(current)); |
1717 | return -EBADF; | 1718 | return -EBADF; |
1718 | } | 1719 | } |
1719 | /* | 1720 | /* |
@@ -1759,7 +1760,7 @@ pfm_syswide_force_stop(void *info) | |||
1759 | if (owner != ctx->ctx_task) { | 1760 | if (owner != ctx->ctx_task) { |
1760 | printk(KERN_ERR "perfmon: pfm_syswide_force_stop CPU%d unexpected owner [%d] instead of [%d]\n", | 1761 | printk(KERN_ERR "perfmon: pfm_syswide_force_stop CPU%d unexpected owner [%d] instead of [%d]\n", |
1761 | smp_processor_id(), | 1762 | smp_processor_id(), |
1762 | owner->pid, ctx->ctx_task->pid); | 1763 | task_pid_nr(owner), task_pid_nr(ctx->ctx_task)); |
1763 | return; | 1764 | return; |
1764 | } | 1765 | } |
1765 | if (GET_PMU_CTX() != ctx) { | 1766 | if (GET_PMU_CTX() != ctx) { |
@@ -1769,7 +1770,7 @@ pfm_syswide_force_stop(void *info) | |||
1769 | return; | 1770 | return; |
1770 | } | 1771 | } |
1771 | 1772 | ||
1772 | DPRINT(("on CPU%d forcing system wide stop for [%d]\n", smp_processor_id(), ctx->ctx_task->pid)); | 1773 | DPRINT(("on CPU%d forcing system wide stop for [%d]\n", smp_processor_id(), task_pid_nr(ctx->ctx_task))); |
1773 | /* | 1774 | /* |
1774 | * the context is already protected in pfm_close(), we simply | 1775 | * the context is already protected in pfm_close(), we simply |
1775 | * need to mask interrupts to avoid a PMU interrupt race on | 1776 | * need to mask interrupts to avoid a PMU interrupt race on |
@@ -1821,7 +1822,7 @@ pfm_flush(struct file *filp, fl_owner_t id) | |||
1821 | 1822 | ||
1822 | ctx = (pfm_context_t *)filp->private_data; | 1823 | ctx = (pfm_context_t *)filp->private_data; |
1823 | if (ctx == NULL) { | 1824 | if (ctx == NULL) { |
1824 | printk(KERN_ERR "perfmon: pfm_flush: NULL ctx [%d]\n", current->pid); | 1825 | printk(KERN_ERR "perfmon: pfm_flush: NULL ctx [%d]\n", task_pid_nr(current)); |
1825 | return -EBADF; | 1826 | return -EBADF; |
1826 | } | 1827 | } |
1827 | 1828 | ||
@@ -1969,7 +1970,7 @@ pfm_close(struct inode *inode, struct file *filp) | |||
1969 | 1970 | ||
1970 | ctx = (pfm_context_t *)filp->private_data; | 1971 | ctx = (pfm_context_t *)filp->private_data; |
1971 | if (ctx == NULL) { | 1972 | if (ctx == NULL) { |
1972 | printk(KERN_ERR "perfmon: pfm_close: NULL ctx [%d]\n", current->pid); | 1973 | printk(KERN_ERR "perfmon: pfm_close: NULL ctx [%d]\n", task_pid_nr(current)); |
1973 | return -EBADF; | 1974 | return -EBADF; |
1974 | } | 1975 | } |
1975 | 1976 | ||
@@ -2066,7 +2067,7 @@ pfm_close(struct inode *inode, struct file *filp) | |||
2066 | */ | 2067 | */ |
2067 | ctx->ctx_state = PFM_CTX_ZOMBIE; | 2068 | ctx->ctx_state = PFM_CTX_ZOMBIE; |
2068 | 2069 | ||
2069 | DPRINT(("zombie ctx for [%d]\n", task->pid)); | 2070 | DPRINT(("zombie ctx for [%d]\n", task_pid_nr(task))); |
2070 | /* | 2071 | /* |
2071 | * cannot free the context on the spot. deferred until | 2072 | * cannot free the context on the spot. deferred until |
2072 | * the task notices the ZOMBIE state | 2073 | * the task notices the ZOMBIE state |
@@ -2472,7 +2473,7 @@ pfm_setup_buffer_fmt(struct task_struct *task, struct file *filp, pfm_context_t | |||
2472 | /* invoke and lock buffer format, if found */ | 2473 | /* invoke and lock buffer format, if found */ |
2473 | fmt = pfm_find_buffer_fmt(arg->ctx_smpl_buf_id); | 2474 | fmt = pfm_find_buffer_fmt(arg->ctx_smpl_buf_id); |
2474 | if (fmt == NULL) { | 2475 | if (fmt == NULL) { |
2475 | DPRINT(("[%d] cannot find buffer format\n", task->pid)); | 2476 | DPRINT(("[%d] cannot find buffer format\n", task_pid_nr(task))); |
2476 | return -EINVAL; | 2477 | return -EINVAL; |
2477 | } | 2478 | } |
2478 | 2479 | ||
@@ -2483,7 +2484,7 @@ pfm_setup_buffer_fmt(struct task_struct *task, struct file *filp, pfm_context_t | |||
2483 | 2484 | ||
2484 | ret = pfm_buf_fmt_validate(fmt, task, ctx_flags, cpu, fmt_arg); | 2485 | ret = pfm_buf_fmt_validate(fmt, task, ctx_flags, cpu, fmt_arg); |
2485 | 2486 | ||
2486 | DPRINT(("[%d] after validate(0x%x,%d,%p)=%d\n", task->pid, ctx_flags, cpu, fmt_arg, ret)); | 2487 | DPRINT(("[%d] after validate(0x%x,%d,%p)=%d\n", task_pid_nr(task), ctx_flags, cpu, fmt_arg, ret)); |
2487 | 2488 | ||
2488 | if (ret) goto error; | 2489 | if (ret) goto error; |
2489 | 2490 | ||
@@ -2605,23 +2606,23 @@ pfm_task_incompatible(pfm_context_t *ctx, struct task_struct *task) | |||
2605 | * no kernel task or task not owner by caller | 2606 | * no kernel task or task not owner by caller |
2606 | */ | 2607 | */ |
2607 | if (task->mm == NULL) { | 2608 | if (task->mm == NULL) { |
2608 | DPRINT(("task [%d] has not memory context (kernel thread)\n", task->pid)); | 2609 | DPRINT(("task [%d] has not memory context (kernel thread)\n", task_pid_nr(task))); |
2609 | return -EPERM; | 2610 | return -EPERM; |
2610 | } | 2611 | } |
2611 | if (pfm_bad_permissions(task)) { | 2612 | if (pfm_bad_permissions(task)) { |
2612 | DPRINT(("no permission to attach to [%d]\n", task->pid)); | 2613 | DPRINT(("no permission to attach to [%d]\n", task_pid_nr(task))); |
2613 | return -EPERM; | 2614 | return -EPERM; |
2614 | } | 2615 | } |
2615 | /* | 2616 | /* |
2616 | * cannot block in self-monitoring mode | 2617 | * cannot block in self-monitoring mode |
2617 | */ | 2618 | */ |
2618 | if (CTX_OVFL_NOBLOCK(ctx) == 0 && task == current) { | 2619 | if (CTX_OVFL_NOBLOCK(ctx) == 0 && task == current) { |
2619 | DPRINT(("cannot load a blocking context on self for [%d]\n", task->pid)); | 2620 | DPRINT(("cannot load a blocking context on self for [%d]\n", task_pid_nr(task))); |
2620 | return -EINVAL; | 2621 | return -EINVAL; |
2621 | } | 2622 | } |
2622 | 2623 | ||
2623 | if (task->exit_state == EXIT_ZOMBIE) { | 2624 | if (task->exit_state == EXIT_ZOMBIE) { |
2624 | DPRINT(("cannot attach to zombie task [%d]\n", task->pid)); | 2625 | DPRINT(("cannot attach to zombie task [%d]\n", task_pid_nr(task))); |
2625 | return -EBUSY; | 2626 | return -EBUSY; |
2626 | } | 2627 | } |
2627 | 2628 | ||
@@ -2631,7 +2632,7 @@ pfm_task_incompatible(pfm_context_t *ctx, struct task_struct *task) | |||
2631 | if (task == current) return 0; | 2632 | if (task == current) return 0; |
2632 | 2633 | ||
2633 | if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) { | 2634 | if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) { |
2634 | DPRINT(("cannot attach to non-stopped task [%d] state=%ld\n", task->pid, task->state)); | 2635 | DPRINT(("cannot attach to non-stopped task [%d] state=%ld\n", task_pid_nr(task), task->state)); |
2635 | return -EBUSY; | 2636 | return -EBUSY; |
2636 | } | 2637 | } |
2637 | /* | 2638 | /* |
@@ -3512,7 +3513,7 @@ pfm_use_debug_registers(struct task_struct *task) | |||
3512 | 3513 | ||
3513 | if (pmu_conf->use_rr_dbregs == 0) return 0; | 3514 | if (pmu_conf->use_rr_dbregs == 0) return 0; |
3514 | 3515 | ||
3515 | DPRINT(("called for [%d]\n", task->pid)); | 3516 | DPRINT(("called for [%d]\n", task_pid_nr(task))); |
3516 | 3517 | ||
3517 | /* | 3518 | /* |
3518 | * do it only once | 3519 | * do it only once |
@@ -3543,7 +3544,7 @@ pfm_use_debug_registers(struct task_struct *task) | |||
3543 | DPRINT(("ptrace_use_dbregs=%u sys_use_dbregs=%u by [%d] ret = %d\n", | 3544 | DPRINT(("ptrace_use_dbregs=%u sys_use_dbregs=%u by [%d] ret = %d\n", |
3544 | pfm_sessions.pfs_ptrace_use_dbregs, | 3545 | pfm_sessions.pfs_ptrace_use_dbregs, |
3545 | pfm_sessions.pfs_sys_use_dbregs, | 3546 | pfm_sessions.pfs_sys_use_dbregs, |
3546 | task->pid, ret)); | 3547 | task_pid_nr(task), ret)); |
3547 | 3548 | ||
3548 | UNLOCK_PFS(flags); | 3549 | UNLOCK_PFS(flags); |
3549 | 3550 | ||
@@ -3568,7 +3569,7 @@ pfm_release_debug_registers(struct task_struct *task) | |||
3568 | 3569 | ||
3569 | LOCK_PFS(flags); | 3570 | LOCK_PFS(flags); |
3570 | if (pfm_sessions.pfs_ptrace_use_dbregs == 0) { | 3571 | if (pfm_sessions.pfs_ptrace_use_dbregs == 0) { |
3571 | printk(KERN_ERR "perfmon: invalid release for [%d] ptrace_use_dbregs=0\n", task->pid); | 3572 | printk(KERN_ERR "perfmon: invalid release for [%d] ptrace_use_dbregs=0\n", task_pid_nr(task)); |
3572 | ret = -1; | 3573 | ret = -1; |
3573 | } else { | 3574 | } else { |
3574 | pfm_sessions.pfs_ptrace_use_dbregs--; | 3575 | pfm_sessions.pfs_ptrace_use_dbregs--; |
@@ -3620,7 +3621,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3620 | 3621 | ||
3621 | /* sanity check */ | 3622 | /* sanity check */ |
3622 | if (unlikely(task == NULL)) { | 3623 | if (unlikely(task == NULL)) { |
3623 | printk(KERN_ERR "perfmon: [%d] pfm_restart no task\n", current->pid); | 3624 | printk(KERN_ERR "perfmon: [%d] pfm_restart no task\n", task_pid_nr(current)); |
3624 | return -EINVAL; | 3625 | return -EINVAL; |
3625 | } | 3626 | } |
3626 | 3627 | ||
@@ -3629,7 +3630,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3629 | fmt = ctx->ctx_buf_fmt; | 3630 | fmt = ctx->ctx_buf_fmt; |
3630 | 3631 | ||
3631 | DPRINT(("restarting self %d ovfl=0x%lx\n", | 3632 | DPRINT(("restarting self %d ovfl=0x%lx\n", |
3632 | task->pid, | 3633 | task_pid_nr(task), |
3633 | ctx->ctx_ovfl_regs[0])); | 3634 | ctx->ctx_ovfl_regs[0])); |
3634 | 3635 | ||
3635 | if (CTX_HAS_SMPL(ctx)) { | 3636 | if (CTX_HAS_SMPL(ctx)) { |
@@ -3653,11 +3654,11 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3653 | pfm_reset_regs(ctx, ctx->ctx_ovfl_regs, PFM_PMD_LONG_RESET); | 3654 | pfm_reset_regs(ctx, ctx->ctx_ovfl_regs, PFM_PMD_LONG_RESET); |
3654 | 3655 | ||
3655 | if (rst_ctrl.bits.mask_monitoring == 0) { | 3656 | if (rst_ctrl.bits.mask_monitoring == 0) { |
3656 | DPRINT(("resuming monitoring for [%d]\n", task->pid)); | 3657 | DPRINT(("resuming monitoring for [%d]\n", task_pid_nr(task))); |
3657 | 3658 | ||
3658 | if (state == PFM_CTX_MASKED) pfm_restore_monitoring(task); | 3659 | if (state == PFM_CTX_MASKED) pfm_restore_monitoring(task); |
3659 | } else { | 3660 | } else { |
3660 | DPRINT(("keeping monitoring stopped for [%d]\n", task->pid)); | 3661 | DPRINT(("keeping monitoring stopped for [%d]\n", task_pid_nr(task))); |
3661 | 3662 | ||
3662 | // cannot use pfm_stop_monitoring(task, regs); | 3663 | // cannot use pfm_stop_monitoring(task, regs); |
3663 | } | 3664 | } |
@@ -3714,10 +3715,10 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
3714 | * "self-monitoring". | 3715 | * "self-monitoring". |
3715 | */ | 3716 | */ |
3716 | if (CTX_OVFL_NOBLOCK(ctx) == 0 && state == PFM_CTX_MASKED) { | 3717 | if (CTX_OVFL_NOBLOCK(ctx) == 0 && state == PFM_CTX_MASKED) { |
3717 | DPRINT(("unblocking [%d] \n", task->pid)); | 3718 | DPRINT(("unblocking [%d] \n", task_pid_nr(task))); |
3718 | complete(&ctx->ctx_restart_done); | 3719 | complete(&ctx->ctx_restart_done); |
3719 | } else { | 3720 | } else { |
3720 | DPRINT(("[%d] armed exit trap\n", task->pid)); | 3721 | DPRINT(("[%d] armed exit trap\n", task_pid_nr(task))); |
3721 | 3722 | ||
3722 | ctx->ctx_fl_trap_reason = PFM_TRAP_REASON_RESET; | 3723 | ctx->ctx_fl_trap_reason = PFM_TRAP_REASON_RESET; |
3723 | 3724 | ||
@@ -3805,7 +3806,7 @@ pfm_write_ibr_dbr(int mode, pfm_context_t *ctx, void *arg, int count, struct pt_ | |||
3805 | * don't bother if we are loaded and task is being debugged | 3806 | * don't bother if we are loaded and task is being debugged |
3806 | */ | 3807 | */ |
3807 | if (is_loaded && (thread->flags & IA64_THREAD_DBG_VALID) != 0) { | 3808 | if (is_loaded && (thread->flags & IA64_THREAD_DBG_VALID) != 0) { |
3808 | DPRINT(("debug registers already in use for [%d]\n", task->pid)); | 3809 | DPRINT(("debug registers already in use for [%d]\n", task_pid_nr(task))); |
3809 | return -EBUSY; | 3810 | return -EBUSY; |
3810 | } | 3811 | } |
3811 | 3812 | ||
@@ -3846,7 +3847,7 @@ pfm_write_ibr_dbr(int mode, pfm_context_t *ctx, void *arg, int count, struct pt_ | |||
3846 | * is shared by all processes running on it | 3847 | * is shared by all processes running on it |
3847 | */ | 3848 | */ |
3848 | if (first_time && can_access_pmu) { | 3849 | if (first_time && can_access_pmu) { |
3849 | DPRINT(("[%d] clearing ibrs, dbrs\n", task->pid)); | 3850 | DPRINT(("[%d] clearing ibrs, dbrs\n", task_pid_nr(task))); |
3850 | for (i=0; i < pmu_conf->num_ibrs; i++) { | 3851 | for (i=0; i < pmu_conf->num_ibrs; i++) { |
3851 | ia64_set_ibr(i, 0UL); | 3852 | ia64_set_ibr(i, 0UL); |
3852 | ia64_dv_serialize_instruction(); | 3853 | ia64_dv_serialize_instruction(); |
@@ -4035,7 +4036,7 @@ pfm_stop(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
4035 | return -EBUSY; | 4036 | return -EBUSY; |
4036 | } | 4037 | } |
4037 | DPRINT(("task [%d] ctx_state=%d is_system=%d\n", | 4038 | DPRINT(("task [%d] ctx_state=%d is_system=%d\n", |
4038 | PFM_CTX_TASK(ctx)->pid, | 4039 | task_pid_nr(PFM_CTX_TASK(ctx)), |
4039 | state, | 4040 | state, |
4040 | is_system)); | 4041 | is_system)); |
4041 | /* | 4042 | /* |
@@ -4093,7 +4094,7 @@ pfm_stop(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
4093 | * monitoring disabled in kernel at next reschedule | 4094 | * monitoring disabled in kernel at next reschedule |
4094 | */ | 4095 | */ |
4095 | ctx->ctx_saved_psr_up = 0; | 4096 | ctx->ctx_saved_psr_up = 0; |
4096 | DPRINT(("task=[%d]\n", task->pid)); | 4097 | DPRINT(("task=[%d]\n", task_pid_nr(task))); |
4097 | } | 4098 | } |
4098 | return 0; | 4099 | return 0; |
4099 | } | 4100 | } |
@@ -4298,11 +4299,12 @@ pfm_context_load(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
4298 | 4299 | ||
4299 | if (is_system) { | 4300 | if (is_system) { |
4300 | if (pfm_sessions.pfs_ptrace_use_dbregs) { | 4301 | if (pfm_sessions.pfs_ptrace_use_dbregs) { |
4301 | DPRINT(("cannot load [%d] dbregs in use\n", task->pid)); | 4302 | DPRINT(("cannot load [%d] dbregs in use\n", |
4303 | task_pid_nr(task))); | ||
4302 | ret = -EBUSY; | 4304 | ret = -EBUSY; |
4303 | } else { | 4305 | } else { |
4304 | pfm_sessions.pfs_sys_use_dbregs++; | 4306 | pfm_sessions.pfs_sys_use_dbregs++; |
4305 | DPRINT(("load [%d] increased sys_use_dbreg=%u\n", task->pid, pfm_sessions.pfs_sys_use_dbregs)); | 4307 | DPRINT(("load [%d] increased sys_use_dbreg=%u\n", task_pid_nr(task), pfm_sessions.pfs_sys_use_dbregs)); |
4306 | set_dbregs = 1; | 4308 | set_dbregs = 1; |
4307 | } | 4309 | } |
4308 | } | 4310 | } |
@@ -4394,7 +4396,7 @@ pfm_context_load(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
4394 | 4396 | ||
4395 | /* allow user level control */ | 4397 | /* allow user level control */ |
4396 | ia64_psr(regs)->sp = 0; | 4398 | ia64_psr(regs)->sp = 0; |
4397 | DPRINT(("clearing psr.sp for [%d]\n", task->pid)); | 4399 | DPRINT(("clearing psr.sp for [%d]\n", task_pid_nr(task))); |
4398 | 4400 | ||
4399 | SET_LAST_CPU(ctx, smp_processor_id()); | 4401 | SET_LAST_CPU(ctx, smp_processor_id()); |
4400 | INC_ACTIVATION(); | 4402 | INC_ACTIVATION(); |
@@ -4429,7 +4431,7 @@ pfm_context_load(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs) | |||
4429 | */ | 4431 | */ |
4430 | SET_PMU_OWNER(task, ctx); | 4432 | SET_PMU_OWNER(task, ctx); |
4431 | 4433 | ||
4432 | DPRINT(("context loaded on PMU for [%d]\n", task->pid)); | 4434 | DPRINT(("context loaded on PMU for [%d]\n", task_pid_nr(task))); |
4433 | } else { | 4435 | } else { |
4434 | /* | 4436 | /* |
4435 | * when not current, task MUST be stopped, so this is safe | 4437 | * when not current, task MUST be stopped, so this is safe |
@@ -4493,7 +4495,7 @@ pfm_context_unload(pfm_context_t *ctx, void *arg, int count, struct pt_regs *reg | |||
4493 | int prev_state, is_system; | 4495 | int prev_state, is_system; |
4494 | int ret; | 4496 | int ret; |
4495 | 4497 | ||
4496 | DPRINT(("ctx_state=%d task [%d]\n", ctx->ctx_state, task ? task->pid : -1)); | 4498 | DPRINT(("ctx_state=%d task [%d]\n", ctx->ctx_state, task ? task_pid_nr(task) : -1)); |
4497 | 4499 | ||
4498 | prev_state = ctx->ctx_state; | 4500 | prev_state = ctx->ctx_state; |
4499 | is_system = ctx->ctx_fl_system; | 4501 | is_system = ctx->ctx_fl_system; |
@@ -4568,7 +4570,7 @@ pfm_context_unload(pfm_context_t *ctx, void *arg, int count, struct pt_regs *reg | |||
4568 | */ | 4570 | */ |
4569 | ia64_psr(regs)->sp = 1; | 4571 | ia64_psr(regs)->sp = 1; |
4570 | 4572 | ||
4571 | DPRINT(("setting psr.sp for [%d]\n", task->pid)); | 4573 | DPRINT(("setting psr.sp for [%d]\n", task_pid_nr(task))); |
4572 | } | 4574 | } |
4573 | /* | 4575 | /* |
4574 | * save PMDs to context | 4576 | * save PMDs to context |
@@ -4608,7 +4610,7 @@ pfm_context_unload(pfm_context_t *ctx, void *arg, int count, struct pt_regs *reg | |||
4608 | ctx->ctx_fl_can_restart = 0; | 4610 | ctx->ctx_fl_can_restart = 0; |
4609 | ctx->ctx_fl_going_zombie = 0; | 4611 | ctx->ctx_fl_going_zombie = 0; |
4610 | 4612 | ||
4611 | DPRINT(("disconnected [%d] from context\n", task->pid)); | 4613 | DPRINT(("disconnected [%d] from context\n", task_pid_nr(task))); |
4612 | 4614 | ||
4613 | return 0; | 4615 | return 0; |
4614 | } | 4616 | } |
@@ -4631,7 +4633,7 @@ pfm_exit_thread(struct task_struct *task) | |||
4631 | 4633 | ||
4632 | PROTECT_CTX(ctx, flags); | 4634 | PROTECT_CTX(ctx, flags); |
4633 | 4635 | ||
4634 | DPRINT(("state=%d task [%d]\n", ctx->ctx_state, task->pid)); | 4636 | DPRINT(("state=%d task [%d]\n", ctx->ctx_state, task_pid_nr(task))); |
4635 | 4637 | ||
4636 | state = ctx->ctx_state; | 4638 | state = ctx->ctx_state; |
4637 | switch(state) { | 4639 | switch(state) { |
@@ -4640,13 +4642,13 @@ pfm_exit_thread(struct task_struct *task) | |||
4640 | * only comes to this function if pfm_context is not NULL, i.e., cannot | 4642 | * only comes to this function if pfm_context is not NULL, i.e., cannot |
4641 | * be in unloaded state | 4643 | * be in unloaded state |
4642 | */ | 4644 | */ |
4643 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid); | 4645 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task_pid_nr(task)); |
4644 | break; | 4646 | break; |
4645 | case PFM_CTX_LOADED: | 4647 | case PFM_CTX_LOADED: |
4646 | case PFM_CTX_MASKED: | 4648 | case PFM_CTX_MASKED: |
4647 | ret = pfm_context_unload(ctx, NULL, 0, regs); | 4649 | ret = pfm_context_unload(ctx, NULL, 0, regs); |
4648 | if (ret) { | 4650 | if (ret) { |
4649 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] state=%d unload failed %d\n", task->pid, state, ret); | 4651 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] state=%d unload failed %d\n", task_pid_nr(task), state, ret); |
4650 | } | 4652 | } |
4651 | DPRINT(("ctx unloaded for current state was %d\n", state)); | 4653 | DPRINT(("ctx unloaded for current state was %d\n", state)); |
4652 | 4654 | ||
@@ -4655,12 +4657,12 @@ pfm_exit_thread(struct task_struct *task) | |||
4655 | case PFM_CTX_ZOMBIE: | 4657 | case PFM_CTX_ZOMBIE: |
4656 | ret = pfm_context_unload(ctx, NULL, 0, regs); | 4658 | ret = pfm_context_unload(ctx, NULL, 0, regs); |
4657 | if (ret) { | 4659 | if (ret) { |
4658 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] state=%d unload failed %d\n", task->pid, state, ret); | 4660 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] state=%d unload failed %d\n", task_pid_nr(task), state, ret); |
4659 | } | 4661 | } |
4660 | free_ok = 1; | 4662 | free_ok = 1; |
4661 | break; | 4663 | break; |
4662 | default: | 4664 | default: |
4663 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] unexpected state=%d\n", task->pid, state); | 4665 | printk(KERN_ERR "perfmon: pfm_exit_thread [%d] unexpected state=%d\n", task_pid_nr(task), state); |
4664 | break; | 4666 | break; |
4665 | } | 4667 | } |
4666 | UNPROTECT_CTX(ctx, flags); | 4668 | UNPROTECT_CTX(ctx, flags); |
@@ -4744,7 +4746,7 @@ recheck: | |||
4744 | DPRINT(("context %d state=%d [%d] task_state=%ld must_stop=%d\n", | 4746 | DPRINT(("context %d state=%d [%d] task_state=%ld must_stop=%d\n", |
4745 | ctx->ctx_fd, | 4747 | ctx->ctx_fd, |
4746 | state, | 4748 | state, |
4747 | task->pid, | 4749 | task_pid_nr(task), |
4748 | task->state, PFM_CMD_STOPPED(cmd))); | 4750 | task->state, PFM_CMD_STOPPED(cmd))); |
4749 | 4751 | ||
4750 | /* | 4752 | /* |
@@ -4791,7 +4793,7 @@ recheck: | |||
4791 | */ | 4793 | */ |
4792 | if (PFM_CMD_STOPPED(cmd)) { | 4794 | if (PFM_CMD_STOPPED(cmd)) { |
4793 | if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) { | 4795 | if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) { |
4794 | DPRINT(("[%d] task not in stopped state\n", task->pid)); | 4796 | DPRINT(("[%d] task not in stopped state\n", task_pid_nr(task))); |
4795 | return -EBUSY; | 4797 | return -EBUSY; |
4796 | } | 4798 | } |
4797 | /* | 4799 | /* |
@@ -4884,7 +4886,7 @@ restart_args: | |||
4884 | * limit abuse to min page size | 4886 | * limit abuse to min page size |
4885 | */ | 4887 | */ |
4886 | if (unlikely(sz > PFM_MAX_ARGSIZE)) { | 4888 | if (unlikely(sz > PFM_MAX_ARGSIZE)) { |
4887 | printk(KERN_ERR "perfmon: [%d] argument too big %lu\n", current->pid, sz); | 4889 | printk(KERN_ERR "perfmon: [%d] argument too big %lu\n", task_pid_nr(current), sz); |
4888 | return -E2BIG; | 4890 | return -E2BIG; |
4889 | } | 4891 | } |
4890 | 4892 | ||
@@ -5031,11 +5033,11 @@ pfm_context_force_terminate(pfm_context_t *ctx, struct pt_regs *regs) | |||
5031 | { | 5033 | { |
5032 | int ret; | 5034 | int ret; |
5033 | 5035 | ||
5034 | DPRINT(("entering for [%d]\n", current->pid)); | 5036 | DPRINT(("entering for [%d]\n", task_pid_nr(current))); |
5035 | 5037 | ||
5036 | ret = pfm_context_unload(ctx, NULL, 0, regs); | 5038 | ret = pfm_context_unload(ctx, NULL, 0, regs); |
5037 | if (ret) { | 5039 | if (ret) { |
5038 | printk(KERN_ERR "pfm_context_force_terminate: [%d] unloaded failed with %d\n", current->pid, ret); | 5040 | printk(KERN_ERR "pfm_context_force_terminate: [%d] unloaded failed with %d\n", task_pid_nr(current), ret); |
5039 | } | 5041 | } |
5040 | 5042 | ||
5041 | /* | 5043 | /* |
@@ -5072,7 +5074,7 @@ pfm_handle_work(void) | |||
5072 | 5074 | ||
5073 | ctx = PFM_GET_CTX(current); | 5075 | ctx = PFM_GET_CTX(current); |
5074 | if (ctx == NULL) { | 5076 | if (ctx == NULL) { |
5075 | printk(KERN_ERR "perfmon: [%d] has no PFM context\n", current->pid); | 5077 | printk(KERN_ERR "perfmon: [%d] has no PFM context\n", task_pid_nr(current)); |
5076 | return; | 5078 | return; |
5077 | } | 5079 | } |
5078 | 5080 | ||
@@ -5269,7 +5271,7 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str | |||
5269 | DPRINT_ovfl(("pmc0=0x%lx pid=%d iip=0x%lx, %s " | 5271 | DPRINT_ovfl(("pmc0=0x%lx pid=%d iip=0x%lx, %s " |
5270 | "used_pmds=0x%lx\n", | 5272 | "used_pmds=0x%lx\n", |
5271 | pmc0, | 5273 | pmc0, |
5272 | task ? task->pid: -1, | 5274 | task ? task_pid_nr(task): -1, |
5273 | (regs ? regs->cr_iip : 0), | 5275 | (regs ? regs->cr_iip : 0), |
5274 | CTX_OVFL_NOBLOCK(ctx) ? "nonblocking" : "blocking", | 5276 | CTX_OVFL_NOBLOCK(ctx) ? "nonblocking" : "blocking", |
5275 | ctx->ctx_used_pmds[0])); | 5277 | ctx->ctx_used_pmds[0])); |
@@ -5458,7 +5460,7 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str | |||
5458 | } | 5460 | } |
5459 | 5461 | ||
5460 | DPRINT_ovfl(("owner [%d] pending=%ld reason=%u ovfl_pmds=0x%lx ovfl_notify=0x%lx masked=%d\n", | 5462 | DPRINT_ovfl(("owner [%d] pending=%ld reason=%u ovfl_pmds=0x%lx ovfl_notify=0x%lx masked=%d\n", |
5461 | GET_PMU_OWNER() ? GET_PMU_OWNER()->pid : -1, | 5463 | GET_PMU_OWNER() ? task_pid_nr(GET_PMU_OWNER()) : -1, |
5462 | PFM_GET_WORK_PENDING(task), | 5464 | PFM_GET_WORK_PENDING(task), |
5463 | ctx->ctx_fl_trap_reason, | 5465 | ctx->ctx_fl_trap_reason, |
5464 | ovfl_pmds, | 5466 | ovfl_pmds, |
@@ -5483,7 +5485,7 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str | |||
5483 | sanity_check: | 5485 | sanity_check: |
5484 | printk(KERN_ERR "perfmon: CPU%d overflow handler [%d] pmc0=0x%lx\n", | 5486 | printk(KERN_ERR "perfmon: CPU%d overflow handler [%d] pmc0=0x%lx\n", |
5485 | smp_processor_id(), | 5487 | smp_processor_id(), |
5486 | task ? task->pid : -1, | 5488 | task ? task_pid_nr(task) : -1, |
5487 | pmc0); | 5489 | pmc0); |
5488 | return; | 5490 | return; |
5489 | 5491 | ||
@@ -5516,7 +5518,7 @@ stop_monitoring: | |||
5516 | * | 5518 | * |
5517 | * Overall pretty hairy stuff.... | 5519 | * Overall pretty hairy stuff.... |
5518 | */ | 5520 | */ |
5519 | DPRINT(("ctx is zombie for [%d], converted to spurious\n", task ? task->pid: -1)); | 5521 | DPRINT(("ctx is zombie for [%d], converted to spurious\n", task ? task_pid_nr(task): -1)); |
5520 | pfm_clear_psr_up(); | 5522 | pfm_clear_psr_up(); |
5521 | ia64_psr(regs)->up = 0; | 5523 | ia64_psr(regs)->up = 0; |
5522 | ia64_psr(regs)->sp = 1; | 5524 | ia64_psr(regs)->sp = 1; |
@@ -5577,13 +5579,13 @@ pfm_do_interrupt_handler(int irq, void *arg, struct pt_regs *regs) | |||
5577 | 5579 | ||
5578 | report_spurious1: | 5580 | report_spurious1: |
5579 | printk(KERN_INFO "perfmon: spurious overflow interrupt on CPU%d: process %d has no PFM context\n", | 5581 | printk(KERN_INFO "perfmon: spurious overflow interrupt on CPU%d: process %d has no PFM context\n", |
5580 | this_cpu, task->pid); | 5582 | this_cpu, task_pid_nr(task)); |
5581 | pfm_unfreeze_pmu(); | 5583 | pfm_unfreeze_pmu(); |
5582 | return -1; | 5584 | return -1; |
5583 | report_spurious2: | 5585 | report_spurious2: |
5584 | printk(KERN_INFO "perfmon: spurious overflow interrupt on CPU%d: process %d, invalid flag\n", | 5586 | printk(KERN_INFO "perfmon: spurious overflow interrupt on CPU%d: process %d, invalid flag\n", |
5585 | this_cpu, | 5587 | this_cpu, |
5586 | task->pid); | 5588 | task_pid_nr(task)); |
5587 | pfm_unfreeze_pmu(); | 5589 | pfm_unfreeze_pmu(); |
5588 | return -1; | 5590 | return -1; |
5589 | } | 5591 | } |
@@ -5870,7 +5872,8 @@ pfm_force_cleanup(pfm_context_t *ctx, struct pt_regs *regs) | |||
5870 | ia64_psr(regs)->sp = 1; | 5872 | ia64_psr(regs)->sp = 1; |
5871 | 5873 | ||
5872 | if (GET_PMU_OWNER() == task) { | 5874 | if (GET_PMU_OWNER() == task) { |
5873 | DPRINT(("cleared ownership for [%d]\n", ctx->ctx_task->pid)); | 5875 | DPRINT(("cleared ownership for [%d]\n", |
5876 | task_pid_nr(ctx->ctx_task))); | ||
5874 | SET_PMU_OWNER(NULL, NULL); | 5877 | SET_PMU_OWNER(NULL, NULL); |
5875 | } | 5878 | } |
5876 | 5879 | ||
@@ -5882,7 +5885,7 @@ pfm_force_cleanup(pfm_context_t *ctx, struct pt_regs *regs) | |||
5882 | task->thread.pfm_context = NULL; | 5885 | task->thread.pfm_context = NULL; |
5883 | task->thread.flags &= ~IA64_THREAD_PM_VALID; | 5886 | task->thread.flags &= ~IA64_THREAD_PM_VALID; |
5884 | 5887 | ||
5885 | DPRINT(("force cleanup for [%d]\n", task->pid)); | 5888 | DPRINT(("force cleanup for [%d]\n", task_pid_nr(task))); |
5886 | } | 5889 | } |
5887 | 5890 | ||
5888 | 5891 | ||
@@ -6426,7 +6429,7 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx) | |||
6426 | 6429 | ||
6427 | if (PMD_IS_COUNTING(i)) { | 6430 | if (PMD_IS_COUNTING(i)) { |
6428 | DPRINT(("[%d] pmd[%d] ctx_pmd=0x%lx hw_pmd=0x%lx\n", | 6431 | DPRINT(("[%d] pmd[%d] ctx_pmd=0x%lx hw_pmd=0x%lx\n", |
6429 | task->pid, | 6432 | task_pid_nr(task), |
6430 | i, | 6433 | i, |
6431 | ctx->ctx_pmds[i].val, | 6434 | ctx->ctx_pmds[i].val, |
6432 | val & ovfl_val)); | 6435 | val & ovfl_val)); |
@@ -6448,11 +6451,11 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx) | |||
6448 | */ | 6451 | */ |
6449 | if (pmc0 & (1UL << i)) { | 6452 | if (pmc0 & (1UL << i)) { |
6450 | val += 1 + ovfl_val; | 6453 | val += 1 + ovfl_val; |
6451 | DPRINT(("[%d] pmd[%d] overflowed\n", task->pid, i)); | 6454 | DPRINT(("[%d] pmd[%d] overflowed\n", task_pid_nr(task), i)); |
6452 | } | 6455 | } |
6453 | } | 6456 | } |
6454 | 6457 | ||
6455 | DPRINT(("[%d] ctx_pmd[%d]=0x%lx pmd_val=0x%lx\n", task->pid, i, val, pmd_val)); | 6458 | DPRINT(("[%d] ctx_pmd[%d]=0x%lx pmd_val=0x%lx\n", task_pid_nr(task), i, val, pmd_val)); |
6456 | 6459 | ||
6457 | if (is_self) ctx->th_pmds[i] = pmd_val; | 6460 | if (is_self) ctx->th_pmds[i] = pmd_val; |
6458 | 6461 | ||
@@ -6793,14 +6796,14 @@ dump_pmu_state(const char *from) | |||
6793 | printk("CPU%d from %s() current [%d] iip=0x%lx %s\n", | 6796 | printk("CPU%d from %s() current [%d] iip=0x%lx %s\n", |
6794 | this_cpu, | 6797 | this_cpu, |
6795 | from, | 6798 | from, |
6796 | current->pid, | 6799 | task_pid_nr(current), |
6797 | regs->cr_iip, | 6800 | regs->cr_iip, |
6798 | current->comm); | 6801 | current->comm); |
6799 | 6802 | ||
6800 | task = GET_PMU_OWNER(); | 6803 | task = GET_PMU_OWNER(); |
6801 | ctx = GET_PMU_CTX(); | 6804 | ctx = GET_PMU_CTX(); |
6802 | 6805 | ||
6803 | printk("->CPU%d owner [%d] ctx=%p\n", this_cpu, task ? task->pid : -1, ctx); | 6806 | printk("->CPU%d owner [%d] ctx=%p\n", this_cpu, task ? task_pid_nr(task) : -1, ctx); |
6804 | 6807 | ||
6805 | psr = pfm_get_psr(); | 6808 | psr = pfm_get_psr(); |
6806 | 6809 | ||
@@ -6848,7 +6851,7 @@ pfm_inherit(struct task_struct *task, struct pt_regs *regs) | |||
6848 | { | 6851 | { |
6849 | struct thread_struct *thread; | 6852 | struct thread_struct *thread; |
6850 | 6853 | ||
6851 | DPRINT(("perfmon: pfm_inherit clearing state for [%d]\n", task->pid)); | 6854 | DPRINT(("perfmon: pfm_inherit clearing state for [%d]\n", task_pid_nr(task))); |
6852 | 6855 | ||
6853 | thread = &task->thread; | 6856 | thread = &task->thread; |
6854 | 6857 | ||