Lines Matching defs:ps

210                 struct ps_struct *ps;
220 ps = ps_first;
221 while (ps->next_ps) {
222 ps = ps->next_ps;
223 if (ps->pid == pid)
228 if (ps->pid != pid) {
233 ps->next_ps = new0(struct ps_struct, 1);
234 if (!ps->next_ps)
237 ps = ps->next_ps;
238 ps->pid = pid;
239 ps->sched = -1;
240 ps->schedstat = -1;
242 ps->sample = new0(struct ps_sched_struct, 1);
243 if (!ps->sample)
246 ps->sample->sampledata = sampledata;
251 ps->first = ps->last = ps->sample;
252 ps->sample->runtime = atoll(rt);
253 ps->sample->waittime = atoll(wt);
256 if (ps->sched < 0) {
258 ps->sched = openat(procfd, filename, O_RDONLY|O_CLOEXEC);
259 if (ps->sched < 0)
263 s = pread(ps->sched, buf, sizeof(buf) - 1, 0);
265 ps->sched = safe_close(ps->sched);
273 strscpy(ps->name, sizeof(ps->name), key);
277 pid_cmdline_strscpy(procfd, ps->name, sizeof(ps->name), pid);
291 r = safe_atod(t, &ps->starttime);
295 ps->starttime /= 1000.0;
300 ps->pid, &ps->cgroup);
317 ps->ppid = p;
329 if (ps->ppid == 0)
330 ps->ppid = 1;
333 while ((parent->next_ps && parent->pid != ps->ppid))
336 if (parent->pid != ps->ppid) {
338 ps->ppid = 1;
342 ps->parent = parent;
346 parent->children = ps;
354 children->next = ps;
358 /* else -> found pid, append data in ps */
364 if (ps->schedstat < 0) {
366 ps->schedstat = openat(procfd, filename, O_RDONLY|O_CLOEXEC);
367 if (ps->schedstat < 0)
371 s = pread(ps->schedstat, buf, sizeof(buf) - 1, 0);
374 close(ps->schedstat);
375 ps->schedstat = -1;
376 ps->sched = safe_close(ps->sched);
385 ps->sample->next = new0(struct ps_sched_struct, 1);
386 if (!ps->sample->next)
389 ps->sample->next->prev = ps->sample;
390 ps->sample = ps->sample->next;
391 ps->last = ps->sample;
392 ps->sample->runtime = atoll(rt);
393 ps->sample->waittime = atoll(wt);
394 ps->sample->sampledata = sampledata;
395 ps->sample->ps_new = ps;
397 ps_prev->cross = ps->sample;
399 ps_prev = ps->sample;
400 ps->total = (ps->last->runtime - ps->first->runtime)
454 ps->sample->runtime += delta_rt;
455 ps->sample->waittime += delta_wt;
463 if (!ps->smaps) {
468 ps->smaps = fdopen(fd, "re");
469 if (!ps->smaps) {
473 setvbuf(ps->smaps, smaps_buf, _IOFBF, sizeof(smaps_buf));
475 rewind(ps->smaps);
480 if (fgets(buf, sizeof(buf), ps->smaps) == NULL) {
483 if (fread(buf, 1, 28 * 15, ps->smaps) != (28 * 15)) {
492 rewind(ps->smaps);
499 if (fgets(buf, sizeof(buf), ps->smaps) == NULL) {
503 if (fread(buf, 1, 28 * 14, ps->smaps) != 28 * 14) {
507 ps->sample->pss += pss_kb;
511 if (fgets(buf, sizeof(buf), ps->smaps) == NULL)
516 if (ps->sample->pss > ps->pss_max)
517 ps->pss_max = ps->sample->pss;
522 if (((sample - ps->pid) + pid) % (int)(mod) == 0) {
526 if (ps->sched < 0) {
528 ps->sched = openat(procfd, filename, O_RDONLY|O_CLOEXEC);
529 if (ps->sched < 0)
533 s = pread(ps->sched, buf, sizeof(buf) - 1, 0);
536 ps->sched = safe_close(ps->sched);
537 ps->schedstat = safe_close(ps->schedstat);
546 strscpy(ps->name, sizeof(ps->name), key);
550 pid_cmdline_strscpy(procfd, ps->name, sizeof(ps->name), pid);