Re: linux-next: Tree for May 18 (mm/memory-failure.c)

From: Naoya Horiguchi
Date: Wed May 20 2015 - 01:52:02 EST


On Tue, May 19, 2015 at 09:46:36AM -0400, Steven Rostedt wrote:
...
> > diff --git a/include/ras/ras_event.h b/include/ras/ras_event.h
> > index 1443d79e4fe6..43054c0fcf65 100644
> > --- a/include/ras/ras_event.h
> > +++ b/include/ras/ras_event.h
> > @@ -1,6 +1,8 @@
> > #undef TRACE_SYSTEM
> > #define TRACE_SYSTEM ras
> > #define TRACE_INCLUDE_FILE ras_event
> > +#undef TRACE_INCLUDE_PATH
> > +#define TRACE_INCLUDE_PATH ../../include/ras
>
> Note, ideally, you want:
>
> #define TRACE_INCLUDE_PATH .

OK, so we had better move include/ras/ras_event.h under include/trace/events.
I'll do this in a separate work.

> and change the Makefile to have:
>
> CFLAGS_ras.o := -I$(src)

It seems that if we do both of these, I hit the following error:

CC drivers/ras/ras.o
In file included from include/trace/events/ras_event.h:327,
from drivers/ras/ras.c:13:
include/trace/define_trace.h:83:43: error: ./ras_event.h: No such file or directory

, so I guess it's enough to do either.

> ...
>
>
> >
> > #if !defined(_TRACE_HW_EVENT_MC_H) || defined(TRACE_HEADER_MULTI_READ)
> > #define _TRACE_HW_EVENT_MC_H
> > diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> > index 8cbe23ac1056..e88e14d87571 100644
> > --- a/mm/memory-failure.c
> > +++ b/mm/memory-failure.c
> > @@ -57,6 +57,7 @@
> > #include <linux/mm_inline.h>
> > #include <linux/kfifo.h>
> > #include "internal.h"
> > +#define CREATE_TRACE_POINTS
> > #include "ras/ras_event.h"
>
> Um, you can only define CREATE_TRACE_POINTS for a single instance.
> Otherwise you will be making duplicate functions with the same name and
> same variables.
>
> That is, you must either pick CREATE_TRACE_POINTS for ras_event.h in
> mm/memory-failure.c or drivers/ras/ras.c. Not both.

OK, so it seems that the root cause of the original error is a wrong
dependency among CONFIGs.
CONFIG_RAS should depend on CONFIG_MEMORY_FAILURE, but that is not true
(CONFIG_RAS=n and CONFIG_MEMORY_FAILURE=y in Randy's .config.)
This problem is visible when CONFIG_X86_64=n and CONFIG_SPARSEMEM=n (and all
other dependencies of CONFIG_RAS from ACPI_EXTLOG/PCIEAER/EDAC are false).
I'll fix such dependency.

Thanks,
Naoya Horiguchi--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/