lists.linaro.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
August
July
June
May
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
List overview
Download
Acc
August 2025
----- 2025 -----
August 2025
July 2025
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
acc@lists.linaro.org
1 participants
2 discussions
Start a n
N
ew thread
[PATCH 01/10] uadk: remove nosva limitation
by Zhangfei Gao
Remove nosva limitation to permit nosva run Signed-off-by: Zhangfei Gao <zhangfei.gao(a)linaro.org> --- wd.c | 4 ---- wd_alg.c | 44 +------------------------------------------- wd_util.c | 4 ---- 3 files changed, 1 insertion(+), 51 deletions(-) diff --git a/wd.c b/wd.c index 75a9469..5fa8feb 100644 --- a/wd.c +++ b/wd.c @@ -235,10 +235,6 @@ static int get_dev_info(struct uacce_dev *dev) ret = get_int_attr(dev, "flags", &dev->flags); if (ret < 0) return ret; - else if (!((unsigned int)dev->flags & UACCE_DEV_SVA)) { - WD_ERR("skip none sva uacce device!\n"); - return -WD_ENODEV; - } ret = get_int_attr(dev, "region_mmio_size", &value); if (ret < 0) diff --git a/wd_alg.c b/wd_alg.c index 08f0e2e..45619ba 100644 --- a/wd_alg.c +++ b/wd_alg.c @@ -23,47 +23,6 @@ static struct wd_alg_list alg_list_head; static struct wd_alg_list *alg_list_tail = &alg_list_head; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -static bool wd_check_dev_sva(const char *dev_name) -{ - char dev_path[PATH_MAX] = {'\0'}; - char buf[DEV_SVA_SIZE] = {'\0'}; - unsigned int val; - ssize_t ret; - int fd; - - ret = snprintf(dev_path, PATH_STR_SIZE, "%s/%s/%s", SYS_CLASS_DIR, - dev_name, SVA_FILE_NAME); - if (ret < 0) { - WD_ERR("failed to snprintf, device name: %s!\n", dev_name); - return false; - } - - /** - * The opened file is the specified device driver file. - * no need for realpath processing. - */ - fd = open(dev_path, O_RDONLY, 0); - if (fd < 0) { - WD_ERR("failed to open %s(%d)!\n", dev_path, -errno); - return false; - } - - ret = read(fd, buf, DEV_SVA_SIZE - 1); - if (ret <= 0) { - WD_ERR("failed to read anything at %s!\n", dev_path); - close(fd); - return false; - } - close(fd); - - val = strtol(buf, NULL, STR_DECIMAL); - if (val & UACCE_DEV_SVA) - return true; - - return false; -} - static bool wd_check_accel_dev(const char *dev_name) { struct dirent *dev_dir; @@ -80,8 +39,7 @@ static bool wd_check_accel_dev(const char *dev_name) !strncmp(dev_dir->d_name, "..", LINUX_PRTDIR_SIZE)) continue; - if (!strncmp(dev_dir->d_name, dev_name, strlen(dev_name)) && - wd_check_dev_sva(dev_dir->d_name)) { + if (!strncmp(dev_dir->d_name, dev_name, strlen(dev_name))) { closedir(wd_class); return true; } diff --git a/wd_util.c b/wd_util.c index f1b27bf..9675098 100644 --- a/wd_util.c +++ b/wd_util.c @@ -1883,10 +1883,6 @@ int wd_init_param_check(struct wd_ctx_config *config, struct wd_sched *sched) return -WD_EINVAL; } - if (!wd_is_sva(config->ctxs[0].ctx)) { - WD_ERR("invalid: the mode is non sva, please check system!\n"); - return -WD_EINVAL; - } return 0; } -- 2.25.1
2 days, 5 hours
1
9
0
0
调用流程 nosva
by Zhangfei Gao
调用流程 nosva: flat init/init2 -> setup.block_size = DEFAULT_BLOCK_SIZE; setup.block_num = DEFAULT_BLOCK_NM; setup.align_size = DEFAULT_ALIGN_SIZE; g_blkpool = wd_comp_setup_blkpool(&setup) ->alloc_sess -> if (g_blkpool) { void *src = wd_blkpool_alloc(g_blkpool, size) void *dst = wd_blkpool_alloc(g_blkpool, size) } else { void *src = malloc(size); void *dst = malloc(size); } -> do_sync /aysnc -> if (g_blkpool) { wd_blkpool_free(g_blkpool, src) wd_blkpool_free(g_blkpool, dst) } else { free(src); free(dst); } -> free_sess -> uninit/uninit2 调用流程 nosva sgl init/init2 -> setup.block_size = DEFAULT_BLOCK_SIZE; setup.block_num = DEFAULT_BLOCK_NM; setup.align_size = DEFAULT_ALIGN_SIZE; g_blkpool = wd_comp_setup_blkpool(&setup) ->alloc_sess -> struct wd_datalist src_list = calloc(n, sizeof(struct wd_datalist)); for (int i = 0; i < n; i++) { if (g_blkpool) src_list[i].data = wd_blkpool_alloc(g_blkpool, size); else src_list[i].data = malloc(size); if (i < n-1) src_list[i].next = src_list[i+1]; } -> do_sync /aysnc -> for (int i = 0; i < n; i++) { if (g_blkpool) wd_blkpool_free(g_blkpool, src_list[i].data); else free(src_list[i].data); } free(src_list); -> free_sess -> uninit/uninit2
2 weeks
1
0
0
0
← Newer
1
Older →
Jump to page:
1
Results per page:
10
25
50
100
200