diff --git a/shared/GoldfishAddressSpace/include/goldfish_address_space_android.impl b/shared/GoldfishAddressSpace/include/goldfish_address_space_android.impl
index f0112e6..7ce17a9 100644
--- a/shared/GoldfishAddressSpace/include/goldfish_address_space_android.impl
+++ b/shared/GoldfishAddressSpace/include/goldfish_address_space_android.impl
@@ -180,9 +180,6 @@
 
 bool GoldfishAddressSpaceBlock::allocate(GoldfishAddressSpaceBlockProvider *provider, size_t size)
 {
-    ALOGV("%s: Ask for block of size 0x%llx\n", __func__,
-         (unsigned long long)size);
-
     destroy();
 
     if (!provider->is_opened()) {
@@ -203,20 +200,12 @@
         m_handle = provider->m_handle;
         m_is_shared_mapping = false;
 
-        ALOGV("%s: ioctl allocate returned offset 0x%llx size 0x%llx\n", __func__,
-                (unsigned long long)m_offset,
-                (unsigned long long)m_size);
-
         return true;
     }
 }
 
 bool GoldfishAddressSpaceBlock::claimShared(GoldfishAddressSpaceBlockProvider *provider, uint64_t offset, uint64_t size)
 {
-    ALOGV("%s: Ask to claim region [0x%llx 0x%llx]\n", __func__,
-         (unsigned long long)offset,
-         (unsigned long long)offset + size);
-
     destroy();
 
     if (!provider->is_opened()) {
diff --git a/shared/GoldfishAddressSpace/include/goldfish_address_space_fuchsia.impl b/shared/GoldfishAddressSpace/include/goldfish_address_space_fuchsia.impl
index ebf2538..c09c60e 100644
--- a/shared/GoldfishAddressSpace/include/goldfish_address_space_fuchsia.impl
+++ b/shared/GoldfishAddressSpace/include/goldfish_address_space_fuchsia.impl
@@ -119,9 +119,6 @@
 
 bool GoldfishAddressSpaceBlock::allocate(GoldfishAddressSpaceBlockProvider *provider, size_t size)
 {
-    ALOGD("%s: Ask for block of size 0x%llx\n", __func__,
-         (unsigned long long)size);
-
     destroy();
 
     if (!provider->is_opened()) {
@@ -141,12 +138,8 @@
     m_size = size;
     m_offset = 0;
     m_is_shared_mapping = false;
-
-    ALOGD("%s: allocate returned offset 0x%llx size 0x%llx\n", __func__,
-          (unsigned long long)m_offset,
-          (unsigned long long)m_size);
-
     m_driver = &provider->m_child_driver;
+
     return true;
 }
 
diff --git a/shared/GoldfishAddressSpace/include/goldfish_address_space_host.impl b/shared/GoldfishAddressSpace/include/goldfish_address_space_host.impl
index c7d5c43..e4283c7 100644
--- a/shared/GoldfishAddressSpace/include/goldfish_address_space_host.impl
+++ b/shared/GoldfishAddressSpace/include/goldfish_address_space_host.impl
@@ -108,9 +108,6 @@
 
 bool GoldfishAddressSpaceBlock::allocate(GoldfishAddressSpaceBlockProvider *provider, size_t size)
 {
-    ALOGV("%s: Ask for block of size 0x%llx\n", __func__,
-         (unsigned long long)size);
-
     destroy();
 
     if (!provider->is_opened()) {
@@ -129,10 +126,6 @@
 
 bool GoldfishAddressSpaceBlock::claimShared(GoldfishAddressSpaceBlockProvider *provider, uint64_t offset, uint64_t size)
 {
-    ALOGD("%s: Ask to claim region [0x%llx 0x%llx]\n", __func__,
-         (unsigned long long)offset,
-         (unsigned long long)offset + size);
-
     destroy();
 
     if (!provider->is_opened()) {
