76c5f5cc8a
In the GN build, libchromiumcontent is no longer a distinct library, but merely a container for a set of scripts and patches. Maintaining those patches in a separate repository is tedious and error-prone, so merge them into the main repo. Once this is merged and GN is the default way to build Electron, the libchromiumcontent repository can be archived.
57 lines
2.4 KiB
Diff
57 lines
2.4 KiB
Diff
From 81bbd23ad0649bfd381eaeecbd58c2c43ba08122 Mon Sep 17 00:00:00 2001
|
|
From: Wang Qing <wangqing-hf@loongson.cn>
|
|
Date: Thu, 14 Sep 2017 20:51:10 +0800
|
|
Subject: [PATCH] Set kernal page size to 16K on loongson(MIPS) archtecture.
|
|
|
|
This patch is specail used for mips64.
|
|
---
|
|
base/allocator/partition_allocator/page_allocator.h | 7 +++++++
|
|
base/allocator/partition_allocator/partition_alloc.h | 5 +++++
|
|
2 files changed, 12 insertions(+)
|
|
|
|
diff --git a/base/allocator/partition_allocator/page_allocator.h b/base/allocator/partition_allocator/page_allocator.h
|
|
index f57beb7..0ef1705 100644
|
|
--- a/base/allocator/partition_allocator/page_allocator.h
|
|
+++ b/base/allocator/partition_allocator/page_allocator.h
|
|
@@ -17,6 +17,8 @@ namespace base {
|
|
|
|
#if defined(OS_WIN)
|
|
static const size_t kPageAllocationGranularityShift = 16; // 64KB
|
|
+#elif __mips__
|
|
+static const size_t kPageAllocationGranularityShift = 14; // 64KB
|
|
#else
|
|
static const size_t kPageAllocationGranularityShift = 12; // 4KB
|
|
#endif
|
|
@@ -29,7 +31,12 @@ static const size_t kPageAllocationGranularityBaseMask =
|
|
|
|
// All Blink-supported systems have 4096 sized system pages and can handle
|
|
// permissions and commit / decommit at this granularity.
|
|
+// But, on mips have 16384 sized system pages.
|
|
+#ifdef __mips__
|
|
+static const size_t kSystemPageSize = 16384;
|
|
+#else
|
|
static const size_t kSystemPageSize = 4096;
|
|
+#endif
|
|
static const size_t kSystemPageOffsetMask = kSystemPageSize - 1;
|
|
static const size_t kSystemPageBaseMask = ~kSystemPageOffsetMask;
|
|
|
|
diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h
|
|
index c720a50..67c3598 100644
|
|
--- a/base/allocator/partition_allocator/partition_alloc.h
|
|
+++ b/base/allocator/partition_allocator/partition_alloc.h
|
|
@@ -94,7 +94,12 @@ static const size_t kBucketShift = (kAllocationGranularity == 8) ? 3 : 2;
|
|
// system page of the span. For our current max slot span size of 64k and other
|
|
// constant values, we pack _all_ PartitionAllocGeneric() sizes perfectly up
|
|
// against the end of a system page.
|
|
+// On mips have 16KB pagesize, So kPartitionPageSize is 64KB.
|
|
+#ifdef __mips__
|
|
+static const size_t kPartitionPageShift = 16; // 64KB
|
|
+#else
|
|
static const size_t kPartitionPageShift = 14; // 16KB
|
|
+#endif
|
|
static const size_t kPartitionPageSize = 1 << kPartitionPageShift;
|
|
static const size_t kPartitionPageOffsetMask = kPartitionPageSize - 1;
|
|
static const size_t kPartitionPageBaseMask = ~kPartitionPageOffsetMask;
|
|
--
|
|
2.1.0
|
|
|