libwd/0083-uadk-mempool-fix-redundant-assignment.patch
Wenkai Lin d2ed8a299c libwd backport for uadk from 2.3.29 to 2.3.31
Update some patch for uadk from mainline.
To get more infomation, please visit the homepage:
https://github.com/Linaro/uadk

Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
2022-03-22 11:52:29 +08:00

52 lines
1.3 KiB
Diff

From 00d8dd57f97586658770a258f3e8fb331180f457 Mon Sep 17 00:00:00 2001
From: Wenkai Lin <linwenkai6@hisilicon.com>
Date: Thu, 10 Mar 2022 20:03:15 +0800
Subject: [PATCH 091/109] uadk: mempool: fix redundant assignment
1. pos_first is no need to be assinged because it
will get a value later.
2. improve performance by giving other threads or
processes a chance to run
Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
---
wd_mempool.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/wd_mempool.c b/wd_mempool.c
index bfacd28..8467c48 100644
--- a/wd_mempool.c
+++ b/wd_mempool.c
@@ -14,6 +14,7 @@
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/queue.h>
+#include <pthread.h>
#include "wd.h"
#define SYSFS_NODE_PATH "/sys/devices/system/node/node"
@@ -409,8 +410,8 @@ static int alloc_block_from_mempool(struct mempool *mp,
int mem_combined_num,
int mem_splited_num)
{
- int pos_first = pos;
int pos_last = pos;
+ int pos_first;
int i, ret;
do {
@@ -607,7 +608,9 @@ void wd_blockpool_destroy(handle_t blkpool)
mp = bp->mp;
wd_atomic_sub(&bp->ref, 1);
- while(wd_atomic_load(&bp->ref));
+ while (wd_atomic_load(&bp->ref))
+ sched_yield();
+
free_mem_to_mempool(bp);
free(bp->blk_elem);
free(bp);
--
2.27.0