[GIT PULL] RISC-V Patches for the 5.14 Merge Window, Part 1

Alex Ghiti alex at ghiti.fr
Fri Jul 16 06:16:51 PDT 2021


Hi Jisheng,

Le 16/07/2021 à 14:57, Jisheng Zhang a écrit :
> On Thu, 15 Jul 2021 09:11:14 +0200
> Alex Ghiti <alex at ghiti.fr> wrote:
> 
>> Hi Palmer,
>>
>> Le 11/07/2021 à 20:45, Palmer Dabbelt a écrit :
>>> On Fri, 09 Jul 2021 12:58:10 PDT (-0700), alex at ghiti.fr wrote:
>>>>
>>>>
>>>> Le 9/07/2021 à 16:53, Palmer Dabbelt a écrit :
>>>>> The following changes since commit
>>>>> 8a4102a0cf07cc76a18f373f6b49485258cc6af4:
>>>>>
>>>>>     riscv: mm: Fix W+X mappings at boot (2021-06-01 21:15:09 -0700)
>>>>>
>>>>> are available in the Git repository at:
>>>>>
>>>>>     git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git
>>>>> tags/riscv-for-linus-5.14-mw0
>>>>>
>>>>> for you to fetch changes up to 1958e5aef5098e28b7d6e6a2972649901ebecace:
>>>>>
>>>>>     riscv: xip: Fix duplicate included asm/pgtable.h (2021-07-06
>>>>> 16:17:40 -0700)
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> RISC-V Patches for the 5.14 Merge Window, Part 1
>>>>>
>>>>> In addition to We have a handful of new features for 5.14:
>>>>>
>>>>> * Support for transparent huge pages.
>>>>> * Support for generic PCI resources mapping.
>>>>> * Support for the mem= kernel parameter.
>>>>> * Support for KFENCE.
>>>>> * A handful of fixes to avoid W+X mappings in the kernel.
>>>>> * Support for VMAP_STACK based overflow detection.
>>>>> * An optimized copy_{to,from}_user.
>>>>> ----------------------------------------------------------------
>>>>> There are some Kconfig merge conflicts.  They should be pretty
>>>>> straight-forward, but we do have a symbol out of order -- I thought I
>>>>> had a
>>>>> script to check for that, but I guess it doesn't work.  I just sent
>>>>> out a patch
>>>>> to fix it up.
>>>>>
>>>>> diff --cc arch/riscv/Kconfig
>>>>> index 3590eb76000e,469a70bd8da6..d36f3c5029fd
>>>>> --- a/arch/riscv/Kconfig
>>>>> +++ b/arch/riscv/Kconfig
>>>>> @@@ -60,12 -61,11 +61,12 @@@ config RISC
>>>>>           select GENERIC_TIME_VSYSCALL if MMU && 64BIT
>>>>>           select HANDLE_DOMAIN_IRQ
>>>>>           select HAVE_ARCH_AUDITSYSCALL
>>>>> -       select HAVE_ARCH_JUMP_LABEL
>>>>> -       select HAVE_ARCH_JUMP_LABEL_RELATIVE
>>>>> +       select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
>>>>> +       select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
>>>>>           select HAVE_ARCH_KASAN if MMU && 64BIT
>>>>>           select HAVE_ARCH_KASAN_VMALLOC if MMU && 64BIT
>>>>>    +      select HAVE_ARCH_KFENCE if MMU && 64BIT
>>>>> -       select HAVE_ARCH_KGDB
>>>>> +       select HAVE_ARCH_KGDB if !XIP_KERNEL
>>>>>           select HAVE_ARCH_KGDB_QXFER_PKT
>>>>>           select HAVE_ARCH_MMAP_RND_BITS if MMU
>>>>>           select HAVE_ARCH_SECCOMP_FILTER
>>>>> @@@ -81,11 -80,9 +82,14 @@@
>>>>>           select HAVE_GCC_PLUGINS
>>>>>           select HAVE_GENERIC_VDSO if MMU && 64BIT
>>>>>           select HAVE_IRQ_TIME_ACCOUNTING
>>>>>    +      select HAVE_KPROBES
>>>>>    +      select HAVE_KPROBES_ON_FTRACE
>>>>>    +      select HAVE_KRETPROBES
>>>>> +       select HAVE_KPROBES if !XIP_KERNEL
>>>>> +       select HAVE_KPROBES_ON_FTRACE if !XIP_KERNEL
>>>>> +       select HAVE_KRETPROBES if !XIP_KERNEL
>>>>>    +      select HAVE_MOVE_PMD
>>>>>    +      select HAVE_MOVE_PUD
>>>>>           select HAVE_PCI
>>>>>           select HAVE_PERF_EVENTS
>>>>>           select HAVE_PERF_REGS
>>>>> @@@ -108,7 -104,7 +112,8 @@@
>>>>>           select SYSCTL_EXCEPTION_TRACE
>>>>>           select THREAD_INFO_IN_TASK
>>>>>           select UACCESS_MEMCPY if !MMU
>>>>>    +      select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU
>>>>> +       select ZONE_DMA32 if 64BIT
>>>>>
>>>>>     config ARCH_MMAP_RND_BITS_MIN
>>>>>           default 18 if 64BIT
>>>>> ----------------------------------------------------------------
>>>>> Akira Tsukamoto (1):
>>>>>         riscv: __asm_copy_to-from_user: Optimize unaligned memory
>>>>> access and pipeline stall
>>>>>
>>>>> Alexandre Ghiti (6):
>>>>>         riscv: Remove CONFIG_PHYS_RAM_BASE_FIXED
>>>>>         riscv: Simplify xip and !xip kernel address conversion macros
>>>>
>>>> @Palmer: As said in the thread of this patchset multiple times, those 2
>>>> patches should not be merged as it assumes that the base DRAM address is
>>>> always 0x8000_0000 for all rv64 platforms: I don't think it is true,
>>>> is it?
>>>
>>> Sorry, I remember saying something about that but must have missed the
>>> resposeses.  Do you have a pointer to the discussion?  If this break
>>> stuff I'm happy to revert it, which can be done post-rc1.  I just need
>>> to see what's actually broken first, because IIUC this was de-facto how
>>> things worked already.
>>>    
>>
>> Really sorry about my response delay.
>>
>> The thing is that removing CONFIG_PHYS_RAM_BASE_FIXED defines
>> CONFIG_PHYS_RAM_BASE to 0x8000_0000 for all rv64 chips, but I believe
>> this is implementation specific: for now, this base address was passed
>> into the device tree, and here it makes this value static.
>>
>> This issue with my patch was originally pointed by Jisheng, Geert and Arnd.
>>
>> If this is not a problem and you have a pointer to a document that
>> specifies this, I would be very happy to have the link :)
>>
>> Thanks and again sorry about my response delay,
>>
> 
> Hi Alex,
> 
> Since the PR has been merged into linux-5.14-rc1, directly reverting seems
> not a good idea. IMHO, it's better to send patch(es) against current 5.14-rc1
> tree. what do you think?
> 
> Thanks

I have a patchset that fixes this problem cleanly, I have to check but I 
think it depends on an another larger patchset that cleans the code a 
lot, I'll see if I can extract only this part and submit it as a fix.

I take a look and get back ASAP!

Thanks,

Alex

> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
> 



More information about the linux-riscv mailing list