All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 11/24] rcu/tree: Maintain separate array for vmalloc ptrs
Date: Wed, 29 Apr 2020 13:11:22 +0800	[thread overview]
Message-ID: <202004291311.IyydeSPW%lkp@intel.com> (raw)
In-Reply-To: <20200428205903.61704-12-urezki@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5191 bytes --]

Hi "Uladzislau,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rcu/dev]
[also build test ERROR on rcu/rcu/next next-20200428]
[cannot apply to linus/master linux/master v5.7-rc3]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Uladzislau-Rezki-Sony/Introduce-kvfree_rcu-1-or-2-arguments/20200429-061752
base:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
config: mips-loongson1c_defconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project f30416fdde922eaa655934e050026930fefbd260)
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 

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

All errors (new ones prefixed by >>):

>> kernel/rcu/tree.c:3053:4: error: implicit declaration of function 'vfree' [-Werror,-Wimplicit-function-declaration]
                           vfree(bvhead->records[i]);
                           ^
   1 error generated.

vim +/vfree +3053 kernel/rcu/tree.c

  2989	
  2990	/*
  2991	 * This function is invoked in workqueue context after a grace period.
  2992	 * It frees all the objects queued on ->bhead_free or ->head_free.
  2993	 */
  2994	static void kfree_rcu_work(struct work_struct *work)
  2995	{
  2996		unsigned long flags;
  2997		struct kvfree_rcu_bulk_data *bkhead, *bvhead, *bnext;
  2998		struct rcu_head *head, *next;
  2999		struct kfree_rcu_cpu *krcp;
  3000		struct kfree_rcu_cpu_work *krwp;
  3001		int i;
  3002	
  3003		krwp = container_of(to_rcu_work(work),
  3004				    struct kfree_rcu_cpu_work, rcu_work);
  3005		krcp = krwp->krcp;
  3006	
  3007		raw_spin_lock_irqsave(&krcp->lock, flags);
  3008		/* Channel 1. */
  3009		bkhead = krwp->bkvhead_free[0];
  3010		krwp->bkvhead_free[0] = NULL;
  3011	
  3012		/* Channel 2. */
  3013		bvhead = krwp->bkvhead_free[1];
  3014		krwp->bkvhead_free[1] = NULL;
  3015	
  3016		/* Channel 3. */
  3017		head = krwp->head_free;
  3018		krwp->head_free = NULL;
  3019		raw_spin_unlock_irqrestore(&krcp->lock, flags);
  3020	
  3021		/* kmalloc()/kfree() channel. */
  3022		for (; bkhead; bkhead = bnext) {
  3023			bnext = bkhead->next;
  3024			debug_rcu_bhead_unqueue(bkhead);
  3025	
  3026			rcu_lock_acquire(&rcu_callback_map);
  3027			trace_rcu_invoke_kfree_bulk_callback(rcu_state.name,
  3028				bkhead->nr_records, bkhead->records);
  3029	
  3030			kfree_bulk(bkhead->nr_records, bkhead->records);
  3031			rcu_lock_release(&rcu_callback_map);
  3032	
  3033			krcp = krc_this_cpu_lock(&flags);
  3034			if (put_cached_bnode(krcp, bkhead))
  3035				bkhead = NULL;
  3036			krc_this_cpu_unlock(krcp, flags);
  3037	
  3038			if (bkhead)
  3039				free_page((unsigned long) bkhead);
  3040	
  3041			cond_resched_tasks_rcu_qs();
  3042		}
  3043	
  3044		/* vmalloc()/vfree() channel. */
  3045		for (; bvhead; bvhead = bnext) {
  3046			bnext = bvhead->next;
  3047			debug_rcu_bhead_unqueue(bvhead);
  3048	
  3049			rcu_lock_acquire(&rcu_callback_map);
  3050			for (i = 0; i < bvhead->nr_records; i++) {
  3051				trace_rcu_invoke_kfree_callback(rcu_state.name,
  3052					(struct rcu_head *) bvhead->records[i], 0);
> 3053				vfree(bvhead->records[i]);
  3054			}
  3055			rcu_lock_release(&rcu_callback_map);
  3056	
  3057			krcp = krc_this_cpu_lock(&flags);
  3058			if (put_cached_bnode(krcp, bvhead))
  3059				bvhead = NULL;
  3060			krc_this_cpu_unlock(krcp, flags);
  3061	
  3062			if (bvhead)
  3063				free_page((unsigned long) bvhead);
  3064	
  3065			cond_resched_tasks_rcu_qs();
  3066		}
  3067	
  3068		/*
  3069		 * Emergency case only. It can happen under low memory
  3070		 * condition when an allocation gets failed, so the "bulk"
  3071		 * path can not be temporary maintained.
  3072		 */
  3073		for (; head; head = next) {
  3074			unsigned long offset = (unsigned long)head->func;
  3075			void *ptr = (void *)head - offset;
  3076	
  3077			next = head->next;
  3078			debug_rcu_head_unqueue((struct rcu_head *)ptr);
  3079			rcu_lock_acquire(&rcu_callback_map);
  3080			trace_rcu_invoke_kfree_callback(rcu_state.name, head, offset);
  3081	
  3082			if (!WARN_ON_ONCE(!__is_kfree_rcu_offset(offset)))
  3083				kvfree(ptr);
  3084	
  3085			rcu_lock_release(&rcu_callback_map);
  3086			cond_resched_tasks_rcu_qs();
  3087		}
  3088	}
  3089	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 14790 bytes --]

  reply	other threads:[~2020-04-29  5:11 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-28 20:58 [PATCH 00/24] Introduce kvfree_rcu(1 or 2 arguments) Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 01/24] rcu/tree: Keep kfree_rcu() awake during lock contention Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 02/24] rcu/tree: Skip entry into the page allocator for PREEMPT_RT Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 03/24] rcu/tree: Use consistent style for comments Uladzislau Rezki (Sony)
