Revert "Use the shared slots host memory allocator"

This reverts commit fa6d39c4cc1df808f46f83d20408e7f57ea0ca82.

Bug: 151752077
Bug: 149254427
Test: none
Change-Id: I21124384d4e462305a186685a82c541e01a4cef9
Signed-off-by: Roman Kiryanov <rkir@google.com>
diff --git a/shared/OpenglCodecCommon/goldfish_address_space.h b/shared/OpenglCodecCommon/goldfish_address_space.h
index 4216bb9..064f601 100644
--- a/shared/OpenglCodecCommon/goldfish_address_space.h
+++ b/shared/OpenglCodecCommon/goldfish_address_space.h
@@ -48,7 +48,6 @@
     Graphics = 0,
     Media = 1,
     HostMemoryAllocator = 5,
-    SharedSlotsHostMemoryAllocator = 6,
 };
 
 class GoldfishAddressSpaceBlockProvider {
@@ -56,8 +55,6 @@
     GoldfishAddressSpaceBlockProvider(GoldfishAddressSpaceSubdeviceType subdevice);
     ~GoldfishAddressSpaceBlockProvider();
 
-    bool open(GoldfishAddressSpaceSubdeviceType subdevice);
-
 private:
     GoldfishAddressSpaceBlockProvider(const GoldfishAddressSpaceBlockProvider &rhs);
     GoldfishAddressSpaceBlockProvider &operator=(const GoldfishAddressSpaceBlockProvider &rhs);
@@ -117,7 +114,7 @@
 
 class GoldfishAddressSpaceHostMemoryAllocator {
 public:
-    GoldfishAddressSpaceHostMemoryAllocator(bool trySharedSlots = true);
+    GoldfishAddressSpaceHostMemoryAllocator();
 
     long hostMalloc(GoldfishAddressSpaceBlock *block, size_t size);
     void hostFree(GoldfishAddressSpaceBlock *block);
diff --git a/shared/OpenglCodecCommon/goldfish_address_space_android.impl b/shared/OpenglCodecCommon/goldfish_address_space_android.impl
index 96194bd..646695f 100644
--- a/shared/OpenglCodecCommon/goldfish_address_space_android.impl
+++ b/shared/OpenglCodecCommon/goldfish_address_space_android.impl
@@ -58,7 +58,6 @@
 
 const int HOST_MEMORY_ALLOCATOR_COMMAND_ALLOCATE_ID = 1;
 const int HOST_MEMORY_ALLOCATOR_COMMAND_UNALLOCATE_ID = 2;
-const int HOST_MEMORY_ALLOCATOR_COMMAND_CHECK_IF_SHARED_SLOTS_SUPPORTED_ID = 3;
 
 int create_address_space_fd()
 {
@@ -87,12 +86,7 @@
     request.version = sizeof(request);
     request.metadata = type;
 
-    long ret = ioctl_ping(fd, &request);
-    if (ret) {
-        return ret;
-    }
-
-    return request.metadata;
+    return ioctl_ping(fd, &request);
 }
 
 long ioctl_claim_shared(int fd, struct goldfish_address_space_claim_shared *request)
@@ -108,8 +102,16 @@
 }  // namespace
 
 GoldfishAddressSpaceBlockProvider::GoldfishAddressSpaceBlockProvider(GoldfishAddressSpaceSubdeviceType subdevice)
+  : m_handle(create_address_space_fd())
 {
-    open(subdevice);
+    if ((subdevice != GoldfishAddressSpaceSubdeviceType::NoSubdevice) && is_opened()) {
+        const long ret = set_address_space_subdevice_type(m_handle, subdevice);
+        if (ret) {
+            ALOGE("%s: set_address_space_subdevice_type failed for device_type=%lu, ret=%ld",
+                  __func__, static_cast<unsigned long>(subdevice), ret);
+            close();
+        }
+    }
 }
 
 GoldfishAddressSpaceBlockProvider::~GoldfishAddressSpaceBlockProvider()
@@ -124,24 +126,6 @@
     return m_handle >= 0;
 }
 
-bool GoldfishAddressSpaceBlockProvider::open(GoldfishAddressSpaceSubdeviceType subdevice)
-{
-    close();
-
-    m_handle = create_address_space_fd();
-    if ((subdevice != GoldfishAddressSpaceSubdeviceType::NoSubdevice) && is_opened()) {
-        const long ret = set_address_space_subdevice_type(m_handle, subdevice);
-        if (ret) {
-            ALOGE("%s: set_address_space_subdevice_type failed for device_type=%lu, ret=%ld",
-                  __func__, static_cast<unsigned long>(subdevice), ret);
-            close();
-            return false;
-        }
-    }
-
-    return true;
-}
-
 void GoldfishAddressSpaceBlockProvider::close()
 {
     if (is_opened()) {
@@ -353,13 +337,8 @@
     ::munmap(ptr, size);
 }
 
-GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator(bool trySharedSlots)
-  : m_provider(trySharedSlots ? GoldfishAddressSpaceSubdeviceType::SharedSlotsHostMemoryAllocator
-                              : GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator) {
-    if (trySharedSlots && !m_provider.is_opened()) {
-        m_provider.open(GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator);
-    }
-}
+GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator()
+  : m_provider(GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator) {}
 
 bool GoldfishAddressSpaceHostMemoryAllocator::is_opened() const { return m_provider.is_opened(); }
 
@@ -374,52 +353,24 @@
     if (!m_provider.is_opened()) {
         return -ENODEV;
     }
+    if (!block->allocate(&m_provider, size)) {
+        return -ENOMEM;
+    }
 
     struct goldfish_address_space_ping request;
     ::memset(&request, 0, sizeof(request));
-    request.metadata = HOST_MEMORY_ALLOCATOR_COMMAND_CHECK_IF_SHARED_SLOTS_SUPPORTED_ID;
+    request.version = sizeof(request);
+    request.offset = block->offset();
+    request.size = block->size();
+    request.metadata = HOST_MEMORY_ALLOCATOR_COMMAND_ALLOCATE_ID;
+
     long ret = ioctl_ping(m_provider.m_handle, &request);
     if (ret) {
         return ret;
     }
-
-    if (request.metadata) {
-        // shared memory slots are not supported
-        if (!block->allocate(&m_provider, size)) {
-            return -ENOMEM;
-        }
-
-        ::memset(&request, 0, sizeof(request));
-        request.version = sizeof(request);
-        request.offset = block->offset();
-        request.size = block->size();
-        request.metadata = HOST_MEMORY_ALLOCATOR_COMMAND_ALLOCATE_ID;
-
-        long ret = ioctl_ping(m_provider.m_handle, &request);
-        if (ret) {
-            return ret;
-        }
-        ret = static_cast<long>(request.metadata);
-        if (ret) {
-            return ret;
-        }
-    } else {
-        // shared memory slots are supported
-        ::memset(&request, 0, sizeof(request));
-        request.version = sizeof(request);
-        request.size = size;
-        request.metadata = HOST_MEMORY_ALLOCATOR_COMMAND_ALLOCATE_ID;
-
-        long ret = ioctl_ping(m_provider.m_handle, &request);
-        if (ret) {
-            return ret;
-        }
-        ret = static_cast<long>(request.metadata);
-        if (ret) {
-            return ret;
-        }
-
-        block->claimShared(&m_provider, request.offset, request.size);
+    ret = static_cast<long>(request.metadata);
+    if (ret) {
+        return ret;
     }
 
     block->mmap(0);
diff --git a/shared/OpenglCodecCommon/goldfish_address_space_fuchsia.impl b/shared/OpenglCodecCommon/goldfish_address_space_fuchsia.impl
index cb2ce93..4d54eed 100644
--- a/shared/OpenglCodecCommon/goldfish_address_space_fuchsia.impl
+++ b/shared/OpenglCodecCommon/goldfish_address_space_fuchsia.impl
@@ -228,7 +228,7 @@
     }
 }
 
-GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator(bool trySharedSlots)
+GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator()
   : m_provider(GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator) { }
 
 long GoldfishAddressSpaceHostMemoryAllocator::hostMalloc(GoldfishAddressSpaceBlock *block, size_t size)
@@ -240,18 +240,6 @@
 {
 }
 
-bool GoldfishAddressSpaceHostMemoryAllocator::is_opened() const {
-    return false;
-}
-
-address_space_handle_t GoldfishAddressSpaceHostMemoryAllocator::release() {
-    return m_provider.release();
-}
-
-void GoldfishAddressSpaceHostMemoryAllocator::closeHandle(address_space_handle_t handle) {
-    GoldfishAddressSpaceBlockProvider::closeHandle(handle);
-}
-
 class VmoStore {
 public:
     struct Info {
diff --git a/shared/OpenglCodecCommon/goldfish_address_space_host.impl b/shared/OpenglCodecCommon/goldfish_address_space_host.impl
index 5a5ee75..6630ed7 100644
--- a/shared/OpenglCodecCommon/goldfish_address_space_host.impl
+++ b/shared/OpenglCodecCommon/goldfish_address_space_host.impl
@@ -231,13 +231,8 @@
 
 void GoldfishAddressSpaceBlock::memoryUnmap(void *ptr, size_t size) {}
 
-GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator(bool trySharedSlots)
-  : m_provider(trySharedSlots ? GoldfishAddressSpaceSubdeviceType::SharedSlotsHostMemoryAllocator
-                              : GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator) {
-    if (trySharedSlots && !m_provider.is_opened()) {
-        m_provider.open(GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator);
-    }
-}
+GoldfishAddressSpaceHostMemoryAllocator::GoldfishAddressSpaceHostMemoryAllocator()
+  : m_provider(GoldfishAddressSpaceSubdeviceType::HostMemoryAllocator) {}
 
 bool GoldfishAddressSpaceHostMemoryAllocator::is_opened() const { return m_provider.is_opened(); }
 
diff --git a/system/hals/allocator3.cpp b/system/hals/allocator3.cpp
index 457ab91..63d79ef 100644
--- a/system/hals/allocator3.cpp
+++ b/system/hals/allocator3.cpp
@@ -329,7 +329,7 @@
                       const int32_t bytesPerPixel,
                       const int32_t stride,
                       cb_handle_30_t** cb) {
-        GoldfishAddressSpaceHostMemoryAllocator host_memory_allocator(true);
+        GoldfishAddressSpaceHostMemoryAllocator host_memory_allocator;
         if (!host_memory_allocator.is_opened()) {
             RETURN_ERROR(Error3::NO_RESOURCES);
         }
diff --git a/system/hals/mapper3.cpp b/system/hals/mapper3.cpp
index cbfff9a..b48e497 100644
--- a/system/hals/mapper3.cpp
+++ b/system/hals/mapper3.cpp
@@ -77,7 +77,7 @@
 class GoldfishMapper : public IMapper3 {
 public:
     GoldfishMapper() : m_hostConn(HostConnection::createUnique()) {
-        GoldfishAddressSpaceHostMemoryAllocator host_memory_allocator(false);
+        GoldfishAddressSpaceHostMemoryAllocator host_memory_allocator;
         CRASH_IF(!host_memory_allocator.is_opened(),
                  "GoldfishAddressSpaceHostMemoryAllocator failed to open");
 
@@ -86,8 +86,6 @@
                  "hostMalloc failed");
 
         m_physAddrToOffset = bufferBits.physAddr() - bufferBits.offset();
-
-        host_memory_allocator.hostFree(&bufferBits);
     }
 
     Return<void> importBuffer(const hidl_handle& hh,