Re: [PATCH 5/9] MIPS: Add numa api support

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

 



Hi, Alex,

I found that only o32 use the compat version of move_pages(), n32 use
the normal one. And both o32/n32 doesn't use the compat version of
migrate_pages(). That means they are all need to be fixed in this
patch?

Huacai

On Fri, Apr 11, 2014 at 8:15 PM, Alex Smith <alex.smith@xxxxxxxxxx> wrote:
> Hi Huacai,
>
> The compat wrappers are needed for all of them for O32/N32 on a 64-bit
> kernel. {get,set}mempolicy, mbind and migrate_pages all copy bitmaps to/from
> user memory. The non-compat versions would behave fine on little endian, but
> the compat versions are needed to convert the 32-bit bitmaps to 64-bit on
> big endian.
>
> move_pages takes an array of pointers, the compat version is needed to
> convert that to 64-bit.
>
> Alex
>
>
> On 11/04/14 09:21, Huacai Chen wrote:
>>
>> Hi, MIPS hackers,
>>
>> Could anyone help me?
>>
>> Huacai
>>
>> On Thu, Apr 10, 2014 at 6:47 PM, Huacai Chen <chenhc@xxxxxxxxxx> wrote:
>>>
>>> Hi, David,
>>>
>>> After some code reading, I have some understanding about compat
>>> syscall, please tell me whether I'm correct.
>>> 1, compat syscall is only needed by n32/o32 userspace on 64-bit kernel.
>>> 2, compat syscall is only needed when there are arguments in pointer
>>> type.
>>> 3, compat syscall is only needed when pointer arguments are
>>> array/struct/union for reading (reading means get_user or
>>> copy_from_user), or pointer arguments are array/struct/union/long
>>> integer for writing (writing means put_user or copy_to_user).
>>>
>>> If my understanding is correct, then in this patch, get_mempolicy()
>>> need to use the compat version for n32/o32 on 64-bit kernel, mbind()
>>> and set_mempolicy() can use the normal version in all cases. But when
>>> I reading the X86 code, it seems like only o32 on 64-bit kernel need a
>>> compat version (I assume i386/X32/X64 on X86 is the same as
>>> o32/n32/n64 on MIPS).
>>>
>>> Please give some information, thanks.
>>>
>>> Huacai
>>>
>>> On Sat, Apr 5, 2014 at 8:54 AM, "陈华才" <chenhc@xxxxxxxxxx> wrote:
>>>>
>>>> Excuse me, what's the compat version exactly means? Or how to produce a
>>>> problem  without a compat version? It seems everything works fine just
>>>> with this patch.
>>>>
>>>> Huacai
>>>>
>>>>> On 04/04/2014 01:11 AM, Huacai Chen wrote:
>>>>>>
>>>>>> Enable sys_mbind()/sys_get_mempolicy()/sys_set_mempolicy() for O32,
>>>>>> N32,
>>>>>> and N64 ABIs.
>>>>>>
>>>>>> Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx>
>>>>>
>>>>>
>>>>> NACK.
>>>>>
>>>>> You need compat versions of the syscalls...
>>>>>
>>>>> Also current migrate_pages and move_pages syscalls need to use the
>>>>> compat wrappers for 32-bit ABIs.
>>>>>
>>>>> David Daney
>>>>>
>>>>>
>>>>>> ---
>>>>>>    arch/mips/kernel/scall32-o32.S |    4 ++--
>>>>>>    arch/mips/kernel/scall64-64.S  |    4 ++--
>>>>>>    arch/mips/kernel/scall64-n32.S |    6 +++---
>>>>>>    arch/mips/kernel/scall64-o32.S |    6 +++---
>>>>>>    4 files changed, 10 insertions(+), 10 deletions(-)
>>>>>>
>>>>>> diff --git a/arch/mips/kernel/scall32-o32.S
>>>>>> b/arch/mips/kernel/scall32-o32.S
>>>>>> index fdc70b4..7f7e2fb 100644
>>>>>> --- a/arch/mips/kernel/scall32-o32.S
>>>>>> +++ b/arch/mips/kernel/scall32-o32.S
>>>>>> @@ -495,8 +495,8 @@ EXPORT(sys_call_table)
>>>>>>       PTR     sys_tgkill
>>>>>>       PTR     sys_utimes
>>>>>>       PTR     sys_mbind
>>>>>> -    PTR     sys_ni_syscall                  /* sys_get_mempolicy */
>>>>>> -    PTR     sys_ni_syscall                  /* 4270 sys_set_mempolicy
>>>>>> */
>>>>>> +    PTR     sys_get_mempolicy
>>>>>> +    PTR     sys_set_mempolicy               /* 4270 */
>>>>>>       PTR     sys_mq_open
>>>>>>       PTR     sys_mq_unlink
>>>>>>       PTR     sys_mq_timedsend
>>>>>> diff --git a/arch/mips/kernel/scall64-64.S
>>>>>> b/arch/mips/kernel/scall64-64.S
>>>>>> index dd99c328..a4baf06 100644
>>>>>> --- a/arch/mips/kernel/scall64-64.S
>>>>>> +++ b/arch/mips/kernel/scall64-64.S
>>>>>> @@ -347,8 +347,8 @@ EXPORT(sys_call_table)
>>>>>>       PTR     sys_tgkill                      /* 5225 */
>>>>>>       PTR     sys_utimes
>>>>>>       PTR     sys_mbind
>>>>>> -    PTR     sys_ni_syscall                  /* sys_get_mempolicy */
>>>>>> -    PTR     sys_ni_syscall                  /* sys_set_mempolicy */
>>>>>> +    PTR     sys_get_mempolicy
>>>>>> +    PTR     sys_set_mempolicy
>>>>>>       PTR     sys_mq_open                     /* 5230 */
>>>>>>       PTR     sys_mq_unlink
>>>>>>       PTR     sys_mq_timedsend
>>>>>> diff --git a/arch/mips/kernel/scall64-n32.S
>>>>>> b/arch/mips/kernel/scall64-n32.S
>>>>>> index f68d2f4..92db19e 100644
>>>>>> --- a/arch/mips/kernel/scall64-n32.S
>>>>>> +++ b/arch/mips/kernel/scall64-n32.S
>>>>>> @@ -339,9 +339,9 @@ EXPORT(sysn32_call_table)
>>>>>>       PTR     compat_sys_clock_nanosleep
>>>>>>       PTR     sys_tgkill
>>>>>>       PTR     compat_sys_utimes               /* 6230 */
>>>>>> -    PTR     sys_ni_syscall                  /* sys_mbind */
>>>>>> -    PTR     sys_ni_syscall                  /* sys_get_mempolicy */
>>>>>> -    PTR     sys_ni_syscall                  /* sys_set_mempolicy */
>>>>>> +    PTR     sys_mbind
>>>>>> +    PTR     sys_get_mempolicy
>>>>>> +    PTR     sys_set_mempolicy
>>>>>
>>>>>
>>>>> Here
>>>>>
>>>>>
>>>>>>       PTR     compat_sys_mq_open
>>>>>>       PTR     sys_mq_unlink                   /* 6235 */
>>>>>>       PTR     compat_sys_mq_timedsend
>>>>>> diff --git a/arch/mips/kernel/scall64-o32.S
>>>>>> b/arch/mips/kernel/scall64-o32.S
>>>>>> index 70f6ace..0230429 100644
>>>>>> --- a/arch/mips/kernel/scall64-o32.S
>>>>>> +++ b/arch/mips/kernel/scall64-o32.S
>>>>>> @@ -473,9 +473,9 @@ EXPORT(sys32_call_table)
>>>>>>       PTR     compat_sys_clock_nanosleep      /* 4265 */
>>>>>>       PTR     sys_tgkill
>>>>>>       PTR     compat_sys_utimes
>>>>>> -    PTR     sys_ni_syscall                  /* sys_mbind */
>>>>>> -    PTR     sys_ni_syscall                  /* sys_get_mempolicy */
>>>>>> -    PTR     sys_ni_syscall                  /* 4270 sys_set_mempolicy
>>>>>> */
>>>>>> +    PTR     sys_mbind
>>>>>> +    PTR     sys_get_mempolicy
>>>>>> +    PTR     sys_set_mempolicy               /* 4270 */
>>>>>
>>>>>
>>>>> And Here.
>>>>>
>>>>>
>>>>>>       PTR     compat_sys_mq_open
>>>>>>       PTR     sys_mq_unlink
>>>>>>       PTR     compat_sys_mq_timedsend
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>
>


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux