From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5CBA3A6B68 for ; Thu, 4 Jun 2026 16:37:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.12 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780591078; cv=fail; b=ZAGuVghB3f8U/JffETiX+k4sejxsNRDpOQ0Gz6EPEFMxzF1sB98tCCsRDBMCQ37TdzdhIgUOef72k7SbdLew5+YZ7FsmFdGkJCSCoNVLufUFXsI9cEnpTH2qjE9l+9T86UzRffRcz7cSUwZ+VlX40UB5Ml0ig9IuTgbCYy08z5Q= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780591078; c=relaxed/simple; bh=HQZKKoezEye2BgydAkalfqF6xNK9ouaqkCIDxoL3seE=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=osaodlbZfYPKPs84OXGB5c/OwiJGs9fXTzr5wFjn27EFab+fGQbPQcvQbCbYfr5nTipHSWBE418b0oiKhcEv93QKv44wiUcDFSMyj/DwSRxbDrs04vmeVx+J9bI+Q7qklsNfmSWL+WfPc3E+eYxM515A71f+QnXPCNWAHR7r5lE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DtTIJx3L; arc=fail smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DtTIJx3L" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1780591077; x=1812127077; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=HQZKKoezEye2BgydAkalfqF6xNK9ouaqkCIDxoL3seE=; b=DtTIJx3LnEdM5fj1n07FhcB0A7kvdGjqXvmFk+8XY9ECORTXRjobbCPZ NXJ+V7js8dGhGgCKz+tzpWlLFl4rp3Yfu/amiTfF/EV4eGadmWXTIy8SD swSS4CWnF8hKIfzywVRl5U8sLFKf9w7dAgUvBE0yLxfJP1tapf9JRTNcz +hQFtk8EcUZz7V3qCgnD/aLaPxyKsmKfuFNezvA1UYQznc2o6U08YQmLZ TaDEsSMgCphH/0USkezwG3pJoj/harxPLEI2OkuDthtC/epd64xk29Vq1 u3ou4qRCly5pWyk23XBVi7qjc2WcTdv6jxy49ejQlKI2AHAcjEQW3b0Y2 g==; X-CSE-ConnectionGUID: ZqZZnObjQeylJ8LR5tpzdw== X-CSE-MsgGUID: TuB9Ebe4TsWjcKtNgJbK/A== X-IronPort-AV: E=McAfee;i="6800,10657,11807"; a="85276423" X-IronPort-AV: E=Sophos;i="6.24,187,1774335600"; d="scan'208";a="85276423" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2026 09:37:56 -0700 X-CSE-ConnectionGUID: e+vh+k2SSHuIYRGLzyoFTg== X-CSE-MsgGUID: PzQqOwVfRE6SawMG3Chx6g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.24,187,1774335600"; d="scan'208";a="244703165" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa007.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2026 09:37:55 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 4 Jun 2026 09:37:54 -0700 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Thu, 4 Jun 2026 09:37:54 -0700 Received: from BYAPR05CU005.outbound.protection.outlook.com (52.101.85.33) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 4 Jun 2026 09:37:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YplsGYp/fxMmuNpIeCmjc09bhzzS9eLSuF0n6UZ0kGoRTUjuT7VKwqIkFU2jyIxeomh8OantUz3wKqjoTXims8m02bQvGDoUCOwTix1hsoTK0wrbR68VguHVZ3TbLFLRxpr7nIQiPsDgFUHSH9k+bmERLz3OcbnDYleIHi6IbouZU0DBT+g4tVD8Qia7G5w0773/v85500FS55HA9feTgwQ5yRfFqLq3xC8nsN/eH0R/+PGXU3cPyW8l9eaOYh0Uxp2kx2P5m7jl3vLNcvqYGVq0/dhSXfVpGjzEwYeWUF4c+VZxza2D0PVTlCVvC+YQsi48EZXorIAtoAmwLKntjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+3hI3EgsVF6/uAJoJrALMtAodsUjdOC/bVcfXj5YVIg=; b=JCWWW8C4/u+BZ1CxO3mOPJno6+U9dBy887w7f0K+2p8b8ITabkeEwtn0P7DnRQW7CjcmwFa9xD12ho3xMndbGDiP4UlJHf/20zR8cvXu4mlHYyiTXeR9iHznQ158O5Uy2HyCBIxmLHFLrPH+WzYLQxKKdd9raIEcAoEtsVA8sQUCh7UiHGl/6mcleXSEaduLRtS41dVNPAs6sBbwCpJl0Bm7u1/l5QQ2uC2AGg8FfmwGqwkWXBZDqRr+0cVBF3bMFjSRYqqauw4VhUi63Rcm1UPwkHWOO1ZqUsxFS7LWneEEMUGSDskgScXOsy+veF0nnx9ZNtxcOs+tmrf/me4KOw== 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 SJ2PR11MB8370.namprd11.prod.outlook.com (2603:10b6:a03:540::20) by PH7PR11MB6378.namprd11.prod.outlook.com (2603:10b6:510:1fa::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.8; Thu, 4 Jun 2026 16:37:50 +0000 Received: from SJ2PR11MB8370.namprd11.prod.outlook.com ([fe80::b6cf:ce77:3cdf:7cc]) by SJ2PR11MB8370.namprd11.prod.outlook.com ([fe80::b6cf:ce77:3cdf:7cc%4]) with mapi id 15.21.0092.006; Thu, 4 Jun 2026 16:37:50 +0000 Message-ID: <96499899-5586-4a98-b8aa-80c8e47ed125@intel.com> Date: Thu, 4 Jun 2026 09:37:47 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [RFC] mpam,x86,fs/resctrl: Generic schema description Proof of Concept To: "Chen, Yu C" CC: Borislav Petkov , Thomas Gleixner , "Dave Hansen" , Peter Newman , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , Tony Luck , Dave Martin , James Morse , Ben Horgan , Babu Moger , Drew Fustini , Fenghua Yu References: <90d82bac-440a-41dc-916d-01b564d5c64e@intel.com> <773353e8-b2a7-4c20-b6fa-195b0b301107@intel.com> <90ae82da-02b2-4058-8c1e-f16df3226d8a@intel.com> Content-Language: en-US From: Reinette Chatre In-Reply-To: <90ae82da-02b2-4058-8c1e-f16df3226d8a@intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MW4PR03CA0298.namprd03.prod.outlook.com (2603:10b6:303:b5::33) To SJ2PR11MB8370.namprd11.prod.outlook.com (2603:10b6:a03:540::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ2PR11MB8370:EE_|PH7PR11MB6378:EE_ X-MS-Office365-Filtering-Correlation-Id: 1bb78377-acf7-4d68-eb75-08dec2579dd6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014|3023799007|56012099006|4143699003|22082099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: Oip+PC0+8SieLE1olLyha/hZgLQNSq8rpuAR65hc8LmwSNW8rlxRipiSiWPMKhLSp6q4aVPLwdwVgvvesvG+7NZnKgpmeJtkrMMakL/Meo6mCyCD2Yr5VO0JA5zXqIgmz/E0o3xYwOJlIrc3jnQxCDDYk9l9c4wmd14M3EH/6WsQkSipMPyXv0FHWWyrQOdcdGYWuSx1okCB8sLJr4Ox1HGxdMPv4QlkmaFyXDA1/aNBFHVeegLeeistOs9lRmpaGxVdrS08lbzmN84khueqcR7Ajk5Ai6naApNlgrKEAzClx2paP66PJoIfmtyC6b9hENM+ijXI066mBHuinkYIC6dRp1qzJJf65f0Qd8DRT6r4jFtMniXrrv0VEnMDPlMgRtY4XCt2xx+gGjfdcFS9X0TqbG23C8LYrwfNWKIwZngyJg4CVt1KFPFABF8HJwy7H4Cq+lsNMctag/uJDv1tM4DIE9domu/STBTkqH6FjJcAOk7NqiHeI+xIYCPeZ27tlOzUYxtsxEEiUjjimBmj80cQnsf2/pnf7w1x7nEXfweAcPTnP4a9DJMkhjdQKoFcibmOk91kWmRCvmunt24FjaRbC83kEOHfRMO653KSFR6gsrN9UVB7PJSY9Nw82i9PTF6Ly0fuUkSihp7XYG0xUeeiFbWFrrK9LV9y1jhKoU0pCtLBpslNfxr8LmU5XvACHXemTQ8Si0rthL65GehUbA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB8370.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014)(3023799007)(56012099006)(4143699003)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b0RVTTU0V2NveFVxcXdQQlBPKzAvU0Erc1RkZ0I3RFE2WHp0Vzd4NUp6cnFI?= =?utf-8?B?S1pGbHJ5OU1WUExtVDEzZzBlcGlBdnl2cUFJZzNwTmNHdGE3OFdiSTdnSXRR?= =?utf-8?B?VVRPWkpSenRTbFp2bm5aRkpPY0NuOFBWWitiZHhuRVdUc3U3aFBrek1aMmdi?= =?utf-8?B?Z0FuMDVkbWZ2dVFobXRDaFduV1kzYmw4Y1p1bENVcDk1NUY5UG5ocHZ6SktL?= =?utf-8?B?bWttbTdHM0VyN0JGYy9aZW04U2grVHVuSHZiKzhsbEhRdjNIQS9sL2VnQlRK?= =?utf-8?B?ZC9qT1NsTmU5TzRKVG1OSkk0K1kvTjM4QWhTMmswaHd6eExRT0ljb3lBTC9Z?= =?utf-8?B?Zlpsc1BYT1FyeVJRQkxVaDY0MDZyWW9QUlZSWHBMcVVzS2JDdWorYU5XUCta?= =?utf-8?B?QlUyVVlqSDlLR1RPRkpZc0tXMkpCdjNnRXdxZlVBaFFZOGg5K0dkZE9EZnZi?= =?utf-8?B?TmM4S1FRblVnSDczZGZWWk9KeHZOcGtKTUM4eUpWZVBzUm00S21OcUdTNlBq?= =?utf-8?B?OWsyNEVJSkxtK3dSNStybWY3T3lFblVYOEZnTHJHOWEweUhyQ2htMnN5bGg5?= =?utf-8?B?ZmQ5dDQ2MFU1NU1Wb29WMHJYNFhadE1tR0pnajJRNkpQbFEvck1WZ21laXFY?= =?utf-8?B?ZDlLSXhUbmY2UnZDOC81aExkakthdVpwSlQwVk10ZFhzUzBQeXJ6NXF2RHh2?= =?utf-8?B?bDZ2R2hvSm9BanJBbVhuUmh3YnJNWldwK2ozdzRGRWhXdFBORHlKZlFtWklS?= =?utf-8?B?NTRTVmd2c0VZMjg0T1BiRGpBcWhTZy9lL3hQTkh1TFZjOFgzemVHdXF0VEVs?= =?utf-8?B?RWVmajNYVHVqRUhaL0ZOOUZCY0Y2MUhHbVhtV3dTR3NaZDA3OUVBNTZvVUM0?= =?utf-8?B?M2xMSjVXZU8yeVMwL1I1cGVNRWswTFJ1OGpSK21YUEpNUERsMGFxeHRmQjBo?= =?utf-8?B?RXJkejJDKy9XRmJPYUhYbFhEdWlVUlFIZEk0SzRZdUtwUXZvbFowZEUvR1FI?= =?utf-8?B?bEEzL3BFc0NSQ2FKTFE5VUNrTmZ0UnIvSW9TUGlaK2Y5ZDV5d1pwMituenhH?= =?utf-8?B?ckFmalEzUitTL3JPVEluZktLTTh4Nkhjd1BoM3NnYzhmUHF0RkwrOXY5WTdB?= =?utf-8?B?VUFTV1JmTjdYSVppSFJwTjIwUC9PWHRlVzM4Q2xOdGl1dFppLzYwQXdMd0VW?= =?utf-8?B?c2cybUxHYlVDeXlZU2pVU1FZU0lWVlA5Z3VKMWtJNDBHMENEeHloVTZuS05i?= =?utf-8?B?V0pqVnIxTnRLb1Z4YzlrV1gxeVZ3V3BhZnQwa1F4MzRlNk14VmxxYWRFWjYx?= =?utf-8?B?cDFTNUNZMWlEVThBTnRhWEJNZk5GOWpicmJHVEtCY3N3YzhWd2hYeG9XN1Jz?= =?utf-8?B?YlIrR1lLR0ZkeFVZQkE0cDIzZGprZCtKMStkOWVnRlZXbitUSkNhMldaTUcy?= =?utf-8?B?V1NobnR0TE4zeXRsVmJsTUh6bEMvSWhHbzZHMGNwWUNFaDdzRGZXV3JMcWJ6?= =?utf-8?B?MkNNSkdiMC9NMkptOHN1RlA4bEVHL3QwOFExWHpCR2FWSEoyUWt4QlVPcmcz?= =?utf-8?B?QjhOczY0Lzk2MUNHZjQzL1o1SWlHSDBGZC9HMlRHemNtTVNQSTVPQ0lUVXpW?= =?utf-8?B?cE5tdk9idi9NNTI5MlBaTWlDN1dyZWNLbFE4a1ZhaEI5Ykw5UHJMc0Zwb0Zx?= =?utf-8?B?SmpTTUJFNC9FRVZ3QUpseDBLeWlHUUl6Q2svNERjK0UwMmtRY3ZTSE9sMDUz?= =?utf-8?B?TzZ3anhJMmhZeTlaSjNUMU9uZkZLYjlnNzRsK2JtNnRMbklvQWhYMGNLMnFU?= =?utf-8?B?R3dlektGY2hrbTFFSnpRT2YrNng0Um9sRXg4UFNoVWZ0NXdzNkR6bGJPa1VV?= =?utf-8?B?UFJtTStDd2lwYzc0RC83TG1JRHBLb1dyTHpTMEFSWkdRVTRXbUxtVG5acEp2?= =?utf-8?B?SVVFeUoxMyt0b2ZUMVBSK0U1SEp0QzhTclN6aWJjYVNjK1BQWU4wOTJtelNN?= =?utf-8?B?QmdYcFVnVmVYRll0VmM1WE1sRFdkWG5uUG16emNXMm82VEVFaHlPT3g0U1dT?= =?utf-8?B?Ymw0cE9ZVVJUeDdkaGc3eVI5UEdkYndQaFJRM1ViQ2cxSVY1VS83Tm4zbHZr?= =?utf-8?B?VlF3L3RZMXRtSmNjcFo3cEd5QlZqZHZ5T3lsWXZQakEvNDNZVy9JazZrMkRr?= =?utf-8?B?SjhSdHRiVmc2MFc3NG0wR1RHWXRQU3hNSVBKN01Ka0h3dkFhODZIZ2hraFJm?= =?utf-8?B?NWxGL0VSZHlIcytwcG5QZThoWDVoT0pyTmU5Qll3a0pnNlQ1WjNZT2ZaaDgw?= =?utf-8?B?Um9HSzdlNkhnTXh3SHhEbGtqeUs1YUxZcHlyT2tPNVhlVlJrYTRQTVNYdlc4?= =?utf-8?Q?7YuCBW3Qb1n8bGTs=3D?= X-Exchange-RoutingPolicyChecked: PvOnjlnZMOfpN/vIw1Ny92Eqo3xBryjrq97LXqfzpq5+Q6DKiib3Fme6feaW20UksVSPSKINnEyi3fnE2pUT5is1tSrpxOENP7OtcKO/KJbTxGAo9gdVXZc7sm0RP2uLov1DA+Yh1wsxptzMW7nDW3DRr/C1Ch5iuwaCvUbbca4BmmI1nwqq2c/T/y0s+yfWH66OmVTa1wIUXQe0wQZhBdxGP1r5At4sr25XAOI0K3K5aIxKg5BME//MMTda+o/dm58ZK5yIdFT7oUVo5DFQcCpLHiJvNGplvwemktiXni2e9DsGdFSTd/pMqcIcFnUSXfSqlP/BHTY+6vgB+hNNcw== X-MS-Exchange-CrossTenant-Network-Message-Id: 1bb78377-acf7-4d68-eb75-08dec2579dd6 X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB8370.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2026 16:37:50.0580 (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: b4IGW2m3b/AEh5fI/tWYbXmCftGGf5HF3IPp9IpmbdCoDKC+K7FXnTRH8zIGqFLH4bZo0v4zydvPjGN8fJROD7q7m5HAUEGh8jM4kjfY/Xo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6378 X-OriginatorOrg: intel.com Hi Chenyu, On 6/3/26 4:53 AM, Chen, Yu C wrote: > Hi Reinette, > > On 6/3/2026 11:45 AM, Reinette Chatre wrote: >> Hi Chenyu, >> > > [ ... ] > >>> >>> Thanks for re-spinning this patch set. >>> Looking at commit (fs/resctrl: Introduce additional schema properties), >>> the newly added properties appear to be implemented for the >>> MBA resctrl_membw controller. >> >> Please do note that the "struct resctrl_membw" naming is temporary. I only kept >> current naming to help folks find where existing known structures land in this new >> design but the "struct resctrl_membw" name is not appropriate moving forward. >> >> When user space interacts with the new controls the intention is that each control >> has a "type" that the user can find in the new "type" file and depending on that value >> the user will know what other files/properties can be expected. >> >> In this PoC there are two types: "scalar" and "bitmap" and each is associated with >> a struct that contains the properties associated with that type. >> >> Considering this, these structures could, for example, be renamed as (very long): >> struct resctrl_membw -> struct resctrl_ctrl_scalar >> struct resctrl_cache -> struct resctrl_ctrl_bitmap >> > > OK, the type field serves as the primary key for querying other properties. > Alongside the "type" entry, there also exists a "flag" property. I haven't > spotted this field within resctrl_membw, though it appears in resctrl_cache > via arch_has_sparse_bitmasks. Would it make sense to introduce a dedicated > enum for this flag, or alternatively reuse the existing bw_delay_linear for MBA? I realize now my previous answer to you was incomplete. You are right that there is a plan to let the resctrl "type" file contain the schema type as well as optional flags. This plan is unchanged but at this time it is not obvious to me what flags this implementation should start with. In the original proposal [1] "linear" was provided as example of a flag for the MB resource but as I worked through this PoC whether a control is linear or not seemed to fit better as a resource property. This is how I ended up with commit bdcd8ac6e946 ("mpam,x86,fs/resctrl: Make memory bandwidth delay a resource property") For this specific property I expect that all controls would have the same value. This worked out well since resctrl already has the per-resource top level "delay_linear". We can surely move this back to be a control property and have it be the first "flag" but at this time it seems to me that all MB controls would just have the same flag value? Perhaps the safest alternative would be to keep it a resource property and just duplicate this as a flag value among all the controls? I think this is what you are suggesting to reuse the bw_delay_linear for MBA. This would not result in dedicated flags associated with controls but it may set the user interface up for most flexibility. Reinette [1] https://lore.kernel.org/lkml/aPtfMFfLV1l%2FRB0L@e133380.arm.com/