From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7790E42C01; Thu, 1 Jun 2023 10:49:59 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6775842C4D; Thu, 1 Jun 2023 10:49:59 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 8B5F74161A for ; Thu, 1 Jun 2023 10:49:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1685609398; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UCyF5akkWGStFleDQOTpnUbmBg90TSm7WZht5xbp5nA=; b=Nju6bpe/3Inp0q78aYLSWvZGwwJtO7US4v6A9FO6esjJLkILGDMRsPKOQqzqdAA0k7B3Vn ecYexGaXU6zrTixrHIkZBXaeLztDmrrJ00c0B3n0gp4Cg0VBGvtUXhfOqgEf44IuYUImjk rsT9JNolfXhumT4KP728lxuqyaPenRA= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-554-pPOVkGWdPZeW3ujhS-f0Sw-1; Thu, 01 Jun 2023 04:49:56 -0400 X-MC-Unique: pPOVkGWdPZeW3ujhS-f0Sw-1 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-96fe843f61eso40204066b.2 for ; Thu, 01 Jun 2023 01:49:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685609395; x=1688201395; 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=1xELuTX50bvTYoemll8Pe6L2wvD2RkxB0a3rSsXaPfU=; b=b9jUP/uumQlfh53SAlu2yYaTRLkLuL7HpS64TZud9eijWQ9CD+NxL4d/6PN/S/Mruo 9U8p3p0EaE0WRLZOMbmBhc38QyHoEy4AZU2IOiHyl5lUnwqKhz44FWZRVzo669syWA+s iN9jQ47FpmqZjm9N/CK2eX0N0pdmzKM3U4YTjvYS5tDYpbfZaq+UvqBful/D2ZUGHJ1E umvdT8WTLRFqV2rWZ+Rp+fxdK9cOZERjgtEeOtZx29lRu1eZr4hkC2SIn/rjgS1D//6z UjjH09J09hRjdQ8qogtqVgvQEX6i9l2Sz6qV/RCbV6iEGXy3fu9HOfrNY9P0j6tfAn79 ZsMg== X-Gm-Message-State: AC+VfDzUVR3TJ6+MNvViyZi5cRFePKOk/IVFSbJZzz9eOslIl6raP0C4 4WJWl6F+e7AeNpqyx81g2itnAxUBhmEZCHcVwj9YWhaV6q83UDCAXvkd9KW+Zs5pgo0Wj78xpV9 Eroc= X-Received: by 2002:a17:907:160d:b0:973:9494:4e5c with SMTP id hb13-20020a170907160d00b0097394944e5cmr5045105ejc.65.1685609395540; Thu, 01 Jun 2023 01:49:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6G6JpkTp0pVDYk8bfnfUMHw+TUMUUoy/oadkJmWQMENWwrVa03JgyaIb4m36eggW0ya2E22w== X-Received: by 2002:a17:907:160d:b0:973:9494:4e5c with SMTP id hb13-20020a170907160d00b0097394944e5cmr5045095ejc.65.1685609395166; Thu, 01 Jun 2023 01:49:55 -0700 (PDT) Received: from [10.39.192.59] (5920ab7b.static.cust.trined.nl. [89.32.171.123]) by smtp.gmail.com with ESMTPSA id u24-20020a1709064ad800b0096f67b55b0csm10144883ejt.115.2023.06.01.01.49.53 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Jun 2023 01:49:54 -0700 (PDT) From: Eelco Chaudron To: Maxime Coquelin Cc: "Xia, Chenbo" , Thomas Monjalon , david.marchand@redhat.com, dev@dpdk.org Subject: Re: [PATCH v3 4/4] vhost: add device op to offload the interrupt kick Date: Thu, 01 Jun 2023 10:49:52 +0200 X-Mailer: MailMate (1.14r5964) Message-ID: <59B251C3-BC62-43E2-916D-45708431D179@redhat.com> In-Reply-To: <16467869-9918-2526-1435-acf4615f9ba3@redhat.com> References: <168431450017.558450.16680518469610688737.stgit@ebuild.local> <168431455219.558450.14986601389394385835.stgit@ebuild.local> <49ec9930-66b8-fc95-72ad-5cb012ed8635@redhat.com> <16690234.Ash8RoxBsO@thomas> <7f1be920-0318-ae7f-4c2e-cc08b2083f7c@redhat.com> <11c40eca-5847-dfb4-470d-7da86fe7e51e@redhat.com> <16467869-9918-2526-1435-acf4615f9ba3@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 1 Jun 2023, at 10:29, Maxime Coquelin wrote: > On 6/1/23 10:15, Eelco Chaudron wrote: >> >> >> On 1 Jun 2023, at 4:18, Xia, Chenbo wrote: >> >>>> -----Original Message----- >>>> From: Maxime Coquelin >>>> Sent: Wednesday, May 31, 2023 5:29 PM >>>> To: Xia, Chenbo ; Thomas Monjalon >>>> ; Eelco Chaudron ; >>>> david.marchand@redhat.com >>>> Cc: dev@dpdk.org >>>> Subject: Re: [PATCH v3 4/4] vhost: add device op to offload the interr= upt >>>> kick >>>> >>>> >>>> >>>> On 5/31/23 08:19, Xia, Chenbo wrote: >>>>>> -----Original Message----- >>>>>> From: Maxime Coquelin >>>>>> Sent: Tuesday, May 30, 2023 11:17 PM >>>>>> To: Thomas Monjalon ; Eelco Chaudron >>>>>> ; Xia, Chenbo ; >>>>>> david.marchand@redhat.com >>>>>> Cc: dev@dpdk.org >>>>>> Subject: Re: [PATCH v3 4/4] vhost: add device op to offload the >>>> interrupt >>>>>> kick >>>>>> >>>>>> >>>>>> >>>>>> On 5/30/23 15:16, Thomas Monjalon wrote: >>>>>>> 30/05/2023 15:02, Maxime Coquelin: >>>>>>>> >>>>>>>> On 5/17/23 11:09, Eelco Chaudron wrote: >>>>>>>>> This patch adds an operation callback which gets called every tim= e >>>> the >>>>>>>>> library wants to call eventfd_write(). This eventfd_write() call >>>> could >>>>>>>>> result in a system call, which could potentially block the PMD >>>> thread. >>>>>>>>> >>>>>>>>> The callback function can decide whether it's ok to handle the >>>>>>>>> eventfd_write() now or have the newly introduced function, >>>>>>>>> rte_vhost_notify_guest(), called at a later time. >>>>>>>>> >>>>>>>>> This can be used by 3rd party applications, like OVS, to avoid >>>> system >>>>>>>>> calls being called as part of the PMD threads. >>>>>>>>> >>>>>>>>> Signed-off-by: Eelco Chaudron >>>>>>>>> --- >>>>>>>>> lib/vhost/meson.build | 2 ++ >>>>>>>>> lib/vhost/rte_vhost.h | 23 +++++++++++++++++- >>>>>>>>> lib/vhost/socket.c | 63 >>>>>> ++++++++++++++++++++++++++++++++++++++++++++++--- >>>>>>>>> lib/vhost/version.map | 9 +++++++ >>>>>>>>> lib/vhost/vhost.c | 38 ++++++++++++++++++++++++++++++ >>>>>>>>> lib/vhost/vhost.h | 58 +++++++++++++++++++++++++++++++= +--- >>>> --- >>>>>> ------- >>>>>>>>> 6 files changed, 171 insertions(+), 22 deletions(-) >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> The patch looks good to me, but that's the first time we use funct= ion >>>>>>>> versioning in Vhost library, so I'd like another pair of eyes to b= e >>>>>> sure >>>>>>>> I don't miss anything. >>>>>>>> >>>>>>>> Reviewed-by: Maxime Coquelin >>>>>>>> >>>>>>>> Thomas, do we need to mention it somewhere in the release note? >>>>>>> >>>>>>> If compatibility is kept, I think we don't need to mention it. >>>>>>> >>>>>>> >>>>>> >>>>>> Thanks Thomas for the information. >>>>>> >>>>>> Maxime >>>>> >>>>> About release note, except the versioning, there is also one new API >>>> introduced >>>>> in this patch, so we still need to mention this in release note >>>> >>>> Right, good catch. >>>> Eelco, let me know what you would put, I'll add it while applying (No >>>> need for a new revision). >>> >>> Btw, the vhost_lib.rst also needs a new item.. >> >> What about the following? >> >> diff --git a/doc/guides/prog_guide/vhost_lib.rst b/doc/guides/prog_guide= /vhost_lib.rst >> index e8bb8c9b7b..0f964d7a4a 100644 >> --- a/doc/guides/prog_guide/vhost_lib.rst >> +++ b/doc/guides/prog_guide/vhost_lib.rst >> @@ -334,6 +334,11 @@ The following is an overview of some key Vhost API = functions: >> Clean DMA vChannel finished to use. After this function is called, >> the specified DMA vChannel should no longer be used by the Vhost lib= rary. >> >> +* ``rte_vhost_notify_guest(int vid, uint16_t queue_id)`` >> + >> + Inject the offloaded interrupt received by the 'guest_notify' callbac= k, >> + into the vhost device's queue. >> + >> Vhost-user Implementations >> -------------------------- >> >> Maxime do you want to add it, or do you want a new rev? > > That's fine, I just added it now :) Can you check the next-virtio main > branch and confirm all is OK for your series? > > https://git.dpdk.org/next/dpdk-next-virtio/log/ > One small spelling issue, the rest looks good: +* **Added callback API support for interrupt handling in the vhost library= .** + + A new callback, guest_notify, is introduced that can be used to handle t= he + interrupt kick outside of the datapath fast path. In addition, a new API= , + rte_vhost_notify_guest(), is added to raise the interrupt outside of the + past path. Last sentence spells =E2=80=98past path=E2=80=99 instead of =E2=80=98fast p= ath=E2=80=99. > Thanks, > Maxime > >> >>> Thanks, >>> Chenbo >>> >>>> >>>> Thanks, >>>> Maxime >>>> >>>>> Thanks, >>>>> Chenbo >>