From owner-freebsd-java Mon Aug 27 18:11: 8 2001 Delivered-To: freebsd-java@freebsd.org Received: from sharmas.dhs.org (cpe-66-1-147-119.ca.sprintbbd.net [66.1.147.119]) by hub.freebsd.org (Postfix) with ESMTP id 3A73937B403 for ; Mon, 27 Aug 2001 18:11:05 -0700 (PDT) (envelope-from adsharma@sharmas.dhs.org) Received: by sharmas.dhs.org (Postfix, from userid 500) id 327605E37B; Mon, 27 Aug 2001 18:12:49 -0700 (PDT) Date: Mon, 27 Aug 2001 18:12:49 -0700 From: Arun Sharma To: Fuyuhiko Maruyama Cc: java@FreeBSD.ORG Subject: Re: JVM and native threads Message-ID: <20010827181249.A16093@sharmas.dhs.org> References: <20010824233304.A32099@sharmas.dhs.org> <55vgjcqv87.wl@tripper.private> <20010825095746.A1015@sharmas.dhs.org> <55heuv0xtl.wl@tripper.private> <20010826171010.A6742@gnuppy> <20010827143244.A12305@misty.eyesbeyond.com> <55k7zqnd1x.wl@tripper.private> <20010827095624.B14875@sharmas.dhs.org> <55itf9cmln.wl@tripper.private> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i In-Reply-To: <55itf9cmln.wl@tripper.private>; from fuyuhik8@is.titech.ac.jp on Tue, Aug 28, 2001 at 04:46:28AM +0900 Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Tue, Aug 28, 2001 at 04:46:28AM +0900, Fuyuhiko Maruyama wrote: > Thanks, it is interesting. > > In fact, it seems quite curious for me because you say nothing about > thread's context. So I dig the orp-20010727 sources and found that > current ORP doesn't well support Linux platform. Current ORP may > cause disaster when GC is happen on Linux, possible senarios are: > 1. GC system collects live object refered only by register. > 2. GC system moves live objects refered by register and it doesn't > treat pointers on register to catch up moving of objects. > 3. GC system cannot ensure all threads are suspended at GC safepoint. > > Do I misunderstand? > Since they claim to run SpecJVM on Linux and it doesn't crash and burn, they must be doing something right :) See: 1. http://www.acm.org/pubs/citations/proceedings/pldi/301618/p118-stichnoth/ 2. Comments from arch/ia32/base/root_set_enum_ia32.cpp // Not at a GC-safe point. We will let the thread run, but before // we do it, // we will: // 1. gc_status = moving_to_gc_safepoint // 2. Hijack the return eip. // 3. Set the breakpoints // There are only three ways to escape from a Java frame: // A. Return. This is handled by (1) above. // B. Call to another method. Handled by (2). // C. Exception which is not handled in the current method. This // is handled // by the exception throwing code which checks the state of the // thread -Arun To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message