#3308 assigned enhancement

SPARC memcpy() lowering performance

Reported by: Alok Owned by: Needs Funding
Priority: normal Milestone: Indefinite
Component: arch/sparc Version:
Severity: normal Keywords: performance, newlib
Cc: Blocked By:
Blocking:

Description

data copying from driver space to user space using memcpy() routine on the device is affecting the overall performance. Core is SPARC. Not sure if it is using single byte copy or any other overhead associated with it...! Can you please provide me some pointers/inputs on this?
Thanks.

Change History (9)

comment:1 Changed on 02/19/18 at 10:32:27 by Alok

Version: 4.11

comment:2 Changed on 02/19/18 at 13:36:45 by Joel Sherrill

RTEMS uses Newlib for a C Library. This method is provided by Newlib. The SPARC does not have are architecture specific implementation. If you can find one that is appropriately licensed, it can be added.

comment:3 Changed on 03/16/18 at 18:32:42 by Joel Sherrill

Component: adminarch/sparc
Keywords: SoC performance newlib added

comment:4 Changed on 03/16/18 at 18:33:09 by Joel Sherrill

Keywords: POSIX-Compliance added

comment:5 Changed on 03/16/18 at 18:36:36 by Joel Sherrill

Summary: memcpy() lowering performanceSPARC memcpy() lowering performance

I asked the newlib maintainers and the code from OpenSolaris? (aka Illumos aka ???) has an acceptable license. The code for their libc is here:

https://bitbucket.org/a3217055/illumos-gate-import/src/741592a55c4c/usr/src/lib/libc/sparc/?at=default

The CDDL license text would have to be added to the newlib's COPYING.NEWLIB file as part of merging any SPARC optimized code into newlib/libc/machine/sparc.

comment:6 Changed on 03/17/18 at 10:01:47 by Sebastian Huber

I am not convinced that the referenced OpenSolaris? version is faster than the generic Newlib memcpy(). In addition, we have to consider that the SPARC/LEON processors do not support misaligned memory accesses.

Firstly, we should consider to add a memcpy() benchmark and test to

https://git.rtems.org/rtems/tree/testsuites/benchmarks

and use it to justify a new implementation.

comment:7 Changed on 03/17/18 at 10:02:26 by Sebastian Huber

Milestone: 5.1
Priority: highnormal
Type: projectenhancement
Version: 4.11

comment:8 Changed on 03/21/18 at 06:52:21 by Sebastian Huber

Milestone: 5.1Indefinite

comment:9 Changed on 01/14/20 at 21:14:42 by Gedare Bloom

Keywords: SoC POSIX-Compliance removed
Owner: set to Needs Funding
Status: newassigned
Note: See TracTickets for help on using tickets.