On Thu, 2018-06-21 at 14:32 +0200, Jann Horn wrote: > On Thu, Jun 21, 2018 at 12:12 AM Rick Edgecombe > <rick.p.edgecombe@xxxxxxxxx> wrote: > > > > Add debugfs file "modfraginfo" for providing info on module space > > fragmentation. This can be used for determining if loadable module > > randomization is causing any problems for extreme module loading > > situations, > > like huge numbers of modules or extremely large modules. > > > > Sample output when RANDOMIZE_BASE and X86_64 is configured: > > Largest free space: 847253504 > > External Memory Fragementation: 20% > > Allocations in backup area: 0 > > > > Sample output otherwise: > > Largest free space: 847253504 > > External Memory Fragementation: 20% > [...] > > > > + seq_printf(m, "Largest free space:\t\t%lu\n", > > largest_free); > > + if (total_free) > > + seq_printf(m, "External Memory > > Fragementation:\t%lu%%\n", > "Fragmentation" > > > > > + 100-(100*largest_free/total_free)); > > + else > > + seq_puts(m, "External Memory > > Fragementation:\t0%%\n"); > "Fragmentation" Oops! Thanks. > [...] > > > > +static const struct file_operations debug_module_frag_operations = > > { > > + .open = proc_module_frag_debug_open, > > + .read = seq_read, > > + .llseek = seq_lseek, > > + .release = single_release, > > +}; > > > > +static void debug_modfrag_init(void) > > +{ > > + debugfs_create_file("modfraginfo", 0x0400, NULL, NULL, > > + &debug_module_frag_operations); > 0x0400 is 02000, which is the setgid bit. I think you meant to type > 0400? Yes, thanks.