Lines Matching defs:idx

312   size_t idx = pm_idx + 1;
314 while (idx < end && page_map_[idx] == pm_part_type) {
315 page_map_[idx] = kPageMapEmpty;
317 idx++;
535 RosAlloc::Run* RosAlloc::AllocRun(Thread* self, size_t idx) {
539 new_run = reinterpret_cast<Run*>(AllocPages(self, numOfPages[idx], kPageMapRun));
545 new_run->size_bracket_idx_ = idx;
550 if (kUsePrefetchDuringAllocRun && idx < kNumThreadLocalSizeBrackets) {
557 const size_t num_of_slots = numOfSlots[idx];
558 const size_t bracket_size = bracketSizes[idx];
560 byte* begin = reinterpret_cast<byte*>(new_run) + headerSizes[idx];
570 RosAlloc::Run* RosAlloc::RefillRun(Thread* self, size_t idx) {
572 std::set<Run*>* const bt = &non_full_runs_[idx];
583 return AllocRun(self, idx);
586 inline void* RosAlloc::AllocFromCurrentRunUnlocked(Thread* self, size_t idx) {
587 Run* current_run = current_runs_[idx];
594 full_runs_[idx].insert(current_run);
598 << " into full_runs_[" << std::dec << idx << "]";
600 DCHECK(non_full_runs_[idx].find(current_run) == non_full_runs_[idx].end());
601 DCHECK(full_runs_[idx].find(current_run) != full_runs_[idx].end());
603 current_run = RefillRun(self, idx);
606 current_runs_[idx] = dedicated_full_run_;
610 DCHECK(non_full_runs_[idx].find(current_run) == non_full_runs_[idx].end());
611 DCHECK(full_runs_[idx].find(current_run) == full_runs_[idx].end());
613 current_runs_[idx] = current_run;
625 size_t idx = SizeToIndexAndBracketSize(size, &bracket_size);
626 DCHECK_EQ(idx, SizeToIndex(size));
627 DCHECK_EQ(bracket_size, IndexToBracketSize(idx));
628 DCHECK_EQ(bracket_size, bracketSizes[idx]);
632 void* slot_addr = AllocFromCurrentRunUnlocked(self, idx);
644 size_t idx = SizeToIndexAndBracketSize(size, &bracket_size);
645 DCHECK_EQ(idx, SizeToIndex(size));
646 DCHECK_EQ(bracket_size, IndexToBracketSize(idx));
647 DCHECK_EQ(bracket_size, bracketSizes[idx]);
653 if (LIKELY(idx < kNumThreadLocalSizeBrackets)) {
655 Run* thread_local_run = reinterpret_cast<Run*>(self->GetRosAllocRun(idx));
659 MutexLock mu(self, *size_bracket_locks_[idx]);
660 CHECK(non_full_runs_[idx].find(thread_local_run) == non_full_runs_[idx].end());
661 CHECK(full_runs_[idx].find(thread_local_run) == full_runs_[idx].end());
672 MutexLock mu(self, *size_bracket_locks_[idx]);
681 // Check that the bitmap idx is back at 0 if it's all free.
690 full_runs_[idx].insert(thread_local_run);
694 << " into full_runs_[" << std::dec << idx << "]";
697 DCHECK(non_full_runs_[idx].find(thread_local_run) == non_full_runs_[idx].end());
698 DCHECK(full_runs_[idx].find(thread_local_run) != full_runs_[idx].end());
701 thread_local_run = RefillRun(self, idx);
703 self->SetRosAllocRun(idx, dedicated_full_run_);
706 DCHECK(non_full_runs_[idx].find(thread_local_run) == non_full_runs_[idx].end());
707 DCHECK(full_runs_[idx].find(thread_local_run) == full_runs_[idx].end());
709 self->SetRosAllocRun(idx, thread_local_run);
727 MutexLock mu(self, *size_bracket_locks_[idx]);
728 slot_addr = AllocFromCurrentRunUnlocked(self, idx);
745 const size_t idx = run->size_bracket_idx_;
746 const size_t bracket_size = bracketSizes[idx];
748 MutexLock mu(self, *size_bracket_locks_[idx]);
758 DCHECK(non_full_runs_[idx].find(run) == non_full_runs_[idx].end());
759 DCHECK(full_runs_[idx].find(run) == full_runs_[idx].end());
770 std::set<Run*>* non_full_runs = &non_full_runs_[idx];
781 if (run == current_runs_[idx]) {
782 current_runs_[idx] = dedicated_full_run_;
784 DCHECK(non_full_runs_[idx].find(run) == non_full_runs_[idx].end());
785 DCHECK(full_runs_[idx].find(run) == full_runs_[idx].end());
795 if (run != current_runs_[idx]) {
797 kIsDebugBuild ? &full_runs_[idx] : NULL;
814 << " into non_full_runs_[" << std::dec << idx << "]";
836 size_t idx = size_bracket_idx_;
837 size_t num_slots = numOfSlots[idx];
842 << " size_bracket_idx=" << idx
854 const size_t idx = size_bracket_idx_;
868 DCHECK_LT(slot_idx, numOfSlots[idx]) << "out of range";
873 byte* slot_addr = reinterpret_cast<byte*>(this) + headerSizes[idx] + slot_idx * bracketSizes[idx];
876 << ", bracket_size=" << std::dec << bracketSizes[idx] << ", slot_idx=" << slot_idx;
880 const size_t num_words = RoundUp(numOfSlots[idx], 32) / 32;
893 const byte idx = size_bracket_idx_;
894 const size_t bracket_size = bracketSizes[idx];
896 - (reinterpret_cast<byte*>(this) + headerSizes[idx]);
899 DCHECK_LT(slot_idx, numOfSlots[idx]);
902 size_t num_vec = RoundUp(numOfSlots[idx], 32) / 32;
917 << ", bracket_size=" << std::dec << bracketSizes[idx] << ", slot_idx=" << slot_idx;
924 const size_t idx = size_bracket_idx_;
925 const size_t num_of_slots = numOfSlots[idx];
1005 const byte idx = size_bracket_idx_;
1007 - (reinterpret_cast<byte*>(this) + headerSizes[idx]);
1008 const size_t bracket_size = bracketSizes[idx];
1012 DCHECK_LT(slot_idx, numOfSlots[idx]);
1027 << ", bracket_size=" << std::dec << bracketSizes[idx] << ", slot_idx=" << slot_idx;
1041 const byte idx = size_bracket_idx_;
1042 const size_t num_slots = numOfSlots[idx];
1089 const size_t idx = size_bracket_idx_;
1090 const size_t num_slots = numOfSlots[idx];
1099 const byte idx = size_bracket_idx_;
1100 memset(this, 0, headerSizes[idx]);
1104 const byte idx = size_bracket_idx_;
1105 byte* slot_begin = reinterpret_cast<byte*>(this) + headerSizes[idx];
1106 memset(slot_begin, 0, numOfSlots[idx] * bracketSizes[idx]);
1117 size_t idx = size_bracket_idx_;
1118 byte* slot_base = reinterpret_cast<byte*>(this) + headerSizes[idx];
1119 size_t num_slots = numOfSlots[idx];
1120 size_t bracket_size = IndexToBracketSize(idx);
1121 DCHECK_EQ(slot_base + num_slots * bracket_size, reinterpret_cast<byte*>(this) + numOfPages[idx] * kPageSize);
1246 size_t idx = run->size_bracket_idx_;
1247 MutexLock mu(self, *size_bracket_locks_[idx]);
1250 DCHECK(non_full_runs_[idx].find(run) == non_full_runs_[idx].end());
1251 DCHECK(full_runs_[idx].find(run) == full_runs_[idx].end());
1269 std::set<Run*>* non_full_runs = &non_full_runs_[idx];
1271 kIsDebugBuild ? &full_runs_[idx] : NULL;
1275 bool run_was_current = run == current_runs_[idx];
1315 if (run == current_runs_[idx]) {
1336 << " into non_full_runs_[" << std::dec << idx;
1418 size_t idx = run->size_bracket_idx_;
1420 << " idx=" << idx
1421 << " numOfPages=" << numOfPages[idx]
1454 size_t idx = pm_idx + 1;
1456 while (idx < end && page_map_[idx] == kPageMapLargeObjectPart) {
1458 idx++;
1476 size_t idx = run->size_bracket_idx_;
1478 - (reinterpret_cast<byte*>(run) + headerSizes[idx]);
1479 DCHECK_EQ(offset_from_slot_base % bracketSizes[idx], static_cast<size_t>(0));
1480 return IndexToBracketSize(idx);
1580 size_t idx = i + 1;
1581 while (idx < pm_end && page_map_[idx] == kPageMapLargeObjectPart) {
1583 idx++;
1653 for (size_t idx = 0; idx < kNumThreadLocalSizeBrackets; idx++) {
1654 MutexLock mu(self, *size_bracket_locks_[idx]);
1655 Run* thread_local_run = reinterpret_cast<Run*>(thread->GetRosAllocRun(idx));
1660 thread->SetRosAllocRun(idx, dedicated_full_run_);
1667 DCHECK(non_full_runs_[idx].find(thread_local_run) == non_full_runs_[idx].end());
1668 DCHECK(full_runs_[idx].find(thread_local_run) == full_runs_[idx].end());
1669 RevokeRun(self, idx, thread_local_run);
1674 void RosAlloc::RevokeRun(Thread* self, size_t idx, Run* run) {
1675 size_bracket_locks_[idx]->AssertHeld(self);
1679 full_runs_[idx].insert(run);
1680 DCHECK(full_runs_[idx].find(run) != full_runs_[idx].end());
1684 << " into full_runs_[" << std::dec << idx << "]";
1692 non_full_runs_[idx].insert(run);
1693 DCHECK(non_full_runs_[idx].find(run) != non_full_runs_[idx].end());
1697 << " into non_full_runs_[" << std::dec << idx << "]";
1703 // Revoke the current runs which share the same idx as thread local runs.
1705 for (size_t idx = 0; idx < kNumThreadLocalSizeBrackets; ++idx) {
1706 MutexLock mu(self, *size_bracket_locks_[idx]);
1707 if (current_runs_[idx] != dedicated_full_run_) {
1708 RevokeRun(self, idx, current_runs_[idx]);
1709 current_runs_[idx] = dedicated_full_run_;
1731 for (size_t idx = 0; idx < kNumThreadLocalSizeBrackets; idx++) {
1732 MutexLock mu(self, *size_bracket_locks_[idx]);
1733 Run* thread_local_run = reinterpret_cast<Run*>(thread->GetRosAllocRun(idx));
1748 for (size_t idx = 0; idx < kNumThreadLocalSizeBrackets; ++idx) {
1749 MutexLock mu(self, *size_bracket_locks_[idx]);
1750 CHECK_EQ(current_runs_[idx], dedicated_full_run_);
1915 size_t idx = i + 1;
1916 while (idx < pm_end && page_map_[idx] == kPageMapLargeObjectPart) {
1918 idx++;
1941 size_t idx = run->size_bracket_idx_;
1942 CHECK_LT(idx, kNumOfSizeBrackets) << "Out of range size bracket index : " << idx;
1943 size_t num_pages = numOfPages[idx];
1997 const size_t idx = size_bracket_idx_;
1998 CHECK_LT(idx, kNumOfSizeBrackets) << "Out of range size bracket index : " << Dump();
1999 byte* slot_base = reinterpret_cast<byte*>(this) + headerSizes[idx];
2000 const size_t num_slots = numOfSlots[idx];
2003 size_t bracket_size = IndexToBracketSize(idx);
2005 reinterpret_cast<byte*>(this) + numOfPages[idx] * kPageSize)
2027 CHECK_EQ(i, idx)
2044 if (idx == i) {
2059 std::set<Run*>& non_full_runs = rosalloc->non_full_runs_[idx];
2069 std::unordered_set<Run*, hash_run, eq_run>& full_runs = rosalloc->full_runs_[idx];
2094 CHECK_EQ(SizeToIndex(obj_size), idx)
2096 << "obj_size=" << obj_size << ", idx=" << idx << " "