Rename assym.s to assym.incassym is only to be included by other .s files, and should neveractually be assembled by itself.Reviewed by: imp, bdrewery (earlier)Sponsored by: The FreeBSD Foundati
Rename assym.s to assym.incassym is only to be included by other .s files, and should neveractually be assembled by itself.Reviewed by: imp, bdrewery (earlier)Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D14180
show more ...
Corrected misspelled versions of rendezvous.The MFC will include a compat definition of smp_no_rendevous_barrier()that calls smp_no_rendezvous_barrier().Reviewed by: gnn, kibMFC after: 1 weekD
Corrected misspelled versions of rendezvous.The MFC will include a compat definition of smp_no_rendevous_barrier()that calls smp_no_rendezvous_barrier().Reviewed by: gnn, kibMFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D10313
Fix improper use of "its".Sponsored by: Dell EMC Isilon
Fix include order as required post r308415
Make the second argument of dtrace_invop() a trapframe pointer.Currently this argument is a pointer into the stack which is used by FBTto fetch the first five probe arguments. On all non-x86 archi
Make the second argument of dtrace_invop() a trapframe pointer.Currently this argument is a pointer into the stack which is used by FBTto fetch the first five probe arguments. On all non-x86 architectures it'ssimply the trapframe address, so this change has no functional impact. Onamd64 it's a pointer into the trapframe such that stack[1 .. 5] gives thefirst five argument registers, which are deliberately grouped together inthe amd64 trapframe definition.A trapframe argument simplifies the invop handlers on !x86 and makes thex86 FBT invop handler easier to understand. Moreover, it allows for invophandlers that may want to modify the register set of the interrupted thread.
Remove unused variables dtrace_in_probe and dtrace_in_probe_addr.
As <machine/vmparam.h> is included from <vm/vm_param.h>, there is noneed to include it explicitly when <vm/vm_param.h> is already included.Suggested by: alcReviewed by: alcDifferential Revision:
As <machine/vmparam.h> is included from <vm/vm_param.h>, there is noneed to include it explicitly when <vm/vm_param.h> is already included.Suggested by: alcReviewed by: alcDifferential Revision: https://reviews.freebsd.org/D5379
Don't re-define LOCORE when dtrace is built-in to the kernel.
Fix DTrace's panic() action.It would previously call into some unfinished Solaris compatibility code andreturn without actually calling panic(9). The compatibility code isunneeded, however, so ju
Fix DTrace's panic() action.It would previously call into some unfinished Solaris compatibility code andreturn without actually calling panic(9). The compatibility code isunneeded, however, so just remove it and have dtrace_panic() call vpanic(9)directly.Differential Revision: https://reviews.freebsd.org/D2349Reviewed by: avgMFC after: 2 weeksSponsored by: EMC / Isilon Storage Division
On ARM, unlike some other architectures, saved $pc values from in-kerneltraps do appear in the regular call stack, rather than only in a specialtrap frame, so we don't need to inject the trap-frame
On ARM, unlike some other architectures, saved $pc values from in-kerneltraps do appear in the regular call stack, rather than only in a specialtrap frame, so we don't need to inject the trap-frame $pc into a returnedstack trace in DTrace.MFC after: 3 daysSponsored by: DARPA, AFRL
Add support for walltimestamp to DTrace on ARM.
dtrace_cas32 and dtrace_casptr should retrn the data loaded from targetnot the new value.Sponsored by: ABT Systems Ltd
Add the MD parts of dtrace needed to use fbt on ARM. For this we need toemulate the instructions used in function entry and exit.For function entry ARM will use a push instruction to push up to 16
Add the MD parts of dtrace needed to use fbt on ARM. For this we need toemulate the instructions used in function entry and exit.For function entry ARM will use a push instruction to push up to 16registers to the stack. While we don't expect all 16 to be used we need tohandle any combination the compiler may generate, even if it doesn't makesense (e.g. pushing the program counter).On function return we will either have a pop or branch instruction. Theformer is similar to the push instruction, but with care to make sure weupdate the stack pointer and program counter correctly in the cases theyare either in the list of registers or not. For branch we need to take the24-bit offset, sign-extend it, and add that number of 4-byte words to theprogram counter. Care needs to be taken as, due to historical reasons, theaddress the branch is relative to is not the current instruction, but 8bytes later.This allows us to use the following probes on ARM boards: dtrace -n 'fbt::malloc:entry { stack() }'and dtrace -n 'fbt::free:return { stack() }'Differential Revision: https://reviews.freebsd.org/D2007Reviewed by: gnn, rpauloSponsored by: ABT Systems Ltd
Fix the dtrace ARM atomic compare-and-set functions. These functions areexpected to return the data in the memory location pointed at by targetafter the operation. The FreeBSD atomic functions prev
Fix the dtrace ARM atomic compare-and-set functions. These functions areexpected to return the data in the memory location pointed at by targetafter the operation. The FreeBSD atomic functions previously used returneither 0 or 1 to indicate if the comparison succeeded or not respectively.With this change these functions only support ARMv6 and later are supportedby these functions.Sponsored by: ABT Systems Ltd
Use the ARM unwinder with dtrace to extract the stack when asked. With thisdtrace is able to display a stack trace similar to the one below.# dtrace -p 603 -n 'tcp:kernel::receive { stack(); }'
Use the ARM unwinder with dtrace to extract the stack when asked. With thisdtrace is able to display a stack trace similar to the one below.# dtrace -p 603 -n 'tcp:kernel::receive { stack(); }' 0 70 :receive kernel`ip_input+0x140 kernel`netisr_dispatch_src+0xb8 kernel`ether_demux+0x1c4 kernel`ether_nh_input+0x3a8 kernel`netisr_dispatch_src+0xb8 kernel`ether_input+0x60 kernel`cpsw_intr_rx+0xac kernel`intr_event_execute_handlers+0x128 kernel`ithread_loop+0xb4 kernel`fork_exit+0x84 kernel`swi_exit kernel`swi_exitTested by: gnnSponsored by: ABT Systems Ltd
Initial version of DTrace on ARM32.Submitted by: Howard Su based on work by Oleksandr TymoshenkoReviewed by: ian, andrew, rpaulo, markj