On Wed, Sep 30, 2015 at 11:56:25AM -0700, Andy Lutomirski wrote: > On Wed, Sep 30, 2015 at 11:55 AM, Tycho Andersen > wrote: > > On Wed, Sep 30, 2015 at 11:47:05AM -0700, Andy Lutomirski wrote: > >> On Wed, Sep 30, 2015 at 11:41 AM, Tycho Andersen > >> wrote: > >> > On Wed, Sep 30, 2015 at 11:25:41AM -0700, Andy Lutomirski wrote: > >> >> On Wed, Sep 30, 2015 at 11:13 AM, Tycho Andersen > >> >> wrote: > >> >> > This command allows comparing the underling private data of two fds. This > >> >> > is useful e.g. to find out if a seccomp filter is inherited, since struct > >> >> > seccomp_filter are unique across tasks and are the private_data seccomp > >> >> > fds. > >> >> > >> >> This is very implementation-specific and may have nasty ABI > >> >> consequences far outside seccomp. Let's do something specific to > >> >> seccomp and/or eBPF. > >> > > >> > We could change the name to a less generic KCMP_SECCOMP_FD or > >> > something, but without some sort of GUID on each struct > >> > seccomp_filter, the implementation would be effectively the same as it > >> > is today. Is that enough, or do we need a GUID? > >> > > >> > >> I don't care about the GUID. I think we should name it > >> KCMP_SECCOMP_FD and make it only work on seccomp fds. > > > > Ok, I can do that. > > > >> Alternatively, we could figure out why KCMP_FILE doesn't do the trick > >> and consider fixing it. IMO it's really too bad that struct file is > >> so heavyweight that we can't really just embed one in all kinds of > >> structures. > > > > The problem is that KCMP_FILE compares the file objects themselves, > > instead of the underlying data. If I ask for a seccomp fd for filter 0 > > twice, I'll have two different file objects and they won't be equal. I > > suppose we could add some special logic inside KCMP_FILE to compare > > the underlying data in special cases (seccomp, ebpf, others?), but it > > seems cleaner to have a separate command as you described above. > > > > What I meant was that maybe we could get the two requests to actually > produce the same struct file. But that could get very messy > memory-wise. I see. The attached patch seems to work with KCMP_FILE and doesn't look too bad if you don't mind the circular references. What do you think? Tycho