2020-05-01 19:05   ` Paul E. McKenney
2020-05-01 20:52     ` Joe Perches
2020-05-01 20:52       ` Joe Perches
2020-05-03 23:44       ` Joel Fernandes
2020-05-04  0:23         ` Paul E. McKenney
2020-05-04  0:34           ` Joe Perches
2020-05-04  0:41           ` Joel Fernandes
2020-05-03 23:52     ` Joel Fernandes
2020-05-04  0:26       ` Paul E. McKenney
2020-05-04  0:39         ` Joel Fernandes
2020-04-28 20:58 ` [PATCH 04/24] rcu/tree: Repeat the monitor if any free channel is busy Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 05/24] rcu/tree: Simplify debug_objects handling Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 06/24] rcu/tree: Simplify KFREE_BULK_MAX_ENTR macro Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 07/24] rcu/tree: move locking/unlocking to separate functions Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 08/24] rcu/tree: Use static initializer for krc.lock Uladzislau Rezki (Sony)
2020-05-01 21:17   ` Paul E. McKenney
2020-05-04 12:10     ` Uladzislau Rezki
2020-04-28 20:58 ` [PATCH 09/24] rcu/tree: cache specified number of objects Uladzislau Rezki (Sony)
2020-05-01 21:27   ` Paul E. McKenney
2020-05-04 12:43     ` Uladzislau Rezki
2020-05-04 15:24       ` Paul E. McKenney
2020-05-04 17:48         ` Uladzislau Rezki
2020-05-04 18:07           ` Paul E. McKenney
2020-05-04 18:08           ` Joel Fernandes
2020-05-04 19:01             ` Paul E. McKenney
2020-05-04 19:37               ` Joel Fernandes
2020-05-04 19:37                 ` Joel Fernandes
2020-05-04 19:51                 ` Uladzislau Rezki
2020-05-04 20:15                   ` joel
2020-05-04 20:15                     ` joel
2020-05-04 20:16                   ` Paul E. McKenney
2020-05-05 11:03                     ` Uladzislau Rezki
2020-04-28 20:58 ` [PATCH 10/24] rcu/tree: add rcutree.rcu_min_cached_objs description Uladzislau Rezki (Sony)
2020-05-01 22:25   ` Paul E. McKenney
2020-05-04 12:44     ` Uladzislau Rezki
2020-04-28 20:58 ` [PATCH 11/24] rcu/tree: Maintain separate array for vmalloc ptrs Uladzislau Rezki (Sony)
2020-04-29  5:11   ` kbuild test robot [this message]
2020-05-01 21:37   ` Paul E. McKenney
2020-05-03 23:42     ` Joel Fernandes
2020-05-04  0:20       ` Paul E. McKenney
2020-05-04  0:58         ` Joel Fernandes
2020-05-04  2:20           ` Paul E. McKenney
2020-05-04 14:25     ` Uladzislau Rezki
2020-04-28 20:58 ` [PATCH 12/24] rcu/tiny: support vmalloc in tiny-RCU Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 13/24] rcu: Rename rcu_invoke_kfree_callback/rcu_kfree_callback Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 14/24] rcu: Rename __is_kfree_rcu_offset() macro Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 15/24] rcu: Rename kfree_call_rcu() to the kvfree_call_rcu() Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 16/24] mm/list_lru.c: Rename kvfree_rcu() to local variant Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 17/24] rcu: Introduce 2 arg kvfree_rcu() interface Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 18/24] mm/list_lru.c: Remove kvfree_rcu_local() function Uladzislau Rezki (Sony)
2020-04-28 20:58 ` [PATCH 19/24] rcu/tree: Support reclaim for head-less object Uladzislau Rezki (Sony)
2020-05-01 22:39   ` Paul E. McKenney
2020-05-04  0:12     ` Joel Fernandes
2020-05-04  0:28       ` Paul E. McKenney
2020-05-04  0:32         ` Joel Fernandes
2020-05-04 14:21           ` Uladzislau Rezki
2020-05-04 15:31             ` Paul E. McKenney
2020-05-04 16:56               ` Uladzislau Rezki
2020-05-04 17:08                 ` Paul E. McKenney
2020-05-04 12:57     ` Uladzislau Rezki
2020-04-28 20:58 ` [PATCH 20/24] rcu/tree: Make kvfree_rcu() tolerate any alignment Uladzislau Rezki (Sony)
2020-05-01 23:00   ` Paul E. McKenney
2020-05-04  0:24     ` Joel Fernandes
2020-05-04  0:29       ` Paul E. McKenney
2020-05-04  0:31         ` Joel Fernandes
2020-05-04 12:56           ` Uladzislau Rezki
2020-04-28 20:59 ` [PATCH 21/24] rcu/tiny: move kvfree_call_rcu() out of header Uladzislau Rezki (Sony)
2020-05-01 23:03   ` Paul E. McKenney
2020-05-04 12:45     ` Uladzislau Rezki
2020-05-06 18:29     ` Uladzislau Rezki
2020-05-06 18:45       ` Paul E. McKenney
2020-05-07 17:34         ` Uladzislau Rezki
2020-04-28 20:59 ` [PATCH 22/24] rcu/tiny: support reclaim for head-less object Uladzislau Rezki (Sony)
2020-05-01 23:06   ` Paul E. McKenney
2020-05-04  0:27     ` Joel Fernandes
2020-05-04 12:45       ` Uladzislau Rezki
2020-04-28 20:59 ` [PATCH 23/24] rcu: Introduce 1 arg kvfree_rcu() interface Uladzislau Rezki (Sony)
2020-04-28 20:59 ` [PATCH 24/24] lib/test_vmalloc.c: Add test cases for kvfree_rcu() Uladzislau Rezki (Sony)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202004291311.IyydeSPW%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.