From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00154904.pphosted.com (mx0a-00154904.pphosted.com [148.163.133.20]) by sourceware.org (Postfix) with ESMTPS id 043A53858283 for ; Wed, 28 Sep 2022 13:33:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 043A53858283 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=dell.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dell.com Received: from pps.filterd (m0170389.ppops.net [127.0.0.1]) by mx0a-00154904.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28SCWIin025816; Wed, 28 Sep 2022 09:33:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=smtpout1; bh=77lW8jH1BiMBkHZLbAUvIbd1WDIp+xy7B1q5ecpl5yE=; b=yYi+2dtnspkhZyZ9VawbDULuVGm4mPzT6gMucHFpT1RL2SP/nGFZjyxC8yCjzB3IN3Z3 kNvPB7K53FpSvyBINJj+2AwocQWyj2mhAU2zQsWT/vwepKT4hiN9I3BIb2cbpoPTn4g2 gKkeoHrm/FOwuufa556kT+v2sR1ge8qOf6vULA5TGQonQYtW/3JyxzuFiDHKowaC51Ql reDMTOequVILlkHEN00ThxsSTo2+jimbwvtwIG6FxI5AcwHaxkUevt+4Mp7uY1ldcxD1 7WD0e1APbU3m/Ics1U9Pm1mCFstpPZA7rsEqzspesK78r0BQvum/djhA6L3JqRXpAgAA pw== Received: from mx0a-00154901.pphosted.com (mx0a-00154901.pphosted.com [67.231.149.39]) by mx0a-00154904.pphosted.com (PPS) with ESMTPS id 3jswwkagv7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Sep 2022 09:33:07 -0400 Received: from pps.filterd (m0090351.ppops.net [127.0.0.1]) by mx0b-00154901.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28SDL1Lj026965; Wed, 28 Sep 2022 09:33:07 -0400 Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2048.outbound.protection.outlook.com [104.47.56.48]) by mx0b-00154901.pphosted.com (PPS) with ESMTPS id 3jvjfm4fht-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Sep 2022 09:33:07 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h9VDfOr/WBkZ0xvGQcN7i+JiuBt4ezpKLbQQTFApD8CsRrmO9qr1MUuY8uV1aPeHU+ArsWMWuUDy/pbSfHbk08YNHRvM0jE+mfkD8V9tjelem4UFNvjTGgPVoggZ2i/9HJtivk5O3m/5WL1Sfhr9sOKZddZ5+uGg4tMrq4m9HDDnlRigvbtG6qEWP0hjQfQecyK+r7MjcyRT1eLgfHs13BeFs9IOebsBM9i1DTd2linMuBETViKCRl/SJrfeXsKXnT8HU65rtaZ3vntMGMeyHS59MUU4OC07hp1ttKK32KYLs6BJDNDz3SRA5Gab2/I2/fjqtlA92EQzffAMEgv30Q== 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=77lW8jH1BiMBkHZLbAUvIbd1WDIp+xy7B1q5ecpl5yE=; b=U3Mrlqrsg2+jfdetWqCJayDbmevwOppl6fjog5GnXIT4oA6QJ9DtVQwW4t4AuPngeZQeGRXNOIC/C+AoZhWn9jE4aHJMwV8FJQUKPx+EUq8Xj1egk11FOLwfdbEpu19NXG/eRNYjG/2UDS5r8iqYIYrBLXKPnjorDzBM4dNIsQr0wzOcxGgD7sYqfMjlkSRPTG9VYJeDTWGunJm5QjbuD5yn0GXl4PUgj1axbthTDfhqaUp7jvsWzSqdvrLuzhgRMfictJYlkTUbALdlUrZNFiRVFTZO9e5RhGd9S0+B4FAnfpnTzT1eI93RVqqiYiMphqYhwzOEf7YbQh6RE9WpDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=dell.com; dmarc=pass action=none header.from=dell.com; dkim=pass header.d=dell.com; arc=none Received: from SA0PR19MB4508.namprd19.prod.outlook.com (2603:10b6:806:b8::7) by SA0PR19MB4367.namprd19.prod.outlook.com (2603:10b6:806:87::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.26; Wed, 28 Sep 2022 13:33:04 +0000 Received: from SA0PR19MB4508.namprd19.prod.outlook.com ([fe80::c4c:4b34:35a7:ada6]) by SA0PR19MB4508.namprd19.prod.outlook.com ([fe80::c4c:4b34:35a7:ada6%7]) with mapi id 15.20.5676.019; Wed, 28 Sep 2022 13:33:04 +0000 From: "Koning, Paul" To: Jeff Law CC: GCC Patches Subject: Re: [PATCH V2] place `const volatile' objects in read-only sections Thread-Topic: [PATCH V2] place `const volatile' objects in read-only sections Thread-Index: AQHY0z7WgLxcBgnOjk+6pA08cL3rTw== Date: Wed, 28 Sep 2022 13:33:04 +0000 Message-ID: <66F12817-6A11-4B33-A909-7F1230DCBEA2@dell.com> References: <87zggiudcr.fsf@oracle.com> <3b34b862-c71b-307c-f884-04fad0a3751b@gmail.com> In-Reply-To: <3b34b862-c71b-307c-f884-04fad0a3751b@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3654.120.0.1.13) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA0PR19MB4508:EE_|SA0PR19MB4367:EE_ x-ms-office365-filtering-correlation-id: 94e8316a-82ac-4394-7050-08daa155f8e4 x-exotenant: 2khUwGVqB6N9v58KS13ncyUmMJd8q4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6+d0yWkzjUNUIDL6ZzFU7zZVzpnP9ZzOG/TclmZI4fH62kxSpCWLULxpZ2KgxQE+5T/HzXpKD/1pWnQukwIzuGTD8Z1NePwB3XepBIaVBItP/lCfHO02BY3Vx2QKoF7Y5iDz6Lk2ZL4cgoYh8/t6208CCzIdAIaa2jIVbZcTSPFPl2aNE0tmp9Mnp7/EUa7ZSuloGXANUV7qd4NVKV7XxoseQsXj4EWX4mToo3uTm3Rc1vrpsAon332ldl96p+Jv5HV/PCN+m3NfAG0z9eyV9WML145ZIEUkHchyGGmxQsXoD1loeredLM+IF3Qzsmj1FhElAJCqrXZFES+knTRlXAjyxDdpfLZ1VJSp50RQahTYhOaCC9kXnqBCnTkANOLOfbTtsnCANeTJ9Ivx/QOqfuxA9APaM7nnHBxBYRRR/pAMPHAf0o7jURGD8QFqirHyMK+jRKZW7v3JAHAtstvZkuKLsSaBr5edFcsTsDQNhK/GLSUyjtz8drUsyBCm3983mSCSIHxr3mPl6nDaFK8FPdXNKyuRrkOLEi7WpsegpgtkIbLl+QfeE6QfW8LcDlPFV99smqvB0XrN25fqJ/CBcotIpXtBDbkG/vORUJaRdz5l2IW8Dc+Y9oKdtmbVWBm5QmZFSU0M6c8IfJOxA7aFdAgMo4fSbDx9j//PMozOYv3hqtNZsOvTCRyyyJt7mWupDXBaIvvgCZidMyDp9MO6n6JaahErH52NAK7EzBSdkbH/3AnoSAR3hdocg4+V0s/u5jrPMo3RjScjE9YPYOBx4bY4zt4Y1tUicSfxVwUUotEfY9XDBObcSqUUiqP5/3CVYOEHs67ysOH2R7lMRPXK4g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA0PR19MB4508.namprd19.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(346002)(376002)(136003)(396003)(39860400002)(451199015)(316002)(786003)(6512007)(8676002)(26005)(5660300002)(66476007)(64756008)(66446008)(6916009)(76116006)(66556008)(66946007)(478600001)(53546011)(8936002)(71200400001)(6486002)(6506007)(41300700001)(83380400001)(122000001)(38100700002)(33656002)(4326008)(2616005)(38070700005)(186003)(2906002)(82960400001)(36756003)(86362001)(81973001)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?j8lCiZDXYlGm5e+7Lc+JYYarn8uhYTso8oRZ5+ZGr5WKMrlIPl316y9XYQgc?= =?us-ascii?Q?neJ7nmmtraL08HepbhFCdNR1OCIaw69Ii2ZxB5F/a/Mo4kIGMELXoKosTVuh?= =?us-ascii?Q?JH0XW4FI0LBeZiBKi11l+M/p5ixGO4bednadCydXBjmUgZN6YElTjyx5K0fn?= =?us-ascii?Q?m7c+dJ5RQpFSNuT1irLq6JnxA8WtmzdauWyDw23NUAovBUSYfuQ2B1hPb2Vw?= =?us-ascii?Q?BTJiN56PG2EvcjrjLK8RzeYHAnyTXDYoXS2UCjO/9y553wuXTckc2tVAI7I5?= =?us-ascii?Q?PUvITHODEsEg+iswvqBxuGFAsUaqrxlb7BC7evlU0rqnkftYsxL4pDk2vDXy?= =?us-ascii?Q?Pjl/b/efn5TgS+6B+3hsJJoZlguN83MS2a6aEBmYfwZXbZo4A5rfQTQHBDmm?= =?us-ascii?Q?xyeeSXvqKFcX9K/mVdJmCFy6vfgdyb19t8cBlpZRCEy59fnPg8f7JaCO+7l1?= =?us-ascii?Q?HShcxol/PvtTxTED4cCR/ODJ09meKjqCkBQqyUlUkzcqT1ZThyzokInuEQ5J?= =?us-ascii?Q?H5SQK8Bic6GM+q87dEry+YkqIYYj8bdM1lGMHDNXt9Dsa366wGgOO9p86ve2?= =?us-ascii?Q?0rMlt7DspUy/kdM+EdNm200vYAggosgJumaTdq0HBEENJafE0gT06pOhtYRY?= =?us-ascii?Q?csyVTxYR4RSe2ciYwT/9AAGlPKy5zbMDrbBJfcohANuPst5W2aFDNgDAuqA/?= =?us-ascii?Q?1zsgsrZ4kIZWmBw/jCv+cZdNWswmgR88U5M1mMKTOPeVAyfUzC3aZzAFkcWC?= =?us-ascii?Q?oQ2bNpssKtmbSggzFXnTg8YLQfvmDNhQZ/fyBMf7072jaQrxXK7RNKeG9CDU?= =?us-ascii?Q?vf17b956ewQrFxFTx0BtFWPllkG4OyLZOKZXdG/Xd0+Q8ZeWxRkqRYhjs6tn?= =?us-ascii?Q?Jn6kOdXP+bCM4DJpw1/zH0zuZu56E0clQ7POFnB+9FguUT46aq+pB+PttIv5?= =?us-ascii?Q?S9+agwqcRrUK9wXWsVKuW/vvAIV+rbSY4QTp/RW6x7frqrt7s9B9JTD+TMKu?= =?us-ascii?Q?YX2VN7hsIL17kPUDhzlcYd4vTmQJjY5TIzJu9I/Wnho66Kj0bDHMMFMZfgb0?= =?us-ascii?Q?vsNkpZVl2u2Ofs/P0wVyFsrs/H2nbgw6iaxMstwzELydz6Nu96318+0pokd4?= =?us-ascii?Q?PvT2VbZlYc3kOPDKedPLESbg5J8axyHyOmKMFFqRTmaGbMT7Om8Ur9AJ8TPH?= =?us-ascii?Q?8j8FzcarZT42EgjnUshTecwZYQcWe1Pq47tnmzXydlE4d4JX6GKiCdWdUdo3?= =?us-ascii?Q?ty8APemT6jzGmH/xkNrhUYhEWYmStpTo+DSIXiXmWCpuDvoQ5rVZSsHVf6h8?= =?us-ascii?Q?NHWJZZjBKhUZUPAp0ytWhTb0P0BfhlkcmL0oCChOaYN29eJJ2pdcrxQFrnTq?= =?us-ascii?Q?Tnf7DJdfIWyQvd+FFn8HGzyLrLZcLWj2qGunexUAaeg/zGT70I9deUr+m8uI?= =?us-ascii?Q?W9M1ErHkNypH7zToPWnW1oVtX3XLsBuMQZrkCpYQXKq7hiraGk1Ko1ULFCkR?= =?us-ascii?Q?XIcPWCYvPtEm5j2AynIrBn3o5t0kSAzCjSxKke/BcVmbfpgG8md9nwUas4VV?= =?us-ascii?Q?YSrbOFK0vXevjqlO1CgoNghlfD64VZ3V5Ifmvktt/tMUKSiT9/b66znFeu+f?= =?us-ascii?Q?mg=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-ID: <8862860938188D459A4B52A9E04836AB@namprd19.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Dell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA0PR19MB4508.namprd19.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94e8316a-82ac-4394-7050-08daa155f8e4 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2022 13:33:04.5889 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 945c199a-83a2-4e80-9f8c-5a91be5752dd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: rfKIlqzRIE2cXPX7UTXnVwhSJ1F+cxf+TSbCh9eoger8k3o66fKpgVlingxJ89moM2fXRHUUHMIz1jWo9fy/Iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR19MB4367 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-28_06,2022-09-28_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=790 phishscore=0 spamscore=0 priorityscore=1501 clxscore=1011 bulkscore=0 adultscore=0 suspectscore=0 impostorscore=0 malwarescore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2209280083 X-Proofpoint-ORIG-GUID: WLYAKODw6lgS8--enTOV5hCNbyJ5VffV X-Proofpoint-GUID: WLYAKODw6lgS8--enTOV5hCNbyJ5VffV X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=931 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2209280083 X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > On Sep 27, 2022, at 8:51 PM, Jeff Law via Gcc-patches wrote: >=20 >=20 > On 8/5/22 05:41, Jose E. Marchesi via Gcc-patches wrote: >> [Changes from V1: >> - Added a test.] >>=20 >> It is common for C BPF programs to use variables that are implicitly >> set by the BPF loader and run-time. It is also necessary for these >> variables to be stored in read-only storage so the BPF verifier >> recognizes them as such. This leads to declarations using both >> `const' and `volatile' qualifiers, like this: >>=20 >> const volatile unsigned char is_allow_list =3D 0; >>=20 >> Where `volatile' is used to avoid the compiler to optimize out the >> variable, or turn it into a constant, and `const' to make sure it is >> placed in .rodata. >>=20 >> Now, it happens that: >>=20 >> - GCC places `const volatile' objects in the .data section, under the >> assumption that `volatile' somehow voids the `const'. >>=20 >> - LLVM places `const volatile' objects in .rodata, under the >> assumption that `volatile' is orthogonal to `const'. >> ... >=20 > The best use I've heard for const volatile is stuff like hardware status = registers which are readonly from the standpoint of the compiler, but which= are changed by the hardware. But for those, we're looking for the const = to trigger compiler diagnostics if we try to write the value. The volatile= (of course) indicates the value changes behind our back. I'd go a bit further and say that this is the only use of const volatile th= at makes any sense. > What you're trying to do seems to parallel that case reasonably well for = the volatile aspect. You want to force the compiler to read the data for e= very access. >=20 > Your need for the const is a bit different. Instead of looking to get a = diagnostic out of the compiler if its modified, you need the data to live i= n .rodata so the BPF verifier knows the compiler/code won't change the valu= e. Presumably the BPF verifier can't read debug info to determine the cons= t-ness. >=20 > I'm not keen on the behavior change, but nobody else is stepping in to re= view and I don't have a strong case to reject. So OK for the trunk. A const volatile that sits in memory feels like a programmer error. Instea= d of worrying about how it's handled, would it not make more sense to tag i= t with a warning? paul