<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/arch/csky/include, branch v5.12.5</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>csky: change a Kconfig symbol name to fix e1000 build error</title>
<updated>2021-04-16T23:10:36+00:00</updated>
<author>
<name>Randy Dunlap</name>
<email>rdunlap@infradead.org</email>
</author>
<published>2021-04-16T22:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=d199161653d612b8fb96ac51bfd5b2d2782ecef3'/>
<id>d199161653d612b8fb96ac51bfd5b2d2782ecef3</id>
<content type='text'>
e1000's #define of CONFIG_RAM_BASE conflicts with a Kconfig symbol in
arch/csky/Kconfig.

The symbol in e1000 has been around longer, so change arch/csky/ to use
DRAM_BASE instead of RAM_BASE to remove the conflict.  (although e1000
is also a 2-line change)

Link: https://lkml.kernel.org/r/20210411055335.7111-1-rdunlap@infradead.org
Signed-off-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Acked-by: Guo Ren &lt;guoren@kernel.org&gt;
Cc: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
e1000's #define of CONFIG_RAM_BASE conflicts with a Kconfig symbol in
arch/csky/Kconfig.

The symbol in e1000 has been around longer, so change arch/csky/ to use
DRAM_BASE instead of RAM_BASE to remove the conflict.  (although e1000
is also a 2-line change)

Link: https://lkml.kernel.org/r/20210411055335.7111-1-rdunlap@infradead.org
Signed-off-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Acked-by: Guo Ren &lt;guoren@kernel.org&gt;
Cc: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Fixup compile error</title>
<updated>2021-02-27T14:04:14+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-02-27T14:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=6607aa6f6b68fc9b5955755f1b1be125cf2a9d03'/>
<id>6607aa6f6b68fc9b5955755f1b1be125cf2a9d03</id>
<content type='text'>
: error: C++ style comments are not allowed in ISO C90
 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
 ^
error: (this will be reported only once per input file)

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
: error: C++ style comments are not allowed in ISO C90
 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
 ^
error: (this will be reported only once per input file)

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Add VDSO with GENERIC_GETTIMEOFDAY, GENERIC_TIME_VSYSCALL, HAVE_GENERIC_VDSO</title>
<updated>2021-02-27T08:35:09+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-17T15:38:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=0d3b051adbb72ed81956447d0d1e54d5943ee6f5'/>
<id>0d3b051adbb72ed81956447d0d1e54d5943ee6f5</id>
<content type='text'>
It could help to reduce the latency of the time-related functions
in user space.

We have referenced arm's and riscv's implementation for the patch.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Vincent Chen &lt;vincent.chen@sifive.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It could help to reduce the latency of the time-related functions
in user space.

We have referenced arm's and riscv's implementation for the patch.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Vincent Chen &lt;vincent.chen@sifive.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Fixup swapon</title>
<updated>2021-02-27T08:32:54+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-13T07:28:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=af94002bda1d94f667706b6369ca1e718f32a072'/>
<id>af94002bda1d94f667706b6369ca1e718f32a072</id>
<content type='text'>
Current csky's swappon is broken by wrong swap PTE entry format.
Now redesign the new format for abiv1 &amp; abiv2 and make swappon +
zram work properly on csky machines.

C-SKY PTE has VALID, DIRTY to emulate PRESENT, READ, WRITE, EXEC
attributes. GLOBAL bit is shared by two pages in the same tlb
entry. So we need to keep GLOBAL, VALID, PRESENT zero in swp_pte.

To distinguish PAGE_NONE and swp_pte, we need to use an additional
bit (abiv1 is _PAGE_READ, abiv2 is _PAGE_WRITE).

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Current csky's swappon is broken by wrong swap PTE entry format.
Now redesign the new format for abiv1 &amp; abiv2 and make swappon +
zram work properly on csky machines.

C-SKY PTE has VALID, DIRTY to emulate PRESENT, READ, WRITE, EXEC
attributes. GLOBAL bit is shared by two pages in the same tlb
entry. So we need to keep GLOBAL, VALID, PRESENT zero in swp_pte.

To distinguish PAGE_NONE and swp_pte, we need to use an additional
bit (abiv1 is _PAGE_READ, abiv2 is _PAGE_WRITE).

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: pgtable.h: Coding convention</title>
<updated>2021-02-27T08:22:42+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-11T15:02:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a8fac05acf38bdd1ab5aaf86dba7d0b2b0c05dd6'/>
<id>a8fac05acf38bdd1ab5aaf86dba7d0b2b0c05dd6</id>
<content type='text'>
C-SKY page table attributes only have 'Dirty' and 'Valid' to
emulate 'PRESENT, READ, WRITE, EXEC, DIRTY, ACCESSED'.

This patch cleanup unnecessary definition.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
C-SKY page table attributes only have 'Dirty' and 'Valid' to
emulate 'PRESENT, READ, WRITE, EXEC, DIRTY, ACCESSED'.

