lkml.org 
[lkml]   [2015]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] mm: Change global memory state symbols to GPL-only
    I seem to have botched the reply headers, so I am resending this. I use mutt
    fairly infrequently, but I am making an effort to use it more it more.

    On Tue, Sep 01, 2015 at 02:21:43PM +0100, Ben Hutchings wrote:
    > On Tue, 2015-09-01 at 01:24 +0000, Richard Yao wrote:
    > > On Mon, 2015-08-17 09:56:55 -0700, Ben Hutchings wrote:
    > > > On Mon, 2015-08-17 at 17:11 +0200, Michal Hocko wrote:
    > > > > On Mon 17-08-15 16:56:32, Ben Hutchings wrote:
    > > > > > On Mon, 2015-08-17 at 15:54 +0200, Michal Hocko wrote:
    > > > > > > On Sun 16-08-15 01:42:27, Ben Hutchings wrote:
    > > > > > > > Proprietary modules should not be able to touch vm_stat or
    > > > > > > > participate
    > > > > > > > in shrinking.
    > > > > > >
    > > > > > > How does the external and !GPL fs does slab reclaim? Those
    > > > > > > are essential
    > > > > > > for the proper memory balancing.
    > > > > >
    > > > > > If they know how to do shrinking on Linux then they are
    > > > > > probably
    > > > > > derivative works of Linux.
    > > > >
    > > > > I am not sure I understand. They are shrinking their internal
    > > > > cached
    > > > > objects and that is hardly a derivative work. The shrinker API is
    > > > > only
    > > > > meant to let them know _when_ this should happen and the
    > > > > interface is
    > > > > a pretty much simple callback API.
    > > >
    > > > It is a Linux-specific API and I don't think other kernels provide
    > > > something similar to loadable modules. It enables a module to turn
    > > > a
    > > > large part of the system RAM into a cache and have the MM
    > > > effectively
    > > > tell it the correct size of that cache, thus tightly integrating
    > > > with
    > > > global memory management.
    > >
    > > The idea of providing third party drivers with the hooks that they
    > > need to
    > > respond to memory pressure is by no means Linux-specific. In
    > > OpenSolaris, there
    > > are counters for drivers to keep track of memory usage and try to
    > > stay ahead of
    > > it, which works because there is no direct reclaim. There are also
    > > callbacks
    > > for the SLAB code to defragment the caches used by the drivers.
    >
    >
    > So you confirm that the Linux and Solaris APIs for this are quite
    > different.

    They both have VFS implementations, but the designs are different. According to
    attorneys, adapting code to port a filesystem driver from a foreign VFS to the
    Linux VFS to make a port is insufficient to form a derived work of Linux. All
    kernels have memory management and preferred ways of dealing with pressure.
    Using the preferred way of dealing with it should be similarly insufficient to
    form a derived work of Linux.

    > > Giving non-GPL
    > > drivers to respond to memory pressure seems reasonable.
    >
    > I don't see why.

    It is an existing function and it is needs to be avaliable to allow third party
    drivers to be good citizens inside the kernel.

    I do not know all of the filesystems whose memory management will become worse
    from this, but I know that ZFS is one. Lustre is another because it hooks into
    ZFS. I am told that the OpenAFS client uses this too..

    > > > Yes, that's the idea, proprietary code should not be helped in this
    > > > way.
    > >
    > > The ZFSOnLinux kernel driver uses these symbols. It is fully open
    > > source and
    > > not proprietary.
    > [...]
    >
    > It's not GPL-compatible, which in terms of Linux kernel modules is no
    > better than proprietary.

    Any code under a F/OSS license follows the OSD, which means that it is under a
    better license than proprietary code:

    http://opensource.org/definition

    Rather than sabotaging working code (especially working F/OSS code), maybe it
    would be better to ask why it being used instead of code under your preferred
    license and invest energy into developing better alternatives under licenses
    that you prefer. If someone makes something better, people would use it and
    developers will flock to it. Artificially damaging competition does not help
    anyone.


    \
     
     \ /
      Last update: 2015-09-01 19:41    [W:4.656 / U:0.460 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site