Commit b896d2b5 authored by gongchangsui's avatar gongchangsui
Browse files

VirtCCA: Improve nfs workqueue bind method

virtcca inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IBQSQW



--------------------------------

VirtCCA Feature:
Improve nfs workqueue bind method

Signed-off-by: default avatargongchangsui <gongchangsui@outlook.com>
parent c53d7e69
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
#include <linux/freezer.h>
#include <linux/uaccess.h>
#include <linux/iversion.h>
#include <linux/virtcca_cvm_domain.h>

#include "nfs4_fs.h"
#include "callback.h"
@@ -2411,6 +2412,11 @@ static int nfsiod_start(void)
{
	struct workqueue_struct *wq;
	dprintk("RPC:       creating workqueue nfsiod\n");
#ifdef CONFIG_HISI_VIRTCCA_GUEST
	if (unlikely(virtcca_cvm_domain()))
		wq = alloc_workqueue("nfsiod", WQ_MEM_RECLAIM, 0);
	else
#endif
		wq = alloc_workqueue("nfsiod", WQ_MEM_RECLAIM | WQ_UNBOUND, 0);
	if (wq == NULL)
		return -ENOMEM;
+13 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/mutex.h>
#include <linux/freezer.h>
#include <linux/sched/mm.h>
#include <linux/virtcca_cvm_domain.h>

#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/metrics.h>
@@ -1282,10 +1283,20 @@ static int rpciod_start(void)
	/*
	 * Create the rpciod thread and wait for it to start.
	 */
#ifdef CONFIG_HISI_VIRTCCA_GUEST
	if (unlikely(virtcca_cvm_domain()))
		wq = alloc_workqueue("rpciod", WQ_MEM_RECLAIM, 0);
	else
#endif
		wq = alloc_workqueue("rpciod", WQ_MEM_RECLAIM | WQ_UNBOUND, 0);
	if (!wq)
		goto out_failed;
	rpciod_workqueue = wq;
#ifdef CONFIG_HISI_VIRTCCA_GUEST
	if (unlikely(virtcca_cvm_domain()))
		wq = alloc_workqueue("xprtiod", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
	else
#endif
		wq = alloc_workqueue("xprtiod", WQ_UNBOUND | WQ_MEM_RECLAIM, 0);
	if (!wq)
		goto free_rpciod;