Closed Bug 523175 Opened 12 years ago Closed 12 years ago

IPDL: Frontend support for shmem

Categories

(Core :: IPC, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: cjones, Assigned: cjones)

References

Details

Attachments

(1 file, 6 obsolete files)

Add a shmem<T> type to IPDL.
Attached patch IPDL support for shmem (obsolete) — Splinter Review
Ended up being significantly more complicated than I anticipated because IPDL actors need HANDLEs on Windows in order to share mappings.
Attachment #407480 - Flags: review?(bent.mozilla)
Attachment #407480 - Flags: review?(bent.mozilla)
Comment on attachment 407480 [details] [diff] [review]
IPDL support for shmem

Sorry for the wasted fly-over, this needs more work.  See https://wiki.mozilla.org/IPDL/Proposal:Shmem_access_control#drawWindow_Example for a start.
Attached patch backup, with bug 523761 excised (obsolete) — Splinter Review
Attachment #407480 - Attachment is obsolete: true
Comment on attachment 407704 [details] [diff] [review]
backup, with bug 523761 excised

Oops, crud, changed the wrong bug.
Attachment #407704 - Flags: review?(joe) → review?(bent.mozilla)
I tried extacting the above patch in the electrolysis branch (at rev 34406:6894db5c84a1), and I ran into merge problems:  

~> patch -p1 <~/Download/shmem407704.patch
patching file ipc/glue/ProtocolUtils.h
Hunk #1 FAILED at 39.
Hunk #2 FAILED at 75.
2 out of 2 hunks FAILED -- saving rejects to file ipc/glue/ProtocolUtils.h.rej
patching file ipc/ipdl/ipdl/builtin.py
patching file ipc/ipdl/ipdl/cxx/ast.py
patching file ipc/ipdl/ipdl/cxx/cgen.py
patching file ipc/ipdl/ipdl/lower.py
Hunk #8 FAILED at 1128.
Hunk #9 succeeded at 1375 (offset -8 lines).
Hunk #11 succeeded at 2324 (offset -15 lines).
Hunk #12 FAILED at 2406.
Hunk #13 FAILED at 2522.
3 out of 13 hunks FAILED -- saving rejects to file ipc/ipdl/ipdl/lower.py.rej
patching file ipc/ipdl/ipdl/parser.py
patching file ipc/ipdl/ipdl/type.py
patching file ipc/ipdl/test/cxx/Makefile.in
patching file ipc/ipdl/test/cxx/PTestShmem.ipdl
patching file ipc/ipdl/test/cxx/TestShmem.cpp
patching file ipc/ipdl/test/cxx/TestShmem.h
patching file ipc/ipdl/test/cxx/ipdl.mk
patching file ipc/ipdl/test/ipdl/error/shmem.ipdl
patching file ipc/ipdl/test/ipdl/ok/shmem.ipdl


Is there a particular rev I should patch?  Is it dependent on any other patch?
Rohit, this patch applies cleanly for me ... are you sure your e10s repo is updated to the latest version?  (Try hg pull -u).
Attachment #407704 - Attachment is obsolete: true
Attachment #408852 - Flags: review?(bent.mozilla)
Attachment #407704 - Flags: review?(bent.mozilla)
Attached patch bitrotted already (obsolete) — Splinter Review
Attachment #408852 - Attachment is obsolete: true
Attachment #409136 - Flags: review?(bent.mozilla)
Attachment #408852 - Flags: review?(bent.mozilla)
Comment on attachment 409136 [details] [diff] [review]
bitrotted already

>+        # bool AllocShmem(size_t size, Shmem* outmem):
>+        #   nsAutoPtr<shmem_t> shmem(Shmem::Alloc(size));

The code is correct but the comment neglects the autoptr.forget() that you need to make this work :)
Attachment #409136 - Flags: review?(bent.mozilla) → review+
Tried applying attachment 407704 [details] [diff] [review] against the latest rev (34549:46ebd7e439dc), but that still fails exactly as above.  However, I just tried applying 409136, and that seems to work just fine.  :)
Attached patch un-bitrotted (obsolete) — Splinter Review
Attachment #411831 - Attachment is obsolete: true
Attached patch updatedSplinter Review
Attachment #412886 - Attachment is obsolete: true
Pushed http://hg.mozilla.org/projects/electrolysis/rev/82549dbf71d8 to reduce
merge conflicts in later patches.  Have a local followup patch, will push that
when shmem is ready to land.
Pushed http://hg.mozilla.org/projects/electrolysis/rev/dc4201e0d9e5
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.