comparison src/share/vm/memory/sharedHeap.hpp @ 1833:8b10f48633dc

6984287: Regularize how GC parallel workers are specified. Summary: Associate number of GC workers with the workgang as opposed to the task. Reviewed-by: johnc, ysr
author jmasa
date Mon, 20 Sep 2010 14:38:38 -0700
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1781:97fbf5beff7b 1833:8b10f48633dc
1 /* 1 /*
2 * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
36 class OopClosure; 36 class OopClosure;
37 class OopsInGenClosure; 37 class OopsInGenClosure;
38 class ObjectClosure; 38 class ObjectClosure;
39 class SubTasksDone; 39 class SubTasksDone;
40 class WorkGang; 40 class WorkGang;
41 class FlexibleWorkGang;
41 class CollectorPolicy; 42 class CollectorPolicy;
42 class KlassHandle; 43 class KlassHandle;
43 44
44 class SharedHeap : public CollectedHeap { 45 class SharedHeap : public CollectedHeap {
45 friend class VMStructs; 46 friend class VMStructs;
72 // See the discussion below, in the specification of the reader function 73 // See the discussion below, in the specification of the reader function
73 // for this variable. 74 // for this variable.
74 int _strong_roots_parity; 75 int _strong_roots_parity;
75 76
76 // If we're doing parallel GC, use this gang of threads. 77 // If we're doing parallel GC, use this gang of threads.
77 WorkGang* _workers; 78 FlexibleWorkGang* _workers;
78 79
79 // Number of parallel threads currently working on GC tasks. 80 // Number of parallel threads currently working on GC tasks.
80 // O indicates use sequential code; 1 means use parallel code even with 81 // O indicates use sequential code; 1 means use parallel code even with
81 // only one thread, for performance testing purposes. 82 // only one thread, for performance testing purposes.
82 int _n_par_threads; 83 int _n_par_threads;
187 SO_Symbols = 0x4, 188 SO_Symbols = 0x4,
188 SO_Strings = 0x8, 189 SO_Strings = 0x8,
189 SO_CodeCache = 0x10 190 SO_CodeCache = 0x10
190 }; 191 };
191 192
192 WorkGang* workers() const { return _workers; } 193 FlexibleWorkGang* workers() const { return _workers; }
193 194
194 // Sets the number of parallel threads that will be doing tasks 195 // Sets the number of parallel threads that will be doing tasks
195 // (such as process strong roots) subsequently. 196 // (such as process strong roots) subsequently.
196 virtual void set_par_threads(int t); 197 virtual void set_par_threads(int t);
197 198