This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] kprobes for s390 architecture


> ok, I tried, but my "better ideas" made things worse. stop_machine_run() wins:
> 
> void __kprobes arch_arm_kprobe(struct kprobe *p)
> {
>         struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
>         unsigned long status = kcb->kprobe_status;
>         struct ins_replace_args args;
> 
>         args.ptr = p->addr;
>         args.old = p->opcode;
>         args.new = BREAKPOINT_INSTRUCTION;
> 
>         kcb->kprobe_status = KPROBE_SWAP_INST;
>         stop_machine_run(swap_instruction, &args, NR_CPUS);
>         kcb->kprobe_status = status;
> }
> 
> It works, and I guess at this point is the only way to do it. I'll send out a 
> full patch with this and the other cleanups later.

How fast is this if you have to exchange several hundred instructions?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]