-
Notifications
You must be signed in to change notification settings - Fork 16
Any ARM Linux support #5
Comments
Hi, I haven't tested to build on ARM, I guess the kprobes would need a little work to be arch independant, but besides that, it should work. I don't have any ARM board right now, but if you happen to test it and see problems, let me know and I'll make sure to fix them. Thanks, Julien |
Cross compiling is failing at
|
Hi, Is this still open issue? Thank you. |
Hi, Yes we definitely plan to support other architectures. Most of the work is located in the rculfhash* files. It is a port from the userspace-rcu code to a kernel module and still uses per-architecture wrappers instead of the ones already in the kernel, so it should not be too hard to make it work, just remove these wrappers and let the kernel do it. Also, some module extract arguments from kretprobes and right now only x86 support code is done, but it should be easy to make it generic. |
The fixes for ARM are now in the master branch ! Please test it and let me know if it works for you or if you encounter any issue. Here is a way to test the interrupt to user-space tracker with ftrace: modprobe latency_tracker
modprobe latency_tracker_rt
echo 0 >/sys/kernel/debug/tracing/events/enable # disable already enabled events (if necessary)
echo 1 >/sys/kernel/debug/tracing/events/latency_tracker/latency_tracker_rt/enable
echo 1 >/sys/kernel/debug/tracing/tracing_on
echo 1 >/sys/kernel/debug/latency/rt/threshold # threshold set to 1ns for testing
echo 1 >/sys/kernel/debug/latency/rt/tracking_on
echo 1 >/sys/kernel/debug/latency/rt/filters/text_breakdown
cat /sys/kernel/debug/tracing/trace_pipe
# to see when the user-space process returns to a blocking state after
# being woken up by an interrupt (might become very verbose)
echo 0 >/sys/kernel/debug/latency/rt/filters/enter_userspace``` |
Thank you for the help. I tried it without success. The only thing I need to do additionally was adding 'llist_for_each_entry_safe' define since it was missing in 3.10.17. echo 1 >/sys/kernel/debug/latency/rt/default/threshold but 'cat trace_pipe' doesn't show anything, and other trackers like wakeup, offcpu and syscall don't work also. /sys/kernel/debug/tracing# cat set_event /sys/kernel/debug/tracing# cat trace_pipe /sys/kernel/debug/tracing# FYI. /sys/kernel/debug/tracing# cat /proc/cpuinfo processor : 1 processor : 2 processor : 3 Hardware : Freescale i.MX6 Quad/DualLite (Device Tree) |
Hi, Thanks for trying it out. Yes, I added the dummy session "default" since my reply here to allow having multiple trackers loaded at the same time eventually without breaking the old examples. Do you have a way to test on a more recent kernel (> 3.12) ? |
Hi, I tried it with wand board and kernel version 4.1.15, but still have issues. wakeup: offcpu: rt: [805493.333571] latency-tracker: Error, required tracepoint sched_waking not available syscall: |
I see, the rt, wakeup_latency and offcpu trackers require the sched_waking event that is only available starting at 4.3 mainline and 4.1.10.11 PREEMPT_RT. We could maybe add a workaround to use a kprobe on ttwu (try to wakeup) on older kernels, but I'm not sure if the kprobe support on ARM is good enough on these versions. |
Thank you for the answer. From my testing, kprobe is working fine for simple case even with 3.10.17, so I think it's worth to try. :-) |
Ok, I don't have the time right now to work on that, but I can review if you make the patch. |
Or do you think I can make it to work if I add trace point to old kernel as below?
|
Yes you could backport the Linux kernel patch fbd705a0c6184580d0e2fbcbd47a37b6e5822511 to older kernels, it should be easy to do, but it would be nice to have the workaround directly in the latency-tracker to avoid having to patch the kernel to use it. |
Hi,
I haven't tried the latency tool. But just did a walk through. Is there any ARM support as well?
The text was updated successfully, but these errors were encountered: