2019-01-08 03:11:16

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

drivers/vfio/pci/vfio_pci_nvlink2.c cannot be compiled for in-tree
building.

CC drivers/vfio/pci/vfio_pci_nvlink2.o
In file included from drivers/vfio/pci/trace.h:102,
from drivers/vfio/pci/vfio_pci_nvlink2.c:29:
./include/trace/define_trace.h:89:42: fatal error: ./trace.h: No such file or directory
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
^
compilation terminated.
make[1]: *** [scripts/Makefile.build;277: drivers/vfio/pci/vfio_pci_nvlink2.o] Error 1

To fix the build error, let's tell include/trace/define_trace.h the
location of drivers/vfio/pci/trace.h

Fixes: 7f92891778df ("vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver")
Reported-by: Laura Abbott <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
---

drivers/vfio/pci/trace.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
index 228ccdb..4d13e51 100644
--- a/drivers/vfio/pci/trace.h
+++ b/drivers/vfio/pci/trace.h
@@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
#endif /* _TRACE_VFIO_PCI_H */

#undef TRACE_INCLUDE_PATH
-#define TRACE_INCLUDE_PATH .
+#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE trace

--
2.7.4



2019-01-08 09:49:00

by Cornelia Huck

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

On Tue, 8 Jan 2019 12:08:03 +0900
Masahiro Yamada <[email protected]> wrote:

> drivers/vfio/pci/vfio_pci_nvlink2.c cannot be compiled for in-tree
> building.
>
> CC drivers/vfio/pci/vfio_pci_nvlink2.o
> In file included from drivers/vfio/pci/trace.h:102,
> from drivers/vfio/pci/vfio_pci_nvlink2.c:29:
> ./include/trace/define_trace.h:89:42: fatal error: ./trace.h: No such file or directory
> #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
> ^
> compilation terminated.
> make[1]: *** [scripts/Makefile.build;277: drivers/vfio/pci/vfio_pci_nvlink2.o] Error 1
>
> To fix the build error, let's tell include/trace/define_trace.h the
> location of drivers/vfio/pci/trace.h
>
> Fixes: 7f92891778df ("vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver")
> Reported-by: Laura Abbott <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>
> drivers/vfio/pci/trace.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
> index 228ccdb..4d13e51 100644
> --- a/drivers/vfio/pci/trace.h
> +++ b/drivers/vfio/pci/trace.h
> @@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
> #endif /* _TRACE_VFIO_PCI_H */
>
> #undef TRACE_INCLUDE_PATH
> -#define TRACE_INCLUDE_PATH .
> +#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
> #undef TRACE_INCLUDE_FILE
> #define TRACE_INCLUDE_FILE trace
>

I think both this and the other fix option via the Makefile are fine
(even though I still slightly prefer the latter), so I'll leave the
choice to the maintainer.

Reviewed-by: Cornelia Huck <[email protected]>

2019-01-08 20:07:16

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

On Tue, 8 Jan 2019 12:08:03 +0900
Masahiro Yamada <[email protected]> wrote:

> drivers/vfio/pci/vfio_pci_nvlink2.c cannot be compiled for in-tree
> building.
>
> CC drivers/vfio/pci/vfio_pci_nvlink2.o
> In file included from drivers/vfio/pci/trace.h:102,
> from drivers/vfio/pci/vfio_pci_nvlink2.c:29:
> ./include/trace/define_trace.h:89:42: fatal error: ./trace.h: No such file or directory
> #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
> ^
> compilation terminated.
> make[1]: *** [scripts/Makefile.build;277: drivers/vfio/pci/vfio_pci_nvlink2.o] Error 1
>
> To fix the build error, let's tell include/trace/define_trace.h the
> location of drivers/vfio/pci/trace.h
>
> Fixes: 7f92891778df ("vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver")
> Reported-by: Laura Abbott <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---

Thanks for posting this, it's my preferred fix. I'll give it another
day to collect reviews/objections then pop it into my for-linus branch
for rc2. Thanks!

Alex

> drivers/vfio/pci/trace.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
> index 228ccdb..4d13e51 100644
> --- a/drivers/vfio/pci/trace.h
> +++ b/drivers/vfio/pci/trace.h
> @@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
> #endif /* _TRACE_VFIO_PCI_H */
>
> #undef TRACE_INCLUDE_PATH
> -#define TRACE_INCLUDE_PATH .
> +#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
> #undef TRACE_INCLUDE_FILE
> #define TRACE_INCLUDE_FILE trace
>


2019-01-10 20:16:56

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

On Tue, Jan 08, 2019 at 12:08:03PM +0900, Masahiro Yamada wrote:
> ---
>
> drivers/vfio/pci/trace.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
> index 228ccdb..4d13e51 100644
> --- a/drivers/vfio/pci/trace.h
> +++ b/drivers/vfio/pci/trace.h
> @@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
> #endif /* _TRACE_VFIO_PCI_H */
>
> #undef TRACE_INCLUDE_PATH
> -#define TRACE_INCLUDE_PATH .
> +#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci

Note, the reason why I did not show this method in the samples/trace_events/
is that there's one "gotcha" that you need to be careful about. It may not be
an issue here, but please be aware of it.

The words in TRACE_INCLUDE_PATH can be updated by C preprocessor defines. For
example, if for some reason you had:

#define pci special_pci

The above would turn into:

../../drivers/vfio/special_pci

and it wont build, and you will be left scratching your head wondering why.

-- Steve

> #undef TRACE_INCLUDE_FILE
> #define TRACE_INCLUDE_FILE trace
>
> --
> 2.7.4

2019-01-11 01:17:19

by Alexey Kardashevskiy

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error



On 11/01/2019 01:47, Steven Rostedt wrote:
> On Tue, Jan 08, 2019 at 12:08:03PM +0900, Masahiro Yamada wrote:
>> ---
>>
>> drivers/vfio/pci/trace.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
>> index 228ccdb..4d13e51 100644
>> --- a/drivers/vfio/pci/trace.h
>> +++ b/drivers/vfio/pci/trace.h
>> @@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
>> #endif /* _TRACE_VFIO_PCI_H */
>>
>> #undef TRACE_INCLUDE_PATH
>> -#define TRACE_INCLUDE_PATH .
>> +#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
>
> Note, the reason why I did not show this method in the samples/trace_events/
> is that there's one "gotcha" that you need to be careful about. It may not be
> an issue here, but please be aware of it.
>
> The words in TRACE_INCLUDE_PATH can be updated by C preprocessor defines. For
> example, if for some reason you had:
>
> #define pci special_pci
>
> The above would turn into:
>
> ../../drivers/vfio/special_pci
>
> and it wont build, and you will be left scratching your head wondering why.

Lovely :) imho it is +1 for
CFLAGS_vfio_pci_nvlink2.o += -I$(src)
and a comment.


--
Alexey

2019-01-11 04:18:30

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

On Fri, 11 Jan 2019 12:13:35 +1100
Alexey Kardashevskiy <[email protected]> wrote:

> > The words in TRACE_INCLUDE_PATH can be updated by C preprocessor defines. For
> > example, if for some reason you had:
> >
> > #define pci special_pci
> >
> > The above would turn into:
> >
> > ../../drivers/vfio/special_pci
> >
> > and it wont build, and you will be left scratching your head wondering why.
>
> Lovely :) imho it is +1 for
> CFLAGS_vfio_pci_nvlink2.o += -I$(src)
> and a comment.

A more realistic example is:

#define pci 1

which I hit when I first tried to do it this way when I first
implemented this code (not with "pci" but a similar word).

I'll leave this up to the maintainers of the code to decide which way
they want to do it, as they are the ones that have to deal with the
fallout if something goes wrong ;-)

-- Steve

2019-01-11 04:26:21

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] vfio_pci: set TRACE_INCLUDE_PATH to fix the build error

On Fri, 11 Jan 2019 12:13:35 +1100
Alexey Kardashevskiy <[email protected]> wrote:

> On 11/01/2019 01:47, Steven Rostedt wrote:
> > On Tue, Jan 08, 2019 at 12:08:03PM +0900, Masahiro Yamada wrote:
> >> ---
> >>
> >> drivers/vfio/pci/trace.h | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/vfio/pci/trace.h b/drivers/vfio/pci/trace.h
> >> index 228ccdb..4d13e51 100644
> >> --- a/drivers/vfio/pci/trace.h
> >> +++ b/drivers/vfio/pci/trace.h
> >> @@ -94,7 +94,7 @@ TRACE_EVENT(vfio_pci_npu2_mmap,
> >> #endif /* _TRACE_VFIO_PCI_H */
> >>
> >> #undef TRACE_INCLUDE_PATH
> >> -#define TRACE_INCLUDE_PATH .
> >> +#define TRACE_INCLUDE_PATH ../../drivers/vfio/pci
> >
> > Note, the reason why I did not show this method in the samples/trace_events/
> > is that there's one "gotcha" that you need to be careful about. It may not be
> > an issue here, but please be aware of it.
> >
> > The words in TRACE_INCLUDE_PATH can be updated by C preprocessor defines. For
> > example, if for some reason you had:
> >
> > #define pci special_pci
> >
> > The above would turn into:
> >
> > ../../drivers/vfio/special_pci
> >
> > and it wont build, and you will be left scratching your head wondering why.

Thanks for the info Steve, that'd definitely be a head scratcher, but
it also seems really unlikely for this path.

> Lovely :) imho it is +1 for
> CFLAGS_vfio_pci_nvlink2.o += -I$(src)
> and a comment.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d1fc1176c055c9ec9c6ec4d113a284e0bad9d09a

Obviously we can still refine further, but I don't see this new piece
of information making a meaningful difference in the choice. Thanks,

Alex