Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @ 4914:23c0eb012d6f
6330863: vm/gc/InfiniteList.java fails intermittently due to timeout
Summary: in some cases, allocate from the old gen before doing a full gc
Reviewed-by: stefank, jmasa
author | jcoomes |
---|---|
date | Thu, 16 Feb 2012 13:13:53 -0800 |
parents | 53074c2c4600 |
children | b632e80fc9dc |
comparison
equal
deleted
inserted
replaced
4913:ab4422d0ed59 | 4914:23c0eb012d6f |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2012, 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. |
62 inline size_t set_alignment(size_t& var, size_t val); | 62 inline size_t set_alignment(size_t& var, size_t val); |
63 | 63 |
64 // Collection of generations that are adjacent in the | 64 // Collection of generations that are adjacent in the |
65 // space reserved for the heap. | 65 // space reserved for the heap. |
66 AdjoiningGenerations* _gens; | 66 AdjoiningGenerations* _gens; |
67 unsigned int _death_march_count; | |
67 | 68 |
68 static GCTaskManager* _gc_task_manager; // The task manager. | 69 static GCTaskManager* _gc_task_manager; // The task manager. |
69 | 70 |
70 protected: | 71 protected: |
71 static inline size_t total_invocations(); | 72 static inline size_t total_invocations(); |
72 HeapWord* allocate_new_tlab(size_t size); | 73 HeapWord* allocate_new_tlab(size_t size); |
73 | 74 |
75 inline bool should_alloc_in_eden(size_t size) const; | |
76 inline void death_march_check(HeapWord* const result, size_t size); | |
77 HeapWord* mem_allocate_old_gen(size_t size); | |
78 | |
74 public: | 79 public: |
75 ParallelScavengeHeap() : CollectedHeap() { | 80 ParallelScavengeHeap() : CollectedHeap() { |
81 _death_march_count = 0; | |
76 set_alignment(_perm_gen_alignment, intra_heap_alignment()); | 82 set_alignment(_perm_gen_alignment, intra_heap_alignment()); |
77 set_alignment(_young_gen_alignment, intra_heap_alignment()); | 83 set_alignment(_young_gen_alignment, intra_heap_alignment()); |
78 set_alignment(_old_gen_alignment, intra_heap_alignment()); | 84 set_alignment(_old_gen_alignment, intra_heap_alignment()); |
79 } | 85 } |
80 | 86 |