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 --]
next prev parent 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.