Received: by 2002:a05:6358:f14:b0:e5:3b68:ec04 with SMTP id b20csp3611891rwj; Mon, 19 Dec 2022 22:33:45 -0800 (PST) X-Google-Smtp-Source: AA0mqf6lTveE3rBLw+zxII8AqUeujU3DyF6VP9XSbiUf9kjmQtxcwlEeZbqn3+0k15ebcSc+CQpy X-Received: by 2002:a05:6402:501c:b0:463:a84c:6805 with SMTP id p28-20020a056402501c00b00463a84c6805mr41431283eda.15.1671518024809; Mon, 19 Dec 2022 22:33:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671518024; cv=none; d=google.com; s=arc-20160816; b=batQBCw3tM+pfWZT+9pdBIt97HZ/oZ+rSKGJj/T7DfXGdpg1CMRmteqJjXHZdrDNsA 0F14/Em+RXtX6zOyNBYVNk3G5/qN66Y4F+A0FNn2jf6HqaSud+KvM++I46QwEepZ8Gfb SijNWVNigpm7aP1cHU+pmeOtzprAeJMChB1uBcXi6mP1XqiBqGmq99cNFpVqMJTserFW qTIqqjbE3z0TXl08plvjSkEt6lKKGT1lKZLRBEHSUQUGXLV6mEV364YIM3+AicMZh7Fk hdC84qemDVD1gy+AuoJuwjiWfksq4Lyck7zr3eY3JEg1MbmykNxK3xQKxui4WwtbfFNo ZlGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=fk2PiE0CunQ+TDmLGNL5qpMQY7lBOmo7teDnAJQAAFs=; b=VsEaMRaEA2egOd6BUGA5tyfGpuWCP9wIvbbm8VsJmpEiSQz5FTu3l0raGYQbG5SSk3 BN8BSZhkWiqICaSfqqF8HAybhHQKkz/3JuXcK2/Sm83mgT3JlgQQFRDLFMXxTvjrmP3n zyV5lfBNcNO3sMo9PZjAFKTpDaxKiP0at8saQiDtA7f3HgYiEMlrrlhKN915re+X2aBG Es81DVwUQnkylw1ypfMeuJW0sE9nh1s1UKWR3Cxt+uHaDOwJhjS9VJ2bgmyO5AQl3gK0 6UMvbT4nlT8VQmQBS2Ap7ajkQZSfyRDBMimliuuENzDom608t+ySJZl1sD2jjwb7Likk Y5qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Zfiv7YnC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d36-20020a056402402400b00469a7893548si10638656eda.539.2022.12.19.22.33.28; Mon, 19 Dec 2022 22:33:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Zfiv7YnC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232995AbiLTG2t (ORCPT + 71 others); Tue, 20 Dec 2022 01:28:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229489AbiLTG2r (ORCPT ); Tue, 20 Dec 2022 01:28:47 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F09EB1028 for ; Mon, 19 Dec 2022 22:27:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671517678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fk2PiE0CunQ+TDmLGNL5qpMQY7lBOmo7teDnAJQAAFs=; b=Zfiv7YnCSmQJzoDxef26FP1rTzN4+0P+ZxlCEDpSbJ8wwMU6US7edDtCARKjwJ8eHRvtuU ddpZhupL3fUYIiPFV2PsRwa71GRzF69+sGIkEORA7k9q+SqhxyKkysijjM36CMwoPJ6529 TxkeT26sFbd2ms0c+68Lbxgse8TX1Oo= Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-112-tJ8ziIH6NjSDYqdApcaMTw-1; Tue, 20 Dec 2022 01:27:56 -0500 X-MC-Unique: tJ8ziIH6NjSDYqdApcaMTw-1 Received: by mail-ot1-f69.google.com with SMTP id e8-20020a9d63c8000000b006704cedcfe2so6672012otl.19 for ; Mon, 19 Dec 2022 22:27:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fk2PiE0CunQ+TDmLGNL5qpMQY7lBOmo7teDnAJQAAFs=; b=Sy4mttW0NA4+qDeg01z2mDE/2+w/nCnuZRYz/Pc0HBUY/wglw7P5wXdWtlgTAZUmD2 gAyObsOny1J3Kzhh4DBTucNCgHarZakJ7FdplnkY7CWCZPBMDVEncEEkk9+PyYx7h7sd 1EXrVZCYXx2WjTuFHch76MIwqNYxr1Nr4kMJws/JRT9hDOy7F2PX48+4q29gJvTFlWPM TvIfM4MWH3tGghwbzVTDzWWSnLUnANjrrSnhZTOtHpg8DJaHW0MikgJKNl7NZk1718TH fOyb4xEn4RIpGHN01bE0c9wtXfLmGabCnm8PCKdABAIc4xsrOTXF7zY/m+hAgE5CtOoZ op7g== X-Gm-Message-State: AFqh2kpPWtmNJTB9LKQr9mc5BoBnqaF/PdrN6s3NzE1FGj8QqPq64R+k l1As16tU0bd6uXK20j6TfYpmas1fcC9uIjyYKFNMLKohu3+RZYA2dv0TkD5RtAA+BnghKumX4Rm 9zv/eIiKtON3flpfQ7naqr+K7MhmmUVXnVk3Rtstj X-Received: by 2002:a05:6830:3359:b0:678:1eb4:3406 with SMTP id l25-20020a056830335900b006781eb43406mr524117ott.237.1671517675858; Mon, 19 Dec 2022 22:27:55 -0800 (PST) X-Received: by 2002:a05:6830:3359:b0:678:1eb4:3406 with SMTP id l25-20020a056830335900b006781eb43406mr524114ott.237.1671517675583; Mon, 19 Dec 2022 22:27:55 -0800 (PST) MIME-Version: 1.0 References: <20221205084127.535-1-xieyongji@bytedance.com> <20221205084127.535-6-xieyongji@bytedance.com> In-Reply-To: From: Jason Wang Date: Tue, 20 Dec 2022 14:27:44 +0800 Message-ID: Subject: Re: [PATCH v2 05/11] vduse: Introduce bound workqueue for irq injection To: Yongji Xie Cc: "Michael S. Tsirkin" , Thomas Gleixner , Christoph Hellwig , virtualization , linux-kernel Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Dec 19, 2022 at 1:04 PM Yongji Xie wrote: > > On Fri, Dec 16, 2022 at 12:02 PM Jason Wang wrote: > > > > On Mon, Dec 5, 2022 at 4:44 PM Xie Yongji wrote: > > > > > > This introduces a bound workqueue to support running > > > irq callback in a specified cpu. > > > > > > Signed-off-by: Xie Yongji > > > --- > > > drivers/vdpa/vdpa_user/vduse_dev.c | 29 ++++++++++++++++++++++------- > > > 1 file changed, 22 insertions(+), 7 deletions(-) > > > > > > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > > > index 37809bfcb7ef..d126f3e32a20 100644 > > > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > > > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > > > @@ -57,6 +57,7 @@ struct vduse_virtqueue { > > > struct vdpa_callback cb; > > > struct work_struct inject; > > > struct work_struct kick; > > > + int irq_effective_cpu; > > > > I wonder why it's a cpu number instead of a cpumask. The latter seems > > more flexible, e.g when using NUMA. > > > > This variable represents the CPU that runs the interrupt callback > rather than CPU affinity. Ok, but for some reason it only gets updated when a new affinity is set? (Btw, I don't see how the code deals with cpu hotplug, do we need cpuhot notifier?) Thanks > > > > }; > > > > > > struct vduse_dev; > > > @@ -128,6 +129,7 @@ static struct class *vduse_class; > > > static struct cdev vduse_ctrl_cdev; > > > static struct cdev vduse_cdev; > > > static struct workqueue_struct *vduse_irq_wq; > > > +static struct workqueue_struct *vduse_irq_bound_wq; > > > > > > static u32 allowed_device_id[] = { > > > VIRTIO_ID_BLOCK, > > > @@ -917,7 +919,8 @@ static void vduse_vq_irq_inject(struct work_struct *work) > > > } > > > > > > static int vduse_dev_queue_irq_work(struct vduse_dev *dev, > > > - struct work_struct *irq_work) > > > + struct work_struct *irq_work, > > > + int irq_effective_cpu) > > > { > > > int ret = -EINVAL; > > > > > > @@ -926,7 +929,11 @@ static int vduse_dev_queue_irq_work(struct vduse_dev *dev, > > > goto unlock; > > > > > > ret = 0; > > > - queue_work(vduse_irq_wq, irq_work); > > > + if (irq_effective_cpu == -1) > > > > Is it better to have a macro for this magic number? > > > > It makes sense to me. > > Thanks, > Yongji >