2015-11-11 10:22:16

by Shivani Bhardwaj

[permalink] [raw]
Subject: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

Remove the wrapper function cl_lock_lockdep_init() and replace its only
call with the function it wrapped.

Signed-off-by: Shivani Bhardwaj <[email protected]>
---
drivers/staging/lustre/lustre/obdclass/cl_lock.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/staging/lustre/lustre/obdclass/cl_lock.c b/drivers/staging/lustre/lustre/obdclass/cl_lock.c
index 1836dc0..813d0ab 100644
--- a/drivers/staging/lustre/lustre/obdclass/cl_lock.c
+++ b/drivers/staging/lustre/lustre/obdclass/cl_lock.c
@@ -147,11 +147,6 @@ static void cl_lock_trace0(int level, const struct lu_env *env,
#ifdef CONFIG_LOCKDEP
static struct lock_class_key cl_lock_key;

-static void cl_lock_lockdep_init(struct cl_lock *lock)
-{
- lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
-}
-
static void cl_lock_lockdep_acquire(const struct lu_env *env,
struct cl_lock *lock, __u32 enqflags)
{
@@ -381,7 +376,7 @@ static struct cl_lock *cl_lock_alloc(const struct lu_env *env,
CS_LOCKSTATE_INC(obj, CLS_NEW);
CS_LOCK_INC(obj, total);
CS_LOCK_INC(obj, create);
- cl_lock_lockdep_init(lock);
+ lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
list_for_each_entry(obj, &head->loh_layers,
co_lu.lo_linkage) {
int err;
--
2.1.0


2015-11-11 10:55:36

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

Hi Shivani,

[auto build test ERROR on staging/staging-testing]
[also build test ERROR on v4.3 next-20151111]

url: https://github.com/0day-ci/linux/commits/Shivani-Bhardwaj/staging-lustre-cl_lock-Remove-cl_lock_lockdep_init-wrapper/20151111-182452
config: m68k-allyesconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k

All errors (new ones prefixed by >>):

In file included from include/linux/spinlock_types.h:18:0,
from include/linux/spinlock.h:81,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from drivers/staging/lustre/lustre/obdclass/../include/obd_support.h:40,
from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:39,
from drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
drivers/staging/lustre/lustre/obdclass/cl_lock.c: In function 'cl_lock_alloc':
>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: error: 'cl_lock_key' undeclared (first use in this function)
lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
^
include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
do { (void)(key); (void)(name); } while (0)
^
drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: note: each undeclared identifier is reported only once for each function it appears in
lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
^
include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
do { (void)(key); (void)(name); } while (0)
^
drivers/staging/lustre/lustre/obdclass/cl_lock.c: At top level:
drivers/staging/lustre/lustre/obdclass/cl_lock.c:166:13: warning: 'cl_lock_lockdep_init' defined but not used [-Wunused-function]
static void cl_lock_lockdep_init(struct cl_lock *lock)
^

vim +/cl_lock_key +379 drivers/staging/lustre/lustre/obdclass/cl_lock.c

373 lockdep_set_class(&lock->cll_guard, &cl_lock_guard_class);
374 init_waitqueue_head(&lock->cll_wq);
375 head = obj->co_lu.lo_header;
376 CS_LOCKSTATE_INC(obj, CLS_NEW);
377 CS_LOCK_INC(obj, total);
378 CS_LOCK_INC(obj, create);
> 379 lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
380 list_for_each_entry(obj, &head->loh_layers,
381 co_lu.lo_linkage) {
382 int err;

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


Attachments:
(No filename) (2.87 kB)
.config.gz (34.38 kB)
Download all attachments

2015-11-11 17:21:39

by Shivani Bhardwaj

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
> Hi Shivani,
>
> [auto build test ERROR on staging/staging-testing]
> [also build test ERROR on v4.3 next-20151111]
>
> url: https://github.com/0day-ci/linux/commits/Shivani-Bhardwaj/staging-lustre-cl_lock-Remove-cl_lock_lockdep_init-wrapper/20151111-182452
> config: m68k-allyesconfig (attached as .config)
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> make.cross ARCH=m68k
>
> All errors (new ones prefixed by >>):
>
> In file included from include/linux/spinlock_types.h:18:0,
> from include/linux/spinlock.h:81,
> from include/linux/mmzone.h:7,
> from include/linux/gfp.h:5,
> from include/linux/slab.h:14,
> from drivers/staging/lustre/lustre/obdclass/../include/obd_support.h:40,
> from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:39,
> from drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
> drivers/staging/lustre/lustre/obdclass/cl_lock.c: In function 'cl_lock_alloc':
>>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: error: 'cl_lock_key' undeclared (first use in this function)
> lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> ^
> include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
> do { (void)(key); (void)(name); } while (0)
> ^
> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: note: each undeclared identifier is reported only once for each function it appears in
> lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> ^
> include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
> do { (void)(key); (void)(name); } while (0)
> ^
> drivers/staging/lustre/lustre/obdclass/cl_lock.c: At top level:
> drivers/staging/lustre/lustre/obdclass/cl_lock.c:166:13: warning: 'cl_lock_lockdep_init' defined but not used [-Wunused-function]
> static void cl_lock_lockdep_init(struct cl_lock *lock)
> ^
>
> vim +/cl_lock_key +379 drivers/staging/lustre/lustre/obdclass/cl_lock.c
>
> 373 lockdep_set_class(&lock->cll_guard, &cl_lock_guard_class);
> 374 init_waitqueue_head(&lock->cll_wq);
> 375 head = obj->co_lu.lo_header;
> 376 CS_LOCKSTATE_INC(obj, CLS_NEW);
> 377 CS_LOCK_INC(obj, total);
> 378 CS_LOCK_INC(obj, create);
> > 379 lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> 380 list_for_each_entry(obj, &head->loh_layers,
> 381 co_lu.lo_linkage) {
> 382 int err;
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation

Hi all,

I'm not getting any of these errors at compilation. I've checked
thrice. Could you please tell what am I doing wrong so that I can
avoid introducing errors in future patches?

Thank you
Shivani

2015-11-11 17:31:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On Wed, Nov 11, 2015 at 10:51:36PM +0530, Shivani Bhardwaj wrote:
> On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
> > Hi Shivani,
> >
> > [auto build test ERROR on staging/staging-testing]
> > [also build test ERROR on v4.3 next-20151111]
> >
> > url: https://github.com/0day-ci/linux/commits/Shivani-Bhardwaj/staging-lustre-cl_lock-Remove-cl_lock_lockdep_init-wrapper/20151111-182452
> > config: m68k-allyesconfig (attached as .config)
> > reproduce:
> > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # save the attached .config to linux build tree
> > make.cross ARCH=m68k
> >
> > All errors (new ones prefixed by >>):
> >
> > In file included from include/linux/spinlock_types.h:18:0,
> > from include/linux/spinlock.h:81,
> > from include/linux/mmzone.h:7,
> > from include/linux/gfp.h:5,
> > from include/linux/slab.h:14,
> > from drivers/staging/lustre/lustre/obdclass/../include/obd_support.h:40,
> > from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:39,
> > from drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
> > drivers/staging/lustre/lustre/obdclass/cl_lock.c: In function 'cl_lock_alloc':
> >>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: error: 'cl_lock_key' undeclared (first use in this function)
> > lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> > ^
> > include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
> > do { (void)(key); (void)(name); } while (0)
> > ^
> > drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: note: each undeclared identifier is reported only once for each function it appears in
> > lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> > ^
> > include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
> > do { (void)(key); (void)(name); } while (0)
> > ^
> > drivers/staging/lustre/lustre/obdclass/cl_lock.c: At top level:
> > drivers/staging/lustre/lustre/obdclass/cl_lock.c:166:13: warning: 'cl_lock_lockdep_init' defined but not used [-Wunused-function]
> > static void cl_lock_lockdep_init(struct cl_lock *lock)
> > ^
> >
> > vim +/cl_lock_key +379 drivers/staging/lustre/lustre/obdclass/cl_lock.c
> >
> > 373 lockdep_set_class(&lock->cll_guard, &cl_lock_guard_class);
> > 374 init_waitqueue_head(&lock->cll_wq);
> > 375 head = obj->co_lu.lo_header;
> > 376 CS_LOCKSTATE_INC(obj, CLS_NEW);
> > 377 CS_LOCK_INC(obj, total);
> > 378 CS_LOCK_INC(obj, create);
> > > 379 lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> > 380 list_for_each_entry(obj, &head->loh_layers,
> > 381 co_lu.lo_linkage) {
> > 382 int err;
> >
> > ---
> > 0-DAY kernel test infrastructure Open Source Technology Center
> > https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
> Hi all,
>
> I'm not getting any of these errors at compilation. I've checked
> thrice. Could you please tell what am I doing wrong so that I can
> avoid introducing errors in future patches?

Use the .config provided, odds are you have lockdep enabled.

2015-11-11 17:33:38

by Shivani Bhardwaj

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On Wed, Nov 11, 2015 at 11:01 PM, Greg KH <[email protected]> wrote:
> On Wed, Nov 11, 2015 at 10:51:36PM +0530, Shivani Bhardwaj wrote:
>> On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
>> > Hi Shivani,
>> >
>> > [auto build test ERROR on staging/staging-testing]
>> > [also build test ERROR on v4.3 next-20151111]
>> >
>> > url: https://github.com/0day-ci/linux/commits/Shivani-Bhardwaj/staging-lustre-cl_lock-Remove-cl_lock_lockdep_init-wrapper/20151111-182452
>> > config: m68k-allyesconfig (attached as .config)
>> > reproduce:
>> > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>> > chmod +x ~/bin/make.cross
>> > # save the attached .config to linux build tree
>> > make.cross ARCH=m68k
>> >
>> > All errors (new ones prefixed by >>):
>> >
>> > In file included from include/linux/spinlock_types.h:18:0,
>> > from include/linux/spinlock.h:81,
>> > from include/linux/mmzone.h:7,
>> > from include/linux/gfp.h:5,
>> > from include/linux/slab.h:14,
>> > from drivers/staging/lustre/lustre/obdclass/../include/obd_support.h:40,
>> > from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:39,
>> > from drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
>> > drivers/staging/lustre/lustre/obdclass/cl_lock.c: In function 'cl_lock_alloc':
>> >>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: error: 'cl_lock_key' undeclared (first use in this function)
>> > lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
>> > ^
>> > include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
>> > do { (void)(key); (void)(name); } while (0)
>> > ^
>> > drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: note: each undeclared identifier is reported only once for each function it appears in
>> > lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
>> > ^
>> > include/linux/lockdep.h:401:15: note: in definition of macro 'lockdep_set_class_and_name'
>> > do { (void)(key); (void)(name); } while (0)
>> > ^
>> > drivers/staging/lustre/lustre/obdclass/cl_lock.c: At top level:
>> > drivers/staging/lustre/lustre/obdclass/cl_lock.c:166:13: warning: 'cl_lock_lockdep_init' defined but not used [-Wunused-function]
>> > static void cl_lock_lockdep_init(struct cl_lock *lock)
>> > ^
>> >
>> > vim +/cl_lock_key +379 drivers/staging/lustre/lustre/obdclass/cl_lock.c
>> >
>> > 373 lockdep_set_class(&lock->cll_guard, &cl_lock_guard_class);
>> > 374 init_waitqueue_head(&lock->cll_wq);
>> > 375 head = obj->co_lu.lo_header;
>> > 376 CS_LOCKSTATE_INC(obj, CLS_NEW);
>> > 377 CS_LOCK_INC(obj, total);
>> > 378 CS_LOCK_INC(obj, create);
>> > > 379 lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
>> > 380 list_for_each_entry(obj, &head->loh_layers,
>> > 381 co_lu.lo_linkage) {
>> > 382 int err;
>> >
>> > ---
>> > 0-DAY kernel test infrastructure Open Source Technology Center
>> > https://lists.01.org/pipermail/kbuild-all Intel Corporation
>>
>> Hi all,
>>
>> I'm not getting any of these errors at compilation. I've checked
>> thrice. Could you please tell what am I doing wrong so that I can
>> avoid introducing errors in future patches?
>
> Use the .config provided, odds are you have lockdep enabled.

Thanks Greg.
I tried that. Still no errors. Any other suggestion?

2015-11-13 00:59:07

by Dilger, Andreas

[permalink] [raw]
Subject: Re: [lustre-devel] [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On 2015/11/11, 10:21, "lustre-devel on behalf of Shivani Bhardwaj"
<[email protected] on behalf of [email protected]>
wrote:

>On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
>> Hi Shivani,
>>
>> [auto build test ERROR on staging/staging-testing]
>> [also build test ERROR on v4.3 next-20151111]
>>
>> url:
>>https://github.com/0day-ci/linux/commits/Shivani-Bhardwaj/staging-lustre-
>>cl_lock-Remove-cl_lock_lockdep_init-wrapper/20151111-182452
>> config: m68k-allyesconfig (attached as .config)
>> reproduce:
>> wget
>>https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin
>>/make.cross -O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> # save the attached .config to linux build tree
>> make.cross ARCH=m68k
>>
>> All errors (new ones prefixed by >>):
>>
>> In file included from include/linux/spinlock_types.h:18:0,
>> from include/linux/spinlock.h:81,
>> from include/linux/mmzone.h:7,
>> from include/linux/gfp.h:5,
>> from include/linux/slab.h:14,
>> from
>>drivers/staging/lustre/lustre/obdclass/../include/obd_support.h:40,
>> from
>>drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:39,
>> from
>>drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
>> drivers/staging/lustre/lustre/obdclass/cl_lock.c: In function
>>'cl_lock_alloc':
>>>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: error:
>>>>'cl_lock_key' undeclared (first use in this function)
>> lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
>> ^
>> include/linux/lockdep.h:401:15: note: in definition of macro
>>'lockdep_set_class_and_name'
>> do { (void)(key); (void)(name); } while (0)
>> ^
>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:379:37: note: each
>>undeclared identifier is reported only once for each function it appears
>>in
>> lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
>> ^
>> include/linux/lockdep.h:401:15: note: in definition of macro
>>'lockdep_set_class_and_name'
>> do { (void)(key); (void)(name); } while (0)
>> ^
>> drivers/staging/lustre/lustre/obdclass/cl_lock.c: At top level:
>> drivers/staging/lustre/lustre/obdclass/cl_lock.c:166:13: warning:
>>'cl_lock_lockdep_init' defined but not used [-Wunused-function]
>> static void cl_lock_lockdep_init(struct cl_lock *lock)
>> ^
>>
>> vim +/cl_lock_key +379 drivers/staging/lustre/lustre/obdclass/cl_lock.c
>>
>> 373 lockdep_set_class(&lock->cll_guard,
>>&cl_lock_guard_class);
>> 374 init_waitqueue_head(&lock->cll_wq);
>> 375 head = obj->co_lu.lo_header;
>> 376 CS_LOCKSTATE_INC(obj, CLS_NEW);
>> 377 CS_LOCK_INC(obj, total);
>> 378 CS_LOCK_INC(obj, create);
>> > 379 lockdep_set_class_and_name(lock, &cl_lock_key,
>>"EXT");
>> 380 list_for_each_entry(obj, &head->loh_layers,
>> 381 co_lu.lo_linkage) {
>> 382 int err;
>>
>> ---
>> 0-DAY kernel test infrastructure Open Source Technology
>>Center
>> https://lists.01.org/pipermail/kbuild-all Intel
>>Corporation
>
>Hi all,
>
>I'm not getting any of these errors at compilation. I've checked
>thrice. Could you please tell what am I doing wrong so that I can
>avoid introducing errors in future patches?

You need to have CONFIG_LOCKDEP_SUPPORT=y in your kernel .config file.

Cheers, Andreas
--
Andreas Dilger

Lustre Principal Engineer
Intel High Performance Data Division

2015-11-13 13:03:39

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On Wed, Nov 11, 2015 at 11:03:34PM +0530, Shivani Bhardwaj wrote:
> On Wed, Nov 11, 2015 at 11:01 PM, Greg KH <[email protected]> wrote:
> > On Wed, Nov 11, 2015 at 10:51:36PM +0530, Shivani Bhardwaj wrote:
> >> On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
<snip>
> >>
> >> I'm not getting any of these errors at compilation. I've checked
> >> thrice. Could you please tell what am I doing wrong so that I can
> >> avoid introducing errors in future patches?
> >
> > Use the .config provided, odds are you have lockdep enabled.
>
> Thanks Greg.
> I tried that. Still no errors. Any other suggestion?

while removing the wrapper you missed that cl_lock_lockdep_init() is:

static void cl_lock_lockdep_init(struct cl_lock *lock)
{
lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
}

if CONFIG_LOCKDEP is defined.
and if CONFIG_LOCKDEP is not defined then:

static void cl_lock_lockdep_init(struct cl_lock *lock)
{}

your patch is using lockdep_set_class_and_name() in both cases.

regards
sudip

2015-11-13 13:06:24

by Shivani Bhardwaj

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: cl_lock: Remove cl_lock_lockdep_init wrapper

On Fri, Nov 13, 2015 at 6:33 PM, Sudip Mukherjee
<[email protected]> wrote:
>
> On Wed, Nov 11, 2015 at 11:03:34PM +0530, Shivani Bhardwaj wrote:
> > On Wed, Nov 11, 2015 at 11:01 PM, Greg KH <[email protected]> wrote:
> > > On Wed, Nov 11, 2015 at 10:51:36PM +0530, Shivani Bhardwaj wrote:
> > >> On Wed, Nov 11, 2015 at 4:24 PM, kbuild test robot <[email protected]> wrote:
> <snip>
> > >>
> > >> I'm not getting any of these errors at compilation. I've checked
> > >> thrice. Could you please tell what am I doing wrong so that I can
> > >> avoid introducing errors in future patches?
> > >
> > > Use the .config provided, odds are you have lockdep enabled.
> >
> > Thanks Greg.
> > I tried that. Still no errors. Any other suggestion?
>
> while removing the wrapper you missed that cl_lock_lockdep_init() is:
>
> static void cl_lock_lockdep_init(struct cl_lock *lock)
> {
> lockdep_set_class_and_name(lock, &cl_lock_key, "EXT");
> }
>
> if CONFIG_LOCKDEP is defined.
> and if CONFIG_LOCKDEP is not defined then:
>
> static void cl_lock_lockdep_init(struct cl_lock *lock)
> {}
>
> your patch is using lockdep_set_class_and_name() in both cases.
>

Yes! This is the problem.
Thank you Sudip.

> regards
> sudip