diff --git a/adapter/uhdf2/manager/src/driver_installer_full.c b/adapter/uhdf2/manager/src/driver_installer_full.c index 26ca2fce854118eb7f7f0bc62ff9789cea5b3b2f..b12f11c7d7fec9efb8607d59e212cc372d0d4843 100644 --- a/adapter/uhdf2/manager/src/driver_installer_full.c +++ b/adapter/uhdf2/manager/src/driver_installer_full.c @@ -38,7 +38,7 @@ int DriverInstallerFullStartDeviceHost(uint32_t devHostId, const char* devHostNa int DriverInstallerFullStopDeviceHost(uint32_t devHostId, const char* devHostName) { int ret; - ret = ServiceControlWithExtra(devHostName, STOP, NULL, 0); + ret = ServiceControlWithExtra(devHostName, TERM, NULL, 0); HDF_LOGI("%{public}s %{public}s %{public}d %{public}d", __func__, devHostName, devHostId, ret); return ret; } diff --git a/interfaces/inner_api/hdi/base/hdi_smq.h b/interfaces/inner_api/hdi/base/hdi_smq.h index 75303d1faaa74ed1fa5faaafeab66f73f25bd650..fbe0573da77b96ce1ca041730fae02440082faef 100644 --- a/interfaces/inner_api/hdi/base/hdi_smq.h +++ b/interfaces/inner_api/hdi/base/hdi_smq.h @@ -53,6 +53,7 @@ #include #include #include +#include #ifndef PAGE_SIZE #define PAGE_SIZE 4096 @@ -471,7 +472,7 @@ int SharedMemQueue::Write(const T *data, size_t count, int64_t waitTimeNanoSe } ret = syncer_->Wait(SharedMemQueueSyncer::SYNC_WORD_WRITE, waitTimeNanoSec); if (ret != 0 && ret != -ETIMEDOUT) { - HDF_LOGE("Write syncer wait failed, , data count: %{public}zu, ret: %{public}d.", count, ret); + HDF_LOGD("Write syncer wait failed, data count: %{public}zu, ret: %{public}d.", count, ret); break; } @@ -542,7 +543,7 @@ int SharedMemQueue::Read(T *data, size_t count, int64_t waitTimeNanoSec) } ret = syncer_->Wait(SharedMemQueueSyncer::SYNC_WORD_READ, waitTimeNanoSec); if (ret != 0 && ret != -ETIMEDOUT) { - HDF_LOGE("Read syncer wait failed, , data count: %{public}zu, ret: %{public}d.", count, ret); + HDF_LOGD("Read syncer wait failed, data count: %{public}zu, ret: %{public}d.", count, ret); break; } @@ -590,7 +591,8 @@ int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) if (wOffset + count <= (qCount + 1)) { if (memcpy_s(queueBuffer_ + (wOffset * sizeof(T)), (qCount + 1 - wOffset) * sizeof(T), data, count * sizeof(T)) != EOK) { - HDF_LOGE("%s whole memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s whole failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; }; newWriteOffset = (wOffset + count) % (qCount + 1); @@ -599,11 +601,13 @@ int SharedMemQueue::WriteNonBlocking(const T *data, size_t count) size_t secPartSize = count - firstPartSize; if (memcpy_s(queueBuffer_ + (wOffset * sizeof(T)), (qCount + 1 - wOffset) * sizeof(T), data, firstPartSize * sizeof(T)) != EOK) { - HDF_LOGE("%s Twofold, first part memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s Twofold, first failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; } if (memcpy_s(queueBuffer_, qCount * sizeof(T), data + firstPartSize, secPartSize * sizeof(T)) != EOK) { - HDF_LOGE("%s Twofold, second part memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s Twofold, second failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; } newWriteOffset = secPartSize; @@ -631,10 +635,12 @@ int SharedMemQueue::ReadNonBlocking(T *data, size_t count) } auto qCount = meta_->GetElementCount(); + auto wOffset = writeOffset_->load(std::memory_order_acquire); auto rOffset = readOffset_->load(std::memory_order_acquire); if (rOffset + count <= (qCount + 1)) { if (memcpy_s(data, count * sizeof(T), queueBuffer_ + (rOffset * sizeof(T)), count * sizeof(T)) != EOK) { - HDF_LOGE("%s whole memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s whole memcpy_s failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; } readOffset_->store((rOffset + count) % (qCount + 1), std::memory_order_release); @@ -646,12 +652,14 @@ int SharedMemQueue::ReadNonBlocking(T *data, size_t count) if (memcpy_s(data, firstPartSize * sizeof(T), queueBuffer_ + (rOffset * sizeof(T)), firstPartSize * sizeof(T)) != EOK) { - HDF_LOGE("%s Twofold, first part memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s Twofold, first failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; } if (memcpy_s(data + firstPartSize, secPartSize * sizeof(T), queueBuffer_, secPartSize * sizeof(T)) != EOK) { - HDF_LOGE("%s Twofold, second part memcpy_s failed, data count: %{public}zu.", __func__, count); + HDF_LOGE("%s Twofold, second failed, dc: %{public}zu, wOffset: %{public}" PRIu64 + ", rOffset: %{public}" PRIu64 ", qc: %{public}zu.", __func__, count, wOffset, rOffset, qCount); return HDF_FAILURE; }; readOffset_->store(secPartSize, std::memory_order_release);