[LITMUS^RT] LITMUS^RT on v4.9: call for testing

Andrea Bastoni bastoni at sprg.uniroma2.it
Wed Mar 1 10:02:59 CET 2017


Hi Namhoon,

On Wed, Mar 1, 2017 at 8:03 AM, Namhoon Kim <namhoonk at cs.unc.edu> wrote:
> I downloaded the wip-port branch and tried to compile for IMX6 processors.
> The following compilation error has occurred.
>
>   CHK     include/config/kernel.release
>   CHK     include/generated/uapi/linux/version.h
>   CHK     include/generated/utsrelease.h
>   CHK     include/generated/bounds.h
>   CHK     include/generated/timeconst.h
>   CHK     include/generated/asm-offsets.h
>   CALL    scripts/checksyscalls.sh
>   CHK     include/generated/compile.h
>   CHK     kernel/config_data.h
>   CC      litmus/sched_pfp.o
> In file included from ./arch/arm/include/asm/uaccess.h:18:0,
>                  from ./include/linux/uaccess.h:5,
>                  from litmus/sched_pfp.c:26:
> ./arch/arm/include/asm/domain.h:88:28: error: expected identifier or ‘(’
> before ‘&’ token
> ./arch/arm/include/asm/domain.h:88:28: error: expected ‘)’ before ‘->’ token
> In file included from ./include/linux/uaccess.h:5:0,
>                  from litmus/sched_pfp.c:26:
> ./arch/arm/include/asm/uaccess.h: In function ‘uaccess_save_and_enable’:
> ./arch/arm/include/asm/uaccess.h:61:28: error: expected expression before
> ‘)’ token
> make[1]: *** [litmus/sched_pfp.o] Error 1
> make: *** [litmus] Error 2

Please, next time compile without -j options to detect the full error:

In file included from litmus/sched_pfp.c:14:0:
./include/litmus/litmus.h:56:21: error: expected identifier or '('
before '&' token
 #define tsk_rt(t)  (&(t)->rt_param)
                     ^
./include/litmus/litmus.h:109:24: note: in expansion of macro 'tsk_rt'
 #define get_domain(t) (tsk_rt(t)->domain)
                        ^
./arch/arm/include/asm/domain.h:88:28: note: in expansion of macro 'get_domain'
 static inline unsigned int get_domain(void)
                            ^
./include/litmus/litmus.h:109:33: error: expected ')' before '->' token
 #define get_domain(t) (tsk_rt(t)->domain)
                                 ^
./arch/arm/include/asm/domain.h:88:28: note: in expansion of macro 'get_domain'
 static inline unsigned int get_domain(void)
                            ^
./arch/arm/include/asm/uaccess.h: In function 'uaccess_save_and_enable':
./include/litmus/litmus.h:56:24: error: expected expression before ')' token
 #define tsk_rt(t)  (&(t)->rt_param)
                        ^
./include/litmus/litmus.h:109:24: note: in expansion of macro 'tsk_rt'
 #define get_domain(t) (tsk_rt(t)->domain)
                        ^
./arch/arm/include/asm/uaccess.h:61:28: note: in expansion of macro 'get_domain'
  unsigned int old_domain = get_domain();
                            ^
scripts/Makefile.build:293: recipe for target 'litmus/sched_pfp.o' failed
make[1]: *** [litmus/sched_pfp.o] Error 1
Makefile:989: recipe for target 'litmus' failed
make: *** [litmus] Error 2

Which is due by the redefinition of get_domain() in litmus and arm.
The attached patch fixes the issue by changing the get_domain() define
in litmus to tsk_get_domain()... get_domain() doesn't seem to be in
use anyway, perhaps it can be removed.

Additionally, feather trace uses atomic_add_return, which seems to be
only available in the _relaxed variant on arm... I didn't check if the
relaxed variant is also available on x86.

Cheers,
  Andrea


>
> The compilation environment is:
> cross-compiler : arm-linux-gnueabihf-gcc version 4.7.3
> kernel configuration : default imx_v6_v7 configuration (make
> imx_v6_v7_defconfig)
>
> Does anyone compile the wip-port branch for ARM architectures?
>
> Thanks,
>
> Namhoon
>
> On Mon, Feb 27, 2017 at 6:37 PM, Namhoon Kim <namhoonk at cs.unc.edu> wrote:
>>
>> Hi,
>>
>> We will compile and test the wip-port branch on our Freescale IMX6
>> platform (ARM arch). I will report the results in a few days.
>>
>> Thanks,
>>
>> Namhoon
>>
>> On Mon, Feb 27, 2017 at 6:05 PM, Björn Brandenburg <bbb at mpi-sws.org>
>> wrote:
>>>
>>> Dear LITMUS^RT community,
>>>
>>> I’ve prepared an initial port of LITMUS^RT to Linux 4.9.13. It compiles
>>> and runs on my x86 box, and even survives light testing. Let’s make this the
>>> next release. Obviously, more testing and cleanup is required. Thus:
>>>
>>>                  ******** Please help out with testing! ********
>>>
>>> The port is in the wip-port branch on Github:
>>>
>>>         https://github.com/LITMUS-RT/litmus-rt/commits/wip-port
>>>
>>> Please give it a try.
>>>
>>> Some details on what I’ve done:
>>>
>>> First, I squashed the history of the current master branch, the result of
>>> which you can find in the sip-squashed branch:
>>>
>>>         https://github.com/LITMUS-RT/litmus-rt/commits/wip-squashed
>>>
>>> This branch is identical to the current master branch, modulo the
>>> simplified history.
>>>
>>> Next, I’ve rebased wip-squashed on top of Linux 4.9.13. Some notes:
>>>
>>> - the hrtimer API has changed; this required some adjustments.
>>>
>>> - I’ve dropped the SRP ceiling blocking hook. This legacy implementation
>>> was no longer working right and causing too many problem. SRP support will
>>> have to be re-implemented (if anyone still cares).
>>>
>>> - There were many merge conflicts due to regular kernel churn. Most of
>>> them I could resolve in ways that seem like they ought to work, but only
>>> heavy workloads will show if the kernel holds up.
>>>
>>>                  ******** What to do ********
>>>
>>> - Download, compile, and run the version in the wip-port branch.
>>>
>>> - Run on the machines that you usually use for your research and tests.
>>>
>>> - Run with both debug and benchmarking configs.
>>>
>>> - If you use non-x86 hardware, see if the kernel still compiles for your
>>> favorite platform.
>>>
>>> - Run your usual benchmarks / workloads.
>>>
>>> - Report any crashes / warnings / performance regressions / anything else
>>> surprising.
>>>
>>> - Ideally, submit patches to fix both minor and major breakage.
>>>
>>> Note: you’ll need the latest liblitmus to work with this kernel.
>>>
>>> I know testing is not the most fun activity on the planet, but if you
>>> want to have a stable base system for your next project, now is the time to
>>> chip in and help out the project. The plan is to make 4.9 the base version
>>> for at least the next two years, so any effort invested now is going to pay
>>> off for some time to come.
>>>
>>> Thanks,
>>> Björn
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> litmus-dev mailing list
>>> litmus-dev at lists.litmus-rt.org
>>> https://lists.litmus-rt.org/listinfo/litmus-dev
>>
>>
>
>
> _______________________________________________
> litmus-dev mailing list
> litmus-dev at lists.litmus-rt.org
> https://lists.litmus-rt.org/listinfo/litmus-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_compilation.imx6.patch
Type: text/x-patch
Size: 1223 bytes
Desc: not available
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20170301/83463c73/attachment.bin>


More information about the litmus-dev mailing list