Page MenuHomeFreeBSD

Linux ARM 5/16
AbandonedPublic

Authored by soutade_gmail.com on Jun 8 2016, 2:46 PM.
Referenced Files
F157077008: D6762.id18043.diff
Mon, May 18, 7:31 AM
F157065309: D6762.id.diff
Mon, May 18, 5:57 AM
F157065279: D6762.id.diff
Mon, May 18, 5:57 AM
F157051392: D6762.id17409.diff
Mon, May 18, 3:51 AM
Unknown Object (File)
Fri, May 15, 4:41 AM
Unknown Object (File)
Mon, Apr 27, 8:39 AM
Unknown Object (File)
Sat, Apr 25, 4:57 AM
Unknown Object (File)
Thu, Apr 23, 9:23 AM

Details

Summary

Linux ARM : Add linux_support.s that contains futex implementation

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

soutade_gmail.com retitled this revision from to Linux ARM 5/16.
soutade_gmail.com updated this object.
soutade_gmail.com edited the test plan for this revision. (Show Details)
soutade_gmail.com set the repository for this revision to rS FreeBSD src repository - subversion.

It looks like these should all be atomic operations. If so the flow should be:

1: ldrex old, [addr]
   operation
   strex res, new, [addr]
   cmp res, #0
   bne 1b

It looks like these should all be atomic operations. If so the flow should be:

1: ldrex old, [addr]
   operation
   strex res, new, [addr]
   cmp res, #0
   bne 1b

Don't understand what is exactly the problem you point to.

sys/arm/linux/linux_support.s
83

There is a ldrex here, but no strex. These should be in pairs with the needed operation between the two. See sys/arm/include/atomic-v6.h as an example.

Rework all functions with right use of ldrex and strex