Re: include: linux: slab: kmalloc_trace undefined when compiling drivers

Ian Cowan
2022-11-14T12:40:00Z

On Mon, Nov 14, 2022 at 05:59:06PM +0900, Hyeonggon Yoo wrote:
> On Sat, Nov 12, 2022 at 08:21:14PM -0500, Ian Cowan wrote:
> > On Sat, Nov 12, 2022 at 05:11:27PM -0800, Randy Dunlap wrote:
> > >
> > >
> > > On 11/12/22 16:43, Ian Cowan wrote:
> > > > On Sat, Nov 12, 2022 at 04:34:18PM -0800, Randy Dunlap wrote:
> > > >>
> > > >>
> > > >> On 11/12/22 13:59, Ian Cowan wrote:
> > > >>> On Sat, Nov 12, 2022 at 09:21:34AM -0800, Randy Dunlap wrote:
> > > >>>> Hi--
> > > >>>>
> > > >>>> On 11/12/22 08:37, Ian Cowan wrote:
> > > >>>>> When compiling drivers (speficially drivers/pci/hotplug), I am receiving
> > > >>>>> the following modpost error for both `kmalloc_trace` and
> > > >>>>> `kmalloc_node_trace` on the staging/staging-next branch:
> > > >>>>>
> > > >>
> > > >> Ian, what do you mean by "on the staging/staging-next branch"?
> > > >>
> > > >> What kernel version are you trying to build?
> > > >>
> > > >> The .config that you sent is for v6.1.0-rc1.
> > > >
> > > > I am building from the staging repository (gregkh/staging) and my
> > > > working branch when building is staging-next. So I am trying to build
> > > > from staging and not a particular version. I have also run `make modules_prepare`
> > > > and updated the .config per that script. However, when I do build
> > > > v6.1.0-rc1 from the main repository (torvalds/linux), I run into the same problem.
> > >
> > > Have you built the entire kernel already and then you are trying to build
> > > only drivers/pci/hotplug?
> > Yes, I did build the entire kernel already and then I'm just trying to
> > rebuild that module.
> >
> > In `include/linux/slab.h` if I remove the lines between `#ifdef
> > CONFIG_TRACING` and `#else` (lines 473-480) and then the corresponding
> > `#endif` and leave lines 481-499, I'm able to compile that module
> > without issue.
>
> I don't get what the problem is.
> In case kmalloc[_node]_trace() is undefined, it's replaced with kmem_cache_alloc[_node].
>
> Is the kernel built with same config on tree?

Yes, the same config on tree with no errors or warnings. I was able to
trace it back to this commit - building on the commit immediately prior
builds without error or warning. It looks like this commit does some
refactoring of the kmem_cache_alloc[_node] and kmalloc[_node]_trace.