Lines Matching refs:rd

2087 reader__init(struct reader *rd, bool *one_mmap)  in reader__init()  argument
2089 u64 data_size = rd->data_size; in reader__init()
2090 char **mmaps = rd->mmaps; in reader__init()
2092 rd->head = rd->data_offset; in reader__init()
2093 data_size += rd->data_offset; in reader__init()
2095 rd->mmap_size = MMAP_SIZE; in reader__init()
2096 if (rd->mmap_size > data_size) { in reader__init()
2097 rd->mmap_size = data_size; in reader__init()
2102 memset(mmaps, 0, sizeof(rd->mmaps)); in reader__init()
2104 if (zstd_init(&rd->zstd_data, 0)) in reader__init()
2106 rd->decomp_data.zstd_decomp = &rd->zstd_data; in reader__init()
2112 reader__release_decomp(struct reader *rd) in reader__release_decomp() argument
2114 perf_decomp__release_events(rd->decomp_data.decomp); in reader__release_decomp()
2115 zstd_fini(&rd->zstd_data); in reader__release_decomp()
2119 reader__mmap(struct reader *rd, struct perf_session *session) in reader__mmap() argument
2122 char *buf, **mmaps = rd->mmaps; in reader__mmap()
2128 if (rd->in_place_update) { in reader__mmap()
2135 if (mmaps[rd->mmap_idx]) { in reader__mmap()
2136 munmap(mmaps[rd->mmap_idx], rd->mmap_size); in reader__mmap()
2137 mmaps[rd->mmap_idx] = NULL; in reader__mmap()
2140 page_offset = page_size * (rd->head / page_size); in reader__mmap()
2141 rd->file_offset += page_offset; in reader__mmap()
2142 rd->head -= page_offset; in reader__mmap()
2144 buf = mmap(NULL, rd->mmap_size, mmap_prot, mmap_flags, rd->fd, in reader__mmap()
2145 rd->file_offset); in reader__mmap()
2150 mmaps[rd->mmap_idx] = rd->mmap_cur = buf; in reader__mmap()
2151 rd->mmap_idx = (rd->mmap_idx + 1) & (ARRAY_SIZE(rd->mmaps) - 1); in reader__mmap()
2152 rd->file_pos = rd->file_offset + rd->head; in reader__mmap()
2155 session->one_mmap_offset = rd->file_offset; in reader__mmap()
2167 reader__read_event(struct reader *rd, struct perf_session *session, in reader__read_event() argument
2175 event = fetch_mmaped_event(rd->head, rd->mmap_size, rd->mmap_cur, in reader__read_event()
2188 (skip = rd->process(session, event, rd->file_pos, rd->path)) < 0) { in reader__read_event()
2190 rd->file_offset + rd->head, event->header.size, in reader__read_event()
2199 rd->size += size; in reader__read_event()
2200 rd->head += size; in reader__read_event()
2201 rd->file_pos += size; in reader__read_event()
2214 reader__eof(struct reader *rd) in reader__eof() argument
2216 return (rd->file_pos >= rd->data_size + rd->data_offset); in reader__eof()
2220 reader__process_events(struct reader *rd, struct perf_session *session, in reader__process_events() argument
2225 err = reader__init(rd, &session->one_mmap); in reader__process_events()
2229 session->active_decomp = &rd->decomp_data; in reader__process_events()
2232 err = reader__mmap(rd, session); in reader__process_events()
2237 err = reader__read_event(rd, session, prog); in reader__process_events()
2246 if (!reader__eof(rd)) in reader__process_events()
2264 struct reader rd = { in __perf_session__process_events() local
2277 if (rd.data_size == 0) in __perf_session__process_events()
2280 ui_progress__init_size(&prog, rd.data_size, "Processing events..."); in __perf_session__process_events()
2282 err = reader__process_events(&rd, session, &prog); in __perf_session__process_events()
2303 reader__release_decomp(&rd); in __perf_session__process_events()
2327 struct reader *rd; in __perf_session__process_dir_events() local
2337 rd = zalloc(nr_readers * sizeof(struct reader)); in __perf_session__process_dir_events()
2338 if (!rd) in __perf_session__process_dir_events()
2341 rd[0] = (struct reader) { in __perf_session__process_dir_events()
2349 ret = reader__init(&rd[0], NULL); in __perf_session__process_dir_events()
2352 ret = reader__mmap(&rd[0], session); in __perf_session__process_dir_events()
2360 rd[readers] = (struct reader) { in __perf_session__process_dir_events()
2368 ret = reader__init(&rd[readers], NULL); in __perf_session__process_dir_events()
2371 ret = reader__mmap(&rd[readers], session); in __perf_session__process_dir_events()
2382 if (rd[i].done) { in __perf_session__process_dir_events()
2386 if (reader__eof(&rd[i])) { in __perf_session__process_dir_events()
2387 rd[i].done = true; in __perf_session__process_dir_events()
2392 session->active_decomp = &rd[i].decomp_data; in __perf_session__process_dir_events()
2393 ret = reader__read_event(&rd[i], session, &prog); in __perf_session__process_dir_events()
2397 ret = reader__mmap(&rd[i], session); in __perf_session__process_dir_events()
2402 if (rd[i].size >= READER_MAX_SIZE) { in __perf_session__process_dir_events()
2403 rd[i].size = 0; in __perf_session__process_dir_events()
2429 reader__release_decomp(&rd[i]); in __perf_session__process_dir_events()
2430 zfree(&rd); in __perf_session__process_dir_events()