Home | History | Annotate | Download | only in blktrace

Lines Matching defs:dpp

136 	struct devpath *dpp;
245 struct devpath *dpp;
484 static inline void pdc_dr_update(struct devpath *dpp, int cpu, int data_read)
486 dpp->stats[cpu].data_read += data_read;
489 static inline void pdc_nev_update(struct devpath *dpp, int cpu, int nevents)
491 dpp->stats[cpu].nevents += nevents;
594 static void dpp_free(struct devpath *dpp)
596 if (dpp->stats)
597 free(dpp->stats);
598 if (dpp->ios)
599 free(dpp->ios);
600 if (dpp->path)
601 free(dpp->path);
602 if (dpp->buts_name)
603 free(dpp->buts_name);
604 free(dpp);
912 struct devpath *dpp = list_entry(p, struct devpath, head);
914 net_send_close(fd, dpp->buts_name, dpp->drops);
1045 struct devpath *dpp = list_entry(p, struct devpath, head);
1051 if (ioctl(dpp->fd, BLKTRACESETUP, &buts) >= 0) {
1052 dpp->ncpus = ncpus;
1053 dpp->buts_name = strdup(buts.name);
1054 if (dpp->stats)
1055 free(dpp->stats);
1056 dpp->stats = calloc(dpp->ncpus, sizeof(*dpp->stats));
1057 memset(dpp->stats, 0, dpp->ncpus * sizeof(*dpp->stats));
1060 dpp->path, errno, strerror(errno));
1069 struct devpath *dpp = list_entry(p, struct devpath, head);
1071 if (ioctl(dpp->fd, BLKTRACESTART) < 0) {
1073 dpp->path, errno, strerror(errno));
1078 static int get_drops(struct devpath *dpp)
1084 dpp->buts_name);
1111 struct devpath *dpp = list_entry(p, struct devpath, head);
1113 dpp->drops = get_drops(dpp);
1126 tbp->dpp = NULL; /* Will be set when tbp is added */
1131 static void free_tracer_heads(struct devpath *dpp)
1136 for (cpu = 0, hd = dpp->heads; cpu < ncpus; cpu++, hd++) {
1142 free(dpp->heads);
1156 struct devpath *dpp = list_entry(p, struct devpath, head);
1158 dpp->heads = calloc(ncpus, sizeof(struct tracer_devpath_head));
1159 for (cpu = 0, hd = dpp->heads; cpu < ncpus; cpu++, hd++) {
1169 static inline void add_trace_buf(struct devpath *dpp, int cpu,
1173 struct tracer_devpath_head *hd = &dpp->heads[cpu];
1175 tbp->dpp = dpp;
1213 struct devpath *dpp;
1225 dpp = malloc(sizeof(*dpp));
1226 memset(dpp, 0, sizeof(*dpp));
1227 dpp->path = strdup(path);
1228 dpp->fd = fd;
1229 dpp->idx = ndevs++;
1230 list_add_tail(&dpp->head, &devpaths);
1240 struct devpath *dpp = list_entry(p, struct devpath, head);
1242 list_del(&dpp->head);
1243 __stop_trace(dpp->fd);
1244 close(dpp->fd);
1246 if (dpp->heads)
1247 free_tracer_heads(dpp);
1249 dpp_free(dpp);
1257 struct devpath *dpp = tbp->dpp;
1259 if (net_send_header(fd, tbp->cpu, dpp->buts_name, tbp->len))
1360 pdc_nev_update(tbp->dpp, tbp->cpu, nevents);
1395 struct devpath *dpp = list_entry(p, struct devpath, head);
1396 struct tracer_devpath_head *hd = dpp->heads;
1458 struct devpath *dpp = iop->dpp;
1460 if (net_send_header(iop->ofd, tp->cpu, dpp->buts_name, iop->ready))
1481 gmtime(&iop->dpp->cl_connect_time));
1509 iop->dpp->buts_name, cpu);
1519 dpp->path, (int)size, errno,
1578 iop->dpp->drops = get_drops(iop->dpp);
1585 struct devpath *dpp = iop->dpp;
1587 net_send_close(iop->ofd, dpp->buts_name, dpp->drops);
1612 struct devpath *dpp = list_entry(p, struct devpath, head);
1614 iop->dpp = dpp;
1617 debugfs_path, dpp->buts_name, tp->cpu);
1637 net_send_open(iop->ofd, tp->cpu, dpp->buts_name);
1646 net_send_open(cl_fds[tp->cpu], tp->cpu, dpp->buts_name);
1682 pdc_dr_update(iop->dpp, tp->cpu, ret);
1723 pdc_dr_update(iop->dpp, tp->cpu,
1752 pdc_dr_update(iop->dpp, tp->cpu, tbp->len);
1753 add_trace_buf(iop->dpp, tp->cpu, &tbp);
1875 struct devpath *dpp = list_entry(p, struct devpath, head);
1876 (void)ioctl(dpp->fd, BLKTRACESTOP);
1960 struct devpath *dpp = list_entry(p, struct devpath, head);
1964 dpp->ch->hostname, dpp->buts_name);
1969 fprintf(ofp, "=== %s ===\n", dpp->buts_name);
1970 for (cpu = 0, sp = dpp->stats; cpu < dpp->ncpus; cpu++, sp++) {
1989 dpp->drops, (data_read + 1024) >> 10);
1991 total_drops += dpp->drops;
1992 total_events += (nevents + dpp->drops);
2238 static void device_done(struct devpath *dpp, int ncpus)
2243 for (cpu = 0, iop = dpp->ios; cpu < ncpus; cpu++, iop++)
2246 list_del(&dpp->head);
2247 dpp_free(dpp);
2256 struct devpath *dpp = list_entry(p, struct devpath, head);
2257 device_done(dpp, ncpus);
2302 struct devpath *dpp;
2304 dpp = malloc(sizeof(*dpp));
2305 memset(dpp, 0, sizeof(*dpp));
2307 dpp->buts_name = strdup(bnh->buts_name);
2308 dpp->path = strdup(bnh->buts_name);
2309 dpp->fd = -1;
2310 dpp->ch = nc->ch;
2311 dpp->cl_id = bnh->cl_id;
2312 dpp->cl_connect_time = connect_time;
2313 dpp->ncpus = nc->ncpus;
2314 dpp->stats = calloc(dpp->ncpus, sizeof(*dpp->stats));
2315 dpp->stats, 0, dpp->ncpus * sizeof(*dpp->stats));
2317 list_add_tail(&dpp->head, &nc->ch->devpaths);
2320 dpp->ios = calloc(nc->ncpus, sizeof(*iop));
2321 memset(dpp->ios, 0, ndevs * sizeof(*iop));
2323 for (cpu = 0, iop = dpp->ios; cpu < nc->ncpus; cpu++, iop++) {
2324 iop->dpp = dpp;
2332 return dpp;
2339 close_iop(&dpp->ios[cpu--]);
2340 dpp_free(dpp);
2352 struct devpath *dpp = list_entry(p, struct devpath, head);
2354 if (!strcmp(dpp->buts_name, bnh->buts_name))
2355 return dpp;
2357 if (dpp->cl_id == bnh->cl_id)
2358 connect_time = dpp->cl_connect_time;
2364 static void net_client_read_data(struct cl_conn *nc, struct devpath *dpp,
2368 struct io_info *iop = &dpp->ios[bnh->cpu];
2379 pdc_dr_update(dpp, bnh->cpu, ret);
2393 struct devpath *dpp;
2431 * len == 0 means the other end is sending us a new connection/dpp
2434 dpp = nc_find_dpp(nc, &bnh);
2437 * Just adding in the dpp above is enough
2439 ack_open_close(nc->fd, dpp->buts_name);
2445 dpp->drops = bnh.cpu;
2447 ack_open_close(nc->fd, dpp->buts_name);
2454 net_client_read_data(nc, dpp, &bnh);
2639 struct devpath *dpp;
2643 dpp = list_entry(p, struct devpath, head);
2644 if (__stop_trace(dpp->fd)) {
2647 dpp->path, errno, strerror(errno));