mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
perf kvm stat live: Use fdarray object instead of pollfd
The reason is that we don't need to count the number of file descriptors because it's already handled in fdarray object. Signed-off-by: Jiri Olsa <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Corey Ashford <[email protected]> Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Milian Wolff <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
This commit is contained in:
parent
0cae013cf4
commit
1ca72260e4
1 changed files with 4 additions and 12 deletions
|
|
@ -896,8 +896,7 @@ static int perf_kvm__handle_stdin(void)
|
|||
|
||||
static int kvm_events_live_report(struct perf_kvm_stat *kvm)
|
||||
{
|
||||
struct pollfd *pollfds = NULL;
|
||||
int nr_fds, nr_stdin, ret, err = -EINVAL;
|
||||
int nr_stdin, ret, err = -EINVAL;
|
||||
struct termios save;
|
||||
|
||||
/* live flag must be set first */
|
||||
|
|
@ -919,9 +918,6 @@ static int kvm_events_live_report(struct perf_kvm_stat *kvm)
|
|||
signal(SIGINT, sig_handler);
|
||||
signal(SIGTERM, sig_handler);
|
||||
|
||||
/* use pollfds -- need to add timerfd and stdin */
|
||||
nr_fds = kvm->evlist->pollfd.nr;
|
||||
|
||||
/* add timer fd */
|
||||
if (perf_kvm__timerfd_create(kvm) < 0) {
|
||||
err = -1;
|
||||
|
|
@ -931,22 +927,18 @@ static int kvm_events_live_report(struct perf_kvm_stat *kvm)
|
|||
if (perf_evlist__add_pollfd(kvm->evlist, kvm->timerfd) < 0)
|
||||
goto out;
|
||||
|
||||
nr_fds++;
|
||||
|
||||
nr_stdin = perf_evlist__add_pollfd(kvm->evlist, fileno(stdin));
|
||||
if (nr_stdin < 0)
|
||||
goto out;
|
||||
|
||||
nr_fds++;
|
||||
if (fd_set_nonblock(fileno(stdin)) != 0)
|
||||
goto out;
|
||||
|
||||
pollfds = kvm->evlist->pollfd.entries;
|
||||
|
||||
/* everything is good - enable the events and process */
|
||||
perf_evlist__enable(kvm->evlist);
|
||||
|
||||
while (!done) {
|
||||
struct fdarray *fda = &kvm->evlist->pollfd;
|
||||
int rc;
|
||||
|
||||
rc = perf_kvm__mmap_read(kvm);
|
||||
|
|
@ -957,11 +949,11 @@ static int kvm_events_live_report(struct perf_kvm_stat *kvm)
|
|||
if (err)
|
||||
goto out;
|
||||
|
||||
if (pollfds[nr_stdin].revents & POLLIN)
|
||||
if (fda->entries[nr_stdin].revents & POLLIN)
|
||||
done = perf_kvm__handle_stdin();
|
||||
|
||||
if (!rc && !done)
|
||||
err = poll(pollfds, nr_fds, 100);
|
||||
err = fdarray__poll(fda, 100);
|
||||
}
|
||||
|
||||
perf_evlist__disable(kvm->evlist);
|
||||
|
|
|
|||
Loading…
Reference in a new issue