This patch cleanup unnecessary definition.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Fixup _PAGE_ACCESSED for default pgprot</title>
<updated>2021-01-12T03:08:25+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-11T12:16:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=5e144c42ee683a771b96239f76d44243a4632094'/>
<id>5e144c42ee683a771b96239f76d44243a4632094</id>
<content type='text'>
When the system memory is exhausted, linux will trigger kswapd to
shrink memory page cache. We found the csky's .text file mapping
pages would be reclaimed earlier than arm's elf. Because csky
doesn't give _PAGE_ACCESSED for default pgprot and in zap_pte_range

if (pte_young(ptent) &amp;&amp;
    likely(!(vma-&gt;vm_flags &amp; VM_SEQ_READ)))
        mark_page_accessed(page);

mark_page_accessed will put the pages into active lru list.

[    3.652722] delete busybox page from inactive file list
Call Trace:
[&lt;9012a376&gt;] dump_stack+0xe/0x24
[&lt;9012a370&gt;] dump_stack+0x8/0x24
[&lt;9005b780&gt;] activate_page+0x2b4/0x2d4
[&lt;90132502&gt;] vsnprintf+0x2c6/0x374
[&lt;9005b880&gt;] mark_page_accessed+0xe0/0x150
[&lt;9006903e&gt;] unmap_page_range+0x166/0x33c
[&lt;90021844&gt;] get_signal+0x98/0x3b4
[&lt;90069232&gt;] unmap_single_vma+0x1e/0x24
[&lt;90069462&gt;] unmap_vmas+0x26/0x40
[&lt;9006d3d8&gt;] exit_mmap+0x60/0xbc
[&lt;9006a140&gt;] handle_mm_fault+0x700/0xcec
[&lt;900426b2&gt;] ktime_get_with_offset+0x86/0x130
[&lt;90017566&gt;] mmput+0x2e/0x90
[&lt;9001a30a&gt;] do_exit+0x13e/0x6f0
[&lt;90015448&gt;] page_fault_end+0x14/0x74
[&lt;9001b4bc&gt;] SyS_exit_group+0x0/0xc
[&lt;9001b47c&gt;] do_group_exit+0x2c/0x6c
[&lt;9001b4c8&gt;] __wake_up_parent+0x0/0x20
[&lt;9001399e&gt;] csky_systemcall+0x6e/0x72

csky will throw the pages at first and keep them in active lru
list later after real accessed, but arm would keep them in active
lru list at the beginning.

The following are statistics of different architecture styles:

Default _PAGE_ACCESSED: alpha, arm, arm64, ia64, m68k, microblaze,
			openrisc, powerpc, riscv, sh, um, x86,
			xtensa
Not def _PAGE_ACCESSED: arc, c6x, h8300, hexgon, mips, s390, nds32,
			nios2, parisc, sparc

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Co-developed-by: Xu Kai &lt;xukai@nationalchip.com&gt;
Signed-off-by: Xu Kai &lt;xukai@nationalchip.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the system memory is exhausted, linux will trigger kswapd to
shrink memory page cache. We found the csky's .text file mapping
pages would be reclaimed earlier than arm's elf. Because csky
doesn't give _PAGE_ACCESSED for default pgprot and in zap_pte_range

if (pte_young(ptent) &amp;&amp;
    likely(!(vma-&gt;vm_flags &amp; VM_SEQ_READ)))
        mark_page_accessed(page);

mark_page_accessed will put the pages into active lru list.

[    3.652722] delete busybox page from inactive file list
Call Trace:
[&lt;9012a376&gt;] dump_stack+0xe/0x24
[&lt;9012a370&gt;] dump_stack+0x8/0x24
[&lt;9005b780&gt;] activate_page+0x2b4/0x2d4
[&lt;90132502&gt;] vsnprintf+0x2c6/0x374
[&lt;9005b880&gt;] mark_page_accessed+0xe0/0x150
[&lt;9006903e&gt;] unmap_page_range+0x166/0x33c
[&lt;90021844&gt;] get_signal+0x98/0x3b4
[&lt;90069232&gt;] unmap_single_vma+0x1e/0x24
[&lt;90069462&gt;] unmap_vmas+0x26/0x40
[&lt;9006d3d8&gt;] exit_mmap+0x60/0xbc
[&lt;9006a140&gt;] handle_mm_fault+0x700/0xcec
[&lt;900426b2&gt;] ktime_get_with_offset+0x86/0x130
[&lt;90017566&gt;] mmput+0x2e/0x90
[&lt;9001a30a&gt;] do_exit+0x13e/0x6f0
[&lt;90015448&gt;] page_fault_end+0x14/0x74
[&lt;9001b4bc&gt;] SyS_exit_group+0x0/0xc
[&lt;9001b47c&gt;] do_group_exit+0x2c/0x6c
[&lt;9001b4c8&gt;] __wake_up_parent+0x0/0x20
[&lt;9001399e&gt;] csky_systemcall+0x6e/0x72

