Change the variable name "buffer_state_bit" into "client_state_mask".
Reasons:
1. This variable is not refering to a property of the buffer. It refers
to a client of the buffer.
2. The original "buffer_state_bit" of a producer/consumer is actually
the client state bit mask for both buffer_state and fence_state in
shared memory. Thus, "buffer_state_bit" does not make sense for the
fence state.
3. In the future, Every clients takes up two bits in the buffer_state.
For simpler bit manipulation, there will be a future change making the
client_state_bits two bits as well. Please refer to ag/5236978 for an
early look at the future bit manipulation. Thus, this change replaces
"bit" with "mask".
Test: build
Bug: 112007999
Change-Id: I72f59ab9491bd2f135da068f578195fbf5e6c2b6
diff --git a/services/vr/bufferhubd/buffer_channel.cpp b/services/vr/bufferhubd/buffer_channel.cpp
index ee85746..d5e6dfb 100644
--- a/services/vr/bufferhubd/buffer_channel.cpp
+++ b/services/vr/bufferhubd/buffer_channel.cpp
@@ -18,7 +18,7 @@
: BufferHubChannel(service, buffer_id, channel_id, kDetachedBufferType),
buffer_node_(
std::make_shared<BufferNode>(std::move(buffer), user_metadata_size)) {
- buffer_state_bit_ = buffer_node_->AddNewActiveClientsBitToMask();
+ client_state_mask_ = buffer_node_->AddNewActiveClientsBitToMask();
}
BufferChannel::BufferChannel(BufferHubService* service, int buffer_id,
@@ -28,7 +28,7 @@
: BufferHubChannel(service, buffer_id, buffer_id, kDetachedBufferType),
buffer_node_(std::make_shared<BufferNode>(
width, height, layer_count, format, usage, user_metadata_size)) {
- buffer_state_bit_ = buffer_node_->AddNewActiveClientsBitToMask();
+ client_state_mask_ = buffer_node_->AddNewActiveClientsBitToMask();
}
BufferChannel::BufferChannel(BufferHubService* service, int buffer_id,
@@ -36,8 +36,8 @@
std::shared_ptr<BufferNode> buffer_node)
: BufferHubChannel(service, buffer_id, channel_id, kDetachedBufferType),
buffer_node_(buffer_node) {
- buffer_state_bit_ = buffer_node_->AddNewActiveClientsBitToMask();
- if (buffer_state_bit_ == 0ULL) {
+ client_state_mask_ = buffer_node_->AddNewActiveClientsBitToMask();
+ if (client_state_mask_ == 0ULL) {
ALOGE("BufferChannel::BufferChannel: %s", strerror(errno));
buffer_node_ = nullptr;
}
@@ -46,8 +46,8 @@
BufferChannel::~BufferChannel() {
ALOGD_IF(TRACE, "BufferChannel::~BufferChannel: channel_id=%d buffer_id=%d.",
channel_id(), buffer_id());
- if (buffer_state_bit_ != 0ULL) {
- buffer_node_->RemoveClientsBitFromMask(buffer_state_bit_);
+ if (client_state_mask_ != 0ULL) {
+ buffer_node_->RemoveClientsBitFromMask(client_state_mask_);
}
Hangup();
}
@@ -93,7 +93,7 @@
/*buffer_handle=*/buffer_node_->buffer().handle(),
/*metadata_handle=*/buffer_node_->metadata().ashmem_handle().Borrow(),
/*id=*/buffer_id(),
- /*buffer_state_bit=*/buffer_state_bit_,
+ /*client_state_mask=*/client_state_mask_,
/*metadata_size=*/buffer_node_->metadata().metadata_size(),
/*width=*/buffer_node_->buffer().width(),
/*height=*/buffer_node_->buffer().height(),
diff --git a/services/vr/bufferhubd/buffer_node.cpp b/services/vr/bufferhubd/buffer_node.cpp
index bedec6f..f8ec59d 100644
--- a/services/vr/bufferhubd/buffer_node.cpp
+++ b/services/vr/bufferhubd/buffer_node.cpp
@@ -43,12 +43,12 @@
uint64_t BufferNode::AddNewActiveClientsBitToMask() {
uint64_t current_active_clients_bit_mask = GetActiveClientsBitMask();
- uint64_t buffer_state_bit = 0ULL;
+ uint64_t client_state_mask = 0ULL;
uint64_t updated_active_clients_bit_mask = 0ULL;
do {
- buffer_state_bit =
+ client_state_mask =
BufferHubDefs::FindNextClearedBit(current_active_clients_bit_mask);
- if (buffer_state_bit == 0ULL) {
+ if (client_state_mask == 0ULL) {
ALOGE(
"BufferNode::AddNewActiveClientsBitToMask: reached the maximum "
"mumber of channels per buffer node: 32.");
@@ -56,11 +56,11 @@
return 0ULL;
}
updated_active_clients_bit_mask =
- current_active_clients_bit_mask | buffer_state_bit;
+ current_active_clients_bit_mask | client_state_mask;
} while (!(active_clients_bit_mask_->compare_exchange_weak(
current_active_clients_bit_mask, updated_active_clients_bit_mask,
std::memory_order_acq_rel, std::memory_order_acquire)));
- return buffer_state_bit;
+ return client_state_mask;
}
void BufferNode::RemoveClientsBitFromMask(const uint64_t& value) {
diff --git a/services/vr/bufferhubd/include/private/dvr/buffer_channel.h b/services/vr/bufferhubd/include/private/dvr/buffer_channel.h
index e9bdb37..6d1e9e1 100644
--- a/services/vr/bufferhubd/include/private/dvr/buffer_channel.h
+++ b/services/vr/bufferhubd/include/private/dvr/buffer_channel.h
@@ -55,7 +55,7 @@
std::shared_ptr<BufferNode> buffer_node_ = nullptr;
// The state bit of this buffer. Must be one the lower 63 bits.
- uint64_t buffer_state_bit_ = 0ULL;
+ uint64_t client_state_mask_ = 0ULL;
};
} // namespace dvr
diff --git a/services/vr/bufferhubd/include/private/dvr/buffer_node.h b/services/vr/bufferhubd/include/private/dvr/buffer_node.h
index e1e8057..067584e 100644
--- a/services/vr/bufferhubd/include/private/dvr/buffer_node.h
+++ b/services/vr/bufferhubd/include/private/dvr/buffer_node.h
@@ -34,9 +34,9 @@
// active_clients_bit_mask from all threads will be returned here.
uint64_t GetActiveClientsBitMask() const;
- // Find and add a new buffer_state_bit to active_clients_bit_mask in
+ // Find and add a new client_state_mask to active_clients_bit_mask in
// metadata_.
- // Return the new buffer_state_bit that is added to active_clients_bit_mask.
+ // Return the new client_state_mask that is added to active_clients_bit_mask.
// Return 0ULL if there are already 32 bp clients of the buffer.
uint64_t AddNewActiveClientsBitToMask();
@@ -69,7 +69,7 @@
std::atomic<uint64_t>* fence_state_ = nullptr;
// active_clients_bit_mask_ tracks all the bp clients of the buffer. It is the
- // union of all buffer_state_bit of all bp clients.
+ // union of all client_state_mask of all bp clients.
std::atomic<uint64_t>* active_clients_bit_mask_ = nullptr;
};
diff --git a/services/vr/bufferhubd/include/private/dvr/producer_channel.h b/services/vr/bufferhubd/include/private/dvr/producer_channel.h
index 18bb7bf..b5c92be 100644
--- a/services/vr/bufferhubd/include/private/dvr/producer_channel.h
+++ b/services/vr/bufferhubd/include/private/dvr/producer_channel.h
@@ -49,7 +49,7 @@
BufferInfo GetBufferInfo() const override;
- BufferDescription<BorrowedHandle> GetBuffer(uint64_t buffer_state_bit);
+ BufferDescription<BorrowedHandle> GetBuffer(uint64_t client_state_mask);
pdx::Status<RemoteChannelHandle> CreateConsumer(Message& message);
pdx::Status<RemoteChannelHandle> OnNewConsumer(Message& message);
diff --git a/services/vr/bufferhubd/producer_channel.cpp b/services/vr/bufferhubd/producer_channel.cpp
index 581390f..beedc4c 100644
--- a/services/vr/bufferhubd/producer_channel.cpp
+++ b/services/vr/bufferhubd/producer_channel.cpp
@@ -227,12 +227,12 @@
}
BufferDescription<BorrowedHandle> ProducerChannel::GetBuffer(
- uint64_t buffer_state_bit) {
+ uint64_t client_state_mask) {
return {buffer_,
metadata_buffer_,
buffer_id(),
channel_id(),
- buffer_state_bit,
+ client_state_mask,
acquire_fence_fd_.Borrow(),
release_fence_fd_.Borrow()};
}
diff --git a/services/vr/bufferhubd/tests/buffer_node-test.cpp b/services/vr/bufferhubd/tests/buffer_node-test.cpp
index c2526fe..9a927f1 100644
--- a/services/vr/bufferhubd/tests/buffer_node-test.cpp
+++ b/services/vr/bufferhubd/tests/buffer_node-test.cpp
@@ -37,49 +37,51 @@
}
TEST_F(BufferNodeTest, TestAddNewActiveClientsBitToMask_twoNewClients) {
- uint64_t new_buffer_state_bit_1 = buffer_node->AddNewActiveClientsBitToMask();
- EXPECT_EQ(buffer_node->GetActiveClientsBitMask(), new_buffer_state_bit_1);
+ uint64_t new_client_state_mask_1 =
+ buffer_node->AddNewActiveClientsBitToMask();
+ EXPECT_EQ(buffer_node->GetActiveClientsBitMask(), new_client_state_mask_1);
- // Request and add a new buffer_state_bit again.
+ // Request and add a new client_state_mask again.
// Active clients bit mask should be the union of the two new
- // buffer_state_bits.
- uint64_t new_buffer_state_bit_2 = buffer_node->AddNewActiveClientsBitToMask();
+ // client_state_masks.
+ uint64_t new_client_state_mask_2 =
+ buffer_node->AddNewActiveClientsBitToMask();
EXPECT_EQ(buffer_node->GetActiveClientsBitMask(),
- new_buffer_state_bit_1 | new_buffer_state_bit_2);
+ new_client_state_mask_1 | new_client_state_mask_2);
}
TEST_F(BufferNodeTest, TestAddNewActiveClientsBitToMask_32NewClients) {
- uint64_t new_buffer_state_bit = 0ULL;
+ uint64_t new_client_state_mask = 0ULL;
uint64_t current_mask = 0ULL;
uint64_t expected_mask = 0ULL;
for (int i = 0; i < 64; ++i) {
- new_buffer_state_bit = buffer_node->AddNewActiveClientsBitToMask();
- EXPECT_NE(new_buffer_state_bit, 0);
- EXPECT_FALSE(new_buffer_state_bit & current_mask);
- expected_mask = current_mask | new_buffer_state_bit;
+ new_client_state_mask = buffer_node->AddNewActiveClientsBitToMask();
+ EXPECT_NE(new_client_state_mask, 0);
+ EXPECT_FALSE(new_client_state_mask & current_mask);
+ expected_mask = current_mask | new_client_state_mask;
current_mask = buffer_node->GetActiveClientsBitMask();
EXPECT_EQ(current_mask, expected_mask);
}
// Method should fail upon requesting for more than maximum allowable clients.
- new_buffer_state_bit = buffer_node->AddNewActiveClientsBitToMask();
- EXPECT_EQ(new_buffer_state_bit, 0ULL);
+ new_client_state_mask = buffer_node->AddNewActiveClientsBitToMask();
+ EXPECT_EQ(new_client_state_mask, 0ULL);
EXPECT_EQ(errno, E2BIG);
}
TEST_F(BufferNodeTest, TestRemoveActiveClientsBitFromMask) {
buffer_node->AddNewActiveClientsBitToMask();
uint64_t current_mask = buffer_node->GetActiveClientsBitMask();
- uint64_t new_buffer_state_bit = buffer_node->AddNewActiveClientsBitToMask();
+ uint64_t new_client_state_mask = buffer_node->AddNewActiveClientsBitToMask();
EXPECT_NE(buffer_node->GetActiveClientsBitMask(), current_mask);
- buffer_node->RemoveClientsBitFromMask(new_buffer_state_bit);
+ buffer_node->RemoveClientsBitFromMask(new_client_state_mask);
EXPECT_EQ(buffer_node->GetActiveClientsBitMask(), current_mask);
// Remove the test_mask again to the active client bit mask should not modify
// the value of active clients bit mask.
- buffer_node->RemoveClientsBitFromMask(new_buffer_state_bit);
+ buffer_node->RemoveClientsBitFromMask(new_client_state_mask);
EXPECT_EQ(buffer_node->GetActiveClientsBitMask(), current_mask);
}