qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulati


From: Laurent Vivier
Subject: Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulation
Date: Thu, 1 Oct 2020 20:08:12 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

Le 01/10/2020 à 17:40, Taylor Simpson a écrit :
> 
> 
>> -----Original Message-----
>> From: Laurent Vivier <laurent@vivier.eu>
>> Sent: Thursday, October 1, 2020 1:53 AM
>> To: Taylor Simpson <tsimpson@quicinc.com>; qemu-devel@nongnu.org
>> Cc: richard.henderson@linaro.org; philmd@redhat.com; riku.voipio@iki.fi;
>> aleksandar.m.mail@gmail.com; ale@rev.ng
>> Subject: Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user
>> emulation
>>
>> Le 30/09/2020 à 22:47, Taylor Simpson a écrit :
>>>
>>>
>>>> -----Original Message-----
>>>> From: Laurent Vivier <laurent@vivier.eu>
>>>> Sent: Monday, September 28, 2020 3:03 PM
>>>> To: Taylor Simpson <tsimpson@quicinc.com>; qemu-devel@nongnu.org
>>>> Cc: richard.henderson@linaro.org; philmd@redhat.com; riku.voipio@iki.fi;
>>>> aleksandar.m.mail@gmail.com; ale@rev.ng
>>>> Subject: Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux
>> user
>>>> emulation
>>>>
>>>>> +
>>>>> +syscall_nr_generators += {
>>>>> +  'hexagon': generator(sh,
>>>>> +                       arguments: [ 'cat', 'syscall_nr.h', '>', 
>>>>> '@OUTPUT@' ],
>>>>> +                     output: '@BASENAME@_nr.h')
>>>>
>>>> Why do we need that?
>>>> The syscall_nr_generators is used to generate syscall_nr.h from syscall.tbl
>>>
>>> The other linux-user targets have this in their meson.build files.  I'll 
>>> remove
>> if it's not needed.
>>
>> Not all the targets (only the ones with syscall.tbl) and they call
>> syscallhdr.sh and not cat. So you can remove it.
>>
>>>>
>>>>> +}
>>>>> diff --git a/linux-user/meson.build b/linux-user/meson.build
>>>>> index 2b94e4b..8b1dfc8 100644
>>>>> --- a/linux-user/meson.build
>>>>> +++ b/linux-user/meson.build
>>>>> @@ -22,6 +22,7 @@ syscall_nr_generators = {}
>>>>>
>>>>>  subdir('alpha')
>>>>>  subdir('arm')
>>>>> +subdir('hexagon')
>>>>
>>>> so you don't need that either
>>>
>>> OK
>>>
>>>>> -    grep -e "#define __NR_" -e "#define __NR3264"
>>>>> +    grep -e "#define __NR_" -e "#define __NR3264" | grep -v
>>>> __NR_syscalls
>>>>
>>>> Why do you remove __NR_syscalls?
>>>
>>> Older kernels have a bunch of
>>> #undef __NR_syscalls
>>> #define __NR_syscalls  X
>>>
>>> The script removes all #undef's but leaves the #define's, so we get compile
>> errors.  That symbol isn't used by qemu so it's safe to remove.
>>>
>>
>> As the syscall_nr.h generated from syscall.tbl don't have this symbol, I
>> think we can remove it. But I'm very surprised it doesn't work with it
>> for you.
>>
>> Could you put this one-line change in a separate patch?
>>
>> The best would be to re-run it once the change is made to update all the
>> generated syscall_nr.h without the __NR_syscalls line.
>>
>> Moreover the syscall_nr.h I generate from linux-5.9 for hexagon is
>> different from the one you put in this series (the 1024 -> 1079 part is
>> missing).
> 
> The syscall_nr.h I submitted is from 4.9, and we are in the process of 
> upgrading the toolchain/kernel/etc.

Do you know why the syscalls between 1024 and 1079 are in your
syscall_nr.h while they are not in linux 4.9?
(They are normally enabled by __ARCH_WANT_SYSCALL_DEPRECATED)

> 
> Which versions of the kernel does qemu expect to support?  I'll investigate 
> whether those versions have multiple __NR_syscalls.  If not, there's no need 
> for that change.

For linux-user, we have all the linux-user targets at the same syscall
API level, and we update them to have the definitions from the latest
kernel.

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]