From nobody Sun Feb 8 13:39:01 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00C8C3431F6 for ; Fri, 31 Oct 2025 10:59:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761908398; cv=none; b=e5SI7w0CuZfoY6601QOaT4nCwV1SiUj+UHvCVVKLmbH2nGTHms3R8e9BPzx1N1YjxEMKB1F+cEHFrf1YVFpcrSXMKgBfIERM+2PHcBBh1p/IzJljW08IE8m2CrB1RRmDZqisUscPGyz8ROfankse69A4eOEMratm1Vzoo1NEQZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761908398; c=relaxed/simple; bh=VOurxl+sVQjyGc1Q+0VgIqhM8VdRBNx9ftIipnjy+u8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=laXBcwQOauxJod2HKhf+BQftdMvp601/IuvsBZZEnZGlvbCyx23KqmJKkTAtxkMrfucuoiuUY1JgaS/vipHMTjrQA3G03Tfx9ri8fVYpLK2NSzd/ZpwecZ15/FmBucwBdF8nW2ZOyxn2RJV8BLDJarJgIqfCtm3qgPfDnCkxvm0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=C7eU+YWT; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="C7eU+YWT" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-4298b49f103so854631f8f.2 for ; Fri, 31 Oct 2025 03:59:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1761908394; x=1762513194; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=meReBaQ99dOF1c+7jSgsU4KTZxApPi6bDuZ+XPUjUx4=; b=C7eU+YWTAFp+UeuoaSIKlO61AL1uhqDg4amTmUkvULikQ63xMfXCKIIZcUiWD6/hHa qfcUT24BeLqjkPoR9KPYJextGzQjWAvK1IbfSlbxn5Z+mdhKx6aWGkOnl7gUpFbd/0i8 YxcbpUbwcPXCmKQil7KjSxkc3Pg4shfJeqhmUHfgZTbilpc72fr0GwZUvkPsNxgTKcuT lUM+SWGPCEDRMkcZviIh0gFDzocN9LDnOWid2C9CGqRB5f4dpkMrsOfgR8Xx7PbQP+HB Ts8i11sRxFgnFWI0VzYPHw4eisgMn+FvZkVi0rg/0LzbAlJwqDWXjmdm4+p4vSKY69qk Ryyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761908394; x=1762513194; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=meReBaQ99dOF1c+7jSgsU4KTZxApPi6bDuZ+XPUjUx4=; b=egF9dA5NqkdD7O+ROQTheyOgvxuksIIsVTGSlAcymqfsEIPxC/iq8hweQMFbosD7Pq SgzOcBzxRlQGsqUJTWcD6ZXai3pFrI0BP9flklzSulR/jjzTYOGUbXyb6mZBwDMmEbPc ju5IXCb/2Ux/lQxD/iAA/bEPtYIrm45MA1yC0OOSVfvYGDHwcOAeA+xDzcBTXgUUKN3D x2cvAXYpzH+DGmRh7sQEiBGsA4tjtpqsJgMdKfZUmOalmcyiQAu7ABW9Kn9Vc+YE80BE SLM1R+qmFB1P0ZH0/4iccUPQNz5JAhRbHUcCr3xY6GM1LrdAP51sZu+TN55uSuKP22Fz b9Rg== X-Gm-Message-State: AOJu0YwCejuNXGhk6lXltW4DWG03aroeMZkzvkFeGstmECcWpMtO/NQX e2bwAhgXgadIFayQv/sY++QKSLVxZcBXumKAZD7UKEMzrBKxAWFiJNpHqmTjRl2WDyY/w9nKaYG Pjewf X-Gm-Gg: ASbGncsv6Tk7N0qHVmN2hdRsVy49QE8eC8kAJBgZxwzTRPdertWpkuN5WG+KENfwUKZ kuE9eTKa6v9Q7fJ6VJY00wna3hwi+lu8bnP9BZgjuc6JIAGTe1qhLnVQEj+IRs6NkIefvIrvMHo IQ0y8ojGXyLr9Vsa4YX4RLDOBhxg1n0+evZZFCJnSvMQcCVcGHA4qyiSVG8TOZkqBLmS4kM5J+w 03llxVUCmz4AE8kYSqQRAx2Wf2bqQGOm/QL/z6gw9zMIiqSZhi7kpE2kliM7Y+x5Z8NGYHsV/b+ sNTGloWsvv4Du+5rysM+PS7hdG5JzZKFWLwTLu0TLJ2BzXGyupQYBhlrk14we+dT8Y4VQNxNxrf HBpEmaebzem8aHPpjLNxM3G1i/hc6hC3pNgIITGUNBMYi44xZt43ifBg7pBJR6bLNLwmjw3tDyi uDW0nxldm4XlVCNF6VdNHQHppG X-Google-Smtp-Source: AGHT+IFdGTxG3bZ9hI1ZvBKqkA/ZCyuorhXgGNfQCxf182NXCKhTyNIAS3xqjvn2tp4aiso7n8hemw== X-Received: by 2002:a05:6000:40ca:b0:426:d820:a3f9 with SMTP id ffacd0b85a97d-429bd5eea69mr2252061f8f.0.1761908393997; Fri, 31 Oct 2025 03:59:53 -0700 (PDT) Received: from localhost.localdomain ([2a00:6d43:105:c401:e307:1a37:2e76:ce91]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429c110035esm2965528f8f.6.2025.10.31.03.59.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 03:59:53 -0700 (PDT) From: Marco Crivellari To: linux-kernel@vger.kernel.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Tejun Heo , Lai Jiangshan , Frederic Weisbecker , Sebastian Andrzej Siewior , Marco Crivellari , Michal Hocko , Lucas De Marchi , Thomas Hellstrom , Rodrigo Vivi , David Airlie , Simona Vetter Subject: [PATCH 1/2] drm/xe: replace use of system_unbound_wq with system_dfl_wq Date: Fri, 31 Oct 2025 11:59:38 +0100 Message-ID: <20251031105939.129200-2-marco.crivellari@suse.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251031105939.129200-1-marco.crivellari@suse.com> References: <20251031105939.129200-1-marco.crivellari@suse.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently if a user enqueue a work item using schedule_delayed_work() the used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to schedule_work() that is using system_wq and queue_work(), that makes use again of WORK_CPU_UNBOUND. This lack of consistency cannot be addressed without refactoring the API. system_unbound_wq should be the default workqueue so as not to enforce locality constraints for random work whenever it's not required. Adding system_dfl_wq to encourage its use when unbound work should be used. The old system_unbound_wq will be kept for a few release cycles. Suggested-by: Tejun Heo Signed-off-by: Marco Crivellari --- drivers/gpu/drm/xe/xe_devcoredump.c | 2 +- drivers/gpu/drm/xe/xe_execlist.c | 2 +- drivers/gpu/drm/xe/xe_guc_ct.c | 4 ++-- drivers/gpu/drm/xe/xe_oa.c | 2 +- drivers/gpu/drm/xe/xe_vm.c | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_devcoredump.c b/drivers/gpu/drm/xe/xe_de= vcoredump.c index 203e3038cc81..806335487021 100644 --- a/drivers/gpu/drm/xe/xe_devcoredump.c +++ b/drivers/gpu/drm/xe/xe_devcoredump.c @@ -362,7 +362,7 @@ static void devcoredump_snapshot(struct xe_devcoredump = *coredump, =20 xe_engine_snapshot_capture_for_queue(q); =20 - queue_work(system_unbound_wq, &ss->work); + queue_work(system_dfl_wq, &ss->work); =20 xe_force_wake_put(gt_to_fw(q->gt), fw_ref); dma_fence_end_signalling(cookie); diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execl= ist.c index f83d421ac9d3..99010709f0d2 100644 --- a/drivers/gpu/drm/xe/xe_execlist.c +++ b/drivers/gpu/drm/xe/xe_execlist.c @@ -422,7 +422,7 @@ static void execlist_exec_queue_kill(struct xe_exec_que= ue *q) static void execlist_exec_queue_destroy(struct xe_exec_queue *q) { INIT_WORK(&q->execlist->destroy_async, execlist_exec_queue_destroy_async); - queue_work(system_unbound_wq, &q->execlist->destroy_async); + queue_work(system_dfl_wq, &q->execlist->destroy_async); } =20 static int execlist_exec_queue_set_priority(struct xe_exec_queue *q, diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c index 18f6327bf552..bc2ec3603e7b 100644 --- a/drivers/gpu/drm/xe/xe_guc_ct.c +++ b/drivers/gpu/drm/xe/xe_guc_ct.c @@ -543,7 +543,7 @@ int xe_guc_ct_enable(struct xe_guc_ct *ct) spin_lock_irq(&ct->dead.lock); if (ct->dead.reason) { ct->dead.reason |=3D (1 << CT_DEAD_STATE_REARM); - queue_work(system_unbound_wq, &ct->dead.worker); + queue_work(system_dfl_wq, &ct->dead.worker); } spin_unlock_irq(&ct->dead.lock); #endif @@ -2186,7 +2186,7 @@ static void ct_dead_capture(struct xe_guc_ct *ct, str= uct guc_ctb *ctb, u32 reaso =20 spin_unlock_irqrestore(&ct->dead.lock, flags); =20 - queue_work(system_unbound_wq, &(ct)->dead.worker); + queue_work(system_dfl_wq, &(ct)->dead.worker); } =20 static void ct_dead_print(struct xe_dead_ct *dead) diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c index a4894eb0d7f3..4e362cd43d51 100644 --- a/drivers/gpu/drm/xe/xe_oa.c +++ b/drivers/gpu/drm/xe/xe_oa.c @@ -967,7 +967,7 @@ static void xe_oa_config_cb(struct dma_fence *fence, st= ruct dma_fence_cb *cb) struct xe_oa_fence *ofence =3D container_of(cb, typeof(*ofence), cb); =20 INIT_DELAYED_WORK(&ofence->work, xe_oa_fence_work_fn); - queue_delayed_work(system_unbound_wq, &ofence->work, + queue_delayed_work(system_dfl_wq, &ofence->work, usecs_to_jiffies(NOA_PROGRAM_ADDITIONAL_DELAY_US)); dma_fence_put(fence); } diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c index 027e6ce648c5..94827ca4b7dc 100644 --- a/drivers/gpu/drm/xe/xe_vm.c +++ b/drivers/gpu/drm/xe/xe_vm.c @@ -1073,7 +1073,7 @@ static void vma_destroy_cb(struct dma_fence *fence, struct xe_vma *vma =3D container_of(cb, struct xe_vma, destroy_cb); =20 INIT_WORK(&vma->destroy_work, vma_destroy_work_func); - queue_work(system_unbound_wq, &vma->destroy_work); + queue_work(system_dfl_wq, &vma->destroy_work); } =20 static void xe_vma_destroy(struct xe_vma *vma, struct dma_fence *fence) @@ -1832,7 +1832,7 @@ static void xe_vm_free(struct drm_gpuvm *gpuvm) struct xe_vm *vm =3D container_of(gpuvm, struct xe_vm, gpuvm); =20 /* To destroy the VM we need to be able to sleep */ - queue_work(system_unbound_wq, &vm->destroy_work); + queue_work(system_dfl_wq, &vm->destroy_work); } =20 struct xe_vm *xe_vm_lookup(struct xe_file *xef, u32 id) --=20 2.51.0 From nobody Sun Feb 8 13:39:01 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC19E3431EA for ; Fri, 31 Oct 2025 10:59:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761908399; cv=none; b=mpflDeGEcGaNLe8DTR0GheoZdhFpppdCcXJoK0viw1tfarLAT6cUtND8WJ+DBWZUFNE1LDUyBL6q/jjH8hmNDtgtkr0P46k5a8ZvETPxusgrSukps25/Qt3m3qF2Zz8AhT7Oyh4V9XmDhHeSUZlr1fPERx2dvR17z4SuvkIFHCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761908399; c=relaxed/simple; bh=AzMnPvKG1flg0HPoR/EI9rScb58nkrj67hFYs0Jg4+o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lQhXFCYS8tmlv5eY77EtlutLBZlEVUt5IIIzZmvus7zSt841vXsCk+NWDNxhQHEEQaZY+BPbW1t6NxSjXsYQmocNMzUmHd921nOFXdPtBlkIH8yNHHxBON3lA1nf8QHudybjMR8L7RdX8y//KmxsFQwRZ+B3V3CvMC3ejHfAxRU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=d+QMU9ZW; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="d+QMU9ZW" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-3ee15b5435bso1588225f8f.0 for ; Fri, 31 Oct 2025 03:59:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1761908395; x=1762513195; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QtaLGTlpD3zXcAXtMJEoSUxTvoU8HRv8A7mRZZemTDs=; b=d+QMU9ZWsen1VqEv+nZ6tvbqiauffYjxYvJeTnOiv/X5MRXbfaL34iOWm38B7d2f6c QjuOm4797oV23M22NbPLjK/qfMKq+WMANg36qkFgG7iJin8/juZpBfEd80LZkFlmWsMh Sr+ckQ4E+w7/5O5kCFD95mQdWKMj5CDVkC+Gdii0uicjIvhjNbN814PRcJeG1DRQO4dM kYe1bvHyBrsFvNH1tR3Rdl+5GH91y4v6NI79pPMO0OSgWHHASrp6jDEdKrgAQrS6mdw3 IFkXNFPou8vJ0ZERVlbaqTSb5PyimOgicAsW0HIzV2CEZgvQfl3TnFUhCAKOjhpPVC4S kIvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761908395; x=1762513195; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QtaLGTlpD3zXcAXtMJEoSUxTvoU8HRv8A7mRZZemTDs=; b=oHGsH9uyWaYAzanbDf1V8K7i5bxeeLbN0GeEB6ijBDmp3nHbX0rb3E3ZcXcR9hqLuv s0u0OWsfeao4tbsnJho8tfvajW3xu0dAIDuGkJW+sb2slPQ+5k56kn9YD0LuzvbC2Fby d+903hcAzxf/HRxCT6ZZH03XBOQxB6U2HlBCiZ8cPxYSugL1r5zFS4h9b/NatCLJL2Z+ ze3yzmMC0G4FEbebBQxLAGXZp0JUcVEfJi+eTv4IZcC2HCeju69e48GXCXg/MnVm+Sue RrjaGLFk15dfsEygZwCQXwNie52hybm9/CLXMHV3ZAWeJ4NUI9SP/KhWtAt0hxf1q/7c KBRw== X-Gm-Message-State: AOJu0YxyITelNqtYPEORsvNA486PsiLzE1PAIWcgtyLyLK9S28Mxi+2H luBHOUYJk6YgBxdU4CaaFguvKJ20lRRpW5u8fHr93lwN5QSNel7A8I0jiy40ypdvnN9NgpKc74T 6XWg8 X-Gm-Gg: ASbGncuxmv0e2kVIZwR4jAiojYCCgZXCSlxozF/Zawwbh2MFvWaDdPbEx8Mj2I+1emn TkFFPElaCd44J2KOyLqyP81CpmyluOw3DwKKSmoBDzmtoS23mgMB9ZM6+u2eYqVbKXxTvLB9NNn u5Obw/Z8gvGVyxB2jvzwLQJTttkisLpsJNRpFoKHmG81FiUrHWejZV9wfM9WUI+JZgV5Oz5orbo hWd6nUFzhxpMpwRCT+739/DT+DUmjFMjjhkEHvXqazoUgrg0iEtUBCfiZ11XfMg3MA4cU3DlVYy cJn07saA7v3AEvXEUsYPyDwbv+qM0UPMb/+gB15WrEnMrMl8DwXuSQcUBCntDex8k/o0agvyN8G LBQQv5ZvN7BwgR1Zlr6XYxBCLQenj0z8kwfUC0KjIEqEY21W1jNZdm29cmuXiCCtZf95P+5RW7I t1LNy4rJhjNcyV+AdU/5q6t3emCh/9Hr9NxyE= X-Google-Smtp-Source: AGHT+IEsdl8gncmk7O5sGQX6oiw6d1c49YNa/Zznn0PBesJNtmDV3CtY5LM2CvoEk/+qA0YvvOvK6Q== X-Received: by 2002:a05:6000:310f:b0:428:3fa7:77ff with SMTP id ffacd0b85a97d-429bd67a046mr2960086f8f.14.1761908394888; Fri, 31 Oct 2025 03:59:54 -0700 (PDT) Received: from localhost.localdomain ([2a00:6d43:105:c401:e307:1a37:2e76:ce91]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429c110035esm2965528f8f.6.2025.10.31.03.59.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 03:59:54 -0700 (PDT) From: Marco Crivellari To: linux-kernel@vger.kernel.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Tejun Heo , Lai Jiangshan , Frederic Weisbecker , Sebastian Andrzej Siewior , Marco Crivellari , Michal Hocko , Lucas De Marchi , Thomas Hellstrom , Rodrigo Vivi , David Airlie , Simona Vetter Subject: [PATCH 2/2] drm/xe: WQ_PERCPU added to alloc_workqueue users Date: Fri, 31 Oct 2025 11:59:39 +0100 Message-ID: <20251031105939.129200-3-marco.crivellari@suse.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251031105939.129200-1-marco.crivellari@suse.com> References: <20251031105939.129200-1-marco.crivellari@suse.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Currently if a user enqueue a work item using schedule_delayed_work() the used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to schedule_work() that is using system_wq and queue_work(), that makes use again of WORK_CPU_UNBOUND. This lack of consistentcy cannot be addressed without refactoring the API. alloc_workqueue() treats all queues as per-CPU by default, while unbound workqueues must opt-in via WQ_UNBOUND. This default is suboptimal: most workloads benefit from unbound queues, allowing the scheduler to place worker threads where they=E2=80=99re needed= and reducing noise when CPUs are isolated. This change adds a new WQ_PERCPU flag to explicitly request alloc_workqueue() to be per-cpu when WQ_UNBOUND has not been specified. With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND), any alloc_workqueue() caller that doesn=E2=80=99t explicitly specify WQ_UNB= OUND must now use WQ_PERCPU. Once migration is complete, WQ_UNBOUND can be removed and unbound will become the implicit default. Suggested-by: Tejun Heo Signed-off-by: Marco Crivellari --- drivers/gpu/drm/xe/xe_device.c | 4 ++-- drivers/gpu/drm/xe/xe_ggtt.c | 2 +- drivers/gpu/drm/xe/xe_hw_engine_group.c | 3 ++- drivers/gpu/drm/xe/xe_sriov.c | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index 2883b39c9b37..2ad633abf3b2 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -486,8 +486,8 @@ struct xe_device *xe_device_create(struct pci_dev *pdev, xe->preempt_fence_wq =3D alloc_ordered_workqueue("xe-preempt-fence-wq", WQ_MEM_RECLAIM); xe->ordered_wq =3D alloc_ordered_workqueue("xe-ordered-wq", 0); - xe->unordered_wq =3D alloc_workqueue("xe-unordered-wq", 0, 0); - xe->destroy_wq =3D alloc_workqueue("xe-destroy-wq", 0, 0); + xe->unordered_wq =3D alloc_workqueue("xe-unordered-wq", WQ_PERCPU, 0); + xe->destroy_wq =3D alloc_workqueue("xe-destroy-wq", WQ_PERCPU, 0); if (!xe->ordered_wq || !xe->unordered_wq || !xe->preempt_fence_wq || !xe->destroy_wq) { /* diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c index 7fdd0a97a628..84466be244ab 100644 --- a/drivers/gpu/drm/xe/xe_ggtt.c +++ b/drivers/gpu/drm/xe/xe_ggtt.c @@ -291,7 +291,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt) else ggtt->pt_ops =3D &xelp_pt_ops; =20 - ggtt->wq =3D alloc_workqueue("xe-ggtt-wq", 0, WQ_MEM_RECLAIM); + ggtt->wq =3D alloc_workqueue("xe-ggtt-wq", WQ_PERCPU, WQ_MEM_RECLAIM); __xe_ggtt_init_early(ggtt, xe_wopcm_size(xe)); =20 err =3D drmm_add_action_or_reset(&xe->drm, ggtt_fini_early, ggtt); diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group.c b/drivers/gpu/drm/xe/x= e_hw_engine_group.c index fa4db5f23342..8526addcdf42 100644 --- a/drivers/gpu/drm/xe/xe_hw_engine_group.c +++ b/drivers/gpu/drm/xe/xe_hw_engine_group.c @@ -48,7 +48,8 @@ hw_engine_group_alloc(struct xe_device *xe) if (!group) return ERR_PTR(-ENOMEM); =20 - group->resume_wq =3D alloc_workqueue("xe-resume-lr-jobs-wq", 0, 0); + group->resume_wq =3D alloc_workqueue("xe-resume-lr-jobs-wq", WQ_PERCPU, + 0); if (!group->resume_wq) return ERR_PTR(-ENOMEM); =20 diff --git a/drivers/gpu/drm/xe/xe_sriov.c b/drivers/gpu/drm/xe/xe_sriov.c index 7d2d6de2aabf..5c36da17f745 100644 --- a/drivers/gpu/drm/xe/xe_sriov.c +++ b/drivers/gpu/drm/xe/xe_sriov.c @@ -120,7 +120,7 @@ int xe_sriov_init(struct xe_device *xe) xe_sriov_vf_init_early(xe); =20 xe_assert(xe, !xe->sriov.wq); - xe->sriov.wq =3D alloc_workqueue("xe-sriov-wq", 0, 0); + xe->sriov.wq =3D alloc_workqueue("xe-sriov-wq", WQ_PERCPU, 0); if (!xe->sriov.wq) return -ENOMEM; =20 --=20 2.51.0