On Thu, Dec 17, 2015 at 06:15:44PM +0000, Dave Gordon wrote: > Some modules, like i915.ko, use swappable objects and may try to swap > them out under memory pressure (via the shrinker). Before doing so, > they want to check using get_nr_swap_pages() to see if any swap space > is available as otherwise they will waste time purging the object from > the device without recovering any memory for the system. This requires > the kernel function get_nr_swap_pages() to be exported to the modules. > > The current implementation of this function is as a static inline > inside the header file swap.h>; this doesn't work when compiled in > a module, as the necessary global data is not visible. The original > proposed solution was to export the kernel global variable to modules, > but this was considered poor practice as it exposed more than necessary, > and in an uncontrolled fashion. Another idea was to turn it into a real > (non-inline) function; however this was considered to unnecessarily add > overhead for users within the base kernel. > > Therefore, to avoid both objections, this patch leaves the base kernel > implementation unchanged, but adds a separate (read-only) functional > interface for callers in loadable kernel modules (LKMs). Which definition > is visible to code depends on the compile-time symbol MODULE, defined > by the Kbuild system when building an LKM. I'm sorry, but this is beyond silly. 19 lines of code to fix a non-existent problem? This lacks any sort of proportionality. NAK _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx