lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 27 Aug 2019 21:28:29 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Edward Chron <echron@...sta.com>
Cc:     kbuild-all@...org, Andrew Morton <akpm@...ux-foundation.org>,
        Michal Hocko <mhocko@...e.com>, Roman Gushchin <guro@...com>,
        Johannes Weiner <hannes@...xchg.org>,
        David Rientjes <rientjes@...gle.com>,
        Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>,
        Shakeel Butt <shakeelb@...gle.com>, linux-mm@...ck.org,
        linux-kernel@...r.kernel.org, colona@...sta.com,
        Edward Chron <echron@...sta.com>
Subject: Re: [PATCH 01/10] mm/oom_debug: Add Debug base code

Hi Edward,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190827]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Edward-Chron/mm-oom_debug-Add-Debug-base-code/20190827-183210
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:6:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/wait.h:7,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from include/linux/debugfs.h:15,
                    from mm/oom_kill_debug.c:135:
>> mm/oom_kill_debug.c:261:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
    subsys_initcall(oom_debug_init)
                    ^
   include/linux/init.h:197:50: note: in definition of macro '___define_initcall'
      __attribute__((__section__(#__sec ".init"))) = fn;
                                                     ^~
   include/linux/init.h:224:30: note: in expansion of macro '__define_initcall'
    #define subsys_initcall(fn)  __define_initcall(fn, 4)
                                 ^~~~~~~~~~~~~~~~~
>> mm/oom_kill_debug.c:261:1: note: in expansion of macro 'subsys_initcall'
    subsys_initcall(oom_debug_init)
    ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +261 mm/oom_kill_debug.c

 > 135	#include <linux/debugfs.h>
   136	#include <linux/fs.h>
   137	#include <linux/init.h>
   138	#include <linux/kernel.h>
   139	#include <linux/kobject.h>
   140	#include <linux/oom.h>
   141	#include <linux/printk.h>
   142	#include <linux/slab.h>
   143	#include <linux/string.h>
   144	#include <linux/sysfs.h>
   145	#include "oom_kill_debug.h"
   146	
   147	#define OOMD_MAX_FNAME 48
   148	#define OOMD_MAX_OPTNAME 32
   149	
   150	#define K(x) ((x) << (PAGE_SHIFT-10))
   151	
   152	static const char oom_debug_path[] = "/sys/kernel/debug/oom";
   153	
   154	static const char od_root_name[] = "oom";
   155	static struct dentry *od_root_dir;
   156	static u32 oom_kill_debug_oom_events;
   157	
   158	/* One oom_debug_option entry per debug option */
   159	struct oom_debug_option {
   160		const char *option_name;
   161		umode_t mode;
   162		struct dentry *dir_dentry;
   163		struct dentry *enabled_dentry;
   164		struct dentry *tenthpercent_dentry;
   165		bool enabled;
   166		u16 tenthpercent;
   167		bool support_tpercent;
   168	};
   169	
   170	/* Table of oom debug options, new options need to be added here */
   171	static struct oom_debug_option oom_debug_options_table[] = {
   172		{}
   173	};
   174	
   175	/* Option index by name for order one-lookup, add new options entry here */
   176	enum oom_debug_options_index {
   177		OUT_OF_BOUNDS
   178	};
   179	
   180	bool oom_kill_debug_enabled(u16 index)
   181	{
   182		return oom_debug_options_table[index].enabled;
   183	}
   184	
   185	u16 oom_kill_debug_tenthpercent(u16 index)
   186	{
   187		return oom_debug_options_table[index].tenthpercent;
   188	}
   189	
   190	static void filename_gen(char *pdest, const char *optname, const char *fname)
   191	{
   192		size_t len;
   193		char *pmsg;
   194	
   195		sprintf(pdest, "%s", optname);
   196		len = strnlen(pdest, OOMD_MAX_OPTNAME);
   197		pmsg = pdest + len;
   198		sprintf(pmsg, "%s", fname);
   199	}
   200	
   201	static void enabled_file_gen(struct oom_debug_option *entry)
   202	{
   203		char filename[OOMD_MAX_FNAME];
   204	
   205		filename_gen(filename, entry->option_name, "enabled");
   206		debugfs_create_bool(filename, 0644, entry->dir_dentry,
   207				    &entry->enabled);
   208		entry->enabled = OOM_KILL_DEBUG_DEFAULT_ENABLED;
   209	}
   210	
   211	static void tpercent_file_gen(struct oom_debug_option *entry)
   212	{
   213		char filename[OOMD_MAX_FNAME];
   214	
   215		filename_gen(filename, entry->option_name, "tenthpercent");
   216		debugfs_create_u16(filename, 0644, entry->dir_dentry,
   217				   &entry->tenthpercent);
   218		entry->tenthpercent = OOM_KILL_DEBUG_DEFAULT_TENTHPERCENT;
   219	}
   220	
   221	static void oom_debugfs_init(void)
   222	{
   223		struct oom_debug_option *table, *entry;
   224	
   225		od_root_dir = debugfs_create_dir(od_root_name, NULL);
   226	
   227		table = oom_debug_options_table;
   228		for (entry = table; entry->option_name; entry++) {
   229			entry->dir_dentry = od_root_dir;
   230			enabled_file_gen(entry);
   231			if (entry->support_tpercent)
   232				tpercent_file_gen(entry);
   233		}
   234	}
   235	
   236	static void oom_debug_common_cleanup(void)
   237	{
   238		/* Cleanup for oom root directory */
   239		debugfs_remove(od_root_dir);
   240	}
   241	
   242	u32 oom_kill_debug_oom_event(void)
   243	{
   244		return oom_kill_debug_oom_events;
   245	}
   246	
   247	u32 oom_kill_debug_oom_event_is(void)
   248	{
   249		++oom_kill_debug_oom_events;
   250	
   251		return oom_kill_debug_oom_events;
   252	}
   253	
   254	static void __init oom_debug_init(void)
   255	{
   256		/* Ensure we have a debugfs oom root directory */
   257		od_root_dir = debugfs_lookup(od_root_name, NULL);
   258		if (!od_root_dir)
   259			oom_debugfs_init();
   260	}
 > 261	subsys_initcall(oom_debug_init)
   262	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (51791 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