From: Minjia Z. <zha...@cs...> - 2012-08-10 14:53:51
|
Hi Mohamed, On Thu, Aug 9, 2012 at 9:51 PM, Mohamed Ahmed <mam...@gm...> wrote: > Hi Minjia Zhang, > > Thanks for your reply. > > Yes, I'm using the optimizing compiler and ExpandRuntimeService. Using > your hint, I've added a new dummy method > > @org.vmmagic.pragma.NoInline > public static void dummy() throws MyExceptionClass{} > > Shouldn't your MyExceptionClass a Runtime exception if you are going to throw it in your read and write barrier? > and called it from the method that was throwing the uncaught exception. > public int getValue(){ > dummy(); > return value; > } > > > public boolean add(int key) { > do{try{ > .... > node.getValue(); > .... > return true; > }catch(MyExceptionClass e){} > }while(true); > } > Without calling dummy() the try...catch in add method is ignore. > > Ok, does the following make things simpler? Then you still can get the benefit of inlining trivial methods like getValue() called in add(). public boolean add(int key) { do{try{ .... boolean result = atomicAdd() .... return boolean; }catch(MyExceptionClass e){} }while(true); } > Can you please point me how to control the exception handlers. So that I > have a correct implementation instead of this hack. > You might want to take a look at rectifyStateWithExceptionHandler in BC2IR, but then you may need to treat each read and write access as a PEI, and rectify exception handlers to all accesses. I'm not sure if it is an efficient way to solve your problem. > > Thanks again, > Mohamed > > Best, Minjia > > On Thu, Aug 9, 2012 at 12:09 PM, Minjia Zhang <zha...@cs... > > wrote: > >> Hi Mohamed, >> Do you have this uncaught exception issue in BaseBase or in FullAdaptive? >> My answer is based on my assumption that you have already added >> instrumentation of your read and write barriers in the optimizing compiler. >> Then the problem is the optimizing compiler identifies a PEI at BC2IR phase >> and connects exception handlers to the basic block containing that PEI. In >> other words, if your read/write barrier is added in a later phase, for >> example, during ExpandRuntimeService, it probably does not have the >> exception handler you expected associated with that basic block which leads >> to an uncaught exception error. >> >> A quick way to solve this problem is to enclose accesses you instrumented >> that might throw exceptions in your application code into a method, use >> try-catch block to catch your MyExceptionClass thrown from that method. You >> might also want to annotate that method as @NoInline using Jikes >> annotation. The BC2IR phase will treat any noinlined call as potential >> throw of anything and your exception handler block will be connected to it. >> >> Or perhaps you can try to insert your read and write barriers during >> BC2IR, mark them as PEIs and rectify their states with exception handlers. >> I'm not sure whether Jikes support adding PEIs at some point after BC2IR. >> >> And of course, you might need to first address the issue Steve mentioned >> to make sure it is not caused by infinite regress. >> >> Good luck, >> Minjia Zhang >> >> Department of Computer Science and Engineering, >> The Ohio State University >> 674, Dresse Lab, >> 2015 Neil Avenue, >> Columbus, Ohio 43210-1277. >> >> On Wed, Aug 8, 2012 at 6:33 PM, Mohamed Ahmed <mam...@gm...>wrote: >> >>> Thanks a lot Steve >>> >>> >>> On Wed, Aug 8, 2012 at 6:23 PM, Steve Blackburn < >>> Ste...@an...> wrote: >>> >>>> You could probably just have a flag that you set once you identify the >>>> problem, and guard the problem detection code so it does not trigger once >>>> you're already in the process of throwing an exception. In other words, >>>> I'm saying that you need to be aware of the possibility of infinite regress >>>> and you need to have some way of combatting that --- there are many ways. >>>> >>>> --Steve >>>> >>>> On 09/08/2012, at 7:49 AM, Mohamed Ahmed wrote: >>>> >>>> Hi Steve, >>>> >>>> I need to know that something wrong has happened (in my STM, an >>>> inconsistent read occurred). Any other way to do so? >>>> >>>> Thanks, >>>> Mohamed >>>> >>>> On Wed, Aug 8, 2012 at 5:22 PM, Steve Blackburn < >>>> Ste...@an...> wrote: >>>> >>>>> Hi Mohamed, >>>>> >>>>> You can't throw exceptions from within read and write barriers. You >>>>> can't do anything that would potential lead to infinite regress. An >>>>> exception would easily do that (barrier causes exception, causes barrier, >>>>> causes exception ... etc). >>>>> >>>>> --Steve >>>>> >>>>> On 09/08/2012, at 5:33 AM, Mohamed Ahmed wrote: >>>>> >>>>> > Dear All, >>>>> > >>>>> > I'm trying to create a new runtime exception to be thrown from >>>>> inside the VM. I used a new class (mypackage.MyExceptionClass) and throw it >>>>> inside the VM. From the java code, I'm catching the same exception class >>>>> (and I copied the class to the java code classpath) >>>>> > >>>>> > Now when the VM run that java code, sometimes the exception is >>>>> caught and other times the exception ignores the catch block and becomes an >>>>> uncaught error. (and in other cases, it is caught and also propagate as >>>>> uncaught exception). It depends on the java code program that I'm running. >>>>> > >>>>> > I'm throwing the new exception in a read/write barrier. >>>>> > >>>>> > Thanks a lot, >>>>> > Mohamed >>>>> > >>>>> ------------------------------------------------------------------------------ >>>>> > Live Security Virtual Conference >>>>> > Exclusive live event will cover all the ways today's security and >>>>> > threat landscape has changed and how IT managers can respond. >>>>> Discussions >>>>> > will include endpoint security, mobile security and the latest in >>>>> malware >>>>> > threats. >>>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________ >>>>> > Jikesrvm-researchers mailing list >>>>> > Jik...@li... >>>>> > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Live Security Virtual Conference >>>>> Exclusive live event will cover all the ways today's security and >>>>> threat landscape has changed and how IT managers can respond. >>>>> Discussions >>>>> will include endpoint security, mobile security and the latest in >>>>> malware >>>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>>> _______________________________________________ >>>>> Jikesrvm-researchers mailing list >>>>> Jik...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Live Security Virtual Conference >>>> Exclusive live event will cover all the ways today's security and >>>> threat landscape has changed and how IT managers can respond. >>>> Discussions >>>> will include endpoint security, mobile security and the latest in >>>> malware >>>> threats. >>>> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________ >>>> Jikesrvm-researchers mailing list >>>> Jik...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Live Security Virtual Conference >>>> Exclusive live event will cover all the ways today's security and >>>> threat landscape has changed and how IT managers can respond. >>>> Discussions >>>> will include endpoint security, mobile security and the latest in >>>> malware >>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>> _______________________________________________ >>>> Jikesrvm-researchers mailing list >>>> Jik...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. Discussions >>> will include endpoint security, mobile security and the latest in malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> Jikesrvm-researchers mailing list >>> Jik...@li... >>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>> >>> >> >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. Discussions >> will include endpoint security, mobile security and the latest in malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> Jikesrvm-researchers mailing list >> Jik...@li... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >> >> > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Jikesrvm-researchers mailing list > Jik...@li... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > > |