> Sure it could, but it would mean the kernel is sitting on an average of 6 MB of unusable memory. It would also mean that unloaded modules would create holes in that memory which would have to be managed. On my Fedora38 desktop: $ lsmod | awk '{ bytes += $2 } END {print bytes/(1024*1024)}' 21.0859 Lots more than 6MB memory already essentially pinned by loaded modules. $ head -3 /proc/meminfo MemTotal: 65507344 kB MemFree: 56762336 kB MemAvailable: 63358552 kB Pinning 20 or so Mbytes isn't going to make a dent in that free memory. Managing the holes for unloading/reloading modules adds some complexity ... but shouldn't be awful. If this code managed at finer granularity than "page", it would save some memory. $ lsmod | wc -l 123 All those modules rounding text/data up to 4K boundaries is wasting a bunch of it. -Tony