linux(4): Eliminating remnants of futex sdt.

MFC after:		2 weeks
This commit is contained in:
Dmitry Chagin 2021-07-29 12:52:36 +03:00
parent 741f80df53
commit edd44176aa
2 changed files with 5 additions and 96 deletions

View File

@ -39,28 +39,6 @@ linuxulator*:dummy::not_implemented,
linuxulator*:emul:linux_thread_detach:child_clear_tid_error,
linuxulator*:emul:linux_thread_detach:futex_failed,
linuxulator*:emul:linux_schedtail:copyout_error,
linuxulator*:futex:futex_get:error,
linuxulator*:futex:futex_sleep:requeue_error,
linuxulator*:futex:futex_sleep:sleep_error,
linuxulator*:futex:futex_wait:copyin_error,
linuxulator*:futex:futex_wait:itimerfix_error,
linuxulator*:futex:futex_wait:sleep_error,
linuxulator*:futex:futex_atomic_op:missing_access_check,
linuxulator*:futex:futex_atomic_op:unimplemented_op,
linuxulator*:futex:futex_atomic_op:unimplemented_cmp,
linuxulator*:futex:linux_sys_futex:unimplemented_clockswitch,
linuxulator*:futex:linux_sys_futex:copyin_error,
linuxulator*:futex:linux_sys_futex:unhandled_efault,
linuxulator*:futex:linux_sys_futex:unimplemented_lock_pi,
linuxulator*:futex:linux_sys_futex:unimplemented_unlock_pi,
linuxulator*:futex:linux_sys_futex:unimplemented_trylock_pi,
linuxulator*:futex:linux_sys_futex:unimplemented_wait_requeue_pi,
linuxulator*:futex:linux_sys_futex:unimplemented_cmp_requeue_pi,
linuxulator*:futex:linux_sys_futex:unknown_operation,
linuxulator*:futex:linux_get_robust_list:copyout_error,
linuxulator*:futex:handle_futex_death:copyin_error,
linuxulator*:futex:fetch_robust_entry:copyin_error,
linuxulator*:futex:release_futexes:copyin_error,
linuxulator*:time:linux_clock_gettime:conversion_error,
linuxulator*:time:linux_clock_gettime:gettime_error,
linuxulator*:time:linux_clock_gettime:copyout_error,
@ -98,9 +76,6 @@ linuxulator*:mib:linux_prison_get:vfs_setopts_error
linuxulator*:util:linux_driver_get_name_dev:nullcall,
linuxulator*:util:linux_driver_get_major_minor:nullcall,
linuxulator*:futex:linux_sys_futex:invalid_cmp_requeue_use,
linuxulator*:futex:linux_sys_futex:deprecated_requeue,
linuxulator*:futex:linux_set_robust_list:size_error,
linuxulator*:time:linux_clock_getres:nullcall
{
printf("WARNING: %s:%s:%s:%s in application %s, maybe an application error?\n", probename, probeprov, probemod, probefunc, execname);

View File

@ -56,7 +56,6 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $")
#include <sys/proc.h>
#include <sys/queue.h>
#include <sys/sched.h>
#include <sys/sdt.h>
#include <sys/umtxvar.h>
#include <vm/vm_extern.h>
@ -68,40 +67,12 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $")
#include <machine/../linux/linux.h>
#include <machine/../linux/linux_proto.h>
#endif
#include <compat/linux/linux_dtrace.h>
#include <compat/linux/linux_emul.h>
#include <compat/linux/linux_futex.h>
#include <compat/linux/linux_misc.h>
#include <compat/linux/linux_timer.h>
#include <compat/linux/linux_util.h>
/* DTrace init */
LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
/**
* DTrace probes in this module.
*/
LIN_SDT_PROBE_DEFINE4(futex, futex_atomic_op, decoded_op, "int", "int", "int",
"int");
LIN_SDT_PROBE_DEFINE1(futex, futex_atomic_op, unimplemented_op, "int");
LIN_SDT_PROBE_DEFINE1(futex, futex_atomic_op, unimplemented_cmp, "int");
LIN_SDT_PROBE_DEFINE3(futex, linux_futex, debug_wait, "uint32_t *",
"uint32_t", "uint32_t");
LIN_SDT_PROBE_DEFINE3(futex, linux_futex, debug_wake, "uint32_t *",
"uint32_t", "uint32_t");
LIN_SDT_PROBE_DEFINE5(futex, linux_futex, debug_cmp_requeue, "uint32_t *",
"uint32_t", "uint32_t", "uint32_t *", "struct l_timespec *");
LIN_SDT_PROBE_DEFINE5(futex, linux_futex, debug_wake_op, "uint32_t *",
"int", "uint32_t", "uint32_t *", "uint32_t");
LIN_SDT_PROBE_DEFINE0(futex, linux_futex, deprecated_requeue);
LIN_SDT_PROBE_DEFINE0(futex, linux_futex, unimplemented_wait_requeue_pi);
LIN_SDT_PROBE_DEFINE0(futex, linux_futex, unimplemented_cmp_requeue_pi);
LIN_SDT_PROBE_DEFINE1(futex, linux_futex, unknown_operation, "int");
LIN_SDT_PROBE_DEFINE0(futex, linux_set_robust_list, size_error);
LIN_SDT_PROBE_DEFINE1(futex, linux_get_robust_list, copyout_error, "int");
LIN_SDT_PROBE_DEFINE1(futex, fetch_robust_entry, copyin_error, "int");
LIN_SDT_PROBE_DEFINE1(futex, release_futexes, copyin_error, "int");
#define FUTEX_SHARED 0x8 /* shared futex */
#define GET_SHARED(a) (a->flags & FUTEX_SHARED) ? AUTO_SHARE : THREAD_SHARE
@ -188,9 +159,6 @@ futex_atomic_op(struct thread *td, int encoded_op, uint32_t *uaddr)
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
oparg = 1 << oparg;
LIN_SDT_PROBE4(futex, futex_atomic_op, decoded_op, op, cmp, oparg,
cmparg);
switch (op) {
case FUTEX_OP_SET:
ret = futex_xchgl(oparg, uaddr, &oldval);
@ -208,7 +176,6 @@ futex_atomic_op(struct thread *td, int encoded_op, uint32_t *uaddr)
ret = futex_xorl(oparg, uaddr, &oldval);
break;
default:
LIN_SDT_PROBE1(futex, futex_atomic_op, unimplemented_op, op);
ret = -ENOSYS;
break;
}
@ -236,7 +203,6 @@ futex_atomic_op(struct thread *td, int encoded_op, uint32_t *uaddr)
ret = (oldval > cmparg);
break;
default:
LIN_SDT_PROBE1(futex, futex_atomic_op, unimplemented_cmp, cmp);
ret = -ENOSYS;
}
@ -264,8 +230,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
/* FALLTHROUGH */
case LINUX_FUTEX_WAIT_BITSET:
LIN_SDT_PROBE3(futex, linux_futex, debug_wait, args->uaddr,
args->val, args->val3);
LINUX_CTR3(sys_futex, "WAIT uaddr %p val 0x%x bitset 0x%x",
args->uaddr, args->val, args->val3);
@ -276,8 +240,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
/* FALLTHROUGH */
case LINUX_FUTEX_WAKE_BITSET:
LIN_SDT_PROBE3(futex, linux_futex, debug_wake, args->uaddr,
args->val, args->val3);
LINUX_CTR3(sys_futex, "WAKE uaddr %p nrwake 0x%x bitset 0x%x",
args->uaddr, args->val, args->val3);
@ -294,8 +256,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
if ((pem->flags & LINUX_XDEPR_REQUEUEOP) == 0) {
linux_msg(td, "unsupported FUTEX_REQUEUE");
pem->flags |= LINUX_XDEPR_REQUEUEOP;
LIN_SDT_PROBE0(futex, linux_futex,
deprecated_requeue);
}
/*
@ -311,9 +271,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
/* FALLTHROUGH */
case LINUX_FUTEX_CMP_REQUEUE:
LIN_SDT_PROBE5(futex, linux_futex, debug_cmp_requeue,
args->uaddr, args->val, args->val3, args->uaddr2,
args->ts);
LINUX_CTR5(sys_futex, "CMP_REQUEUE uaddr %p "
"nrwake 0x%x uval 0x%x uaddr2 %p nrequeue 0x%x",
args->uaddr, args->val, args->val3, args->uaddr2,
@ -322,8 +279,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
return (linux_futex_requeue(td, args));
case LINUX_FUTEX_WAKE_OP:
LIN_SDT_PROBE5(futex, linux_futex, debug_wake_op,
args->uaddr, args->op, args->val, args->uaddr2, args->val3);
LINUX_CTR5(sys_futex, "WAKE_OP "
"uaddr %p nrwake 0x%x uaddr2 %p op 0x%x nrwake2 0x%x",
args->uaddr, args->val, args->uaddr2, args->val3,
@ -356,8 +311,6 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
linux_msg(td, "unsupported FUTEX_WAIT_REQUEUE_PI");
pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
LIN_SDT_PROBE0(futex, linux_futex,
unimplemented_wait_requeue_pi);
}
return (ENOSYS);
@ -367,15 +320,11 @@ linux_futex(struct thread *td, struct linux_futex_args *args)
if ((pem->flags & LINUX_XUNSUP_FUTEXPIOP) == 0) {
linux_msg(td, "unsupported FUTEX_CMP_REQUEUE_PI");
pem->flags |= LINUX_XUNSUP_FUTEXPIOP;
LIN_SDT_PROBE0(futex, linux_futex,
unimplemented_cmp_requeue_pi);
}
return (ENOSYS);
default:
linux_msg(td, "unsupported futex op %d", args->op);
LIN_SDT_PROBE1(futex, linux_futex, unknown_operation,
args->op);
return (ENOSYS);
}
}
@ -930,10 +879,8 @@ linux_set_robust_list(struct thread *td, struct linux_set_robust_list_args *args
{
struct linux_emuldata *em;
if (args->len != sizeof(struct linux_robust_list_head)) {
LIN_SDT_PROBE0(futex, linux_set_robust_list, size_error);
if (args->len != sizeof(struct linux_robust_list_head))
return (EINVAL);
}
em = em_find(td);
em->robust_futexes = args->head;
@ -978,19 +925,10 @@ linux_get_robust_list(struct thread *td, struct linux_get_robust_list_args *args
}
error = copyout(&len, args->len, sizeof(l_size_t));
if (error) {
LIN_SDT_PROBE1(futex, linux_get_robust_list, copyout_error,
error);
if (error)
return (EFAULT);
}
error = copyout(&head, args->head, sizeof(head));
if (error) {
LIN_SDT_PROBE1(futex, linux_get_robust_list, copyout_error,
error);
}
return (error);
return (copyout(&head, args->head, sizeof(head)));
}
static int
@ -1063,10 +1001,8 @@ fetch_robust_entry(struct linux_robust_list **entry,
int error;
error = copyin((const void *)head, &uentry, sizeof(l_ulong));
if (error) {
LIN_SDT_PROBE1(futex, fetch_robust_entry, copyin_error, error);
if (error)
return (EFAULT);
}
*entry = (void *)(uentry & ~1UL);
*pi = uentry & 1;
@ -1098,10 +1034,8 @@ release_futexes(struct thread *td, struct linux_emuldata *em)
error = copyin(&head->futex_offset, &futex_offset,
sizeof(futex_offset));
if (error) {
LIN_SDT_PROBE1(futex, release_futexes, copyin_error, error);
if (error)
return;
}
if (fetch_robust_entry(&pending, PTRIN(&head->pending_list), &pip))
return;