On 15/05/18 15:03, Matthew Wilcox wrote: > On Tue, May 15, 2018 at 02:41:41PM +0300, Boaz Harrosh wrote: >> That would be very hard. Because that program would: >> - need to be root >> - need to start and pretend it is zus Server with the all mount >> thread thing, register new filesystem, grab some pmem devices. >> - Mount the said filesystem on said pmem. Create core-pinned ZT threads >> for all CPUs, start accepting IO. >> - And only then it can start leaking the pointer and do bad things. > > All of these things you've done for me by writing zus Server. All I > have to do now is compromise zus Server. > >> The bad things it can do to the application, not to the Kernel. >> And as a full filesystem it can do those bad things to the application >> through the front door directly not needing the mismatch tlb at all. > > That's not true. When I have a TLB entry that points to a page of kernel > ram, I can do almost anything, depending on what the kernel decides to > do with that ram next. Maybe it's page cache again, in which case I can > affect whatever application happens to get it allocated. Maybe it's a > kmalloc page next, in which case I can affect any part of the kernel. > Maybe it's a page table, then I can affect any process. > >> That said. It brings up a very important point that I wanted to talk about. >> In this design the zuf(Kernel) and the zus(um Server) are part of the distribution. >> I would like to have the zus module be signed by the distro's Kernel's key and >> checked on loadtime. I know there is an effort by Redhat guys to try and sign all >> /sbin/* servers and have Kernel check these. So this is not the first time people >> have thought about that. > > You're getting dangerously close to admitting that the entire point > of this exercise is so that you can link non-GPL NetApp code into the > kernel in clear violation of the GPL. > It is not that at all. What I'm trying to do is enable a zero-copy, synchronous, low latency, low overhead. highly parallel - a new modern interface with application servers. You yourself had such a project that could easily be served out-of-the-box with zufs, of a device that wanted to sit in user-mode. Sometimes it is very convenient and needed for Servers to sit in user-mode. And this interface allows that. And it is not always a licensing thing. Though yes licensing is also an issue sometimes. It is the reality we are living in. But please indulge me I am curious how the point of signing /sbin/ servers, made you think about GPL licensing issues? That said, is your point that as long as user-mode servers are sloooowwww they are OK to be supported but if they are as fast as the kernel, (as demonstrated a zufs based FS was faster then xfs-dax on same pmem) Then it is a GPL violation? Thanks Boaz