• Home
  • Raw
  • Download

Lines Matching refs:mmap

342             eventItem.attr.mmap = 1;  in AddEvent()
1049 void *rbuf = mmap(nullptr, (1 + mmapPages_) * pageSize_, PROT_READ | PROT_WRITE, MAP_SHARED, in CreateMmap()
1189 bool PerfEvents::GetRecordFromMmap(MmapFd &mmap) in GetRecordFromMmap() argument
1191 if (mmap.dataSize <= 0) { in GetRecordFromMmap()
1195 GetRecordFieldFromMmap(mmap, &(mmap.header), mmap.mmapPage->data_tail, sizeof(mmap.header)); in GetRecordFromMmap()
1196 if (mmap.header.type != PERF_RECORD_SAMPLE) { in GetRecordFromMmap()
1197 mmap.timestamp = 0; in GetRecordFromMmap()
1203 GetRecordFieldFromMmap(mmap, &(mmap.timestamp), mmap.mmapPage->data_tail + timePos, in GetRecordFromMmap()
1204 sizeof(mmap.timestamp)); in GetRecordFromMmap()
1208 void PerfEvents::GetRecordFieldFromMmap(MmapFd &mmap, void *dest, size_t pos, size_t size) in GetRecordFieldFromMmap() argument
1210 pos = pos % mmap.bufSize; in GetRecordFieldFromMmap()
1211 size_t tailSize = mmap.bufSize - pos; in GetRecordFieldFromMmap()
1213 if (memcpy_s(dest, copySize, mmap.buf + pos, copySize) != 0) { in GetRecordFieldFromMmap()
1214 HLOGEP("memcpy_s %p to %p failed. size %zd", mmap.buf + pos, dest, copySize); in GetRecordFieldFromMmap()
1218 if (memcpy_s(static_cast<uint8_t *>(dest) + copySize, size, mmap.buf, size) != 0) { in GetRecordFieldFromMmap()
1219 HLOGEP("memcpy_s %p to %p failed. size %zd", mmap.buf, in GetRecordFieldFromMmap()
1239 size_t PerfEvents::GetStackSizePosInSampleRecord(MmapFd &mmap) in GetStackSizePosInSampleRecord() argument
1241 size_t pos = mmap.posCallChain; in GetStackSizePosInSampleRecord()
1242 if (mmap.attr->sample_type & PERF_SAMPLE_CALLCHAIN) { in GetStackSizePosInSampleRecord()
1244 GetRecordFieldFromMmap(mmap, &nr, mmap.mmapPage->data_tail + pos, sizeof(nr)); in GetStackSizePosInSampleRecord()
1247 if (mmap.attr->sample_type & PERF_SAMPLE_RAW) { in GetStackSizePosInSampleRecord()
1249 GetRecordFieldFromMmap(mmap, &raw_size, mmap.mmapPage->data_tail + pos, sizeof(raw_size)); in GetStackSizePosInSampleRecord()
1252 if (mmap.attr->sample_type & PERF_SAMPLE_BRANCH_STACK) { in GetStackSizePosInSampleRecord()
1254 GetRecordFieldFromMmap(mmap, &bnr, mmap.mmapPage->data_tail + pos, sizeof(bnr)); in GetStackSizePosInSampleRecord()
1257 if (mmap.attr->sample_type & PERF_SAMPLE_REGS_USER) { in GetStackSizePosInSampleRecord()
1259 GetRecordFieldFromMmap(mmap, &user_abi, mmap.mmapPage->data_tail + pos, sizeof(user_abi)); in GetStackSizePosInSampleRecord()
1262 uint64_t reg_nr = __builtin_popcountll(mmap.attr->sample_regs_user); in GetStackSizePosInSampleRecord()
1269 bool PerfEvents::CutStackAndMove(MmapFd &mmap) in CutStackAndMove() argument
1272 if (!(mmap.attr->sample_type & PERF_SAMPLE_STACK_USER)) { in CutStackAndMove()
1275 size_t stackSizePos = GetStackSizePosInSampleRecord(mmap); in CutStackAndMove()
1277 GetRecordFieldFromMmap(mmap, &stackSize, mmap.mmapPage->data_tail + stackSizePos, in CutStackAndMove()
1284 GetRecordFieldFromMmap(mmap, &dynSize, mmap.mmapPage->data_tail + dynSizePos, sizeof(dynSize)); in CutStackAndMove()
1294 uint16_t recordSize = mmap.header.size; in CutStackAndMove()
1295 mmap.header.size -= stackSize - newStackSize; // reduce the stack size in CutStackAndMove()
1296 uint8_t *buf = recordBuf_->AllocForWrite(mmap.header.size); in CutStackAndMove()
1298 if (memcpy_s(buf, sizeof(perf_event_header), &(mmap.header), sizeof(perf_event_header)) != 0) { in CutStackAndMove()
1299 HLOGEP("memcpy_s %p to %p failed. size %zd", &(mmap.header), buf, in CutStackAndMove()
1305 GetRecordFieldFromMmap(mmap, buf + copyPos, mmap.mmapPage->data_tail + copyPos, copySize); in CutStackAndMove()
1308 GetRecordFieldFromMmap(mmap, buf + copyPos, mmap.mmapPage->data_tail + dynSizePos, in CutStackAndMove()
1316 mmap.mmapPage->data_tail += recordSize; in CutStackAndMove()
1317 mmap.dataSize -= recordSize; in CutStackAndMove()
1321 void PerfEvents::MoveRecordToBuf(MmapFd &mmap) in MoveRecordToBuf() argument
1324 if (mmap.header.type == PERF_RECORD_SAMPLE) { in MoveRecordToBuf()
1330 if (CutStackAndMove(mmap)) { in MoveRecordToBuf()
1333 } else if (mmap.header.type == PERF_RECORD_LOST) { in MoveRecordToBuf()
1337 GetRecordFieldFromMmap(mmap, &lost, mmap.mmapPage->data_tail + lostPos, sizeof(lost)); in MoveRecordToBuf()
1343 if ((buf = recordBuf_->AllocForWrite(mmap.header.size)) == nullptr) { in MoveRecordToBuf()
1350 GetRecordFieldFromMmap(mmap, buf, mmap.mmapPage->data_tail, mmap.header.size); in MoveRecordToBuf()
1354 mmap.mmapPage->data_tail += mmap.header.size; in MoveRecordToBuf()
1355 mmap.dataSize -= mmap.header.size; in MoveRecordToBuf()