<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in vgetrandom.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>4e3fa1ae - powerpc/vdso: Implement __arch_get_vdso_rng_data()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/powerpc/kernel/vdso/vgetrandom.c#4e3fa1ae</link>
        <description>powerpc/vdso: Implement __arch_get_vdso_rng_data()VDSO time functions do not call any other function, so they don&apos;tneed to save/restore LR. However, retrieving the address of VDSO datapage requires using LR hence saving then restoring it, which can beheavy on some CPUs. On the other hand, VDSO functions on powerpc arenot standard functions and require a wrapper function to call C VDSOfunctions. And that wrapper has to save and restore LR in order tocall the C VDSO function, so retrieving VDSO data page address in thatwrapper doesn&apos;t require additional save/restore of LR.For random VDSO functions it is a bit different. Because the functioncalls __arch_chacha20_blocks_nostack(), it saves and restores LR.Retrieving VDSO data page address can then be done there withoutadditional save/restore of LR.So lets implement __arch_get_vdso_rng_data() and simplify the wrapper.It starts paving the way for the day powerpc will implement a morestandard ABI for VDSO functions.Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;Link: https://patch.msgid.link/a1a9bd0df508f1b5c04684b7366940577dfc6262.1727858295.git.christophe.leroy@csgroup.eu

            List of files:
            /linux-6.15/arch/powerpc/kernel/vdso/vgetrandom.c</description>
        <pubDate>Wed, 02 Oct 2024 08:39:29 +0000</pubDate>
        <dc:creator>Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;</dc:creator>
    </item>
<item>
        <title>53cee505 - powerpc/vdso: Wire up getrandom() vDSO implementation on VDSO32</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/powerpc/kernel/vdso/vgetrandom.c#53cee505</link>
        <description>powerpc/vdso: Wire up getrandom() vDSO implementation on VDSO32To be consistent with other VDSO functions, the function is called__kernel_getrandom()__arch_chacha20_blocks_nostack() fonction is implemented basicallywith 32 bits operations. It performs 4 QUARTERROUND operations inparallele. There are enough registers to avoid using the stack:On input:	r3: output bytes	r4: 32-byte key input	r5: 8-byte counter input/output	r6: number of 64-byte blocks to write to outputDuring operation:	stack: pointer to counter (r5) and non-volatile registers (r14-131)	r0: counter of blocks (initialised with r6)	r4: Value &apos;4&apos; after key has been read, used for indexing	r5-r12: key	r14-r15: block counter	r16-r31: chacha stateAt the end:	r0, r6-r12: Zeroised	r5, r14-r31: RestoredPerformance on powerpc 885 (using kernel selftest):	~# ./vdso_test_getrandom bench-single	   vdso: 25000000 times in 62.938002291 seconds	   libc: 25000000 times in 535.581916866 seconds	syscall: 25000000 times in 531.525042806 secondsPerformance on powerpc 8321 (using kernel selftest):	~# ./vdso_test_getrandom bench-single	   vdso: 25000000 times in 16.899318858 seconds	   libc: 25000000 times in 131.050596522 seconds	syscall: 25000000 times in 129.794790389 secondsThis first patch adds support for VDSO32. As selftests cannot easilybe generated only for VDSO32, and because the following patch bringssupport for VDSO64 anyway, this patch opts out all code in__arch_chacha20_blocks_nostack() so that vdso_test_chacha will notfail to compile and will not crash on PPC64/PPC64LE, allthough theselftest itself will fail.Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;Acked-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;

            List of files:
            /linux-6.15/arch/powerpc/kernel/vdso/vgetrandom.c</description>
        <pubDate>Mon, 02 Sep 2024 19:17:21 +0000</pubDate>
        <dc:creator>Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;</dc:creator>
    </item>
</channel>
</rss>
