A small utility

David Holmes david.holmes at oracle.com
Mon May 28 05:40:18 PDT 2012


Hi Andrew,

In non-product builds there is FullGCALot with associated 
FullGCALotInterval, and a start delay FullGCALotStart. I don't know the 
exact details.

David

On 28/05/2012 10:07 PM, Andrew Haley wrote:
> We were having a lot of difficulty with our ARM port: there was a
> very rare crash in the garbage collector.  This little patch helped
> a lot.  It's a thread that forces a full GC at some fixed interval,
> here 500ms.  I don't know if anything similar exists in the HotSpot
> developer sources, but I couldn't find it.  Offered here not as a
> request for a commit, but in the hope that someone might find it
> useful.
>
> Andrew.
>
>
>
> diff -r f293db049783 src/share/vm/runtime/vmThread.cpp
> --- a/src/share/vm/runtime/vmThread.cpp Mon May 28 08:01:18 2012 -0400
> +++ b/src/share/vm/runtime/vmThread.cpp Mon May 28 08:01:38 2012 -0400
> @@ -245,6 +245,39 @@
>     }
>   }
>
> +class BangerThread : NamedThread
> +{
> +public:
> +
> +  static BangerThread *the_thread;
> +
> +  static void create() {
> +    the_thread = new BangerThread();
> +    os::create_thread (the_thread, os::watcher_thread);
> +    Thread::start(the_thread);
> +  }
> +
> +  BangerThread() : NamedThread() {
> +    set_name("banger");
> +  }
> +
> +  void run() {
> +    struct timespec req;
> +    req.tv_nsec = 0.5e9;
> +    req.tv_sec = 0;
> +
> +    for (;;)
> +      {
> +       nanosleep(&req, NULL);
> +       // VM_ForceSafepoint op;
> +       // VMThread::execute(&op);
> +       Universe::heap()->collect(GCCause::_java_lang_system_gc);
> +      }
> +  }
> +};
> +
> +BangerThread *BangerThread::the_thread;
> +
>   void VMThread::run() {
>     assert(this == vm_thread(), "check");
>
> @@ -269,6 +302,8 @@
>     // possible to set the VM thread priority higher than any Java thread.
>     os::set_native_priority( this, prio );
>
> +  BangerThread::create();
> +
>     // Wait for VM_Operations until termination
>     this->loop();
>


More information about the hotspot-dev mailing list