From patchwork Fri Mar 3 21:34:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fenghua Yu X-Patchwork-Id: 64086 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp640372wrd; Fri, 3 Mar 2023 13:42:13 -0800 (PST) X-Google-Smtp-Source: AK7set8vKbqTuEWiThn+p7zZ/i+q+RDSkjVibEawde4VEZ0yi9jLc3G4YIY6sM0dhQVHkOrjWPzB X-Received: by 2002:a17:902:f548:b0:19c:947c:8819 with SMTP id h8-20020a170902f54800b0019c947c8819mr4273636plf.59.1677879732761; Fri, 03 Mar 2023 13:42:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677879732; cv=none; d=google.com; s=arc-20160816; b=kwqx4QYWfW0yuEenr0iMLROHjwSQAbsAG0PGO1Sc5CNqBALuVNiduo7iScyZDNwwM6 2eiQV4bpSbUFbswPlLC2UYMfXsfZjiEdso8JhX3FNtLDm6uOSzmy2ZSXbH54fM9h+kfL tuw77HebtyahrwO9q1gvn+0erL0e8YVM+TYsynRBqwx8T0N7Eop7fr/uIpR0dsjshonC eUQogA1NDR/JUN4D9hAnNBfX6MSHOymWVTdMPIOxlrjrsNBzMt5pIxI5O+YjG2UoUqPv OXdW0KvmwXlTsNXoHp0rBWMFqrbIroHEApXocXotDfZ+XE873FFALIyMOGlO13HmZihD lWcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=y8SnDehiAj0kRxpyljn6Dpv4p1l1gdAR++KKenaBurQ=; b=AW3gKJoz8Q4n9oH0tCLdcG1K1sHTncaTN5tKPpfV1gh0XBHf8otfzXPYQHOD2E5V5s Ex6QJpm267z0KJe5LtQpmhIMay4SABT3r9Q0e1RIvmAKg7tDXp8UtOQz7H0d5FxXw+Hg FHnmSyH4pNfy/16i/lc7lii1UoDMQOLF40IOt21XXafOL4Xsq4WpzsNDkiyR7ophW54Y 60O+LhFFlLB9U5MwDqEQuLKG2UHNYgqBAiqgG7rowfUL6TtQPwl+DVQQrcFNCzaOIqi8 MCh8AZaGxxafO6klhQ2wBIFADqfGV11LcvoseBgQMJfeRAw3Br8MOfQtzGGJ803q3/Uy Qcpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=J7pP2euV; 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=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jh21-20020a170903329500b0019b7766afdfsi2925233plb.626.2023.03.03.13.42.00; Fri, 03 Mar 2023 13:42:12 -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=@intel.com header.s=Intel header.b=J7pP2euV; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231830AbjCCVe2 (ORCPT + 99 others); Fri, 3 Mar 2023 16:34:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231795AbjCCVeX (ORCPT ); Fri, 3 Mar 2023 16:34:23 -0500 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D83471027A; Fri, 3 Mar 2023 13:34:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677879261; x=1709415261; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UJz0pCiqK7oMKPy2pp6vBg4X2Osf4pLe4Lvm2wE5zaA=; b=J7pP2euV83o+8BV2QpNzhbRLhOUGLdRZDgyWFZfVwfBKbySHAbnSVDYZ FWozGu08KrvdK3TPxHx/0v7Aj1IqS9itYC36B2kFs/f0H5ppWa7JCFKTk 7GIGcDXqD+t106fd3ytNm7F/LZKF+aO5wSNKygAxodJ72cF05jqVx3U9o 9r8guOy12CvFjXwiU4Zj0s+9gcWsUMNBzDOrjAkr5NOovzpWhiTwCuOoD M+xzTrG9HFNg998N6l89sFp9h7MCHKoA+TIjfOlLVOyKVuAe36pooIgjm QBM9qtp0CQFuNzc9SICNsrEWJOsFaZ4xxMzCBTipQlYjBdhXwmyvlELxF A==; X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="399976469" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="399976469" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2023 13:34:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10638"; a="675508701" X-IronPort-AV: E=Sophos;i="5.98,231,1673942400"; d="scan'208";a="675508701" Received: from fyu1.sc.intel.com ([172.25.103.126]) by orsmga002.jf.intel.com with ESMTP; 03 Mar 2023 13:34:19 -0800 From: Fenghua Yu To: "Vinod Koul" , "Dave Jiang" Cc: dmaengine@vger.kernel.org, "linux-kernel" , Fenghua Yu Subject: [PATCH v2 2/3] dmaengine: idxd: Add descriptor definitions for DIX generate operation Date: Fri, 3 Mar 2023 13:34:12 -0800 Message-Id: <20230303213413.3357431-3-fenghua.yu@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230303213413.3357431-1-fenghua.yu@intel.com> References: <20230303213413.3357431-1-fenghua.yu@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759384419066858808?= X-GMAIL-MSGID: =?utf-8?q?1759384419066858808?= The Data Integrity Extension (DIX) generate operation (0x17) computes the Data Integrity Field (DIF) on the source data and writes only the computed DIF for each source block to the PI destination address. Add descriptor definitions for this operation so that user can use DSA to accelerate DIX generate operation. Signed-off-by: Fenghua Yu Reviewed-by: Dave Jiang --- include/uapi/linux/idxd.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/uapi/linux/idxd.h b/include/uapi/linux/idxd.h index c43d7df5fc15..4c12e93a6aa6 100644 --- a/include/uapi/linux/idxd.h +++ b/include/uapi/linux/idxd.h @@ -78,6 +78,7 @@ enum dsa_opcode { DSA_OPCODE_DIF_INS, DSA_OPCODE_DIF_STRP, DSA_OPCODE_DIF_UPDT, + DSA_OPCODE_DIX_GEN = 0x17, DSA_OPCODE_CFLUSH = 0x20, }; @@ -248,6 +249,17 @@ struct dsa_hw_desc { /* Fill */ uint64_t pattern_upper; + /* DIX generate */ + struct { + uint8_t dix_gen_res; + uint8_t dest_dif_flags; + uint8_t dif_flags; + uint8_t dix_gen_res2[13]; + uint32_t ref_tag_seed; + uint16_t app_tag_mask; + uint16_t app_tag_seed; + }; + uint8_t op_specific[24]; }; } __attribute__((packed)); @@ -326,6 +338,14 @@ struct dsa_completion_record { uint16_t dif_upd_dest_app_tag; }; + /* DIX generate */ + struct { + uint64_t dix_gen_res; + uint32_t dix_ref_tag; + uint16_t dix_app_tag_mask; + uint16_t dix_app_tag; + }; + uint8_t op_specific[16]; }; } __attribute__((packed));