From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18277 invoked by alias); 28 Jul 2005 18:13:40 -0000 Mailing-List: contact systemtap-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sources.redhat.com Received: (qmail 18258 invoked by uid 22791); 28 Jul 2005 18:13:33 -0000 In-Reply-To: Subject: Re: Hitachi djprobe mechanism Sensitivity: To: Masami Hiramatsu Cc: "Keshavamurthy, Anil S" , Masami Hiramatsu , karim@opersys.com, Roland McGrath , Satoshi Oshima , sugita@sdl.hitachi.co.jp, SystemTAP X-Mailer: Lotus Notes Release 6.5.1IBM February 19, 2004 Message-ID: From: Richard J Moore Date: Thu, 28 Jul 2005 18:13:00 -0000 X-MIMETrack: Serialize by Router on D06ML065/06/M/IBM(Release 6.53HF247 | January 6, 2005) at 28/07/2005 19:13:27 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-SW-Source: 2005-q3/txt/msg00148.txt.bz2 Masami Hiramatsu wrote on 28/07/2005 17:22:46: > Hi, > > 2005/7/28, Karim Yaghmour : > > Karim Yaghmour wrote: > > >From the article's text: > > > "The springboard approach requires chunks of scratch space (collectively, > > > the springboard heap) to be conveniently sprinkled throughout the kernel, > > > so that every kernel instruction can reach some chunk when using one of > > > the suitable instructions ..." > > > > Also, there's this bit I missed from the figure the text refers to as > > containing the list of instructions that can be used for various > architectures > > (figure 4.6): > > > > "None of the architectures has an ideal splicing instruction; either > > displacement is insufficient (RISC architectures), or there is no > > guarantee that only a single instruction is overwritten when > splicing (x86)." > > > > To the best of my understanding, the latter seems to imply that springboards > > have the very same limitations mentioned earlier for djprobe. > > I think so. the size of smallest jmp instruction is 2 bytes on i386, > but the smallest instruction is 1byte on i386 (ex. pushl %esi). > I will try to add safety check routine in sched() and do_IRQ(). That's why "int3" is not the same as "int 3" i.e. it's one byte instead of two. Nothing else quite works as well for brekpointing purposes. > > -- > Masami Hiramatsu > mailto:masami.hiramatsu@gmail.com - - Richard J Moore IBM Advanced Linux Response Team - Linux Technology Centre MOBEX: 264807; Mobile (+44) (0)7739-875237 Office: (+44) (0)1962-817072