Closed
Bug 909922
Opened 11 years ago
Closed 11 years ago
don't pragma pack ipc message headers
Categories
(Core :: IPC, defect)
Core
IPC
Tracking
()
RESOLVED
FIXED
mozilla26
People
(Reporter: froydnj, Unassigned)
Details
Attachments
(1 file)
1.55 KB,
patch
|
bent.mozilla
:
review+
|
Details | Diff | Splinter Review |
The IPC::Message header is surrounded by:
#pragma pack(push,2)
...
#pragma pack(pop)
which (at least on GCC) specifies that structure members defined lexically
within the pragma should be two-byte aligned, rather than the ABI's declared
alignment.
But for IPC::Message::Header, this is a silly requirement, as everything there
is four bytes; there's no reason to pack the members any tighter. And packing
tighter means that strict alignment platforms (like ARM) need to use more
complex code for something as simple as storing to one of the members--like
when we set a message's request ID, over and over and over. The current code
for setting a message's request ID on ARM looks like:
264: 6863 ldr r3, [r4, #4]
266: 696a ldr r2, [r5, #20]
268: 809a strh r2, [r3, #4]
26a: 0c12 lsrs r2, r2, #16
26c: 80da strh r2, [r3, #6]
With the patch, it looks like:
264: 6863 ldr r3, [r4, #4]
266: 696a ldr r2, [r5, #20]
268: 605a str r2, [r3, #4]
Only four bytes, but multiplied over several hundred set_routing_id calls, it
saves some code size and runtime. I verified that the header's length doesn't
change by looking at debug information.
Reporter | ||
Comment 1•11 years ago
|
||
See comment 0 or the commit message for a description of the problem.
Attachment #796244 -
Flags: review?(bent.mozilla)
Comment on attachment 796244 [details] [diff] [review]
don't pragma pack ipc message headers
Review of attachment 796244 [details] [diff] [review]:
-----------------------------------------------------------------
Awesome, thanks!
Attachment #796244 -
Flags: review?(bent.mozilla) → review+
Reporter | ||
Comment 3•11 years ago
|
||
Flags: in-testsuite-
Comment 4•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
You need to log in
before you can comment on or make changes to this bug.
Description
•