ARM kprobes on Thumb kernels? was Re: Determining an ARM CPU's architecture

Nicolas Pitre nicolas.pitre at linaro.org
Tue Jul 5 16:48:39 UTC 2011


On Tue, 5 Jul 2011, Tixy wrote:

> On Tue, 2011-07-05 at 11:38 -0400, Nicolas Pitre wrote:
> > On Tue, 5 Jul 2011, Tixy wrote:
> > 
> > > Irrespective of correct interworking behaviour and API issues, do we
> > > think that it's a good memory saving exercise to not support probing ARM
> > > code on Thumb kernels?
> > 
> > I would think so.  And if this is really something people need then this 
> > could be revisited in the future.  Remember that you gain no points by 
> > trying to submit everything on a zero-day.
> 
> There isn't really much lines of code or diffstat saving not supporting
> ARM code on Thumb kernels. In fact, for cleanness reasons I would need
> to reorganise code. Currently we have
> 
> kprobes.c
> 	Infrastructure
> kprobes-decode.c
> 	ARM instruction decoding and simulation
> 
> My changes at the moment have
> 
> kprobes.c
> 	Infrastructure (700 lines)
> kprobes-decode.c
> 	ARM instruction decoding and simulation (1000 lines)
> 	Common instruction decoding and simulation (400 lines)
> 	Decoding table processing (300 lines)
> kprobes-thumb.c
> 	Thumb instruction decoding and simulation (1500 lines)
> 
> To avoid #ifdef the ARM instruction decoding should be in its own file
> and not built for Thumb kernels. So the minimal change would be to move
> 
> 	Common instruction decoding and simulation
> 	Decoding table processing
> 
> into kprobes.c, or probably nicer into a new kprobes-common.c. (We could
> then rename kprobes-decode to kprobes-arm and have things looking neat.)
> 
> As this is reworking 70 patches, I would like confirmation that the
> approach is good before starting ;-)

Sure, looks sensible.  Better do the renaming first and only add new 
stuff to it with subsequent patches.

Keeping the kprobes interface separate from the actual table and 
simulation/emulation handling is certainly a good idea too. So you'd end 
up with kprobes.c, kprobes-common.c, kprobes-arm.c and kprobles-thumb.c.


Nicolas



More information about the linaro-kernel mailing list