csky will throw the pages at first and keep them in active lru
list later after real accessed, but arm would keep them in active
lru list at the beginning.

The following are statistics of different architecture styles:

Default _PAGE_ACCESSED: alpha, arm, arm64, ia64, m68k, microblaze,
			openrisc, powerpc, riscv, sh, um, x86,
			xtensa
Not def _PAGE_ACCESSED: arc, c6x, h8300, hexgon, mips, s390, nds32,
			nios2, parisc, sparc

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Co-developed-by: Xu Kai &lt;xukai@nationalchip.com&gt;
Signed-off-by: Xu Kai &lt;xukai@nationalchip.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: remove unused including &lt;linux/version.h&gt;</title>
<updated>2021-01-12T01:52:41+00:00</updated>
<author>
<name>Tian Tao</name>
<email>tiantao6@hisilicon.com</email>
</author>
<published>2020-12-30T08:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=f1f61c971aa639f37eb2ddd917a5e3effc3fdcd3'/>
<id>f1f61c971aa639f37eb2ddd917a5e3effc3fdcd3</id>
<content type='text'>
Remove including &lt;linux/version.h&gt; that don't need it.

Signed-off-by: Tian Tao &lt;tiantao6@hisilicon.com&gt;
Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove including &lt;linux/version.h&gt; that don't need it.

Signed-off-by: Tian Tao &lt;tiantao6@hisilicon.com&gt;
Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Reconstruct VDSO framework</title>
<updated>2021-01-12T01:52:41+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-04T03:37:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=87f3248cdb9aeac35129cb4337ce541a945cb35c'/>
<id>87f3248cdb9aeac35129cb4337ce541a945cb35c</id>
<content type='text'>
Reconstruct vdso framework to support future vsyscall,
vgettimeofday features. These are very important features to reduce
system calls into the kernel for performance improvement.

The patch is reference RISC-V's

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Palmer Dabbelt &lt;palmerdabbelt@google.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reconstruct vdso framework to support future vsyscall,
vgettimeofday features. These are very important features to reduce
system calls into the kernel for performance improvement.

The patch is reference RISC-V's

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Palmer Dabbelt &lt;palmerdabbelt@google.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Sync riscv mm/fault.c for easy maintenance</title>
<updated>2021-01-12T01:52:41+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-12-29T05:50:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=bd0bf90e30c4b886ec10c12498cd56d8e41aaaf3'/>
<id>bd0bf90e30c4b886ec10c12498cd56d8e41aaaf3</id>
<content type='text'>
Sync arch/riscv/mm/fault.c into arch/csky for easy maintenance.
Here are the patches related to the modification:

cac4d1d "riscv/mm/fault: Move no context handling to no_context()"
ac416a7 "riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()"
6c11ffb "riscv/mm/fault: Move fault error handling to mm_fault_error()"
afb8c6f "riscv/mm/fault: Move access error check to function"
bda281d "riscv/mm/fault: Simplify fault error handling"
a51271d "riscv/mm/fault: Move bad area handling to bad_area()"

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Palmer Dabbelt &lt;palmerdabbelt@google.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sync arch/riscv/mm/fault.c into arch/csky for easy maintenance.
Here are the patches related to the modification:

cac4d1d "riscv/mm/fault: Move no context handling to no_context()"
ac416a7 "riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()"
6c11ffb "riscv/mm/fault: Move fault error handling to mm_fault_error()"
afb8c6f "riscv/mm/fault: Move access error check to function"
bda281d "riscv/mm/fault: Simplify fault error handling"
a51271d "riscv/mm/fault: Move bad area handling to bad_area()"

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Pekka Enberg &lt;penberg@kernel.org&gt;
Cc: Palmer Dabbelt &lt;palmerdabbelt@google.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>csky: Fix TLB maintenance synchronization problem</title>
<updated>2021-01-12T01:52:41+00:00</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-12-24T05:59:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=3b756ccddb8a75563900cd603c83160b43f3d691'/>
<id>3b756ccddb8a75563900cd603c83160b43f3d691</id>
<content type='text'>
TLB invalidate didn't contain a barrier operation in csky cpu and
we need to prevent previous PTW response after TLB invalidation
instruction. Of cause, the ASID changing also needs to take care
of the issue.

CPU0                    CPU1
===============         ===============
set_pte
sync_is()        -&gt;     See the previous set_pte for all harts
tlbi.vas         -&gt;     Invalidate all harts TLB entry &amp; flush pipeline

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TLB invalidate didn't contain a barrier operation in csky cpu and
we need to prevent previous PTW response after TLB invalidation
instruction. Of cause, the ASID changing also needs to take care
of the issue.

CPU0                    CPU1
===============         ===============
set_pte
sync_is()        -&gt;     See the previous set_pte for all harts
tlbi.vas         -&gt;     Invalidate all harts TLB entry &amp; flush pipeline

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
