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

Dave Martin dave.martin at linaro.org
Wed Jul 6 08:57:50 UTC 2011


On Tue, Jul 05, 2011 at 12:48:39PM -0400, Nicolas Pitre wrote:
> 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.

That sounds good to me if it's straightforward to achieve.

Cheers
---Dave



More information about the linaro-kernel mailing list