Commit fa989970 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Andrei Vagin

epoll: Save fields of target files in eventpoll_tfd_entry

We will use them to fast lookup of targets files.
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent ca8144b7
...@@ -1762,9 +1762,23 @@ static int parse_fdinfo_pid_s(int pid, int fd, int type, void *arg) ...@@ -1762,9 +1762,23 @@ static int parse_fdinfo_pid_s(int pid, int fd, int type, void *arg)
eventpoll_tfd_entry__init(e); eventpoll_tfd_entry__init(e);
ret = sscanf(str, "tfd: %d events: %x data: %"PRIx64, ret = sscanf(str, "tfd: %d events: %x data: %llx"
&e->tfd, &e->events, &e->data); " pos:%lli ino:%lx sdev:%x",
if (ret != 3) { &e->tfd, &e->events, (long long *)&e->data,
(long long *)&e->pos, (long *)&e->inode,
&e->dev);
if (ret < 3 || ret > 6) {
eventpoll_tfd_entry__free_unpacked(e, NULL);
goto parse_err;
} else if (ret == 3) {
e->has_dev = false;
e->has_inode = false;
e->has_pos = false;
} else if (ret == 6) {
e->has_dev = true;
e->has_inode = true;
e->has_pos = true;
} else if (ret < 6) {
eventpoll_tfd_entry__free_unpacked(e, NULL); eventpoll_tfd_entry__free_unpacked(e, NULL);
goto parse_err; goto parse_err;
} }
......
...@@ -7,6 +7,11 @@ message eventpoll_tfd_entry { ...@@ -7,6 +7,11 @@ message eventpoll_tfd_entry {
required uint32 tfd = 2; required uint32 tfd = 2;
required uint32 events = 3; required uint32 events = 3;
required uint64 data = 4; required uint64 data = 4;
/* to find dup'ed target files */
optional uint32 dev = 5;
optional uint64 inode = 6;
optional uint64 pos = 7;
} }
message eventpoll_file_entry { message eventpoll_file_entry {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment