From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id D8A70C0032 for ; Wed, 2 Aug 2023 15:29:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id C002440AFC for ; Wed, 2 Aug 2023 15:29:05 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org C002440AFC Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=ci7qry5G X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -3.607 X-Spam-Level: X-Spam-Status: No, score=-3.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cXNiZfwUWHXb for ; Wed, 2 Aug 2023 15:29:00 +0000 (UTC) Received: from mgamail.intel.com (unknown [134.134.136.20]) by smtp2.osuosl.org (Postfix) with ESMTPS id 64142414D6 for ; Wed, 2 Aug 2023 15:29:00 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 64142414D6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690990140; x=1722526140; h=message-id:date:subject:to:references:from:in-reply-to: content-transfer-encoding:mime-version; bh=HbMLooqwvyAlumo/41jWMIyiEtJLdJznr/wocrISRhc=; b=ci7qry5Go+01wgHUrKcIwUOlIvUYIjxnw0uQmTjeahdNCz2aG4rIRuVF O2m7VeJzCgOWKZJXx0eGLOntfZi8/Kr/bi232u1KQ+NvMfVvBEdy6Qly6 qLppDlk+x2Et4mwhM10eIOGm7b2xZAH0dMK6737isWEp10dM4H25CJTEL KOrX5wgHKqT7MpvrmPnBFjUyrTlvi+yDamZZOKiyFbUaOgHGEXQKuL6dh c/vbzR3TKe4AE4g/dU10lb/mTv7B3kMqg4qcESYXDkaQ/kjh6lAwHB+8n 2cerDXhLptNxJ4JsMrCMgNmOmTm21kSJsP2pP4rN61jwwa5k0cE94AvAf g==; X-IronPort-AV: E=McAfee;i="6600,9927,10790"; a="359653861" X-IronPort-AV: E=Sophos;i="6.01,249,1684825200"; d="scan'208";a="359653861" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Aug 2023 08:28:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10790"; a="799148890" X-IronPort-AV: E=Sophos;i="6.01,249,1684825200"; d="scan'208";a="799148890" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP; 02 Aug 2023 08:28:59 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 2 Aug 2023 08:28:58 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 2 Aug 2023 08:28:58 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Wed, 2 Aug 2023 08:28:58 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Wed, 2 Aug 2023 08:28:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EwAiTZ24vdN6i8Si3wJwEb8jN1ZPkuaLj4b956h6a2t5tsuSZ1pJQoZ2j3X9i9ERIUhXPQrGK/Vd2kmx7qPlGkII5wPIoPrjpxr60MBoiUro6mlEpTdelqqnCCkvDpZrCiLy3+A9F9OK12K2ZcHuDzhktzD/DtwALmqRNPDHS2gDT2nUOrUp69Bl2xOp02sdEVc/MAyvI0y1qd4WNIZviZ/4D9h1ya/WAtK8wHFrYQG0t6kbNojSziI4GUYdeAYoXmjZ6PYj2IpHkHwpiUY2VMjVs4HozgTnnslhJAOHehl44IrCMiz6p7P85UiTrwc9pWg/1GBfGywvPjQvzJrcNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6oVfOnqo8dduJyyzS3BgoQqoXbr3xNj4qWHYjjkL/VM=; b=iC+0TvBl6OcubJspkoDaozh34XUf6gec1k5RUPNdF62CtO5yPc44xBdxGll0iAnn5A0wr1x1RfT748GOLvH2ytxiaz7Vw/VfrmIgofqjJxpT8TDNmhzV6MEZRsmT7UruYuynH71SctMERP75FmykUmQgI+KHqrbxSNaCW4QMZ3eXVqFKlYHbnB93O50VEpe144H5yDMOfeyEWpv8a06enVfljQgLUQ8r7kbe4q+Yr8p/dORNorquiNg+SLvFchPrAVga1QzAd0F796mnuJ/mK9CAMu41Xqo6AOVFoeS5/aVyScfA2FYfrD7vrUgBbDP/GGc3sd1895c1aG1+KU7iuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from PH7PR11MB5984.namprd11.prod.outlook.com (2603:10b6:510:1e3::15) by MN2PR11MB4744.namprd11.prod.outlook.com (2603:10b6:208:263::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.19; Wed, 2 Aug 2023 15:28:51 +0000 Received: from PH7PR11MB5984.namprd11.prod.outlook.com ([fe80::406a:8bd7:8d67:7efb]) by PH7PR11MB5984.namprd11.prod.outlook.com ([fe80::406a:8bd7:8d67:7efb%6]) with mapi id 15.20.6652.019; Wed, 2 Aug 2023 15:28:50 +0000 Message-ID: Date: Wed, 2 Aug 2023 08:28:46 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Betterbird/102.13.0 To: Fenghua Yu , , Ramesh Thomas , Tony Luck References: <20230801215232.4001749-1-fenghua.yu@intel.com> <20230801215232.4001749-3-fenghua.yu@intel.com> <27ab7ee4-c434-3be3-469b-48a0e52e24ef@intel.com> Content-Language: en-US From: Dave Jiang In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: BYAPR05CA0004.namprd05.prod.outlook.com (2603:10b6:a03:c0::17) To PH7PR11MB5984.namprd11.prod.outlook.com (2603:10b6:510:1e3::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR11MB5984:EE_|MN2PR11MB4744:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f7a1b48-db07-439f-4e4e-08db936d2c22 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LeDwMxRd3koSnXMYCTurvHjwz2vMazwGhNhDhOT3hldPvHMVPm5uU3sngoqDDu1Zqns1ebog6/ueUvlcF9v1KYs38QcikOQLKB2FbTS5jAorloyxLWgFDBjywWZgql9VlG0IXOdRpTiSZ5QKPq6jX4xRDy2+7fJqLSIIqnwiIC9urwVRDW2CZ6EKYuiA6RZBv2oZtnWCPYHDT2GqqwNG5EGRy+B5ldoyDV0MqnlL4od9cgNl11mIT3boPYjGyZo96wDqVLf++oWZgN5mHMSlwzhjZzu2J4IlVxofZ6618f7kuwOaVazq4kMR4MNuRVeiSRzVZPLj2T4N63KkDqsyvElXF1eJyzx0tXBoaeSD0/wHJ8kfziMcFeLhG6JvK/LM8OnlqhXMVKlWddkvHnNOc0W5dX8NVA+me76ULOOW17rvN/RjrGHxgZxDdH/hS1q65rJwPoK15NPw/mn88R7/cHVcluJ3GgcUbSKQMnBTg1d2H3oACs9NFZOPGMm4e3M7aUIj1b4VbIE8/taMZ2UmyjgfMPjvQDb7rNn8Og3aRhMNtuxmjwJcz5MUKZ9WoN68UXhH89TTyp6r7bSC1R97EnojsYjIJvMhP36Gj0u20Is4a9PPjNNjz355WmPvA1uFQKb+a81bTxnlQEukikkTIQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB5984.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(136003)(346002)(39860400002)(376002)(366004)(451199021)(44832011)(66556008)(66476007)(6636002)(66946007)(2906002)(38100700002)(2616005)(82960400001)(53546011)(186003)(6506007)(26005)(83380400001)(110136005)(86362001)(31696002)(36756003)(478600001)(6512007)(6666004)(6486002)(41300700001)(8936002)(8676002)(5660300002)(31686004)(316002)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dEZ2d0R1VjJ0UlpnZWxEU0ZuOTU5VUtlcjlnbGc5LzFBSUJEZm5ZbFQwRUg5?= =?utf-8?B?MDk3WFUxQTkzY3Vaam56d2VySW96aTRQMHA5bnNkajhGV000MnQ5VGE4Y01h?= =?utf-8?B?ZG9nUWtYOVlDZVhjZ1JzanNMdldNdEdtMFV3SGx4cXNlUXpvSGlFd2x3VXRM?= =?utf-8?B?RTJqTkVlRWJVM1BrVEtJVGYvMmswNURsckhmVmpDTUNaZFVQNkY1aGR4U0NB?= =?utf-8?B?MjdxL3hDaGVFVFZ2UHE5OEVlYThUQmlnekQrTG9CQ0s4TEhkelJwQVFNWUQ3?= =?utf-8?B?YTQ3d2pOQXZGV2RNQmROVnlTc21oTU1UNS9ZRVFOYzlGWlIwMGJZOW1RclRp?= =?utf-8?B?dWE2Qk9PeXJCWmxDTnJoM2MyclBVSzQ4N0hHKzZ5Y2FxODY1Zll4d3lGVlI1?= =?utf-8?B?M2Y1Q0MwUDlQOXNxM0xEMkNlMStRVms3eG1NRXAvQ2dzcHZOemdHSGtpL3V0?= =?utf-8?B?eUtJNU5kYVNjeW4rN0xKbXZpSjR3cXo1a2d5OEd0R3RMWlBrTG9rTW5xeG1X?= =?utf-8?B?c2xVUXhmdDY5TkpVTGp0V3lUV2lNbVVJMlFVQ0xldUdlTEVublMvWVBnMlNB?= =?utf-8?B?dDl0djBTNU55b3ZvdnFlZlhwdVh4WFZhWVd4OWROZWZ2WEVkWmhOMHF2WWlj?= =?utf-8?B?N3RNSFh0NnJMQWRWN3BHcmcrVVdZaTBvQXBpWGtsbUg4S1BYUFRIMmFaVzFR?= =?utf-8?B?ZklucGVRNlh2TnJCaGxWQTZKb1pUMUNXUXA2WGVvRzBMWXJvZ3VIdDRUMmZ1?= =?utf-8?B?SWVjSnRSSXF3SVRMVDVMaitOWWVEZHFUNTdQMGZYUzJienhwbkdVa3VxRWF1?= =?utf-8?B?RExuMFNub1lVVm45aCtMR0ZBYitCSTZMejBpSjRrYjRJdHl0MjNLNXQrT2xR?= =?utf-8?B?QTdCRHFoMU1JU3pWOXlaWXkraDhQbklCV0ovbzhGcUUrZXUwcGMzMzVVUW9j?= =?utf-8?B?dGhjN3RBQU5pZHFrZk9qUjVHb1NuYk10eVJBVFJ4aUNBTzNOa3NBclNsNWR4?= =?utf-8?B?UDBhckVnRTJOZ0lMa3hoNUZBc1dsdDF1eTA3bWJ0Y2dHOXdPY000cVBIMldO?= =?utf-8?B?Q1laM3k2VkQ3RTMrK2tlYnY2WHdnOWtnMm9YSnRIM25XQ1NSMEMyOE9uUVFy?= =?utf-8?B?dStiTDV3c1V2Qzd3Zi95cExBUTB5Y2JBWXhtVzcwRDgyMk5LRXAwTlRTWmdH?= =?utf-8?B?UlJVZ3ZXUVhmNTNTeXl2YjNQdWg3QXN4Sk5VRmp6RjVCcmFnR2kyUjVqcW5h?= =?utf-8?B?UTlmZGpjL0RKdWErWFBHTSs0Skg4VGtJOUtUYitpRmQ3d3dHV3VoWVB4OEs4?= =?utf-8?B?ZUhjMU05QUYwSFVJeElRWTNtTDIrY0ZwY2lwSTdBaHU2TGN5L0hFRTN6SWtH?= =?utf-8?B?a0UzS0h0MDJKaTVKd1g4cWlMSmtmV2p5bnF6QitVcTRYeVlpQW5aZWVuTkww?= =?utf-8?B?SXo4RFh1a2lqSUF1cEoxdFFmeFNMZEpSaXhkK2tha3MwbTV0Rko4SDFMenNu?= =?utf-8?B?TjJSRGNyazVmbHh4Nk8vZXF1K0g1amR0Y2JvRlNMcGdLYnB6cVNxdk9ESk04?= =?utf-8?B?YmdTTE5WOUZLQU9ldXBkakIzdVhValkzK0s0QkNXa2xmblFWVUFreDhHY0Zi?= =?utf-8?B?SWFzUGRkQ0JlQ2JROGVIMTNpeEtXRktuK1dCUjdaL3dpMitJblByNjNsNnhI?= =?utf-8?B?UUxFQ0ZCL09IUE1JL1M3N2x2cFFUKzEwa1J6d1NlUG8vU1ErZjkyU3hhM2VD?= =?utf-8?B?cFlXSU9PNmdwQXRYRFJNVFIya0hiYzZPR2Z6amJZUENCbUN2dHYwN1lZTEZv?= =?utf-8?B?YTBFZEo4QU5ua2V1ZEtKMk9CcERLc3h3NkJYSG9yZnJhWTllVllDNjRjMHZn?= =?utf-8?B?T01jSEFCdStnRkJyRU9PM05Ebm9HWm5XVE1weXN1S0V1YjRhVG1aM3BYSUV2?= =?utf-8?B?WEhjWURsWTFGdmtocEZmSGIxOHQ5cTd3WnlCTUg1ekY5LzZ2UXRJOGU2cTI3?= =?utf-8?B?UnlGYW16QnUvT2ZLdzVGT2ZzN2M2OVZoYjIwMTZ6TzU3TUdLRU5hL2plWEFy?= =?utf-8?B?K2NaNGNmWWRpSFVNYU1kVk1KL29RUHVMYUt6UkkvTE53VkFiUk1vUytUL2RT?= =?utf-8?Q?+sCsrUX7eW0o6FwR+Xjb9JIh9?= X-MS-Exchange-CrossTenant-Network-Message-Id: 9f7a1b48-db07-439f-4e4e-08db936d2c22 X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5984.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2023 15:28:50.5540 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qrFRVpBAmUDfQdYihdltFkpjlY/FQaNHXBEhtIAsYub112SlVJjCKy/qEVeSyzCt2Xo8s5ZD6r47BcXxu/VvhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4744 X-OriginatorOrg: intel.com Subject: Re: [Accel-config] [PATCH 2/7] accel-config: Add config-user-default command X-BeenThere: accel-config@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: accel-config List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Aug 2023 15:29:05 -0000 On 8/2/23 07:58, Fenghua Yu wrote: > Hi, Dave, > > On 8/1/23 17:14, Dave Jiang wrote: >> >> >> On 8/1/23 14:52, Fenghua Yu wrote: >>> Although current accel-config provides thorough ways to configure >>> IDXD devices and WQs, sometimes user needs an easier way to configure >>> and enable them without many knowledges of IDXD. >>> >>> A new command "config-user-default" is added to configure and enable >>> all available devices and WQs for user usage in the following default >>> configurations: >>> >>> 1. Fixed configurations: >>>     "mode":"shared", >>>     "group_id":0, >>>     "priority":10, >>>     "block_on_fault":1, >>>     "name":"user_default_wq", >>>     "ats_disable":0, >>>     "prs_disable":1 >>>     "type": "user" >>>     "driver_name":"user", >>> >>> 2. Calculated configurations: >>>     "size": max WQ size / max WQs >>>     "threshold": WQ size >>> >>> 3. Default configurations that have been set by IDXD driver: >>>     "max_batch_size" >>>     "max_transfer_size" >>>     "op_config" >>> >>> Signed-off-by: Fenghua Yu >>> Reviewed-by: Ramesh Thomas >>> --- >>>   accfg/accel-config.c    |   1 + >>>   accfg/config.c          | 268 ++++++++++++++++++++++++++++++++++++++++ >>>   accfg/libaccel_config.h |   1 + >>>   builtin.h               |   1 + >>>   4 files changed, 271 insertions(+) >>> >>> diff --git a/accfg/accel-config.c b/accfg/accel-config.c >>> index a897608..cf3882e 100644 >>> --- a/accfg/accel-config.c >>> +++ b/accfg/accel-config.c >>> @@ -67,6 +67,7 @@ static struct cmd_struct commands[] = { >>>       {"config-group", cmd_config_group}, >>>       {"config-wq", cmd_config_wq}, >>>       {"config-engine", cmd_config_engine}, >>> +    {"config-user-default", cmd_config_default}, >>>   #ifdef ENABLE_TEST >>>       {"test", cmd_test}, >>>   #endif >>> diff --git a/accfg/config.c b/accfg/config.c >>> index 2631fd9..f3fa83f 100644 >>> --- a/accfg/config.c >>> +++ b/accfg/config.c >>> @@ -119,6 +119,87 @@ static bool is_wq_threshold_writable(struct >>> accfg_wq *wq, int val); >>>   static bool is_wq_prs_disable_writable(struct accfg_wq *wq, int val); >>>   static bool is_wq_ats_disable_writable(struct accfg_wq *wq, int val); >>> +static int get_wq_size(struct accfg_device *dev) >>> +{ >>> +    int max_wq_size, max_wqs; >>> + >>> +    max_wq_size = accfg_device_get_max_work_queues_size(dev); >>> +    max_wqs = accfg_device_get_max_work_queues(dev); >>> + >>> +    return max_wq_size / max_wqs; >>> +} >>> + >>> +static int config_default_wq_set_prs_disable(struct accfg_wq *wq, >>> int val) >>> +{ >>> +    if (!is_wq_prs_disable_writable(wq, val)) >>> +        return -EPERM; >>> + >>> +    return accfg_wq_set_prs_disable(wq, val); >>> +} >>> + >>> +static int config_default_wq_set_ats_disable(struct accfg_wq *wq, >>> int val) >>> +{ >>> +    if (!is_wq_ats_disable_writable(wq, val)) >>> +        return -EPERM; >>> + >>> +    return accfg_wq_set_ats_disable(wq, val); >>> +} >>> + >>> +static int config_default_wq_set_threshold(struct accfg_wq *wq, int >>> val) >>> +{ >>> +    if (!is_wq_threshold_writable(wq, val)) >>> +        return -EPERM; > > threshold only be writable on shared group. > >>> + >>> +    return accfg_wq_set_threshold(wq, val); >>> +} >>> + >>> +static struct conf_def_wq_param { >>> +    struct wq_parameters param; >>> +    bool configured; >>> +} conf_def_wq_param[ACCFG_DEVICE_MAX]; >>> + >>> +/* Return WQ parameter for dev type. */ >>> +static struct wq_parameters *get_conf_def_wq_param(enum >>> accfg_device_type type) >>> +{ >>> +    if (type == ACCFG_DEVICE_DSA) >>> +        return &conf_def_wq_param[ACCFG_DEVICE_DSA].param; >>> +    else if (type == ACCFG_DEVICE_IAX) >>> +        return &conf_def_wq_param[ACCFG_DEVICE_IAX].param; >>> + >>> +    return NULL; >>> +} >>> + >>> +/* Check if dev is configured. */ >>> +static bool conf_def_dev_configured(struct accfg_device *dev) >>> +{ >>> +    if (accfg_device_get_type(dev) == ACCFG_DEVICE_DSA) >>> +        return conf_def_wq_param[ACCFG_DEVICE_DSA].configured; >>> +    else if (accfg_device_get_type(dev) == ACCFG_DEVICE_IAX) >>> +        return conf_def_wq_param[ACCFG_DEVICE_IAX].configured; >>> + >>> +    return false; >>> +} >>> + >>> +/* Set WQ parameters based on device cap: size and threshold. */ >>> +static int config_default_wq_set_on_dev(struct accfg_device *dev) >>> +{ >>> +    enum accfg_device_type dev_type; >>> +    struct wq_parameters *p; >>> + >>> +    dev_type = accfg_device_get_type(dev); >>> +    p = get_conf_def_wq_param(dev_type); >>> +    if (!p) >>> +        return -EINVAL; >>> + >>> +    p->wq_size = get_wq_size(dev); >>> +    if (p->wq_size <= 0) >>> +        return -ENOSPC; >>> + >>> +    p->threshold = p->wq_size; >> >> Should check if wq is shared before setting threshold. threshold has >> no meaning for dwq. > > This is just writing an internal parameter. No need to check mode here, > right? Ok > > The mode check happens during writing threshold via sysfs. Please see > this functions: > > >> +static int config_default_wq_set_threshold(struct accfg_wq *wq, int > val) > >> +{ > >> +    if (!is_wq_threshold_writable(wq, val)) > >> +        return -EPERM; > > Thanks. > > -Fenghua