public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: Boqun Feng <boqun.feng@gmail.com>
To: ahmed Ehab <bottaawesome633@gmail.com>
Cc: kernel test robot <lkp@intel.com>,
	linux-kernel@vger.kernel.org, oe-kbuild-all@lists.linux.dev,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	linux-ext4@vger.kernel.org, syzkaller@googlegroups.com
Subject: Re: [PATCH v6 2/2] locking/lockdep: Test no new string literal is created in lockdep_set_subclass()
Date: Tue, 27 Aug 2024 11:00:32 -0700	[thread overview]
Message-ID: <Zs4UQLbzOsmjhBGU@boqun-archlinux> (raw)
In-Reply-To: <CA+6bSauLj9MBs_HRP6Yt9qXVs4eO30cpvU00u=uj7sG7S8fHmQ@mail.gmail.com>

On Tue, Aug 27, 2024 at 01:04:15PM +0300, ahmed Ehab wrote:
> On Tue, Aug 27, 2024 at 1:08 AM kernel test robot <lkp@intel.com> wrote:
> 
> > Hi Ahmed,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on tip/locking/core]
> > [also build test ERROR on tip/master arm-perf/for-next/perf linus/master
> > tip/auto-latest v6.11-rc5 next-20240826]
> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > And when submitting patch, we suggest to use '--base' as documented in
> > https://git-scm.com/docs/git-format-patch#_base_tree_information]
> >
> > url:
> > https://github.com/intel-lab-lkp/linux/commits/Ahmed-Ehab/locking-lockdep-Test-no-new-string-literal-is-created-in-lockdep_set_subclass/20240826-145215
> > base:   tip/locking/core
> > patch link:
> > https://lore.kernel.org/r/20240824221031.7751-2-bottaawesome633%40gmail.com
> > patch subject: [PATCH v6 2/2] locking/lockdep: Test no new string literal
> > is created in lockdep_set_subclass()
> > config: i386-buildonly-randconfig-003-20240827 (
> > https://download.01.org/0day-ci/archive/20240827/202408270559.rym5UAv9-lkp@intel.com/config
> > )
> > compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> > reproduce (this is a W=1 build): (
> > https://download.01.org/0day-ci/archive/20240827/202408270559.rym5UAv9-lkp@intel.com/reproduce
> > )
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new
> > version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes:
> > https://lore.kernel.org/oe-kbuild-all/202408270559.rym5UAv9-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> >    lib/locking-selftest.c: In function 'lock_class_subclass_X1':
> > >> lib/locking-selftest.c:2715:60: error: 'struct rw_semaphore' has no
> > member named 'dep_map'
> >     2715 |         const char *name_before_setting_subclass =
> > rwsem_X1.dep_map.name;
> >          |                                                            ^
> >    lib/locking-selftest.c:2719:47: error: 'struct rw_semaphore' has no
> > member named 'dep_map'
> >     2719 |         name_after_setting_subclass = rwsem_X1.dep_map.name;
> >          |                                               ^
> >
> These failures will only happen if CONFIG_DEBUG_LOCK_ALLOC is not set,
> which is required for lockdep I think.

Oh yes, this test can be compiled with LOCKDEP=n.

> Should I consider these errors by checking CONFIG_DEBUG_LOCK_ALLOC before
> calling my test method or is it
> irrelevant?
> 

Could you introduce a helper function here?

	#if CONFIG_DEBUG_LOCK_ALLOC
	static inline char* rw_semaphore_lockdep_name(struct rw_semaphore *rwsem)
	{
		return rwsem.dep_map.name;
	}
	#else
	static inline char* rw_semaphore_lockdep_name(struct rw_semaphore *rwsem)
	{
		return NULL;
	}
	#endif

and use it in your test case (you put the function definitio right
before the test case.

Regards,
Boqun


> >
> >
> > vim +2715 lib/locking-selftest.c
> >
> >   2712
> >   2713  static void lock_class_subclass_X1(void)
> >   2714  {
> > > 2715          const char *name_before_setting_subclass =
> > rwsem_X1.dep_map.name;
> >   2716          const char *name_after_setting_subclass;
> >   2717
> >   2718          lockdep_set_subclass(&rwsem_X1, 1);
> >   2719          name_after_setting_subclass = rwsem_X1.dep_map.name;
> >   2720          DEBUG_LOCKS_WARN_ON(name_before_setting_subclass !=
> > name_after_setting_subclass);
> >   2721  }
> >   2722
> >
> > --
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki
> 
> 
> Regards,
> Ahmed

      parent reply	other threads:[~2024-08-27 18:01 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-24 22:10 [PATCH v5 1/2] locking/lockdep: Avoid creating new name string literals in lockdep_set_subclass() Ahmed Ehab
2024-08-24 22:10 ` [PATCH v6 2/2] locking/lockdep: Test no new string literal is created " Ahmed Ehab
2024-08-26 22:07   ` kernel test robot
     [not found]     ` <CA+6bSauLj9MBs_HRP6Yt9qXVs4eO30cpvU00u=uj7sG7S8fHmQ@mail.gmail.com>
2024-08-27 18:00       ` Boqun Feng [this message]

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=Zs4UQLbzOsmjhBGU@boqun-archlinux \
    --to=boqun.feng@gmail.com \
    --cc=bottaawesome633@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=longman@redhat.com \
    --cc=mingo@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=syzkaller@googlegroups.com \
    --cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox