New issue
Advanced search Search tips

Issue 810356 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Feature



Sign in to add a comment

Enable tcmalloc for 32bit MIPS

Reported by gordana....@mips.com, Feb 8 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36

Steps to reproduce the problem:
Compile Chromium for mipsel with tcmalloc:
1. gn gen out-gn/mips32-linux-tcmalloc --args="target_os=\"linux\" is_debug=false target_cpu=\"mipsel\" mips_arch_variant=\"r2\" use_allocator=\"tcmalloc\""
2. ninja -j6 -C out-gn/mips32-linux-tcmalloc/ chrome

What is the expected behavior?
Successful build.

What went wrong?
Build failed.

Did this work before? No 

Chrome version: chromium master  Channel: dev
OS Version: 
Flash Version:
 
Initial error is:

In file included from ../../third_party/tcmalloc/chromium/src/base/spinlock_internal.cc:51:
In file included from ../../third_party/tcmalloc/chromium/src/base/spinlock_linux-inl.h:38:
../../third_party/tcmalloc/chromium/src/base/linux_syscall_support.h:1897:51: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                       unsigned long,  f, void *, a)
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../../third_party/tcmalloc/chromium/src/base/linux_syscall_support.h:1526:64: note: expanded from macro '_syscall5'
                                "r"(__r6), "m" ((unsigned long)arg5)          \
                                                ~~~~~~~~~~~~~~~^~~~
../../third_party/tcmalloc/chromium/src/base/linux_syscall_support.h:2019:47: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                         loff_t *, res, uint, wh)
                         ~~~~~~~~~~~~~~~~~~~~~^~~
../../third_party/tcmalloc/chromium/src/base/linux_syscall_support.h:1526:64: note: expanded from macro '_syscall5'
                                "r"(__r6), "m" ((unsigned long)arg5)          \
                                                ~~~~~~~~~~~~~~~^~~~
2 errors generated




Possible fix is has earlier been provided:
https://chromium-review.googlesource.com/c/chromium/src/+/822411

The next error:
../../third_party/tcmalloc/chromium/src/base/spinlock_internal.cc:83:10: error: no type named 'Atomic64' in namespace 'base::subtle'; did you mean 'Atomic32'?
  static base::subtle::Atomic64 rand;
         ^~~~~~~~~~~~~~~~~~~~~~
         Atomic32
../../third_party/tcmalloc/chromium/src/base/atomicops-internals-mips.h:46:17: note: 'Atomic32' declared here
typedef int32_t Atomic32;
                ^
1 error generated.

Fix for this error provided in:
https://chromium-review.googlesource.com/c/chromium/src/+/904303

Project Member

Comment 2 by bugdroid1@chromium.org, Feb 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4057752aa2a88f67f670b30fba9ac67ed74d34c4

commit 4057752aa2a88f67f670b30fba9ac67ed74d34c4
Author: Gordana Cmiljanovic <gordana.cmiljanovic@mips.com>
Date: Thu Feb 08 17:32:56 2018

Add SuggestedDelayNS() implementation for 32bit arches without Atomic64

Taken from:
https://github.com/gperftools/gperftools/commit/3e296c28c3c2b67df624d372b75650ae65c87b04

for 32bit architectures which do not support 64bit atomicity.

Needed for 32bit MIPS.

Bug:  810356 
Change-Id: I16ffda3a62428480c0565d801bd3ac857fca47ac
Reviewed-on: https://chromium-review.googlesource.com/904303
Commit-Queue: Will Harris <wfh@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535424}
[modify] https://crrev.com/4057752aa2a88f67f670b30fba9ac67ed74d34c4/third_party/tcmalloc/README.chromium
[modify] https://crrev.com/4057752aa2a88f67f670b30fba9ac67ed74d34c4/third_party/tcmalloc/chromium/src/base/spinlock_internal.cc

Initial error (in linux_syscall_support.h) will be fixed here: https://chromium-review.googlesource.com/c/chromium/src/+/909216

but still WIP.
Project Member

Comment 4 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bb40b1c2f8d2784ed02c1dcf49d4d5458b52e5c

commit 9bb40b1c2f8d2784ed02c1dcf49d4d5458b52e5c
Author: Gordana Cmiljanovic <gordana.cmiljanovic@mips.com>
Date: Wed Feb 28 17:46:44 2018

[MIPS][tcmalloc] Fix mipsel compile errors

tcmalloc is using very old version of linux_syscall_support.h

The following mipsel related changes are pulled from lss project:

https://chromiumcodereview.appspot.com/10067027
https://codereview.chromium.org/13846002
https://codereview.chromium.org/913723002/
https://codereview.chromium.org/836473006

Bug:  810356 ,  794147 
Change-Id: I79c3c77a5b81eb84902aa82b72656a776053de1e
Reviewed-on: https://chromium-review.googlesource.com/909216
Commit-Queue: Will Harris <wfh@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539871}
[modify] https://crrev.com/9bb40b1c2f8d2784ed02c1dcf49d4d5458b52e5c/third_party/tcmalloc/README.chromium
[modify] https://crrev.com/9bb40b1c2f8d2784ed02c1dcf49d4d5458b52e5c/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h

Labels: Needs-Feedback
Can this be closed now?
Just this last change to be merged before closing:
https://chromium-review.googlesource.com/c/chromium/src/+/947948

Project Member

Comment 7 by sheriffbot@chromium.org, Mar 5 2018

Cc: dtapu...@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8464c2bb2de4502c5979035997915af7fb7b2deb

commit 8464c2bb2de4502c5979035997915af7fb7b2deb
Author: Gordana Cmiljanovic <gordana.cmiljanovic@mips.com>
Date: Tue Mar 13 01:29:20 2018

[MIPS] Enable tcmalloc for mipsel

With these two merged:
https://chromium-review.googlesource.com/c/chromium/src/+/904303
https://chromium-review.googlesource.com/c/chromium/src/+/909216
we can enable tcmalloc for mipsel.

Bug:  810356 
Change-Id: Idd63cb9a0e1a9582047ad203edf160b0c532f854
Reviewed-on: https://chromium-review.googlesource.com/947948
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542685}
[modify] https://crrev.com/8464c2bb2de4502c5979035997915af7fb7b2deb/build/config/allocator.gni

This work is completed.
Status: Fixed (was: Unconfirmed)

Sign in to add a comment