Messages in this thread | | | Date | Wed, 28 Dec 2011 13:47:37 +0400 | From | Pavel Emelyanov <> | Subject | Re: [patch 1/4] Add routine for generating an ID for kernel pointer |
| |
> A thought: if all we're trying to do here is to check for the sameness > of objects, can we push the comparison into the kernel so we don't have > this exporting-sensitive-info problem at all? Just return a boolean to > userspace? > > Something like > > int sys_pid_fields_equal(pid_t pid1, pid_t pid2, enum pid_field field_id); > > ? > > For /proc/pid/fdinfo/* userspace can open /proc/pid1/fdinfo/0 and > /proc/pid2/fdinfo/0 and call sys_are_these_files_the_same(fd1, fd2, ...). > > Perhaps sys_pid_fields_equal() can use sys_are_these_files_the_same() > as well, if we can think up a way of passing it two fds to represent > the two pids. > > Have a think about it ;)
With this the complexity of determining sharing for N files scattered across several tasks would be N^2, since we'll have to compare each file to each file.
On the other hand having just N IDs at hands would allow us to use more efficient algorithms resulting in e.g. N*log(N) complexity.
That said I'd really appreciate if we work out a solution with IDs.
Thanks, Pavel
| |