Closed
Bug 125123
Opened 24 years ago
Closed 23 years ago
New semaphore implementation for OS/2
Categories
(NSPR :: NSPR, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: mkaply, Assigned: netscape)
Details
(Keywords: perf)
Attachments
(2 files)
|
5.75 KB,
patch
|
Details | Diff | Splinter Review | |
|
12.35 KB,
text/plain
|
wtc
:
review+
|
Details |
In our investigation of performance issues on OS/2, we found that one of the
biggest impacts to performance was PR_Locking.
What we found is that the OS/2 Mutex semaphore APIs are just too slow.
This bug introduces a new semaphore called a fast RAM semaphore which emulates
a mutex semaphore using event semaphores.
With this change on 0.9.8, OS/2 actually runs Javascript faster than Windows.
| Reporter | ||
Comment 1•24 years ago
|
||
| Reporter | ||
Comment 2•24 years ago
|
||
New version of OS2VACPP.ASM
This file changed a great deal, so a new version is needed.
Comment 3•24 years ago
|
||
Comment on attachment 69137 [details] [diff] [review]
Changes to _os2.h and os2cv.c
>Index: pr/include/md/_os2.h
>@@ -162,7 +189,11 @@
> };
>
> struct _MDLock {
>- HMTX mutex; /* this is recursive on NT */
>+#ifdef USE_RAMSEM
>+ CRITICAL_SECTION mutex; /* this is recursive on NT */
>+#else
>+ HMTX mutex; /* this is recursive on NT */
>+#endif
Should we edit this comment? Maybe change "NT" to "OS/2"?
Comment 4•24 years ago
|
||
Comment on attachment 69139 [details]
New OS2VACPP.Asm
r=wtc.
Attachment #69139 -
Flags: review+
Comment 6•24 years ago
|
||
Are these fastram semaphores safe for use on multi-processor (SMP) systems ? I
have heard conflicting things about them. I do see the LOCK prefix in the code
but I'm still not confident.
The other thing if this code is ever to be ported to Windows is that the ASM
code is written to the _Optlink convention that is unavailable in non-IBM
compilers, so the parameter parsing will have to be rewritten in the ASM code.
| Assignee | ||
Comment 7•23 years ago
|
||
Patch & new os2vacpp.asm have been checked into the tip & client branch.
Checking in pr/include/md/_os2.h;
/cvsroot/mozilla/nsprpub/pr/include/md/_os2.h,v <-- _os2.h
new revision: 3.25; previous revision: 3.24
done
Checking in pr/src/md/os2/os2cv.c;
/cvsroot/mozilla/nsprpub/pr/src/md/os2/os2cv.c,v <-- os2cv.c
new revision: 3.11; previous revision: 3.10
done
Checking in pr/src/md/os2/os2vacpp.asm;
/cvsroot/mozilla/nsprpub/pr/src/md/os2/os2vacpp.asm,v <-- os2vacpp.asm
new revision: 1.2; previous revision: 1.1
done
Checking in pr/include/md/_os2.h;
/cvsroot/mozilla/nsprpub/pr/include/md/_os2.h,v <-- _os2.h
new revision: 3.21.2.3; previous revision: 3.21.2.2
done
Checking in pr/src/md/os2/os2cv.c;
/cvsroot/mozilla/nsprpub/pr/src/md/os2/os2cv.c,v <-- os2cv.c
new revision: 3.8.2.3; previous revision: 3.8.2.2
done
Checking in pr/src/md/os2/os2vacpp.asm;
/cvsroot/mozilla/nsprpub/pr/src/md/os2/os2vacpp.asm,v <-- os2vacpp.asm
new revision: 1.1.4.1; previous revision: 1.1
done
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•