#3308 new enhancement

SPARC memcpy() lowering performance

Reported by: Alok Owned by:
Priority: normal Milestone: Indefinite
Component: arch/sparc Version:
Severity: normal Keywords: SoC, POSIX-Compliance, 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 (8)

comment:1 Changed on Feb 19, 2018 at 10:32:27 AM by Alok

Version: 4.11

comment:2 Changed on Feb 19, 2018 at 1:36:45 PM 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 Mar 16, 2018 at 6:32:42 PM by Joel Sherrill

Component: adminarch/sparc
Keywords: SoC performance newlib added

comment:4 Changed on Mar 16, 2018 at 6:33:09 PM by Joel Sherrill

Keywords: POSIX-Compliance added

comment:5 Changed on Mar 16, 2018 at 6:36:36 PM 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 Mar 17, 2018 at 10:01:47 AM 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 Mar 17, 2018 at 10:02:26 AM by Sebastian Huber

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

comment:8 Changed on Mar 21, 2018 at 6:52:21 AM by Sebastian Huber

Milestone: 5.1Indefinite
Note: See TracTickets for help on using tickets.