{"push_id":567100122,"size":13,"distinct_size":13,"ref":"refs/heads/ml_arm64_uprobe_devel_v2_over_kprobe_v5","head":"060dc5c61fa5afc56f711629d39cd0dcf5bb0802","before":"a42b54a0c9d49b765e47f5137bd7af11ecf2a7c0","commits":[{"sha":"bc17c122042c042b9b24cd0907f56307b7bed95c","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: kprobe: Fix few instruction which is to be rejected\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/bc17c122042c042b9b24cd0907f56307b7bed95c"},{"sha":"fa6afb5c676d3724333b00a2d0d634ce52e2f179","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: kprobe: Make prepare and handler function struct kprobe independent\n\nprepare and handler function will also be used by uprobe. So, make them\nstruct kprobe independent.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/fa6afb5c676d3724333b00a2d0d634ce52e2f179"},{"sha":"d92b58f05275d77c10ccc4828749ab47a3633370","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: fix kgdb_step_brk_fn to ignore other's exception\n\nARM64 step exception does not have any syndrome information. So, it is\nresponsibility of exception handler to take care that they handle it\nonly if exception was raised for them.\nAfter kprobe support, both kprobe and kgdb uses register_step_hook\nmechanism to register its step handler. So, if call_step_hook calls kgdb\nhandler first, it was always returning 0 and in that case if an\nexception was raised for kprobe, it would never be handled.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/d92b58f05275d77c10ccc4828749ab47a3633370"},{"sha":"3fa5dbc5e4cf8b8e914a018dd61fa91428db2611","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: include asm-generic/ptrace.h in asm/ptrace.h\n\ninstruction_pointer_set is needed for uprobe implementation.\nasm-generic/ptrace.h already defines it. So include it in asm/ptrace.h.\n\nBut inclusion of asm-generic/ptrace.h, needs definition of GET_USP,\nSET_USP, GET_FP & SET_FP as they are different than the generic\ndefinition. So, define them in asm/ptrace.h.\n\nuser_stack_pointer, instruction_pointer and profile_pc have already been\ndefined by asm-generic/ptrace.h now, therefore remove them from asm/ptrace.h.\n\nTo modify instruction pointer in kprobe, use\ninstruction_pointer_set(regs, val) instead of instruction_pointer(regs)\n= val, otherwise lvalue error.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/3fa5dbc5e4cf8b8e914a018dd61fa91428db2611"},{"sha":"ee8ec619bce4b4b0844167b165f66ffc2776f7b7","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Add helper for link pointer\n\nAt many a place we program procedure link pointer ie regs[30]. So adding\nhelper to do that.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/ee8ec619bce4b4b0844167b165f66ffc2776f7b7"},{"sha":"638b35d28f4ed40da52fceb7f96c3eecc8aa9dce","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Re-factor flush_ptrace_access\n\nRe-factor flush_ptrace_access to reuse vma independent part, which is\nneeded for functions like arch_uprobe_copy_ixol where we do not have\na vma.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/638b35d28f4ed40da52fceb7f96c3eecc8aa9dce"},{"sha":"ebde74beb32e1cd374b108362edc2cc6a8fa2672","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Handle TRAP_HWBRKPT for user mode as well\n\nuprobe registers a handler at step_hook. So, single_step_handler now\nchecks for user mode as well if there is a valid hook.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/ebde74beb32e1cd374b108362edc2cc6a8fa2672"},{"sha":"3df3eab88085f3b2e8bc6ab0ae227ad6f0b29729","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Handle TRAP_BRKPT for user mode as well\n\nuprobe is registered at break_hook with a unique ESR code. So, when a\nTRAP_BRKPT occurs, call_break_hook checks if it was for uprobe. If not,\nthen send a SIGTRAP to user.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/3df3eab88085f3b2e8bc6ab0ae227ad6f0b29729"},{"sha":"52139503a42d90c9eb0effd49e740ff9017daf1a","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: rename enum debug_el to enum debug_elx to fix \"wrong kind of tag\"\n\nasm/debug-monitors.h contains definition for debug opcode. So, it will\nbe needed by asm/uprobes.h.\n\nWith enum debug_el it generates following compilation error, since\nasm/uprobes.h is included.\n\nlib/list_sort.c:160:8: error: ‘debug_el’ defined as wrong kind of tag\n struct debug_el {\n\nTherefore rename enum debug_el to enum debug_elx.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/52139503a42d90c9eb0effd49e740ff9017daf1a"},{"sha":"583daaf076a4b42294c5c6d28857b0414f2a18d0","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Add uprobe support\n\nThis patch adds support for uprobe on ARM64 architecture.\n\nUnit test for following has been done so far and they have been found\nworking\n1. Step-able instructions, like sub, ldr, add etc.\n2. Simulation-able like ret.\n3. uretprobe\n4. Reject-able instructions like sev, wfe etc.\n5. trapped and abort xol path\n6. probe at unaligned user address.\n\nCurrently it does not support aarch32 instruction probing.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/583daaf076a4b42294c5c6d28857b0414f2a18d0"},{"sha":"03bade71c90cd27f8cef88cdcb622248961e7e92","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: Add symbols in NOKPROBE_SYMBOL\n\nAdd all function symbols which are called from do_debug_exception under\nNOKPROBE_SYMBOL, as they can not kprobed.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/03bade71c90cd27f8cef88cdcb622248961e7e92"},{"sha":"2f651368a614d8a9ce919674f75a87dd1a061ce8","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"uprobe: Add uprobe_pre/post_sstep_notifier to NOKPROBE_SYMBOL\n\nuprobe_pre_sstep_notifier and uprobe_post_sstep_notifier are called from\ndebug exception handler, so blacklist them for kprobing.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/2f651368a614d8a9ce919674f75a87dd1a061ce8"},{"sha":"060dc5c61fa5afc56f711629d39cd0dcf5bb0802","author":{"email":"d87ec5d367317dddadb0e3ae3e592b2c0573cf36@redhat.com","name":"Pratyush Anand"},"message":"ARM64: kprobe: disable single step exception before calling pre_handler\n\npre_handler functions such as trampoline_probe_handler might call some\nother function like kfree which is kprobe-able. So disable single step\nbefore calling pre_handler and re-enable it afterwards.\n\nSigned-off-by: Pratyush Anand <panand@redhat.com>","distinct":true,"url":"https://api.github.com/repos/pratyushanand/linux/commits/060dc5c61fa5afc56f711629d39cd0dcf5bb0802"}]}