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