Re: [PATCH] libdwfl: Use process_vm_readv when available.

2018-03-28 Thread Dmitry V. Levin
On Wed, Mar 28, 2018 at 04:33:26PM +0200, Mark Wielaard wrote: > On Tue, 2018-03-20 at 23:32 +0100, Mark Wielaard wrote: > > On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote: > > > If possible use process_vm_readv to read 4K blocks instead of fetching > > > each word individually with

Re: [PATCH] libdwfl: Use process_vm_readv when available.

2018-03-28 Thread Mark Wielaard
On Tue, 2018-03-20 at 23:32 +0100, Mark Wielaard wrote: > On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote: > > If possible use process_vm_readv to read 4K blocks instead of fetching > > each word individually with ptrace. For unwinding this often means we > > only have to do one proce

Re: [PATCH] libdwfl: Use process_vm_readv when available.

2018-03-20 Thread Mark Wielaard
On Wed, Mar 21, 2018 at 02:28:48AM +0300, Dmitry V. Levin wrote: > On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote: > > + /* Let the ptrace fallback deal with the corner case of the address > > + possibly crossing a page boundery. */ > > + if ((addr & ((Dwarf_Addr)__LIBDWFL_REM

Re: [PATCH] libdwfl: Use process_vm_readv when available.

2018-03-20 Thread Dmitry V. Levin
On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote: [...] > @@ -115,12 +116,80 @@ __libdwfl_ptrace_attach (pid_t tid, bool > *tid_was_stoppedp) >return true; > } > > +#ifdef HAVE_PROCESS_VM_READV > +static bool > +read_cached_memory (struct __libdwfl_pid_arg *pid_arg, > +

Re: [PATCH] libdwfl: Use process_vm_readv when available.

2018-03-20 Thread Mark Wielaard
On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote: > If possible use process_vm_readv to read 4K blocks instead of fetching > each word individually with ptrace. For unwinding this often means we > only have to do one process_vm_readv of the stack instead of dozens of > ptrace calls. Th