The NetBSD Project

CVS log for src/sys/arch/aarch64/aarch64/db_trace.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / arch / aarch64 / aarch64

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Feb 7 04:20:26 2024 UTC (10 months ago) by msaitoh
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +3 -3 lines
Remove ryo@'s mail addresses.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Thu Sep 22 21:48:18 2022 UTC (2 years, 2 months ago) by ryo
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +9 -9 lines
oops, my previous commit is bad. revert previous.
<frame-address> is a frame pointer, not a trapframe, and it worked correctly. (e.g., trace $x29)

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Sep 22 21:00:46 2022 UTC (2 years, 2 months ago) by ryo
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +11 -11 lines
Specifying the frame address "trace <frame-address>" was not working.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Thu Sep 22 19:33:00 2022 UTC (2 years, 2 months ago) by ryo
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +8 -8 lines
If there was a "bl <func>" instruction at the end of a function block,
the stack analysis backtrace (bt/s) would fail because $lr would point
to the beginning of the next function.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Mon Sep 19 17:24:23 2022 UTC (2 years, 2 months ago) by ryo
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +4 -4 lines
Fixed stack analyzing backtrace (bt/s) correctly for nested trapframes.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Tue Jun 7 23:55:25 2022 UTC (2 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +85 -76 lines
Functionalize frame pointer backtrace.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Tue Jun 7 08:08:31 2022 UTC (2 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +438 -10 lines
On aarch64, ddb backtrace can be performed without framepointer by specifying
the /s modifier to the ddb trace command (trace/s, bt/s).
The default is trace with framepointer (same as before).

This allows backtracing even on kernels compiled with -fomit-frame-pointer.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Jun 2 05:09:01 2022 UTC (2 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +68 -35 lines
tidy up backtrace from crash(9) on aarch64

- fix to dump trapframe when backtracing from crash(8).
- use db_read_bytes() when reading kernel memory.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sun May 29 23:43:49 2022 UTC (2 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +14 -9 lines
Display the trap type of trapframe when backtracing.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun May 29 16:13:41 2022 UTC (2 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +3 -11 lines
Simplified termination conditions for ddb backtrace.

Exit backtrace when the user trapframe is invalid. (Mainly in kernel threads).

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sat Nov 27 14:11:04 2021 UTC (3 years ago) by riastradh
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +17 -4 lines
aarch64: Fix stack traces from jump-to-null.

Revision 1.12.2.1: download - view: text, markup, annotated - select for diffs
Mon Dec 14 14:37:44 2020 UTC (3 years, 11 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.12: preferred, colored; next MAIN 1.13: preferred, colored
Changes since revision 1.12: +4 -3 lines
Sync w/ HEAD.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Fri Dec 11 18:03:33 2020 UTC (4 years ago) by skrll
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +4 -3 lines
s:aarch64/cpufunc.h:arm/cpufunc.h:

a baby step in the grand arm header unification challenge

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Jun 27 00:43:38 2020 UTC (4 years, 5 months ago) by rin
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +19 -18 lines
Fix build failure due to -Werror=stack-usage.

Use db_read_bytes() against particular member of structure in use,
by which we can avoid to have whole structure in the stack.

Now, stack usage shrinks: 4240 --> 1296

Revision 1.11: download - view: text, markup, annotated - select for diffs
Fri May 22 19:29:26 2020 UTC (4 years, 6 months ago) by ryo
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +39 -8 lines
fix to do backtrace properly for running LWPs and cpu_lwp_fork().
when dump of pcb_tf, only the switchframe part is now displayed instead of the whole trapframe.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Wed May 13 06:08:51 2020 UTC (4 years, 7 months ago) by ryo
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +6 -5 lines
- move aarch64 addressspace macros from pmap.h to cpufunc.h
- rename ptr_strip_pac() to aarch64_strip_pac()

Revision 1.2.2.2: download - view: text, markup, annotated - select for diffs
Tue Apr 21 18:42:02 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.2.2.1: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.2.1: +5 -2 lines
Sync with HEAD

Revision 1.8.10.1: download - view: text, markup, annotated - select for diffs
Mon Apr 20 11:28:50 2020 UTC (4 years, 7 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8: +5 -2 lines
Sync with HEAD

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sun Apr 12 07:49:58 2020 UTC (4 years, 8 months ago) by maxv
Branches: MAIN
CVS tags: phil-wifi-20200421, bouyer-xenpvh-base2, bouyer-xenpvh-base1
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +5 -2 lines
Add support for Pointer Authentication (PAC).

We use the "pac-ret" option, to sign the return instruction pointer on
function entry, and authenticate it on function exit. This acts as a
mitigation against ROP.

The authentication uses a per-lwp (secret) I-A key stored in the 128bit
APIAKey register and part of the lwp context. During lwp creation, the
kernel generates a random key, and during context switches, it installs
the key of the target lwp on the CPU.

Userland cannot read the APIAKey register directly. However, it can sign
its pointers with it, because the register is architecturally shared
between userland and the kernel. Although part of the CPU design, it is
a bit of an undesired behavior, because it allows to forge valid kernel
pointers from userland. To avoid that, we don't share the key with
userland, and rather switch it in EL0<->EL1 transitions. This means that
when userland executes, a different key is loaded in APIAKey than the one
the kernel uses. For now the userland key is a fixed 128bit zero value.

The DDB stack unwinder is changed to strip the authentication code from
the pointers in lr.

Two problems are known:

 * Currently the idlelwps' keys are not really secret. This is because
   the RNG is not yet available when we spawn these lwps. Not overly
   important, but would be nice to fix with UEFI RNG.
 * The key switching in EL0<->EL1 transitions is not the most optimized
   code on the planet. Instead of checking aarch64_pac_enabled, it would
   be better to hot-patch the code at boot time, but there currently is
   no hot-patch support on aarch64.

Tested on Qemu.

Revision 1.2.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:05:43 2019 UTC (5 years, 6 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +44 -29 lines
Sync with HEAD

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Jan 27 02:08:36 2019 UTC (5 years, 10 months ago) by pgoyette
Branches: MAIN
CVS tags: phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: bouyer-xenpvh
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +2 -2 lines
Merge the [pgoyette-compat] branch

Revision 1.1.28.5: download - view: text, markup, annotated - select for diffs
Fri Jan 18 08:50:13 2019 UTC (5 years, 10 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.1.28.4: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.28.4: +5 -3 lines
Synch with HEAD

Revision 1.7: download - view: text, markup, annotated - select for diffs
Thu Dec 27 09:55:27 2018 UTC (5 years, 11 months ago) by mrg
Branches: MAIN
CVS tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +5 -3 lines
make savecore for arm64 basically work.

- move MD lwp "md_ktf" member into struct pcb.  the pcb is used by
  the gdb "bsd-kvm" target code to find the stack of each thread
  and needs to be available in a well known location.
- implement aarch64_nbsd_supply_pcb() in GDB.  makes basic gdb work
  on a crash dump.
- remove '#if L_MD_KTF + 8 == L_MD_CPACR' conditional code, as there
  is no more L_MD_KTF.

with this gdb has minimal working functionality with "target kvm",
and crash can at least "ps" on a crash dump.

ok skrll.

Revision 1.1.28.4: download - view: text, markup, annotated - select for diffs
Sun Sep 30 01:45:35 2018 UTC (6 years, 2 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.1.28.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.28.3: +31 -18 lines
Ssync with HEAD

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sat Sep 15 19:47:48 2018 UTC (6 years, 2 months ago) by jakllsch
Branches: MAIN
CVS tags: pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +19 -6 lines
make kernel-groveling crash(8) work on aarch64

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Sep 15 19:16:58 2018 UTC (6 years, 2 months ago) by jakllsch
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +14 -14 lines
aarch64/db_trace.c: annotate w/ __printflike; fix discovered problems

Revision 1.1.28.3: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:55:22 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.1.28.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.28.2: +3 -3 lines
Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Jul 30 15:59:44 2018 UTC (6 years, 4 months ago) by ryo
Branches: MAIN
CVS tags: pgoyette-compat-0906
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +3 -3 lines
don't depend on clang code to backtrace. keep trapframe as framepointer if DDB.

Revision 1.1.28.2: download - view: text, markup, annotated - select for diffs
Sat Jul 28 04:37:25 2018 UTC (6 years, 4 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.1.28.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.28.1: +11 -11 lines
Sync with HEAD

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Jul 17 00:31:22 2018 UTC (6 years, 4 months ago) by christos
Branches: MAIN
CVS tags: pgoyette-compat-0728
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +11 -11 lines
add missing casts

Revision 1.1.28.1: download - view: text, markup, annotated - select for diffs
Sat Apr 7 04:12:10 2018 UTC (6 years, 8 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +269 -17 lines
Sync with HEAD.  77 conflicts resolved - all of them $NetBSD$

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Apr 1 04:35:03 2018 UTC (6 years, 8 months ago) by ryo
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407
Branch point for: phil-wifi
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +268 -16 lines
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)

Revision 1.1.4.2: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:02:39 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.1.4.1: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.4.1: +36 -0 lines
Rebase to HEAD as of a few days ago.

Revision 1.1.4.1
Sun Aug 10 05:47:37 2014 UTC (10 years, 4 months ago) by tls
Branches: tls-maxphys
FILE REMOVED
Changes since revision 1.1: +0 -36 lines
file db_trace.c was added on branch tls-maxphys on 2014-08-20 00:02:39 +0000

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 05:47:37 2014 UTC (10 years, 4 months ago) by matt
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, tls-maxphys-base, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-base, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: tls-maxphys, pgoyette-compat
Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>