Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e972e6ec authored by Jin Qian's avatar Jin Qian Committed by TARKZiM
Browse files

ANDROID: uid_sys_stats: account for fsync syscalls



Change-Id: Ie888d8a0f4ec7a27dea86dc4afba8e6fd4203488
Signed-off-by: default avatarJin Qian <jinqian@google.com>
parent 1f867dc2
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ struct io_stats {
	u64 write_bytes;
	u64 rchar;
	u64 wchar;
	u64 fsync;
};

#define UID_STATE_FOREGROUND	0
@@ -223,6 +224,7 @@ static void add_uid_io_curr_stats(struct uid_entry *uid_entry,
	io_curr->write_bytes += compute_write_bytes(task);
	io_curr->rchar += task->ioac.rchar;
	io_curr->wchar += task->ioac.wchar;
	io_curr->fsync += task->ioac.syscfs;
}

static void clean_uid_io_last_stats(struct uid_entry *uid_entry,
@@ -234,6 +236,7 @@ static void clean_uid_io_last_stats(struct uid_entry *uid_entry,
	io_last->write_bytes -= compute_write_bytes(task);
	io_last->rchar -= task->ioac.rchar;
	io_last->wchar -= task->ioac.wchar;
	io_last->fsync -= task->ioac.syscfs;
}

static void update_io_stats_locked(void)
@@ -270,11 +273,13 @@ static void update_io_stats_locked(void)
			io_curr->write_bytes - io_last->write_bytes;
		io_bucket->rchar += io_curr->rchar - io_last->rchar;
		io_bucket->wchar += io_curr->wchar - io_last->wchar;
		io_bucket->fsync += io_curr->fsync - io_last->fsync;

		io_last->read_bytes = io_curr->read_bytes;
		io_last->write_bytes = io_curr->write_bytes;
		io_last->rchar = io_curr->rchar;
		io_last->wchar = io_curr->wchar;
		io_last->fsync = io_curr->fsync;
	}
}

@@ -288,7 +293,7 @@ static int uid_io_show(struct seq_file *m, void *v)
	update_io_stats_locked();

	hash_for_each(hash_table, bkt, uid_entry, hash) {
		seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu\n",
		seq_printf(m, "%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n",
			uid_entry->uid,
			uid_entry->io[UID_STATE_FOREGROUND].rchar,
			uid_entry->io[UID_STATE_FOREGROUND].wchar,
@@ -297,7 +302,9 @@ static int uid_io_show(struct seq_file *m, void *v)
			uid_entry->io[UID_STATE_BACKGROUND].rchar,
			uid_entry->io[UID_STATE_BACKGROUND].wchar,
			uid_entry->io[UID_STATE_BACKGROUND].read_bytes,
			uid_entry->io[UID_STATE_BACKGROUND].write_bytes);
			uid_entry->io[UID_STATE_BACKGROUND].write_bytes,
			uid_entry->io[UID_STATE_FOREGROUND].fsync,
			uid_entry->io[UID_STATE_BACKGROUND].fsync);
	}

	mutex_unlock(&uid_lock);