Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Issue 216673006: Revert 260177 "By keeping track of transfer buffer usage (both s..." (Closed)

Created:
6 years, 9 months ago by Charlie Reis
Modified:
6 years, 9 months ago
Reviewers:
jadahl
CC:
chromium-reviews
Visibility:
Public.

Description

Revert 260177 "By keeping track of transfer buffer usage (both s..." Caused a heap-use-after-free in GLES2DecoderManualInitTest.AsyncPixelTransfers on Linux ASan+LSan Tests (1): http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%2BLSan%20Tests%20%281%29/builds/863 > By keeping track of transfer buffer usage (both sync and async), it is > possible to reuse an existing transfer buffer earlier than it is today. > > For synchronous uploads, this is done by inserting tokens marking a > buffer's last usage. If such a token has passed, the buffer can be > reused. > > For asynchronous uploads, this is done by adding an internal async > upload token to the GLES2Implementation and GLES2CmdDecoderImpl that > enumerates all asynchronous uploads. When an upload is completed, the > token is synchronized with the client which then can free the memory > associated with the async token. > > The fenced allocator and mapped memory manager gets a callback that is > used to allow fenced allocator to make the user, in this case > GLES2Implementation, poll the current async upload token and free any > associated memory. > > BUG=328808 > > Review URL: https://codereview.chromium.org/116863003 TBR=jadahl@opera.com Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260193

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+86 lines, -924 lines) Patch
M trunk/src/gpu/GLES2/gl2chromium_autogen.h View 1 chunk +0 lines, -2 lines 0 comments Download
M trunk/src/gpu/command_buffer/build_gles2_cmd_buffer.py View 3 chunks +0 lines, -22 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/buffer_tracker.h View 4 chunks +7 lines, -19 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/buffer_tracker.cc View 1 chunk +0 lines, -22 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/buffer_tracker_unittest.cc View 3 chunks +1 line, -23 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/cmd_buffer_helper.h View 1 chunk +0 lines, -9 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/fenced_allocator.h View 4 chunks +2 lines, -6 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/fenced_allocator.cc View 2 chunks +3 lines, -8 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/fenced_allocator_test.cc View 5 chunks +2 lines, -69 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_c_lib_autogen.h View 2 chunks +0 lines, -6 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_cmd_helper_autogen.h View 5 chunks +4 lines, -24 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_implementation.h View 2 chunks +0 lines, -44 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_implementation.cc View 21 chunks +31 lines, -160 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_implementation_autogen.h View 1 chunk +0 lines, -2 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_interface_autogen.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_interface_stub_autogen.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_trace_implementation_autogen.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h View 1 chunk +0 lines, -6 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/mapped_memory.h View 5 chunks +1 line, -14 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/mapped_memory.cc View 2 chunks +3 lines, -6 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/mapped_memory_unittest.cc View 7 chunks +4 lines, -71 lines 0 comments Download
M trunk/src/gpu/command_buffer/client/query_tracker_unittest.cc View 3 chunks +2 lines, -7 lines 0 comments Download
M trunk/src/gpu/command_buffer/cmd_buffer_functions.txt View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/common/gles2_cmd_format.h View 1 chunk +0 lines, -19 lines 0 comments Download
M trunk/src/gpu/command_buffer/common/gles2_cmd_format_autogen.h View 13 chunks +10 lines, -79 lines 0 comments Download
M trunk/src/gpu/command_buffer/common/gles2_cmd_format_test.cc View 2 chunks +0 lines, -67 lines 0 comments Download
M trunk/src/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h View 5 chunks +2 lines, -24 lines 0 comments Download
M trunk/src/gpu/command_buffer/common/gles2_cmd_ids_autogen.h View 1 chunk +8 lines, -9 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager.h View 1 chunk +0 lines, -3 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_egl.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc View 1 chunk +0 lines, -10 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_idle.h View 1 chunk +1 line, -6 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc View 5 chunks +1 line, -16 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_mock.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_share_group.cc View 1 chunk +0 lines, -10 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_stub.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_stub.cc View 1 chunk +0 lines, -3 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_sync.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/src/gpu/command_buffer/service/async_pixel_transfer_manager_sync.cc View 1 chunk +0 lines, -3 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/gles2_cmd_decoder.cc View 7 chunks +0 lines, -94 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc View 4 chunks +4 lines, -49 lines 0 comments Download
M trunk/src/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h View 1 chunk +0 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Charlie Reis
6 years, 9 months ago (2014-03-28 17:58:41 UTC) #1
Charlie Reis
Committed patchset #1 manually as r260193 (tree was closed).
6 years, 9 months ago (2014-03-28 18:00:31 UTC) #2
Charlie Reis
6 years, 9 months ago (2014-03-28 18:17:51 UTC) #3
Message was sent while issue was closed.
This also failed on Linux Tests (dbg)(2):
http://build.chromium.org/p/chromium.linux/buildstatus?builder=Linux%20Tests%...

GLES2DecoderManualInitTest.AsyncPixelTransfers (run #1):
[ RUN      ] GLES2DecoderManualInitTest.AsyncPixelTransfers

GMOCK WARNING:
Uninteresting mock function call - returning directly.
    Function call: Destroy()
Stack trace:

GMOCK WARNING:
Uninteresting mock function call - returning directly.
    Function call: Destroy()
Stack trace:
Found a corrupted memory buffer in MallocBlock (may be offset from user ptr):
buffer index: 0, buffer ptr: 0x43022188120, size of buffer: 264
Buffer byte 228 is 0x00 (should be 0xcd).
Deleted by thread 0x7f6d09d0c8c0

Powered by Google App Engine
This is Rietveld 408576698