<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/arch/csky/abiv2, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/arch/csky/abiv2?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/arch/csky/abiv2?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2022-04-18T13:23:55Z</updated>
<entry>
<title>csky: Add C based string functions</title>
<updated>2022-04-18T13:23:55Z</updated>
<author>
<name>Matteo Croce</name>
<email>mcroce@microsoft.com</email>
</author>
<published>2022-03-30T12:07:14Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=e4df2d5e852a7d24df3672ae9951eb79e179be08'/>
<id>urn:sha1:e4df2d5e852a7d24df3672ae9951eb79e179be08</id>
<content type='text'>
Try to access RAM with the largest bit width possible, but without
doing unaligned accesses.

A further improvement could be to use multiple read and writes as the
assembly version was trying to do.

Tested on a BeagleV Starlight with a SiFive U74 core, where the
improvement is noticeable.

Signed-off-by: Matteo Croce &lt;mcroce@microsoft.com&gt;
Co-developed-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
</entry>
<entry>
<title>csky: Fixup compile error</title>
<updated>2021-02-27T14:04:14Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-02-27T14:00:35Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=6607aa6f6b68fc9b5955755f1b1be125cf2a9d03'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: Add VDSO with GENERIC_GETTIMEOFDAY, GENERIC_TIME_VSYSCALL, HAVE_GENERIC_VDSO</title>
<updated>2021-02-27T08:35:09Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-17T15:38:18Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=0d3b051adbb72ed81956447d0d1e54d5943ee6f5'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: Fixup swapon</title>
<updated>2021-02-27T08:32:54Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-13T07:28:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=af94002bda1d94f667706b6369ca1e718f32a072'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: pgtable.h: Coding convention</title>
<updated>2021-02-27T08:22:42Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-11T15:02:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=a8fac05acf38bdd1ab5aaf86dba7d0b2b0c05dd6'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: Reconstruct VDSO framework</title>
<updated>2021-01-12T01:52:41Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2021-01-04T03:37:07Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=87f3248cdb9aeac35129cb4337ce541a945cb35c'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: Fixup update_mmu_cache called with user io mapping</title>
<updated>2021-01-12T01:52:41Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-12-25T06:37:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=3e455cf5f30f87bc871d5fe891841a2cefb29234'/>
<id>urn:sha1:3e455cf5f30f87bc871d5fe891841a2cefb29234</id>
<content type='text'>
The function update_mmu_cache could be called by user-io mapping.
There is no space of struct page in mem_map for the pte. Just
ignore the user-io mmaping in update_mmu_cache.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
</entry>
<entry>
<title>csky: Fix TLB maintenance synchronization problem</title>
<updated>2021-01-12T01:52:41Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-12-24T05:59:57Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=3b756ccddb8a75563900cd603c83160b43f3d691'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>csky: Add memory layout 2.5G(user):1.5G(kernel)</title>
<updated>2021-01-12T01:52:40Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-09-07T06:20:18Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=0c8a32eed1625a65798286fb73fea8710a908545'/>
<id>urn:sha1:0c8a32eed1625a65798286fb73fea8710a908545</id>
<content type='text'>
There are two ways for translating va to pa for csky:
 - Use TLB(Translate Lookup Buffer) and PTW (Page Table Walk)
 - Use SSEG0/1 (Simple Segment Mapping)

We use tlb mapping 0-2G and 3G-4G virtual address area and SSEG0/1
are for 2G-2.5G and 2.5G-3G translation. We could disable SSEG0
to use 2G-2.5G as TLB user mapping.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
</content>
</entry>
<entry>
<title>csky: Fixup kprobes handler couldn't change pc</title>
<updated>2020-07-31T01:51:57Z</updated>
<author>
<name>Guo Ren</name>
<email>guoren@linux.alibaba.com</email>
</author>
<published>2020-07-28T16:25:23Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=a5447fb9b32eb33b2f0f09a63e4852b46af5b056'/>
<id>urn:sha1:a5447fb9b32eb33b2f0f09a63e4852b46af5b056</id>
<content type='text'>
The "Changing Execution Path" section in the Documentation/kprobes.txt
said:

Since kprobes can probe into a running kernel code, it can change the
register set, including instruction pointer.

Signed-off-by: Guo Ren &lt;guoren@linux.alibaba.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
</feed>
