mbox series

[-next,v3,0/3] riscv: Fix two vdso issue

Message ID 20210901024621.2528797-1-tongtiangen@huawei.com (mailing list archive)
Headers show
Series riscv: Fix two vdso issue | expand

Message

Tong Tiangen Sept. 1, 2021, 2:46 a.m. UTC
v3->v2:
  Adapt to the latest code.

v2->v1:
  Add patch "Refactor asm/vdso.h" to avoid vdso.lds syntax error if
  CONFIG_GENERIC_TIME_VSYSCALL=n.

1) Move vdso data page up front and introduce enum vvar_pages, This makes it
easier to introduce new feature TIME_NS.

2) In arch_setup_additional_pages(), make Wait for the lock in the killable mode
and return with EINTR if the task got killed while waiting.

Tong Tiangen (3):
  riscv/vdso: Refactor asm/vdso.h
  riscv/vdso: Move vdso data page up front
  riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for
    write killable

 arch/riscv/include/asm/syscall.h  |  1 +
 arch/riscv/include/asm/vdso.h     | 15 ++++-----
 arch/riscv/kernel/syscall_table.c |  1 -
 arch/riscv/kernel/vdso.c          | 53 +++++++++++++++++++------------
 arch/riscv/kernel/vdso/vdso.lds.S |  3 +-
 5 files changed, 42 insertions(+), 31 deletions(-)

Comments

Liu Shixin Sept. 28, 2021, 2:19 a.m. UTC | #1
On 2021/9/1 10:46, Tong Tiangen wrote:
> v3->v2:
>   Adapt to the latest code.
>
> v2->v1:
>   Add patch "Refactor asm/vdso.h" to avoid vdso.lds syntax error if
>   CONFIG_GENERIC_TIME_VSYSCALL=n.
>
> 1) Move vdso data page up front and introduce enum vvar_pages, This makes it
> easier to introduce new feature TIME_NS.
>
> 2) In arch_setup_additional_pages(), make Wait for the lock in the killable mode
> and return with EINTR if the task got killed while waiting.
>
> Tong Tiangen (3):
>   riscv/vdso: Refactor asm/vdso.h
>   riscv/vdso: Move vdso data page up front
>   riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for
>     write killable
>
>  arch/riscv/include/asm/syscall.h  |  1 +
>  arch/riscv/include/asm/vdso.h     | 15 ++++-----
>  arch/riscv/kernel/syscall_table.c |  1 -
>  arch/riscv/kernel/vdso.c          | 53 +++++++++++++++++++------------
>  arch/riscv/kernel/vdso/vdso.lds.S |  3 +-
>  5 files changed, 42 insertions(+), 31 deletions(-)
>

Test-by: Liu Shixin <liushixin2@huawei.com>
Tong Tiangen Sept. 28, 2021, 2:30 a.m. UTC | #2
kindly ping.

On 2021/9/28 10:19, Liu Shixin wrote:
> On 2021/9/1 10:46, Tong Tiangen wrote:
>> v3->v2:
>>   Adapt to the latest code.
>>
>> v2->v1:
>>   Add patch "Refactor asm/vdso.h" to avoid vdso.lds syntax error if
>>   CONFIG_GENERIC_TIME_VSYSCALL=n.
>>
>> 1) Move vdso data page up front and introduce enum vvar_pages, This makes it
>> easier to introduce new feature TIME_NS.
>>
>> 2) In arch_setup_additional_pages(), make Wait for the lock in the killable mode
>> and return with EINTR if the task got killed while waiting.
>>
>> Tong Tiangen (3):
>>   riscv/vdso: Refactor asm/vdso.h
>>   riscv/vdso: Move vdso data page up front
>>   riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for
>>     write killable
>>
>>  arch/riscv/include/asm/syscall.h  |  1 +
>>  arch/riscv/include/asm/vdso.h     | 15 ++++-----
>>  arch/riscv/kernel/syscall_table.c |  1 -
>>  arch/riscv/kernel/vdso.c          | 53 +++++++++++++++++++------------
>>  arch/riscv/kernel/vdso/vdso.lds.S |  3 +-
>>  5 files changed, 42 insertions(+), 31 deletions(-)
>>
>
> Test-by: Liu Shixin <liushixin2@huawei.com>
> .
>
Kefeng Wang Sept. 29, 2021, 10:12 a.m. UTC | #3
Hi Palmer, could this patchset be merged into v5.15, it fixes the
serious problems about the basic time api.

Sergey[1] does meet same issue too. Thanks.

[1] 
https://patchwork.kernel.org/project/linux-riscv/patch/20210829094708.169037-1-cerg2010cerg2010@mail.ru/

On 2021/9/1 10:46, Tong Tiangen wrote:
> v3->v2:
>    Adapt to the latest code.
> 
> v2->v1:
>    Add patch "Refactor asm/vdso.h" to avoid vdso.lds syntax error if
>    CONFIG_GENERIC_TIME_VSYSCALL=n.
> 
> 1) Move vdso data page up front and introduce enum vvar_pages, This makes it
> easier to introduce new feature TIME_NS.
> 
> 2) In arch_setup_additional_pages(), make Wait for the lock in the killable mode
> and return with EINTR if the task got killed while waiting.

Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Palmer Dabbelt Oct. 2, 2021, 8:24 p.m. UTC | #4
On Tue, 31 Aug 2021 19:46:18 PDT (-0700), tongtiangen@huawei.com wrote:
> v3->v2:
>   Adapt to the latest code.
>
> v2->v1:
>   Add patch "Refactor asm/vdso.h" to avoid vdso.lds syntax error if
>   CONFIG_GENERIC_TIME_VSYSCALL=n.
>
> 1) Move vdso data page up front and introduce enum vvar_pages, This makes it
> easier to introduce new feature TIME_NS.
>
> 2) In arch_setup_additional_pages(), make Wait for the lock in the killable mode
> and return with EINTR if the task got killed while waiting.
>
> Tong Tiangen (3):
>   riscv/vdso: Refactor asm/vdso.h
>   riscv/vdso: Move vdso data page up front
>   riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for
>     write killable
>
>  arch/riscv/include/asm/syscall.h  |  1 +
>  arch/riscv/include/asm/vdso.h     | 15 ++++-----
>  arch/riscv/kernel/syscall_table.c |  1 -
>  arch/riscv/kernel/vdso.c          | 53 +++++++++++++++++++------------
>  arch/riscv/kernel/vdso/vdso.lds.S |  3 +-
>  5 files changed, 42 insertions(+), 31 deletions(-)

Sorry, I thought this was targeted at for-next.  I've put this on fixes 
(not sure if my last copy went out, my mail client crashed).