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 D2DF545AE1; Tue, 8 Oct 2024 07:18:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2F8C340657; Tue, 8 Oct 2024 07:18:16 +0200 (CEST) Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by mails.dpdk.org (Postfix) with ESMTP id BD32940653 for ; Tue, 8 Oct 2024 07:18:14 +0200 (CEST) Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-4584a719ff5so44989551cf.0 for ; Mon, 07 Oct 2024 22:18:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728364694; x=1728969494; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=BZjg0bZPYqVXScSM/OnegjE8RdGheaGcm7ZH+M/7xrI=; b=TSsw2BC40sFQIPtPjpCwa7mZbxqSbx89tXubOEgcsdT765k53flj/S8JJ72UbY9OTO cBbS+3p3sKOSyhjDV2gJZcL3lI+NzyLyXNbiZ5QwLXEiqd3Pk7//6Ziee1OMGVI+Ry4Z fB8KHoHvpp9yWvJVGaNbgAbcAJ5ll8S3L1WKp7PckMuufzx73EveBiI+CANnTTuvPywR OWIEJl+9W4l1WulU/QjNH3CnremJXuoMnu1Lp05ZU+NefxiyRv7uTV+FOiOBXMMVarZL EMoJvCjFxhVXOCf18Al5an3Qkdwzn+Gd8BOjHJYYcWMoUNgUib8Kjl7trprbWrvMoKmb oPOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728364694; x=1728969494; h=content-transfer-encoding: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=BZjg0bZPYqVXScSM/OnegjE8RdGheaGcm7ZH+M/7xrI=; b=sMHArE5tuqDJlrDNdbs8RjXVVu+HAmx0NsSX+aaSmgbSLmA8lO1KMpew2UDOsz2djU RYDFGCG1jrIZ53BjeHp2HiG0YwORJf7iFPXprBaWvGh38rjRSs4gbwsQBvtHgWznE6Vl gX1iPuSSelysKqrikHnBe3TnVsYifmhJjTzuOu5ZMTRZ8itRcl84fpVd9Ec9+SpjKd71 qumvYx5D6eLd9r/JqUUA9eEQpP0C8FWrJPJLQd6uMb4ehQWuKpMnwCaBZsxIM0rwpCPp OSNN6r2nPVSdO3011pn7ej5C9DHXKVHfTuy68/nv4qpxfhWWtMkCmwqXUSMsCyO//7PW P9yA== X-Forwarded-Encrypted: i=1; AJvYcCWYJHVSKtnwZ3BEmjZXISclqf1lweMZpnfaMbDkc9jhX8qzQKWAIamW2cuFW9HG7ZBN8iU=@dpdk.org X-Gm-Message-State: AOJu0YzQMg6bGbWBzS8h7G/1c616939ODBHpmf/2vs9gdbAH42cpw9IB rIvnCRMB1Acri0HV6oH9nkTK0V+2BQmy2upAkQSk9BBL44c6QuZE39YqHEeV7AUl7er0FMIhiPO HzUTZE49gS9vns1GH9oUC6KgcGUs= X-Google-Smtp-Source: AGHT+IFGfiRgF3LMWfJUeeK5SPyxkNA74lk+f2o28PwgEYWcfhrVLjd0644OrJOZ0YqriYZVCeC5pbzOKsqHkqp0vJ0= X-Received: by 2002:ac8:5f0a:0:b0:458:429a:4d76 with SMTP id d75a77b69052e-45d9ba63b30mr186885631cf.28.1728364693908; Mon, 07 Oct 2024 22:18:13 -0700 (PDT) MIME-Version: 1.0 References: <20241006170608.14182-1-pbhagavatula@marvell.com> <20241007130949.15940-1-pbhagavatula@marvell.com> In-Reply-To: <20241007130949.15940-1-pbhagavatula@marvell.com> From: Jerin Jacob Date: Tue, 8 Oct 2024 10:47:47 +0530 Message-ID: Subject: Re: [PATCH v9 0/6] Introduce event pre-scheduling To: pbhagavatula@marvell.com Cc: jerinj@marvell.com, sthotton@marvell.com, abdullah.sevincer@intel.com, hemant.agrawal@nxp.com, sachin.saxena@oss.nxp.com, harry.van.haaren@intel.com, mattias.ronnblom@ericsson.com, liangma@liangbit.com, peter.mccarthy@intel.com, stephen@networkplumber.org, dev@dpdk.org 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 Tue, Oct 8, 2024 at 3:14=E2=80=AFAM wrote: > > From: Pavan Nikhilesh > > Event pre-scheduling improves scheduling performance by assigning events > to event ports in advance when dequeues are issued. > This series introduces various types and levels of pre-scheduling to the > eventdev library. > > pre-scheduling Types: > * RTE_EVENT_PRESCHEDULE_NONE: No pre-scheduling. > * RTE_EVENT_PRESCHEDULE: Always issue a pre-schedule when dequeue is iss= ued. > * RTE_EVENT_PRESCHEDULE_ADAPTIVE: Delay issuing pre-schedule until there > are no forward progress constraints with the held flow contexts. > > pre-scheduling Levels: > * Event Device Level Pre-scheduling: Pre-scheduling can be enabled or di= sabled at the > event device during configuration. Event devices can indicate pre-sche= duling > capabilities using `RTE_EVENT_DEV_CAP_EVENT_PRESCHEDULE` and > `RTE_EVENT_DEV_CAP_EVENT_PRESCHEDULE_ADAPTIVE` via the event device inf= o > function `info.event_dev_cap`. > * Event Port Level Prefetch: Pre-scheduling can be selectively enabled o= r disabled > at the event port during runtime. Event devices can indicate this capa= bility > using `RTE_EVENT_PORT_CAP_PER_PORT_PRESCHEDULE` via the event device i= nfo > function `info.event_port_cap`. > * Application Controlled Prefetch Hint: Applications can provide hints t= o the > event device to start pre-scheduling events using the new API > `rte_event_port_pre-schedule`. Event devices can indicate this capabil= ities using > `RTE_EVENT_DEV_CAP_PRESCHEDULE_EXPLICIT` via the event device info fun= ction > `info.event_dev_cap`. > > The rte_event_dequeue_burst operation initiates the pre-schedule operatio= n, which > completes in parallel without affecting the flow context of the dequeued = events and > dequeue latency. On the next dequeue operation, the pre-scheduleed events= are > dequeued, and pre-schedule operation is initiated again. > > In the case of application-controlled pre-schedule hints, the currently h= eld flow > contexts, if any, are not affected by the pre-schedule operation. On the = next > dequeue operation, the pre-scheduleed events are returned, but pre-schedu= le is not > initiated again until the application provides the hint again. If pre-sch= eduling > is already enabled at the event device level or event port level, the hin= t is ignored. > > v2 Changes: > - s/prefetch/pre-schedule (Mattias). > v3 Changes: > - Add CNXK preschedule implementation. > - Update test-eventdev to use prescheduling. > - Update examples to use prescheduling. > v4 Changes: > - Fix compilation. > v5 Changes: > - Update ABI changes > - s/RTE_EVENT_DEV_PRESCHEDULE/RTE_EVENT_PRESCHEDULE/ > - s/RTE_EVENT_DEV_CAP_SW_PRESCHEDULE/RTE_EVENT_DEV_CAP_PRESCHEDULE_EXPLIC= IT/ > - s/RTE_EVENT_PORT_CAP_EVENT_PER_PORT_PRESCHEDULE/RTE_EVENT_PORT_CAP_PER_= PORT_PRESCHEDULE > - Various documentation fixes and updates. > v6 Changes: > - Mark new APIs as experimental (Stephen). > v7 Changes: > - Use correct patchset for rebase. > v8 Changes: > - fix checkpatch issues. > v9 Changes: > - Rebase update capability bits, fix release notes format. Series-Acked-by: Jerin Jacob Series applied to dpdk-next-net-eventdev/for-main. Thanks